Assembly Diffs

linux arm64

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

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

Overall (-126,148 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,579,776 +368
benchmarks.run_pgo.linux.arm64.checked.mch 80,916,176 -14,972
benchmarks.run_tiered.linux.arm64.checked.mch 24,709,612 -140
coreclr_tests.run.linux.arm64.checked.mch 509,948,648 -38,868
libraries.crossgen2.linux.arm64.checked.mch 55,736,760 +24
libraries.pmi.linux.arm64.checked.mch 75,993,172 -4,048
libraries_tests.run.linux.arm64.Release.mch 381,327,700 -46,900
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 162,523,364 -21,244
realworld.run.linux.arm64.checked.mch 15,906,968 -172
smoke_tests.nativeaot.linux.arm64.checked.mch 2,948,924 -196

FullOpts (-126,148 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,276,768 +368
benchmarks.run_pgo.linux.arm64.checked.mch 55,979,716 -14,972
benchmarks.run_tiered.linux.arm64.checked.mch 4,924,756 -140
coreclr_tests.run.linux.arm64.checked.mch 160,723,592 -38,868
libraries.crossgen2.linux.arm64.checked.mch 55,735,124 +24
libraries.pmi.linux.arm64.checked.mch 75,873,188 -4,048
libraries_tests.run.linux.arm64.Release.mch 166,030,560 -46,900
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 149,042,152 -21,244
realworld.run.linux.arm64.checked.mch 15,321,600 -172
smoke_tests.nativeaot.linux.arm64.checked.mch 2,947,976 -196

Example diffs

benchmarks.run.linux.arm64.checked.mch

-8 (-6.45%) : 15383.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -59,10 +59,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -81,21 +79,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -114,13 +110,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 124, prolog size 8, PerfScore 16.50, instruction count 31, allocated bytes for code 124 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 15.50, instruction count 29, allocated bytes for code 116 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -131,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-6.06%) : 1975.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)

@@ -78,10 +78,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M49441_IG04
-            cbz     x1, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -92,31 +90,29 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M49441_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M49441_IG07
+            cbnz    w3, G_M49441_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x1]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
             add     x4, x1, #12
             ; byrRegs +[x4]
             mov     x5, x4
             ; byrRegs +[x5]
             sxtw    w6, w3
-            b       G_M49441_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1]
-            ; byrRegs -[x4-x5]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0030 {x4 x5}, gcvars, byref, isz
-            ; gcrRegs +[x1]
-            ; byrRegs +[x4-x5]
             cmp     w6, #0
             ble     G_M49441_IG09
             ldrh    w5, [x5]
             ; byrRegs -[x5]
             cmp     w5, #47
             beq     G_M49441_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M49441_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
             ; gcrRegs -[x1]
             add     x0, x0, #12
@@ -139,7 +135,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 18.50, instruction count 33, allocated bytes for code 132 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-5.00%) : 4922.dasm - System.Collections.Generic.SortedSet1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet1+Node[System.Canon],System.Collections.Generic.SortedSet`1+Node[System.Canon]):ubyte:this (FullOpts)

@@ -36,12 +36,8 @@ G_M938_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byr
             ldrb    w0, [x0, #0x20]
             ; gcrRegs -[x0]
             cmp     w0, #1
-            bne     G_M938_IG04
-            mov     w0, #2
-            cmp     w1, #0
-            cinc    w0, w0, ne
-            b       G_M938_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+            beq     G_M938_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M938_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             cmp     w1, #0
             cset    x0, eq
@@ -50,12 +46,17 @@ G_M938_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M938_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M938_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #2
+            cmp     w1, #0
+            cinc    w0, w0, ne
+                       ;; size=12 bbWeight=0.50 PerfScore 0.75
+G_M938_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -66,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 6566.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 21208.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.65%) : 15270.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)

@@ -16,7 +16,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M26551_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M26551_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -47,7 +47,7 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #15
             cmp     w0, #1
-            bls     G_M26551_IG05
+            bls     G_M26551_IG07
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -55,20 +55,9 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             blr     x1
             ; gcrRegs -[x0]
             cbnz    w0, G_M26551_IG03
-                       ;; size=32 bbWeight=4 PerfScore 42.00
+            b       G_M26551_IG09
+                       ;; size=36 bbWeight=4 PerfScore 46.00
 G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            ldr     x1, [x21, #0x28]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
-            br      x1
-                       ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -79,20 +68,36 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             ; gcrRegs +[x0]
             ldr     x1, [x21, #0x28]
                        ;; size=24 bbWeight=0.50 PerfScore 5.50
+G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x30
+            br      x1
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            ldr     x1, [x21, #0x28]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x1
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-RWD00      dd  G_M26551_IG05 - G_M26551_IG02
+G_M26551_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M26551_IG07
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+RWD00      dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG05 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
            dd  G_M26551_IG07 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
 
 
-; Total bytes of code 172, prolog size 16, PerfScore 163.25, instruction count 43, allocated bytes for code 172 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
+; Total bytes of code 180, prolog size 16, PerfScore 167.75, instruction count 45, allocated bytes for code 180 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_pgo.linux.arm64.checked.mch

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

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

-24 (-7.41%) : 28562.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,12 +10,12 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T06] (  5,  4   )     ref  ->  x20         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T03] (  9, 18.93)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T03] (  8, 16.20)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T07] (  3,  2.04)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V03 loc1         [V03,T09] (  4,  0.75)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V04 loc2         [V04,T08] (  5,  1.39)     int  ->  x22        
-;  V05 loc3         [V05,T02] (  6, 22.07)     ref  ->  x23         class-hnd <System.__Canon>
-;  V06 loc4         [V06,T01] (  9, 28.53)     int  ->  x24        
+;  V05 loc3         [V05,T02] (  6, 19.34)     ref  ->  x23         class-hnd <System.__Canon>
+;  V06 loc4         [V06,T01] (  6, 25.80)     int  ->  x24        
 ;  V07 loc5         [V07,T00] (  5, 31.25)     ref  ->   x0         class-hnd <System.__Canon>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T05] (  2, 12.60)     int  ->   x0         "guarded devirt return temp"
@@ -40,7 +40,7 @@ G_M50755_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M50755_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x21, [x20, #0x08]
             ; gcrRegs +[x21]
-            cbnz    x21, G_M50755_IG07
+            cbnz    x21, G_M50755_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M50755_IG03:        ; bbWeight=0.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
@@ -59,39 +59,28 @@ G_M50755_IG04:        ; bbWeight=0.96, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.96 PerfScore 4.79
-G_M50755_IG05:        ; bbWeight=6.05, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x19-x21 x23]
-            ldr     x1, [x23, #0x50]
-            ldr     x0, [x0, #0x50]
-            ; gcrRegs -[x0]
-            cmp     x1, x0
-            bne     G_M50755_IG14
-                       ;; size=16 bbWeight=6.05 PerfScore 45.37
-G_M50755_IG06:        ; bbWeight=48.39, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
-            b       G_M50755_IG15
-                       ;; size=4 bbWeight=48.39 PerfScore 48.39
-G_M50755_IG07:        ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23]
+G_M50755_IG05:        ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19-x21]
             mov     w22, wzr
             ldr     w0, [x21, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG17
+            ble     G_M50755_IG14
                        ;; size=16 bbWeight=0.04 PerfScore 0.21
-G_M50755_IG08:        ; bbWeight=0.32, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06:        ; bbWeight=0.32, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     x0, x21, #16
             ; byrRegs +[x0]
             ldr     x23, [x0, w22, UXTW #3]
             ; gcrRegs +[x23]
-            cbz     x23, G_M50755_IG17
+            cbz     x23, G_M50755_IG14
                        ;; size=12 bbWeight=0.32 PerfScore 1.45
-G_M50755_IG09:        ; bbWeight=0.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07:        ; bbWeight=0.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             mov     w24, wzr
             ldr     w0, [x19, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG16
+            ble     G_M50755_IG13
                        ;; size=16 bbWeight=0.30 PerfScore 1.50
-G_M50755_IG10:        ; bbWeight=6.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08:        ; bbWeight=6.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     x0, x19, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w24, UXTW #3]
@@ -102,9 +91,9 @@ G_M50755_IG10:        ; bbWeight=6.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            bne     G_M50755_IG13
+            bne     G_M50755_IG10
                        ;; size=32 bbWeight=6.30 PerfScore 59.86
-G_M50755_IG11:        ; bbWeight=6.05, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09:        ; bbWeight=6.05, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             mov     x1, x23
             ; gcrRegs +[x1]
             ldr     x1, [x1]
@@ -113,13 +102,15 @@ G_M50755_IG11:        ; bbWeight=6.05, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            beq     G_M50755_IG05
-                       ;; size=28 bbWeight=6.05 PerfScore 39.32
-G_M50755_IG12:        ; bbWeight=1.51, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+            bne     G_M50755_IG11
+            ldr     x1, [x23, #0x50]
+            ldr     x0, [x0, #0x50]
             ; gcrRegs -[x0]
-            b       G_M50755_IG19
-                       ;; size=4 bbWeight=1.51 PerfScore 1.51
-G_M50755_IG13:        ; bbWeight=6.30, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+            cmp     x1, x0
+            bne     G_M50755_IG11
+            b       G_M50755_IG12
+                       ;; size=48 bbWeight=6.05 PerfScore 90.73
+G_M50755_IG10:        ; bbWeight=6.30, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             mov     x1, x23
             ; gcrRegs +[x1]
@@ -129,16 +120,16 @@ G_M50755_IG13:        ; bbWeight=6.30, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by
             blr     x2
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbnz    w0, G_M50755_IG15
+            cbnz    w0, G_M50755_IG12
                        ;; size=24 bbWeight=6.30 PerfScore 72.46
-G_M50755_IG14:        ; bbWeight=6.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11:        ; bbWeight=6.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     w24, w24, #1
             ldr     w1, [x19, #0x08]
             cmp     w1, w24
-            ble     G_M50755_IG16
-            b       G_M50755_IG10
+            bgt     G_M50755_IG08
+            b       G_M50755_IG13
                        ;; size=20 bbWeight=6.30 PerfScore 37.80
-G_M50755_IG15:        ; bbWeight=3.02, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+G_M50755_IG12:        ; bbWeight=0.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
             sxtw    x1, w24
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -147,14 +138,14 @@ G_M50755_IG15:        ; bbWeight=3.02, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2 x23]
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=3.02 PerfScore 7.56
-G_M50755_IG16:        ; bbWeight=0.34, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+                       ;; size=16 bbWeight=0.30 PerfScore 0.75
+G_M50755_IG13:        ; bbWeight=0.34, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     w22, w22, #1
             ldr     w14, [x21, #0x08]
             cmp     w14, w22
-            bgt     G_M50755_IG08
+            bgt     G_M50755_IG06
                        ;; size=16 bbWeight=0.34 PerfScore 1.71
-G_M50755_IG17:        ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG14:        ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
             add     x14, x20, #8
             ; byrRegs +[x14]
@@ -164,23 +155,15 @@ G_M50755_IG17:        ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x15 x19-x20]
             ; byrRegs -[x14]
                        ;; size=12 bbWeight=0.04 PerfScore 0.08
-G_M50755_IG18:        ; bbWeight=0.04, epilog, nogc, extend
+G_M50755_IG15:        ; bbWeight=0.04, epilog, nogc, extend
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.04 PerfScore 0.21
-G_M50755_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19-x21 x23]
-            add     w24, w24, #1
-            ldr     w0, [x19, #0x08]
-            cmp     w0, w24
-            bgt     G_M50755_IG10
-            b       G_M50755_IG16
-                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 28, PerfScore 333.64, instruction count 81, allocated bytes for code 324 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
+; Total bytes of code 300, prolog size 28, PerfScore 282.97, instruction count 75, allocated bytes for code 300 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -191,7 +174,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 324 (0x000144)
+  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-24 (-7.41%) : 112419.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,12 +10,12 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T06] (  5,  4   )     ref  ->  x20         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T03] (  9, 31.47)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T03] (  8, 26.60)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T08] (  3,  2.08)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V03 loc1         [V03,T09] (  4,  1.34)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V04 loc2         [V04,T07] (  5,  2.49)     int  ->  x22        
-;  V05 loc3         [V05,T02] (  6, 39.44)     ref  ->  x23         class-hnd <System.__Canon>
-;  V06 loc4         [V06,T01] (  9, 50.99)     int  ->  x24        
+;  V05 loc3         [V05,T02] (  6, 34.57)     ref  ->  x23         class-hnd <System.__Canon>
+;  V06 loc4         [V06,T01] (  6, 46.12)     int  ->  x24        
 ;  V07 loc5         [V07,T00] (  5, 55.86)     ref  ->   x0         class-hnd <System.__Canon>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T05] (  2, 22.52)     int  ->   x0         "guarded devirt return temp"
@@ -40,7 +40,7 @@ G_M50755_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M50755_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x21, [x20, #0x08]
             ; gcrRegs +[x21]
-            cbnz    x21, G_M50755_IG07
+            cbnz    x21, G_M50755_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M50755_IG03:        ; bbWeight=0.93, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
@@ -59,39 +59,28 @@ G_M50755_IG04:        ; bbWeight=0.93, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.93 PerfScore 4.62
-G_M50755_IG05:        ; bbWeight=10.81, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x19-x21 x23]
-            ldr     x1, [x23, #0x50]
-            ldr     x0, [x0, #0x50]
-            ; gcrRegs -[x0]
-            cmp     x1, x0
-            bne     G_M50755_IG14
-                       ;; size=16 bbWeight=10.81 PerfScore 81.09
-G_M50755_IG06:        ; bbWeight=86.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
-            b       G_M50755_IG15
-                       ;; size=4 bbWeight=86.50 PerfScore 86.50
-G_M50755_IG07:        ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23]
+G_M50755_IG05:        ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19-x21]
             mov     w22, wzr
             ldr     w0, [x21, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG17
+            ble     G_M50755_IG14
                        ;; size=16 bbWeight=0.07 PerfScore 0.37
-G_M50755_IG08:        ; bbWeight=0.57, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06:        ; bbWeight=0.57, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     x0, x21, #16
             ; byrRegs +[x0]
             ldr     x23, [x0, w22, UXTW #3]
             ; gcrRegs +[x23]
-            cbz     x23, G_M50755_IG17
+            cbz     x23, G_M50755_IG14
                        ;; size=12 bbWeight=0.57 PerfScore 2.59
-G_M50755_IG09:        ; bbWeight=0.54, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07:        ; bbWeight=0.54, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             mov     w24, wzr
             ldr     w0, [x19, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG16
+            ble     G_M50755_IG13
                        ;; size=16 bbWeight=0.54 PerfScore 2.69
-G_M50755_IG10:        ; bbWeight=11.26, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08:        ; bbWeight=11.26, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     x0, x19, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w24, UXTW #3]
@@ -102,9 +91,9 @@ G_M50755_IG10:        ; bbWeight=11.26, gcrefRegs=B80000 {x19 x20 x21 x23}, byre
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            bne     G_M50755_IG13
+            bne     G_M50755_IG10
                        ;; size=32 bbWeight=11.26 PerfScore 106.99
-G_M50755_IG11:        ; bbWeight=10.81, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09:        ; bbWeight=10.81, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             mov     x1, x23
             ; gcrRegs +[x1]
             ldr     x1, [x1]
@@ -113,13 +102,15 @@ G_M50755_IG11:        ; bbWeight=10.81, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, b
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            beq     G_M50755_IG05
-                       ;; size=28 bbWeight=10.81 PerfScore 70.28
-G_M50755_IG12:        ; bbWeight=2.70, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+            bne     G_M50755_IG11
+            ldr     x1, [x23, #0x50]
+            ldr     x0, [x0, #0x50]
             ; gcrRegs -[x0]
-            b       G_M50755_IG19
-                       ;; size=4 bbWeight=2.70 PerfScore 2.70
-G_M50755_IG13:        ; bbWeight=11.26, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+            cmp     x1, x0
+            bne     G_M50755_IG11
+            b       G_M50755_IG12
+                       ;; size=48 bbWeight=10.81 PerfScore 162.18
+G_M50755_IG10:        ; bbWeight=11.26, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             mov     x1, x23
             ; gcrRegs +[x1]
@@ -129,16 +120,16 @@ G_M50755_IG13:        ; bbWeight=11.26, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, b
             blr     x2
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbnz    w0, G_M50755_IG15
+            cbnz    w0, G_M50755_IG12
                        ;; size=24 bbWeight=11.26 PerfScore 129.52
-G_M50755_IG14:        ; bbWeight=11.26, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11:        ; bbWeight=11.26, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     w24, w24, #1
             ldr     w1, [x19, #0x08]
             cmp     w1, w24
-            ble     G_M50755_IG16
-            b       G_M50755_IG10
+            bgt     G_M50755_IG08
+            b       G_M50755_IG13
                        ;; size=20 bbWeight=11.26 PerfScore 67.58
-G_M50755_IG15:        ; bbWeight=5.41, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+G_M50755_IG12:        ; bbWeight=0.54, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
             sxtw    x1, w24
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -147,14 +138,14 @@ G_M50755_IG15:        ; bbWeight=5.41, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2 x23]
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=5.41 PerfScore 13.52
-G_M50755_IG16:        ; bbWeight=0.61, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+                       ;; size=16 bbWeight=0.54 PerfScore 1.34
+G_M50755_IG13:        ; bbWeight=0.61, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     w22, w22, #1
             ldr     w14, [x21, #0x08]
             cmp     w14, w22
-            bgt     G_M50755_IG08
+            bgt     G_M50755_IG06
                        ;; size=16 bbWeight=0.61 PerfScore 3.06
-G_M50755_IG17:        ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG14:        ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
             add     x14, x20, #8
             ; byrRegs +[x14]
@@ -164,23 +155,15 @@ G_M50755_IG17:        ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x15 x19-x20]
             ; byrRegs -[x14]
                        ;; size=12 bbWeight=0.07 PerfScore 0.15
-G_M50755_IG18:        ; bbWeight=0.07, epilog, nogc, extend
+G_M50755_IG15:        ; bbWeight=0.07, epilog, nogc, extend
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.07 PerfScore 0.38
-G_M50755_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19-x21 x23]
-            add     w24, w24, #1
-            ldr     w0, [x19, #0x08]
-            cmp     w0, w24
-            bgt     G_M50755_IG10
-            b       G_M50755_IG16
-                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 28, PerfScore 583.38, instruction count 81, allocated bytes for code 324 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
+; Total bytes of code 300, prolog size 28, PerfScore 492.82, instruction count 75, allocated bytes for code 300 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -191,7 +174,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 324 (0x000144)
+  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 44919.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.40)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.40)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.20)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.20)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.20 PerfScore 4.40
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.20 PerfScore 4.60
+G_M7781_IG04:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.20 PerfScore 1.10
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 20.00, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 20.20, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 49847.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.40)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.40)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.20)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.20)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.20 PerfScore 4.40
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.20 PerfScore 4.60
+G_M7781_IG04:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.20 PerfScore 1.10
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 20.00, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 20.20, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 58399.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.40)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.40)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.20)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.20)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.20 PerfScore 4.40
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.20 PerfScore 4.60
+G_M7781_IG04:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.20 PerfScore 1.10
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 20.00, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 20.20, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.linux.arm64.checked.mch

-8 (-6.06%) : 19209.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)

@@ -78,10 +78,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M49441_IG04
-            cbz     x1, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -92,31 +90,29 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M49441_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M49441_IG07
+            cbnz    w3, G_M49441_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x1]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
             add     x4, x1, #12
             ; byrRegs +[x4]
             mov     x5, x4
             ; byrRegs +[x5]
             sxtw    w6, w3
-            b       G_M49441_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1]
-            ; byrRegs -[x4-x5]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0030 {x4 x5}, gcvars, byref, isz
-            ; gcrRegs +[x1]
-            ; byrRegs +[x4-x5]
             cmp     w6, #0
             ble     G_M49441_IG09
             ldrh    w5, [x5]
             ; byrRegs -[x5]
             cmp     w5, #47
             beq     G_M49441_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M49441_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
             ; gcrRegs -[x1]
             add     x0, x0, #12
@@ -139,7 +135,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 18.50, instruction count 33, allocated bytes for code 132 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-3.45%) : 29794.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)

@@ -9,90 +9,84 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 12,  8.50)   byref  ->   x0         this single-def
-;  V01 loc0         [V01,T01] (  8,  5   )   ubyte  ->  x19        
+;  V01 loc0         [V01,T01] (  8,  5   )   ubyte  ->   x1        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T11] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V04 tmp2         [V04,T07] (  3,  1.50)     int  ->   x1        
 ;  V05 tmp3         [V05,T08] (  3,  1.50)     int  ->   x1        
 ;* V06 tmp4         [V06,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp5         [V07,T06] (  2,  2   )   byref  ->   x1         single-def "Inlining Arg"
+;  V07 tmp5         [V07,T06] (  2,  2   )   byref  ->   x3         single-def "Inlining Arg"
 ;* V08 tmp6         [V08,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp7         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V10 tmp8         [V10,T12] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V11 cse0         [V11,T05] (  5,  2.50)     int  ->   x1         "CSE - aggressive"
-;  V12 cse1         [V12,T02] (  8,  4   )     ref  ->  x21         multi-def "CSE - aggressive"
-;  V13 cse2         [V13,T04] (  5,  3.50)     ref  ->   x1         multi-def "CSE - aggressive"
-;  V14 cse3         [V14,T03] (  6,  4   )     ref  ->  x20         "CSE - aggressive"
+;  V11 cse0         [V11,T05] (  5,  2.50)     int  ->   x3         "CSE - aggressive"
+;  V12 cse1         [V12,T02] (  8,  4   )     ref  ->   x4         multi-def "CSE - aggressive"
+;  V13 cse2         [V13,T04] (  5,  3.50)     ref  ->   x3         multi-def "CSE - aggressive"
+;  V14 cse3         [V14,T03] (  6,  4   )     ref  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M35532_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M35532_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             ; byrRegs +[x0]
-            mov     w19, #1
-            ldr     x20, [x0]
-            ; gcrRegs +[x20]
-            cbz     x20, G_M35532_IG04
+            mov     w1, #1
+            ldr     x2, [x0]
+            ; gcrRegs +[x2]
+            cbz     x2, G_M35532_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M35532_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ldr     x1, [x0, #0x10]
-            ; gcrRegs +[x1]
-            cbnz    x1, G_M35532_IG04
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cmp     x21, #0
-            csel    w19, w19, wzr, ne
+G_M35532_IG03:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ldr     x3, [x0, #0x10]
+            ; gcrRegs +[x3]
+            cbnz    x3, G_M35532_IG04
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cmp     x4, #0
+            csel    w1, w1, wzr, ne
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M35532_IG04:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs -[x1 x21]
-            ldr     x1, [x0, #0x10]
-            ; gcrRegs +[x1]
-            cbz     x1, G_M35532_IG06
+G_M35532_IG04:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs -[x3-x4]
+            ldr     x3, [x0, #0x10]
+            ; gcrRegs +[x3]
+            cbz     x3, G_M35532_IG06
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M35532_IG05:        ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0001 {x0}, byref, isz
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cbz     x21, G_M35532_IG06
-            ldr     w1, [x1, #0x08]
-            ; gcrRegs -[x1]
-            ldr     w2, [x21, #0x08]
-            cmp     w1, w2
+G_M35532_IG05:        ; bbWeight=0.50, gcrefRegs=000C {x2 x3}, byrefRegs=0001 {x0}, byref, isz
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cbz     x4, G_M35532_IG06
+            ldr     w3, [x3, #0x08]
+            ; gcrRegs -[x3]
+            ldr     w4, [x4, #0x08]
+            ; gcrRegs -[x4]
+            cmp     w3, w4
             bne     G_M35532_IG06
-            mov     w19, wzr
+            mov     w1, wzr
             b       G_M35532_IG07
                        ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M35532_IG06:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs -[x21]
-            cbnz    w19, G_M35532_IG14
+G_M35532_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            cbnz    w1, G_M35532_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35532_IG07:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            add     x1, x0, #24
-            ; byrRegs +[x1]
-            ldr     w1, [x1, #0x40]
-            ; byrRegs -[x1]
-            cmp     w1, #1
+G_M35532_IG07:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            add     x3, x0, #24
+            ; byrRegs +[x3]
+            ldr     w3, [x3, #0x40]
+            ; byrRegs -[x3]
+            cmp     w3, #1
             beq     G_M35532_IG08
-            cmp     w1, #3
+            cmp     w3, #3
             beq     G_M35532_IG08
-            cmp     w1, #2
+            cmp     w3, #2
             beq     G_M35532_IG08
-            cmp     w1, #4
-            beq     G_M35532_IG08
-            ldr     w1, [x0, #0x58]
-            cmp     w1, #5
-            bne     G_M35532_IG14
-            b       G_M35532_IG11
-                       ;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            cbz     x20, G_M35532_IG09
-            ldr     w1, [x20, #0x08]
+            cmp     w3, #4
+            bne     G_M35532_IG11
+                       ;; size=40 bbWeight=0.50 PerfScore 4.75
+G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            cbz     x2, G_M35532_IG09
+            ldr     w1, [x2, #0x08]
             ldr     x2, [x0, #0x28]
-            ; gcrRegs +[x2]
             ldr     w2, [x2, #0x08]
             ; gcrRegs -[x2]
             cmp     w1, w2
@@ -100,34 +94,37 @@ G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
             b       G_M35532_IG10
                        ;; size=28 bbWeight=0.50 PerfScore 6.00
 G_M35532_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x20]
             mov     w1, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            uxtb    w19, w1
+            uxtb    w1, w1
             b       G_M35532_IG14
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M35532_IG11:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs +[x20]
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cbz     x21, G_M35532_IG14
-            cbz     x20, G_M35532_IG12
-            ldr     w1, [x20, #0x08]
-            ldr     w2, [x21, #0x08]
+G_M35532_IG11:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs +[x2]
+            ldr     w3, [x0, #0x58]
+            cmp     w3, #5
+            bne     G_M35532_IG14
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cbz     x4, G_M35532_IG14
+            cbz     x2, G_M35532_IG12
+            ldr     w1, [x2, #0x08]
+            ldr     w2, [x4, #0x08]
+            ; gcrRegs -[x2]
             cmp     w1, w2
             cset    x1, ne
             b       G_M35532_IG13
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
+                       ;; size=44 bbWeight=0.50 PerfScore 8.75
 G_M35532_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x20-x21]
+            ; gcrRegs -[x4]
             mov     w1, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            uxtb    w19, w1
+            uxtb    w1, w1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
-            cbnz    w19, G_M35532_IG16
+            cbnz    w1, G_M35532_IG16
             add     x0, x0, #24
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -135,12 +132,11 @@ G_M35532_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             ldr     x1, [x1]
                        ;; size=24 bbWeight=1 PerfScore 6.00
 G_M35532_IG15:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x1
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=1 PerfScore 5.00
+                       ;; size=12 bbWeight=1 PerfScore 4.00
 G_M35532_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
             movz    x0, #0xD1FFAB1E
@@ -177,7 +173,7 @@ G_M35532_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=80 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 348, prolog size 16, PerfScore 55.50, instruction count 87, allocated bytes for code 348 (MethodHash=77317533) for method System.Security.Cryptography.ECParameters:Validate():this (Tier1)
+; Total bytes of code 336, prolog size 12, PerfScore 53.00, instruction count 84, allocated bytes for code 336 (MethodHash=77317533) for method System.Security.Cryptography.ECParameters:Validate():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -188,7 +184,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
+  Function Length   : 84 (0x00054) Actual length = 336 (0x000150)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -196,9 +192,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-16 (-3.36%) : 29664.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)

@@ -154,10 +154,8 @@ G_M53601_IG02:        ; bbWeight=1, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=00
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M53601_IG03:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ldr     w20, [x0, #0x08]
-            cbz     w20, G_M53601_IG04
-            cbz     x1, G_M53601_IG06
-            b       G_M53601_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w20, G_M53601_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M53601_IG04:        ; bbWeight=0.50, gcrefRegs=80006 {x1 x2 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -174,11 +172,10 @@ G_M53601_IG04:        ; bbWeight=0.50, gcrefRegs=80006 {x1 x2 x19}, byrefRegs=00
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M53601_IG05:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x1, G_M53601_IG06
             ldr     w21, [x1, #0x08]
-            cbz     w21, G_M53601_IG06
-            cbz     x2, G_M53601_IG08
-            b       G_M53601_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w21, G_M53601_IG07
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG06:        ; bbWeight=0.50, gcrefRegs=80005 {x0 x2 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x2
@@ -194,11 +191,10 @@ G_M53601_IG06:        ; bbWeight=0.50, gcrefRegs=80005 {x0 x2 x19}, byrefRegs=00
                        ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M53601_IG07:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x2, G_M53601_IG08
             ldr     w22, [x2, #0x08]
-            cbz     w22, G_M53601_IG08
-            cbz     x19, G_M53601_IG10
-            b       G_M53601_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w22, G_M53601_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG08:        ; bbWeight=0.50, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             mov     x2, x19
@@ -213,16 +209,12 @@ G_M53601_IG08:        ; bbWeight=0.50, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=00
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M53601_IG09:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x19, G_M53601_IG10
             ldr     w23, [x19, #0x08]
-            cbz     w23, G_M53601_IG10
-            add     x3, x19, #12
-            ; byrRegs +[x3]
-            sxtw    w4, w23
-            b       G_M53601_IG11
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+            cbnz    w23, G_M53601_IG11
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG10:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
-            ; byrRegs -[x3]
             movz    x3, #0xD1FFAB1E      // code for System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -231,9 +223,11 @@ G_M53601_IG10:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000
             ; gcrRegs -[x1-x2]
             b       G_M53601_IG15
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz
+G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            add     x3, x19, #12
             ; byrRegs +[x3]
+            sxtw    w4, w23
             cmp     w4, #0
             ble     G_M53601_IG12
             ldrh    w3, [x3]
@@ -242,7 +236,7 @@ G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs
             bne     G_M53601_IG12
             mov     x0, x19
             b       G_M53601_IG15
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+                       ;; size=36 bbWeight=0.50 PerfScore 4.25
 G_M53601_IG12:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             add     x24, x2, #12
             ; byrRegs +[x24]
@@ -331,7 +325,7 @@ G_M53601_IG15:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 476, prolog size 24, PerfScore 65.75, instruction count 119, allocated bytes for code 476 (MethodHash=75ef2e9e) for method System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
+; Total bytes of code 460, prolog size 24, PerfScore 63.75, instruction count 115, allocated bytes for code 460 (MethodHash=75ef2e9e) for method System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -342,7 +336,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 119 (0x00077) Actual length = 476 (0x0001dc)
+  Function Length   : 115 (0x00073) Actual length = 460 (0x0001cc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 10428.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 47454.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (Tier1)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (Tier1)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+8.60%) : 49397.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -13,59 +13,69 @@
 ;  V02 arg2         [V02,T07] ( 10, 91   )     ref  ->   x2         class-hnd single-def <int[,,]>
 ;* V03 loc0         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04,T10] (  7, 48   )     int  ->   x5        
-;  V05 loc2         [V05,T09] (  7, 60   )     int  ->  registers  
+;  V05 loc2         [V05,T09] (  7, 60   )     int  ->   x4        
 ;  V06 loc3         [V06,T08] (  7, 90   )     int  ->   x3        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->  x13         "MD array shared temp"
-;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->  x14         "MD array shared temp"
-;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x15         "MD array shared temp"
-;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->   x7         hoist "CSE - aggressive"
-;  V15 cse1         [V15,T20] (  3, 11   )     int  ->   x4         hoist "CSE - aggressive"
-;  V16 cse2         [V16,T19] (  3, 18   )     int  ->   x3         "CSE - aggressive"
-;  V17 cse3         [V17,T17] (  2, 20   )     int  ->  x10         hoist "CSE - aggressive"
-;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x7         hoist "CSE - aggressive"
-;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->   x6         hoist "CSE - aggressive"
-;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x10         hoist "CSE - aggressive"
-;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->   x9         hoist "CSE - moderate"
-;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->   x8         hoist "CSE - aggressive"
-;  V23 cse9         [V23,T18] (  2, 20   )     int  ->  x11         hoist "CSE - aggressive"
-;  V24 cse10        [V24,T11] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V25 cse11        [V25,T12] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x15         "CSE - aggressive"
-;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x12         "CSE - aggressive"
+;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->   x8         "MD array shared temp"
+;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->   x9         "MD array shared temp"
+;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x11         "MD array shared temp"
+;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->  x21         hoist "CSE - aggressive"
+;  V15 cse1         [V15,T20] (  3, 11   )     int  ->  x25         hoist "CSE - aggressive"
+;  V16 cse2         [V16,T19] (  3, 18   )     int  ->  x23         "CSE - aggressive"
+;  V17 cse3         [V17,T17] (  2, 20   )     int  ->   x6         hoist "CSE - aggressive"
+;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x6         hoist "CSE - aggressive"
+;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->  x19         hoist "CSE - aggressive"
+;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x24         hoist "CSE - aggressive"
+;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->  x22         hoist "CSE - moderate"
+;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->  x20         hoist "CSE - aggressive"
+;  V23 cse9         [V23,T18] (  2, 20   )     int  ->   x7         hoist "CSE - aggressive"
+;  V24 cse10        [V24,T11] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V25 cse11        [V25,T12] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x11         "CSE - aggressive"
+;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x10         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M4144_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x10]!
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            stp     x23, x24, [sp, #0x38]
+            str     x25, [sp, #0x48]
             mov     fp, sp
-            ldr     w0, [fp, #0x5C]
-            ldp     x2, x1, [fp, #0x48]
+            ldr     w0, [fp, #0x9C]
+            ldp     x2, x1, [fp, #0x88]
             ; gcrRegs +[x1-x2]
-            ldp     w4, w5, [fp, #0x3C]
-            ldr     w3, [fp, #0x38]
-                       ;; size=24 bbWeight=0.01 PerfScore 0.11
+            ldp     w4, w5, [fp, #0x7C]
+            ldr     w3, [fp, #0x78]
+                       ;; size=40 bbWeight=0.01 PerfScore 0.14
 G_M4144_IG02:        ; bbWeight=0.01, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w6, [x1, #0x24]
-            ldp     w8, w7, [x1, #0x14]
-            add     w7, w6, w7
-            sub     w7, w7, #1
-            ldr     w9, [x1, #0x10]
-            b       G_M4144_IG12
+            ldr     w19, [x1, #0x24]
+            ldp     w20, w6, [x1, #0x14]
+            add     w6, w19, w6
+            sub     w21, w6, #1
+            ldr     w22, [x1, #0x10]
+            b       G_M4144_IG11
                        ;; size=24 bbWeight=0.01 PerfScore 0.11
-G_M4144_IG03:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w5, w10
-            cmp     w4, w5
-            bge     G_M4144_IG07
+G_M4144_IG03:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w24, [x1, #0x1C]
+            add     w3, w24, w22
+            sub     w25, w3, #1
+            b       G_M4144_IG09
+                       ;; size=16 bbWeight=1 PerfScore 5.00
+G_M4144_IG04:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w5, w24
+            cmp     w25, w5
+            bge     G_M4144_IG08
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M4144_IG04:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG05:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #1
-            cbnz    w0, G_M4144_IG03
+            cbnz    w0, G_M4144_IG04
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG06:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             mov     x0, x1
             ; gcrRegs +[x0]
             mov     x1, x2
@@ -78,115 +88,109 @@ G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 6.50
-G_M4144_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+G_M4144_IG07:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x25, [sp, #0x48]
+            ldp     x23, x24, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x50
             add     sp, sp, #80
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M4144_IG07:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=28 bbWeight=1 PerfScore 7.50
+G_M4144_IG08:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
-            ldr     w11, [x1, #0x20]
-            cmp     w3, w11
+            ldr     w4, [x1, #0x20]
+            cmp     w23, w4
             bge     G_M4144_IG10
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M4144_IG08:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG09:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             add     w5, w5, #1
-            cmp     w4, w5
-            bge     G_M4144_IG07
-                       ;; size=12 bbWeight=8 PerfScore 16.00
-G_M4144_IG09:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            b       G_M4144_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M4144_IG10:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            mov     w4, w11
-                       ;; size=4 bbWeight=1 PerfScore 0.50
-G_M4144_IG11:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            sxtw    w3, w6
+            cmp     w25, w5
+            bge     G_M4144_IG08
+            b       G_M4144_IG05
+                       ;; size=16 bbWeight=8 PerfScore 24.00
+G_M4144_IG10:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            sxtw    w3, w19
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M4144_IG12:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            cmp     w7, w3
-            blt     G_M4144_IG15
+G_M4144_IG11:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            cmp     w21, w3
+            blt     G_M4144_IG14
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG13:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w10, [x2, #0x1C]
-            sub     w10, w5, w10
-            ldr     w11, [x2, #0x10]
+G_M4144_IG12:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w6, [x2, #0x1C]
+            sub     w6, w5, w6
+            ldr     w7, [x2, #0x10]
                        ;; size=12 bbWeight=4 PerfScore 26.00
-G_M4144_IG14:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w13, w10
-            cmp     w13, w11
-            bhs     G_M4144_IG17
-            ldr     w14, [x2, #0x14]
-            ldr     w12, [x2, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ldr     w14, [x2, #0x18]
-            ldr     w12, [x2, #0x24]
-            sub     w12, w3, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ubfiz   x13, x13, #2, #32
-            add     x13, x13, #40
-            ldr     w14, [x1, #0x1C]
-            sub     w14, w5, w14
-            ldp     w12, w15, [x1, #0x10]
-            cmp     w14, w12
-            bhs     G_M4144_IG17
-            ldr     w12, [x1, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w15
-            bhs     G_M4144_IG17
-            madd    w14, w14, w15, w12
-            ldr     w12, [x1, #0x18]
-            ldr     w15, [x1, #0x24]
-            sub     w15, w3, w15
-            cmp     w15, w12
-            bhs     G_M4144_IG17
-            madd    w14, w14, w12, w15
-            ubfiz   x14, x14, #2, #32
-            add     x14, x14, #40
-            ldr     w14, [x1, x14]
-            str     w14, [x2, x13]
+G_M4144_IG13:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w8, w6
+            cmp     w8, w7
+            bhs     G_M4144_IG15
+            ldr     w9, [x2, #0x14]
+            ldr     w10, [x2, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ldr     w9, [x2, #0x18]
+            ldr     w10, [x2, #0x24]
+            sub     w10, w3, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ubfiz   x8, x8, #2, #32
+            add     x8, x8, #40
+            ldr     w9, [x1, #0x1C]
+            sub     w9, w5, w9
+            ldp     w10, w11, [x1, #0x10]
+            cmp     w9, w10
+            bhs     G_M4144_IG15
+            ldr     w10, [x1, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w11
+            bhs     G_M4144_IG15
+            madd    w9, w9, w11, w10
+            ldr     w10, [x1, #0x18]
+            ldr     w11, [x1, #0x24]
+            sub     w11, w3, w11
+            cmp     w11, w10
+            bhs     G_M4144_IG15
+            madd    w9, w9, w10, w11
+            ubfiz   x9, x9, #2, #32
+            add     x9, x9, #40
+            ldr     w9, [x1, x9]
+            str     w9, [x2, x8]
             add     w3, w3, #1
...

coreclr_tests.run.linux.arm64.checked.mch

-28 (-14.00%) : 440817.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
@@ -21,72 +21,71 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V13 tmp4         [V13,T11] (  2,  2   )     int  ->   x1        
+;* V13 tmp4         [V13,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V16 tmp7         [V16,T30] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T12] (  2,  2   )     int  ->   x1         single-def
+;* V16 tmp7         [V16,T29] (  0,  0   )     int  ->  zero-ref   
+;* V17 tmp8         [V17,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V19 tmp10        [V19,T13] (  2,  2   )     int  ->   x2        
-;  V20 tmp11        [V20,T14] (  2,  2   )     int  ->   x1         single-def
+;* V19 tmp10        [V19,T12] (  0,  0   )     int  ->  zero-ref   
+;* V20 tmp11        [V20,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V22 tmp13        [V22,T15] (  2,  2   )     int  ->   x0        
-;  V23 tmp14        [V23,T16] (  2,  2   )     int  ->   x0         single-def
+;* V22 tmp13        [V22,T14] (  0,  0   )     int  ->  zero-ref   
+;* V23 tmp14        [V23,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V25 tmp16        [V25,T31] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T17] (  2,  2   )     int  ->   x0         single-def
+;* V25 tmp16        [V25,T30] (  0,  0   )     int  ->  zero-ref   
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V32 tmp23        [V32,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V34 tmp25        [V34,T33] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp25        [V34,T32] (  0,  0   )     int  ->  zero-ref   
+;* V35 tmp26        [V35,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V37 tmp28        [V37,T20] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp28        [V37,T18] (  0,  0   )     int  ->  zero-ref   
+;* V38 tmp29        [V38,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V40 tmp31        [V40,T34] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V40 tmp31        [V40,T33] (  0,  0   )     int  ->  zero-ref   
+;* V41 tmp32        [V41,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V43 tmp34        [V43,T23] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp34        [V43,T21] (  0,  0   )     int  ->  zero-ref   
+;* V44 tmp35        [V44,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V46 tmp37        [V46,T36] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T24] (  2,  2   )     int  ->   x0         single-def
+;* V46 tmp37        [V46,T35] (  0,  0   )     int  ->  zero-ref   
+;* V47 tmp38        [V47,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp40        [V49,T37] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T25] (  2,  2   )     int  ->   x0         single-def
+;* V49 tmp40        [V49,T36] (  0,  0   )     int  ->  zero-ref   
+;* V50 tmp41        [V50,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V53 tmp44        [V53,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V58 tmp49        [V58,T39] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref   
+;* V59 tmp50        [V59,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V61 tmp52        [V61,T28] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp52        [V61,T25] (  0,  0   )     int  ->  zero-ref   
+;* V62 tmp53        [V62,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V64 tmp55        [V64,T40] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V64 tmp55        [V64,T39] (  0,  0   )     int  ->  zero-ref   
+;* V65 tmp56        [V65,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V67 tmp58        [V67,T42] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V67 tmp58        [V67,T41] (  0,  0   )     int  ->  zero-ref   
+;  V68 tmp59        [V68,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V70 tmp61        [V70,T44] (  0,  0   )     int  ->  zero-ref   
-;* V71 cse0         [V71,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V72 cse1         [V72,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V73 cse2         [V73,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V70 tmp61        [V70,T28] (  2,  2   )     int  ->   x0        
+;* V71 cse0         [V71,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V72 cse1         [V72,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V73 cse2         [V73,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V75 cse4         [V75,T04] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V76 cse5         [V76,T05] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V77 cse6         [V77,T06] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V78 cse7         [V78,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -137,24 +136,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -165,7 +157,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-28 (-14.00%) : 441233.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,79 +10,78 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T03] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T03] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V09 tmp5         [V09,T11] (  2,  2   )     int  ->   x1        
+;* V09 tmp5         [V09,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V12 tmp8         [V12,T30] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp9         [V13,T12] (  2,  2   )     int  ->   x1         single-def
+;* V12 tmp8         [V12,T29] (  0,  0   )     int  ->  zero-ref   
+;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T13] (  2,  2   )     int  ->   x2        
-;  V16 tmp12        [V16,T14] (  2,  2   )     int  ->   x1         single-def
+;* V15 tmp11        [V15,T12] (  0,  0   )     int  ->  zero-ref   
+;* V16 tmp12        [V16,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V18 tmp14        [V18,T15] (  2,  2   )     int  ->   x0        
-;  V19 tmp15        [V19,T16] (  2,  2   )     int  ->   x0         single-def
+;* V18 tmp14        [V18,T14] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp15        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V21 tmp17        [V21,T31] (  0,  0   )     int  ->  zero-ref   
-;  V22 tmp18        [V22,T17] (  2,  2   )     int  ->   x0         single-def
+;* V21 tmp17        [V21,T30] (  0,  0   )     int  ->  zero-ref   
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V28 tmp24        [V28,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V30 tmp26        [V30,T33] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V30 tmp26        [V30,T32] (  0,  0   )     int  ->  zero-ref   
+;* V31 tmp27        [V31,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V33 tmp29        [V33,T20] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V33 tmp29        [V33,T18] (  0,  0   )     int  ->  zero-ref   
+;* V34 tmp30        [V34,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V36 tmp32        [V36,T34] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V36 tmp32        [V36,T33] (  0,  0   )     int  ->  zero-ref   
+;* V37 tmp33        [V37,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V39 tmp35        [V39,T23] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V39 tmp35        [V39,T21] (  0,  0   )     int  ->  zero-ref   
+;* V40 tmp36        [V40,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V42 tmp38        [V42,T36] (  0,  0   )     int  ->  zero-ref   
-;  V43 tmp39        [V43,T24] (  2,  2   )     int  ->   x0         single-def
+;* V42 tmp38        [V42,T35] (  0,  0   )     int  ->  zero-ref   
+;* V43 tmp39        [V43,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V45 tmp41        [V45,T37] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp42        [V46,T25] (  2,  2   )     int  ->   x0         single-def
+;* V45 tmp41        [V45,T36] (  0,  0   )     int  ->  zero-ref   
+;* V46 tmp42        [V46,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp45        [V49,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V54 tmp50        [V54,T39] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V54 tmp50        [V54,T38] (  0,  0   )     int  ->  zero-ref   
+;* V55 tmp51        [V55,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V57 tmp53        [V57,T28] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V57 tmp53        [V57,T25] (  0,  0   )     int  ->  zero-ref   
+;* V58 tmp54        [V58,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V60 tmp56        [V60,T40] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V60 tmp56        [V60,T39] (  0,  0   )     int  ->  zero-ref   
+;* V61 tmp57        [V61,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V63 tmp59        [V63,T42] (  0,  0   )     int  ->  zero-ref   
-;* V64 tmp60        [V64,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V63 tmp59        [V63,T41] (  0,  0   )     int  ->  zero-ref   
+;  V64 tmp60        [V64,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V66 tmp62        [V66,T44] (  0,  0   )     int  ->  zero-ref   
-;* V67 cse0         [V67,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V68 cse1         [V68,T04] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V69 cse2         [V69,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V71 cse4         [V71,T05] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V66 tmp62        [V66,T28] (  2,  2   )     int  ->   x0        
+;* V67 cse0         [V67,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V68 cse1         [V68,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V69 cse2         [V69,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V71 cse4         [V71,T05] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V72 cse5         [V72,T06] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V73 cse6         [V73,T07] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V74 cse7         [V74,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -133,24 +132,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -161,7 +153,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-32 (-10.81%) : 266980.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)

@@ -11,17 +11,15 @@
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T02] (  4,  3.50)     ref  ->  x21         class-hnd single-def <System.Type>
-;  V03 arg3         [V03,T01] (  7,  4.25)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V03 arg3         [V03,T01] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Object>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V07 tmp2         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V08 tmp3         [V08,T10] (  0,  0   )     int  ->  zero-ref   
-;  V09 tmp4         [V09,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V10 tmp5         [V10,T05] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V11 cse0         [V11,T04] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V12 cse1         [V12,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V13 cse2         [V13,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V07 tmp2         [V07,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V08 tmp3         [V08,T08] (  0,  0   )     int  ->  zero-ref   
+;  V09 tmp4         [V09,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V10 tmp5         [V10,T04] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V11 cse0         [V11,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -38,36 +36,34 @@ G_M32564_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M32564_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            cmp     x21, x1
-            bne     G_M32564_IG07
-                       ;; size=20 bbWeight=1 PerfScore 3.00
-G_M32564_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M32564_IG07
-            ldr     x1, [x20]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x1, x0
-            bne     G_M32564_IG07
-            cmp     x1, x0
-            beq     G_M32564_IG05
-                       ;; size=36 bbWeight=0.50 PerfScore 4.25
-G_M32564_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19 x21]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
+            cmp     x21, x0
+            bne     G_M32564_IG04
+                       ;; size=20 bbWeight=1 PerfScore 3.00
+G_M32564_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            cbz     x20, G_M32564_IG04
+            ldr     x0, [x20]
+            movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M32564_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            cmp     x0, x2
+            beq     G_M32564_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M32564_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M32564_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M32564_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M32564_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19 x21]
             ldrb    w0, [x20, #0x08]
             movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
@@ -80,34 +76,23 @@ G_M32564_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
                        ;; size=40 bbWeight=0.50 PerfScore 6.25
-G_M32564_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M32564_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             br      x3
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M32564_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x2] +[x19 x21]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M32564_IG09
-                       ;; size=12 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M32564_IG11
+            beq     G_M32564_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M32564_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M32564_IG09:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -119,7 +104,7 @@ G_M32564_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M32564_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M32564_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -137,7 +122,7 @@ G_M32564_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x4, [x4, #0x18]
             ; gcrRegs -[x4]
                        ;; size=36 bbWeight=0.50 PerfScore 6.00
-G_M32564_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M32564_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
@@ -145,7 +130,7 @@ G_M32564_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 296, prolog size 28, PerfScore 40.62, instruction count 74, allocated bytes for code 296 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
+; Total bytes of code 264, prolog size 28, PerfScore 38.38, instruction count 66, allocated bytes for code 264 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -156,7 +141,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 74 (0x0004a) Actual length = 296 (0x000128)
+  Function Length   : 66 (0x00042) Actual length = 264 (0x000108)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 439826.dasm - testout1:SubFunclet145():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
 ;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37238_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37238_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 439788.dasm - testout1:SubFunclet107():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 33 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M51184_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M51184_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 439900.dasm - testout1:SubFunclet223():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 29 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T05] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T09] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T10] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T11] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T12] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T16] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T17] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
 ;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T06] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T25] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T08] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T03] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T04] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37173_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37173_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.linux.arm64.checked.mch

-16 (-6.78%) : 22951.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)

@@ -96,10 +96,8 @@ G_M48965_IG02:        ; bbWeight=1, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M48965_IG03:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M48965_IG04
-            cbz     x1, G_M48965_IG06
-            b       G_M48965_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M48965_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -114,11 +112,10 @@ G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M48965_IG05:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x1, G_M48965_IG06
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M48965_IG06
-            cbz     x4, G_M48965_IG08
-            b       G_M48965_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M48965_IG07
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x4
@@ -132,11 +129,10 @@ G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M48965_IG07:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x4, G_M48965_IG08
             ldr     w5, [x4, #0x08]
-            cbz     w5, G_M48965_IG08
-            cbz     x2, G_M48965_IG10
-            b       G_M48965_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w5, G_M48965_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x4]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -148,16 +144,12 @@ G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M48965_IG09:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x2, G_M48965_IG10
             ldr     w7, [x2, #0x08]
-            cbz     w7, G_M48965_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M48965_IG11
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w7, G_M48965_IG11
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             mov     x2, x4
             ; gcrRegs +[x2]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -167,8 +159,10 @@ G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000
             ; gcrRegs -[x1-x2 x4]
             b       G_M48965_IG12
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x0] +[x1-x2 x4]
+G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x1-x2 x4]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x6, x1, #12
             ; byrRegs +[x6]
@@ -190,14 +184,14 @@ G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001
             blr     x8
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4 x6]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+                       ;; size=44 bbWeight=0.50 PerfScore 4.25
 G_M48965_IG12:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 236, prolog size 12, PerfScore 37.25, instruction count 59, allocated bytes for code 236 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 35.25, instruction count 55, allocated bytes for code 220 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -208,7 +202,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-6.67%) : 22949.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -60,10 +60,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -83,21 +81,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             sxtw    w11, w2
             add     x2, x1, #12
@@ -110,13 +106,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 18.75, instruction count 30, allocated bytes for code 120 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 17.75, instruction count 28, allocated bytes for code 112 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +123,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-6.34%) : 146546.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -12,20 +12,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->  [fp+0x14]  single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->  x11        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x4        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x4        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x5         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x6        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x7        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x8        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x6        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x4        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x5         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x5         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -33,199 +33,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x4         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x11         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x3         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w11, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w11, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            add     x3, x0, #12
+            ; byrRegs +[x3]
+            ldrh    w4, [x3, w2, UXTW #2]
+            sxtw    w5, w4
+            cmp     w5, #32
+            ccmp    w5, #9, z, ne
+            ccmp    w5, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w5, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x3]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            ; byrRegs +[x3]
+            sxtw    w5, w4
+            cmp     w5, #34
+            beq     G_M24207_IG08
+            cmp     w5, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            mov     w4, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w11, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w5, w2
+            sxtw    w6, w11
+            mov     w7, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w20, UXTW #2]
-            cmp     w4, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w11, w2
+            ble     G_M24207_IG16
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            ldrh    w8, [x3, w2, UXTW #2]
+            cmp     w8, #92
             bne     G_M24207_IG12
-            mov     w11, #1
-            add     w20, w20, #2
+            mov     w7, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w4, #61
-            beq     G_M24207_IG19
-            cmp     w4, #44
-            beq     G_M24207_IG19
-            cmp     w4, #34
-            beq     G_M24207_IG29
-            cmp     w4, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w4, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, #61
             beq     G_M24207_IG18
+            cmp     w8, #44
+            beq     G_M24207_IG18
+            cmp     w8, #34
+            beq     G_M24207_IG27
+            cmp     w8, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, w4
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w2, w11
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w6, w2
+            add     w2, w6, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG24
+            sub     w6, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sub     w6, w6, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w6, w5
+            blt     G_M24207_IG21
+            cmp     w6, w11
+            bhs     G_M24207_IG33
...

+8 (+5.71%) : 198064.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)

@@ -17,7 +17,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M58850_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M58850_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -30,7 +30,7 @@ G_M58850_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs +[x1]
             mov     x21, x1
             ; gcrRegs +[x21]
-            cbz     x21, G_M58850_IG04
+            cbz     x21, G_M58850_IG06
             adrp    x22, [HIGH RELOC #0xD1FFAB1E]
             add     x22, x22, [LOW RELOC #0xD1FFAB1E]
                        ;; size=16 bbWeight=1 PerfScore 2.50
@@ -44,9 +44,9 @@ G_M58850_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0-x1]
-            cbnz    w0, G_M58850_IG06
+            cbnz    w0, G_M58850_IG04
             tst     w20, #255
-            beq     G_M58850_IG04
+            beq     G_M58850_IG06
             mov     x0, x21
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -57,10 +57,11 @@ G_M58850_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
             mov     x21, x0
             ; gcrRegs +[x21]
             cbnz    x21, G_M58850_IG03
-                       ;; size=60 bbWeight=4 PerfScore 70.00
+            b       G_M58850_IG08
+                       ;; size=64 bbWeight=4 PerfScore 74.00
 G_M58850_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x19 x21]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M58850_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -69,7 +70,7 @@ G_M58850_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 G_M58850_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M58850_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -77,8 +78,11 @@ G_M58850_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M58850_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M58850_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 140, prolog size 16, PerfScore 81.50, instruction count 35, allocated bytes for code 140 (MethodHash=d4151a1d) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 148, prolog size 16, PerfScore 86.00, instruction count 37, allocated bytes for code 148 (MethodHash=d4151a1d) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +93,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+8.33%) : 50456.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)

@@ -17,20 +17,20 @@
 ;
 ; Lcl frame size = 0
 
-G_M12753_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M12753_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M12753_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M12753_IG04
+            cbz     x0, G_M12753_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldrb    w11, [x0, #0x12]
             cmp     w11, #117
-            beq     G_M12753_IG06
+            beq     G_M12753_IG04
             cmp     w11, #188
-            bne     G_M12753_IG04
+            bne     G_M12753_IG06
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -38,17 +38,9 @@ G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
             cbnz    x0, G_M12753_IG03
-                       ;; size=44 bbWeight=4 PerfScore 60.00
-G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, xzr
-            ; gcrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M12753_IG08
+                       ;; size=48 bbWeight=4 PerfScore 64.00
+G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -56,12 +48,25 @@ G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, xzr
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M12753_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M12753_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 96, prolog size 8, PerfScore 68.75, instruction count 24, allocated bytes for code 96 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 73.25, instruction count 26, allocated bytes for code 104 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+9.76%) : 11984.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)

@@ -9,52 +9,55 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )   byref  ->   x0         this single-def
+;  V00 this         [V00,T00] (  5,  2   )   byref  ->   x0         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T03] (  4,  3.50)     int  ->  x11        
+;  V02 loc0         [V02,T03] (  4,  0   )     int  ->  x11        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp2         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp3         [V06,T01] (  5,  5   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp4         [V07,T02] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V06 tmp3         [V06,T01] (  5,  1   )   byref  ->  [fp+0x18]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp4         [V07,T02] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp5         [V08,T05] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
-G_M34588_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+G_M34588_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            stp     fp, lr, [sp, #-0x30]!
+            str     x19, [sp, #0x28]
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M34588_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
-            ; byrRegs +[x0-x1]
+            str     x1, [fp, #0x18]    // [V06 tmp3]
+            ; GC ptr vars +{V06}
+            str     w2, [fp, #0x24]    // [V07 tmp4]
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M34588_IG02:        ; bbWeight=0, gcVars=0000000000000002 {V06}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            ldr     w2, [fp, #0x24]    // [V07 tmp4]
             cmp     w2, #4
-            bne     G_M34588_IG06
+            bne     G_M34588_IG04
+            ldr     x1, [fp, #0x18]    // [V06 tmp3]
+            ; byrRegs +[x1]
             ldr     w11, [x1, #0x0C]
             movn    w2, #0xD1FFAB1E LSL #16
             tst     w11, w2
-            bne     G_M34588_IG06
-                       ;; size=24 bbWeight=1 PerfScore 6.50
-G_M34588_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+            bne     G_M34588_IG04
             and     w2, w11, #0xD1FFAB1E
             cmp     w2, #0xD1FFAB1E, LSL #12
-            bhi     G_M34588_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+            bhi     G_M34588_IG04
             ldp     w2, w3, [x1]
             add     x2, x2, x3,  LSL #32
             str     x2, [x0, #0x08]
             ldr     w1, [x1, #0x08]
             ; byrRegs -[x1]
             stp     w11, w1, [x0]
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M34588_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=64 bbWeight=0 PerfScore 0.00
+G_M34588_IG03:        ; bbWeight=0, epilog, nogc, extend
+            ldr     x19, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M34588_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
+            ; GC ptr vars -{V06}
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
@@ -86,7 +89,7 @@ G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 12, PerfScore 23.00, instruction count 41, allocated bytes for code 164 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
+; Total bytes of code 180, prolog size 12, PerfScore 0.00, instruction count 45, allocated bytes for code 180 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +100,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -105,8 +108,8 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    D0 05       save_reg X#0 Z#5 (0x05); str x19, [sp, #40]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
     E4          end

libraries.pmi.linux.arm64.checked.mch

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

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

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

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

-28 (-6.93%) : 166126.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)

@@ -12,23 +12,22 @@
 ;  V01 arg1         [V01,T00] (  9, 12.50)     ref  ->  x19         class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator>
 ;  V02 loc0         [V02,T11] (  3,  1.50)     ref  ->  x15         class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp1         [V04,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V05 tmp2         [V05,T03] (  3,  3   )     ref  ->  x12         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V06 tmp3         [V06,T06] (  2,  2   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V07 tmp4         [V07,T07] (  2,  2   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V08 tmp5         [V08,T08] (  2,  2   )     ref  ->  x14         class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;  V09 tmp6         [V09,T09] (  2,  2   )     ref  ->  x14         class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V11 tmp8         [V11,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp8         [V11,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V12 tmp9         [V12,T05] (  3,  2.97)     ref  ->   x1         class-hnd "Inlining Arg" <<unknown class>>
 ;  V13 tmp10        [V13,T10] (  2,  1.97)     ref  ->   x2         class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;  V14 tmp11        [V14,T04] (  3,  3   )     ref  ->  x14         single-def "arr expr"
 ;  V15 cse0         [V15,T02] (  4, 10.50)     ref  ->  x21         "CSE - aggressive"
 ;  V16 cse1         [V16,T12] (  3,  1.50)     ref  ->  x14         "CSE - moderate"
 ;  V17 cse2         [V17,T13] (  3,  1.50)     ref  ->  x14         "CSE - moderate"
-;  V18 cse3         [V18,T15] (  3,  1.50)     int  ->  x12         "CSE - moderate"
-;  V19 cse4         [V19,T14] (  3,  1.50)     ref  ->   x0         "CSE - moderate"
-;  V20 cse5         [V20,T16] (  3,  1.48)     int  ->   x4         "CSE - moderate"
+;  V18 cse3         [V18,T14] (  3,  1.50)     ref  ->   x0         "CSE - moderate"
+;  V19 cse4         [V19,T15] (  3,  1.48)     int  ->   x4         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -79,33 +78,19 @@ G_M54730_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             ldr     x14, [x20, #0x20]
             ; gcrRegs +[x14]
             cmp     x14, x15
-            beq     G_M54730_IG08
-            cbz     x14, G_M54730_IG08
+            beq     G_M54730_IG06
+            cbz     x14, G_M54730_IG06
             ldr     x14, [x20, #0x48]
             mov     x12, x14
             ; gcrRegs +[x12]
-            cbz     x12, G_M54730_IG08
+            cbz     x12, G_M54730_IG06
             ldr     w12, [x12, #0x10]
             ; gcrRegs -[x12]
-            cbz     w12, G_M54730_IG08
-            cbnz    w12, G_M54730_IG07
-                       ;; size=56 bbWeight=0.50 PerfScore 11.25
-G_M54730_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x14-x15 x19-x20]
-            movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; gcr arg pop 0
-            brk_unix #0
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M54730_IG07:        ; bbWeight=0.50, gcrefRegs=18C000 {x14 x15 x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x14-x15 x19-x20]
+            cbz     w12, G_M54730_IG06
             ldr     x14, [x14, #0x08]
             ldr     w12, [x14, #0x08]
             cmp     w12, #0
-            bls     G_M54730_IG17
+            bls     G_M54730_IG15
             ldr     x14, [x14, #0x10]
             ldr     x14, [x14, #0x08]
             ldr     x14, [x14, #0x08]
@@ -114,18 +99,18 @@ G_M54730_IG07:        ; bbWeight=0.50, gcrefRegs=18C000 {x14 x15 x19 x20}, byref
             ; gcrRegs -[x14]
             cmp     w14, #3
             bne     G_M54730_IG03
-                       ;; size=44 bbWeight=0.50 PerfScore 12.00
-G_M54730_IG08:        ; bbWeight=0.50, gcrefRegs=188000 {x15 x19 x20}, byrefRegs=0000 {}, byref
+                       ;; size=96 bbWeight=0.50 PerfScore 22.75
+G_M54730_IG06:        ; bbWeight=0.50, gcrefRegs=188000 {x15 x19 x20}, byrefRegs=0000 {}, byref
             add     x14, x20, #32
             ; byrRegs +[x14]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            b       G_M54730_IG13
+            b       G_M54730_IG11
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M54730_IG09:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG07:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x21]
-            cbnz    x21, G_M54730_IG10
+            cbnz    x21, G_M54730_IG08
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator:FindNextTypeForInstanceMethods():ubyte:this
@@ -135,9 +120,9 @@ G_M54730_IG09:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
             blr     x1
             ; gcrRegs -[x0 x21]
             ; gcr arg pop 0
-            cbz     w0, G_M54730_IG11
+            cbz     w0, G_M54730_IG09
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M54730_IG10:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M54730_IG08:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator:FindNextMethod():ubyte:this
@@ -148,15 +133,15 @@ G_M54730_IG10:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 12.00
-G_M54730_IG11:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG09:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x21, [x19, #0x38]
             ; gcrRegs +[x21]
             ldr     x0, [x20, #0x20]
             ; gcrRegs +[x0]
             cmp     x21, x0
-            beq     G_M54730_IG09
+            beq     G_M54730_IG07
                        ;; size=16 bbWeight=4 PerfScore 30.00
-G_M54730_IG12:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x19, #0x30]
             ; gcrRegs +[x0]
@@ -176,16 +161,16 @@ G_M54730_IG12:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ; byrRegs -[x14]
             cbz     x0, G_M54730_IG03
                        ;; size=32 bbWeight=0.50 PerfScore 4.00
-G_M54730_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x1, [x20, #0x90]
             ; gcrRegs +[x1]
             ldr     x2, [x20, #0x20]
             ; gcrRegs +[x2]
             ldr     w4, [x1, #0x10]
-            cbz     w4, G_M54730_IG15
+            cbz     w4, G_M54730_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 5.00
-G_M54730_IG14:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG12:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x1, #0x08]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -198,25 +183,25 @@ G_M54730_IG14:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRe
             blr     x5
             ; gcrRegs -[x1-x2]
             ; gcr arg pop 0
-            tbz     w0, #31, G_M54730_IG11
+            tbz     w0, #31, G_M54730_IG09
                        ;; size=44 bbWeight=0.48 PerfScore 5.55
-G_M54730_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M54730_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19-x20]
             mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M54730_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M54730_IG14:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M54730_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54730_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 404, prolog size 24, PerfScore 117.05, instruction count 101, allocated bytes for code 404 (MethodHash=ad392a35) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
+; Total bytes of code 376, prolog size 24, PerfScore 116.55, instruction count 94, allocated bytes for code 376 (MethodHash=ad392a35) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -227,7 +212,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
+  Function Length   : 94 (0x0005e) Actual length = 376 (0x000178)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+8.70%) : 159357.dasm - System.Collections.Immutable.ImmutableSortedSet1+Node[System.Numerics.Vector1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)

@@ -14,15 +14,16 @@
 ;  V03 tmp1         [V03,T04] (  2,  1   )     int  ->   x2        
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V05 tmp3         [V05,T05] (  2,  0   )     ref  ->   x0         "argument with side effect"
-;  V06 cse0         [V06,T02] (  4,  3   )     int  ->   x3         "CSE - aggressive"
+;  V06 cse0         [V06,T02] (  4,  3   )     int  ->  x19         "CSE - aggressive"
 ;  V07 cse1         [V07,T03] (  3,  2.50)     ref  ->   x2         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M32963_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x10]!
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M32963_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             tbnz    w1, #31, G_M32963_IG11
@@ -37,8 +38,8 @@ G_M32963_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
 G_M32963_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x0, #0x08]
             ; gcrRegs +[x2]
-            ldr     w3, [x2, #0x18]
-            cmp     w1, w3
+            ldr     w19, [x2, #0x18]
+            cmp     w1, w19
             bge     G_M32963_IG07
                        ;; size=16 bbWeight=1 PerfScore 7.50
 G_M32963_IG05:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
@@ -52,14 +53,15 @@ G_M32963_IG05:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             ldr     x2, [x2]
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
 G_M32963_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M32963_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cmp     w1, w3
+            cmp     w1, w19
             ble     G_M32963_IG09
-            sub     w1, w1, w3
+            sub     w1, w1, w19
             sub     w1, w1, #1
             ldr     x0, [x0, #0x10]
             movz    x2, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
@@ -69,17 +71,19 @@ G_M32963_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     wzr, [x0]
                        ;; size=40 bbWeight=0.50 PerfScore 6.50
 G_M32963_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M32963_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ldr     q0, [x0, #0x20]
                        ;; size=4 bbWeight=0.50 PerfScore 1.50
 G_M32963_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M32963_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
@@ -100,18 +104,18 @@ G_M32963_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 8, PerfScore 26.25, instruction count 46, allocated bytes for code 184 (MethodHash=86d47f3c) for method System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
+; Total bytes of code 200, prolog size 12, PerfScore 30.25, instruction count 50, allocated bytes for code 200 (MethodHash=86d47f3c) for method System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
+  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -125,7 +129,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
+    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+12 (+10.00%) : 30362.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:g_makeConjunct|410(System.String,System.String):System.String (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->   x0         class-hnd <System.String>
+;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->  registers   class-hnd <System.String>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V08 tmp2         [V08,T03] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
@@ -28,43 +28,43 @@ G_M24419_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M24419_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x0, G_M24419_IG06
+            cbz     x0, G_M24419_IG05
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M24419_IG03:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bne     G_M24419_IG06
+            bne     G_M24419_IG05
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
 G_M24419_IG04:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x0, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG06
+            beq     G_M24419_IG08
                        ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, x1
-            ; gcrRegs +[x0]
-            b       G_M24419_IG11
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24419_IG06:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             cbz     x1, G_M24419_IG10
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG07:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG06:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x1, #0x08]
             cmp     w2, #1
             bne     G_M24419_IG10
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
-G_M24419_IG08:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG07:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x1, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG10
-                       ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
+            beq     G_M24419_IG09
+            b       G_M24419_IG10
+                       ;; size=16 bbWeight=0.12 PerfScore 0.69
+G_M24419_IG08:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
             b       G_M24419_IG11
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
+G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
+            mov     x1, x0
             ; gcrRegs +[x1]
+            b       G_M24419_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
             mov     x2, x1
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
@@ -77,13 +77,20 @@ G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            mov     x1, x0
+            ; gcrRegs +[x1]
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            mov     x0, x1
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=1 PerfScore 0.50
+G_M24419_IG12:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.38, instruction count 30, allocated bytes for code 120 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 14.25, instruction count 33, allocated bytes for code 132 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -94,7 +101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+10.00%) : 153182.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNullsubyte:System.Collections.Generic.List`1ubyte

@@ -8,8 +8,8 @@
 ; 1 inlinees with PGO data; 7 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8, 24   )     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
-;  V01 loc0         [V01,T03] (  9, 19.00)     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
+;  V00 arg0         [V00,T02] (  8, 20.50)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
+;  V01 loc0         [V01,T04] (  9, 15.50)     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ubyte]>
 ;  V03 loc2         [V03,T11] (  3,  4   )   ubyte  ->   x1        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,15 +21,15 @@
 ;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ubyte]>
 ;* V12 tmp8         [V12,T15] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp9         [V13,T01] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
+;  V13 tmp9         [V13,T00] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
 ;  V14 tmp10        [V14,T06] (  2,  9   )     int  ->  x21         single-def "field V02._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T05] (  2,  6   )   ubyte  ->   x0         "field V02._current (fldOffset=0x10)" P-INDEP
 ;  V16 tmp12        [V16,T13] (  2,  2   )     ref  ->   x0         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V07._index (fldOffset=0x8)" P-INDEP
 ;  V18 tmp14        [V18,T14] (  2,  2   )     int  ->  x21         single-def "field V07._version (fldOffset=0xc)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07._current (fldOffset=0x10)" P-INDEP
-;  V20 tmp16        [V20,T02] (  3, 24   )     ref  ->   x0         "arr expr"
-;  V21 cse0         [V21,T04] (  3, 12   )     int  ->  x23         "CSE - aggressive"
+;  V20 tmp16        [V20,T01] (  3, 24   )     ref  ->   x0         "arr expr"
+;  V21 cse0         [V21,T03] (  3, 12   )     int  ->  x23         "CSE - aggressive"
 ;  V22 cse1         [V22,T12] (  2,  4   )     int  ->   x3         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
@@ -103,7 +103,7 @@ G_M37290_IG05:        ; bbWeight=0.30, gcrefRegs=180000 {x19 x20}, byrefRegs=000
 G_M37290_IG06:        ; bbWeight=8, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0x14]
             cmp     w21, w0
-            bne     G_M37290_IG11
+            bne     G_M37290_IG14
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w23, [x19, #0x10]
@@ -113,7 +113,7 @@ G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
             cmp     w22, w1
-            bhs     G_M37290_IG10
+            bhs     G_M37290_IG13
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
@@ -122,25 +122,41 @@ G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             add     w22, w22, #1
             b       G_M37290_IG03
                        ;; size=44 bbWeight=4 PerfScore 68.00
-G_M37290_IG08:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M37290_IG08:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x20, #0x10]
             cmp     w0, w23
-            csel    x0, x19, x20, eq
+            beq     G_M37290_IG11
+                       ;; size=12 bbWeight=4 PerfScore 18.00
+G_M37290_IG09:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
+            mov     x0, x20
             ; gcrRegs +[x0]
-                       ;; size=12 bbWeight=4 PerfScore 16.00
-G_M37290_IG09:        ; bbWeight=4, epilog, nogc, extend
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M37290_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19-x20]
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x20] +[x19]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x19]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M37290_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37290_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -150,22 +166,25 @@ G_M37290_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 280, prolog size 24, PerfScore 199.60, instruction count 70, allocated bytes for code 280 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
+; Total bytes of code 308, prolog size 24, PerfScore 184.10, instruction count 77, allocated bytes for code 308 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 2
-  Epilog Count      : 1
+  Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 70 (0x00046) Actual length = 280 (0x000118)
+  Function Length   : 77 (0x0004d) Actual length = 308 (0x000134)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Epilog Start Index         : 1 (0x01)
+  ---- Scope 1
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Epilog Start Index         : 1 (0x01)
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----

libraries_tests.run.linux.arm64.Release.mch

-44 (-17.46%) : 99661.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     w1, [x20, #0x08]
             str     w1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -107,7 +90,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -123,15 +106,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 252, prolog size 24, PerfScore 34.25, instruction count 63, allocated bytes for code 252 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 208, prolog size 20, PerfScore 28.38, instruction count 52, allocated bytes for code 208 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,9 +138,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-17.46%) : 99642.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1System.DateTime

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M27952_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M27952_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M27952_IG07
+            cbz     x20, G_M27952_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M27952_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M27952_IG07
-            cmp     x1, x21
-            beq     G_M27952_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M27952_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M27952_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M27952_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M27952_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M27952_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     x1, [x20, #0x08]
             str     x1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M27952_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M27952_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M27952_IG11
+            beq     G_M27952_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -107,7 +90,7 @@ G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -123,15 +106,14 @@ G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M27952_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M27952_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 252, prolog size 24, PerfScore 34.25, instruction count 63, allocated bytes for code 252 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
+; Total bytes of code 208, prolog size 20, PerfScore 28.38, instruction count 52, allocated bytes for code 208 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,9 +138,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-17.19%) : 99621.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,93 +10,76 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldrb    w1, [x20, #0x08]
             mvn     w1, w1
             strb    w1, [x0, #0x08]
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -108,7 +91,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -124,15 +107,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 256, prolog size 24, PerfScore 34.50, instruction count 64, allocated bytes for code 256 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 212, prolog size 20, PerfScore 28.62, instruction count 53, allocated bytes for code 212 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -143,7 +125,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 53 (0x00035) Actual length = 212 (0x0000d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -157,9 +139,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+44 (+8.94%) : 216213.dasm - System.Collections.Frozen.FrozenSetInternalBase2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet1+GSW[System.Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.Canon]):ubyte:this (Tier1-OSR)

@@ -10,44 +10,48 @@
 ; 2 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T11] (  4,  2.39)     ref  ->  [fp+0x118]  this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]>
-;  V01 arg1         [V01,T10] (  3,101.89)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.IReadOnlySet`1[System.__Canon]>
+;  V00 this         [V00,T14] (  5,102.27)     ref  ->  [fp+0x118]  this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]>
+;  V01 arg1         [V01,T15] (  3,101.89)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.IReadOnlySet`1[System.__Canon]>
 ;  V02 loc0         [V02    ] ( 11,801.05)  struct (16) [fp+0x100]  do-not-enreg[XSFR] multireg-ret addr-exposed ld-addr-op tier0-frame <System.Collections.Frozen.FrozenSet`1+Enumerator[System.__Canon]>
 ;  V03 loc1         [V03    ] (  1,  1   )  struct ( 8) [fp+0xF8]  do-not-enreg[XS] addr-exposed ld-addr-op tier0-frame <System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]>
-;  V04 loc2         [V04,T07] (  2,199.77)     ref  ->  x21         class-hnd <System.__Canon>
-;* V05 loc3         [V05,T24] (  0,  0   )   ubyte  ->  zero-ref   
+;  V04 loc2         [V04,T13] (  2,199.77)     ref  ->  x21         class-hnd <System.__Canon>
+;* V05 loc3         [V05,T28] (  0,  0   )   ubyte  ->  zero-ref   
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp2         [V08    ] (  0,  0   )    long  ->  zero-ref    "Indirect call through function pointer"
 ;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Frozen.FrozenSet`1+Enumerator[System.__Canon]>
 ;* V10 tmp4         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp5         [V11,T16] (  6,  1.10)    long  ->   x2         "Indirect call through function pointer"
+;  V11 tmp5         [V11,T21] (  6,  1.10)    long  ->   x2         "Indirect call through function pointer"
 ;* V12 tmp6         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V13 tmp7         [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V14 tmp8         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V15 tmp9         [V15,T00] (  4,599.32)    long  ->  x11         "VirtualCall with runtime lookup"
 ;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
-;* V17 tmp11        [V17,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V17 tmp11        [V17,T12] (  2,200   )   ubyte  ->   x1         "Inline return value spill temp"
 ;* V18 tmp12        [V18    ] (  0,  0   )     ref  ->  zero-ref    "field V09._entries (fldOffset=0x0)" P-DEP
 ;* V19 tmp13        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-DEP
 ;  V20 tmp14        [V20,T01] (  3,599.32)     ref  ->   x2         "arr expr"
 ;  V21 tmp15        [V21,T02] (  3,599.32)     int  ->   x1         "index expr"
-;  V22 PSPSym       [V22,T17] (  1,  1   )    long  ->  [fp+0x10]  do-not-enreg[V] "PSPSym"
-;* V23 cse0         [V23,T23] (  0,  0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V24 cse1         [V24,T09] (  8,136.85)    long  ->  x20         hoist multi-def "CSE - aggressive"
-;  V25 cse2         [V25,T05] (  3,299.66)     ref  ->   x2         "CSE - aggressive"
-;  V26 cse3         [V26,T06] (  3,299.66)     int  ->   x1         "CSE - aggressive"
-;  V27 rat0         [V27,T13] (  2,  1.13)    long  ->   x1         "Spilling to split statement for tree"
-;* V28 rat1         [V28,T15] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V29 rat2         [V29,T12] (  2,  1.13)    long  ->   x1         "spilling expr"
-;* V30 rat3         [V30,T14] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V31 rat4         [V31,T03] (  3,559.37)    long  ->   x1         "spilling expr"
-;  V32 rat5         [V32,T04] (  3,447.49)    long  ->  x11         "fgMakeTemp is creating a new local variable"
-;  V33 rat6         [V33,T18] (  3,  0.95)    long  ->   x1         "spilling expr"
-;  V34 rat7         [V34,T19] (  3,  0.76)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V35 rat8         [V35,T21] (  3,  0.49)    long  ->  x20         "Spilling to split statement for tree"
-;  V36 rat9         [V36,T20] (  3,  0.58)    long  ->   x1         "spilling expr"
-;  V37 rat10        [V37,T22] (  3,  0.47)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V22 PSPSym       [V22,T22] (  1,  1   )    long  ->  [fp+0x10]  do-not-enreg[V] "PSPSym"
+;* V23 cse0         [V23,T16] (  0,  0   )    long  ->  zero-ref    hoist multi-def "CSE - aggressive"
+;  V24 cse1         [V24,T09] ( 10,336.62)    long  ->  x20         hoist multi-def "CSE - aggressive"
+;  V25 cse2         [V25,T10] (  3,299.66)     ref  ->   x2         "CSE - aggressive"
+;  V26 cse3         [V26,T11] (  3,299.66)     int  ->   x1         "CSE - aggressive"
+;  V27 rat0         [V27,T18] (  2,  1.13)    long  ->  x20         "Spilling to split statement for tree"
+;* V28 rat1         [V28,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V29 rat2         [V29,T17] (  2,  1.13)    long  ->   x1         "spilling expr"
+;* V30 rat3         [V30,T19] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V31 rat4         [V31,T05] (  2,399.55)    long  ->   x1         "Spilling to split statement for tree"
+;* V32 rat5         [V32,T08] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V33 rat6         [V33,T03] (  2,399.55)    long  ->   x1         "spilling expr"
+;* V34 rat7         [V34,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V35 rat8         [V35,T04] (  3,559.37)    long  ->   x1         "spilling expr"
+;  V36 rat9         [V36,T07] (  3,447.49)    long  ->  x11         "fgMakeTemp is creating a new local variable"
+;  V37 rat10        [V37,T23] (  3,  0.95)    long  ->   x1         "spilling expr"
+;  V38 rat11        [V38,T24] (  3,  0.76)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V39 rat12        [V39,T26] (  3,  0.49)    long  ->   x1         "Spilling to split statement for tree"
+;  V40 rat13        [V40,T25] (  3,  0.58)    long  ->   x2         "spilling expr"
+;  V41 rat14        [V41,T27] (  3,  0.47)    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -61,22 +65,20 @@ G_M30499_IG01:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     x19, x0, [fp, #0xD1FFAB1E]
             ; gcrRegs +[x0 x19]
                        ;; size=28 bbWeight=0.28 PerfScore 2.27
-G_M30499_IG02:        ; bbWeight=0.28, gcVars=0000000000000800 {V00}, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V00 V11}
+G_M30499_IG02:        ; bbWeight=0.28, gcVars=0000000000004000 {V00}, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V00}
             ldr     x20, [x0]
-            mov     x1, x20
-            ldr     x1, [x1, #0x38]
+            ldr     x1, [x20, #0x38]
             ldr     x1, [x1, #0x08]
             ldr     x1, [x1, #0x10]
             cmp     x1, #128
-            ble     G_M30499_IG11
-                       ;; size=28 bbWeight=0.28 PerfScore 3.97
-G_M30499_IG03:        ; bbWeight=0.23, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M30499_IG11
+            ble     G_M30499_IG12
+                       ;; size=24 bbWeight=0.28 PerfScore 3.82
+G_M30499_IG03:        ; bbWeight=0.23, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+            b       G_M30499_IG12
                        ;; size=4 bbWeight=0.23 PerfScore 0.23
 G_M30499_IG04:        ; bbWeight=35.96, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x21]
+            ; gcrRegs -[x0] +[x21]
             mov     x0, x20
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -84,23 +86,33 @@ G_M30499_IG04:        ; bbWeight=35.96, gcrefRegs=280000 {x19 x21}, byrefRegs=00
             bl      CORINFO_HELP_RUNTIMEHANDLE_CLASS
             ; gcr arg pop 0
             mov     x11, x0
-            b       G_M30499_IG10
+            b       G_M30499_IG11
                        ;; size=28 bbWeight=35.96 PerfScore 161.82
 G_M30499_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19 x21]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M30499_IG06:        ; bbWeight=99.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x19]
+G_M30499_IG06:        ; bbWeight=99.89, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0 x19]
+            ldr     x20, [x0]
+            mov     x1, x20
+            ldr     x1, [x1, #0x38]
+            ldr     x1, [x1, #0x08]
+            ldr     x1, [x1, #0x10]
+            cmp     x1, #128
+            ble     G_M30499_IG07
+                       ;; size=28 bbWeight=99.89 PerfScore 1398.41
+G_M30499_IG07:        ; bbWeight=99.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
             ldr     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
             ldr     x2, [fp, #0xD1FFAB1E]  // [V02 loc0]
             ; gcrRegs +[x2]
             ldr     w3, [x2, #0x08]
             cmp     w1, w3
-            blo     G_M30499_IG08
+            blo     G_M30499_IG09
                        ;; size=20 bbWeight=99.89 PerfScore 849.04
-G_M30499_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30499_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2 x19]
             movz    x1, #0xD1FFAB1E      // code for System.Collections.ThrowHelper:ThrowInvalidOperationException()
             movk    x1, #0xD1FFAB1E LSL #16
@@ -110,7 +122,7 @@ G_M30499_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M30499_IG08:        ; bbWeight=99.89, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG09:        ; bbWeight=99.89, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2 x19]
             ldr     w3, [x2, #0x08]
             cmp     w1, w3
@@ -127,11 +139,11 @@ G_M30499_IG08:        ; bbWeight=99.89, gcrefRegs=80004 {x2 x19}, byrefRegs=0000
             cmp     x2, #136
             ble     G_M30499_IG04
                        ;; size=40 bbWeight=99.89 PerfScore 1847.90
-G_M30499_IG09:        ; bbWeight=79.91, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG10:        ; bbWeight=79.91, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x11, [x1, #0x88]
             cbz     x11, G_M30499_IG04
                        ;; size=8 bbWeight=79.91 PerfScore 319.64
-G_M30499_IG10:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG11:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
             mov     x0, x19
             ; gcrRegs +[x0]
             mov     x1, x21
@@ -140,9 +152,11 @@ G_M30499_IG10:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=00
             blr     x2
             ; gcrRegs -[x0-x1 x21]
             ; gcr arg pop 0
-            cbz     w0, G_M30499_IG12
+            cbz     w0, G_M30499_IG13
                        ;; size=20 bbWeight=99.89 PerfScore 599.32
-G_M30499_IG11:        ; bbWeight=100, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG12:        ; bbWeight=100, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x0, [fp, #0xD1FFAB1E]  // [V00 this]
+            ; gcrRegs +[x0]
             ldr     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
             add     w1, w1, #1
             str     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
@@ -158,51 +172,58 @@ G_M30499_IG11:        ; bbWeight=100, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             ldr     w1, [x1, #0x08]
             ; gcrRegs -[x1]
             str     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
-            b       G_M30499_IG16
-                       ;; size=48 bbWeight=100 PerfScore 1900.00
-G_M30499_IG12:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x19]
+            mov     w1, wzr
+            cbnz    w1, G_M30499_IG06
+            b       G_M30499_IG17
+                       ;; size=60 bbWeight=100 PerfScore 2250.00
+G_M30499_IG13:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0 x19]
+            ldr     x0, [fp, #0xD1FFAB1E]  // [V00 this]
+            ; gcrRegs +[x0]
             ldr     x1, [x20, #0x38]
             ldr     x1, [x1, #0x08]
             ldr     x2, [x1, #0x10]
             cmp     x2, #144
-            ble     G_M30499_IG20
-                       ;; size=20 bbWeight=0.17 PerfScore 1.78
-G_M30499_IG13:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ble     G_M30499_IG21
+                       ;; size=24 bbWeight=0.17 PerfScore 2.12
+G_M30499_IG14:        ; bbWeight=0.14, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x1, #0x90]
-            cbz     x2, G_M30499_IG20
+            cbz     x2, G_M30499_IG21
                        ;; size=8 bbWeight=0.14 PerfScore 0.54
-G_M30499_IG14:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30499_IG15:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
             add     x0, fp, #0xD1FFAB1E    // [V02 loc0]
             blr     x2
             ; gcr arg pop 0
             mov     w0, wzr
                        ;; size=12 bbWeight=0.17 PerfScore 0.34
-G_M30499_IG15:        ; bbWeight=0.17, epilog, nogc, extend
+G_M30499_IG16:        ; bbWeight=0.17, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             add     sp, sp, #0xD1FFAB1E
             ret     lr
                        ;; size=20 bbWeight=0.17 PerfScore 0.93
-G_M30499_IG16:        ; bbWeight=0.10, gcVars=0000000000000800 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M30499_IG17:        ; bbWeight=0.10, gcVars=0000000000004000 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0]
             ldr     x0, [fp, #0x10]    // [V22 PSPSym]
-            bl      G_M30499_IG21
+            ; gcrRegs -[x0]
+            bl      G_M30499_IG22
                        ;; size=8 bbWeight=0.10 PerfScore 0.31
-G_M30499_IG17:        ; bbWeight=0.10, nogc, extend
+G_M30499_IG18:        ; bbWeight=0.10, nogc, extend
             nop     
                        ;; size=4 bbWeight=0.10 PerfScore 0.05
-G_M30499_IG18:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30499_IG19:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #1
                        ;; size=4 bbWeight=0.10 PerfScore 0.05
-G_M30499_IG19:        ; bbWeight=0.10, epilog, nogc, extend
+G_M30499_IG20:        ; bbWeight=0.10, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             add     sp, sp, #0xD1FFAB1E
             ret     lr
                        ;; size=20 bbWeight=0.10 PerfScore 0.57
-G_M30499_IG20:        ; bbWeight=0.06, gcVars=0000000000000800 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M30499_IG21:        ; bbWeight=0.06, gcVars=0000000000004000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
...

+8 (+9.52%) : 54438.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.32)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.24)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.13)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.04, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.04 PerfScore 1.04
-G_M207_IG03:        ; bbWeight=0.07, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.07 PerfScore 0.44
-G_M207_IG04:        ; bbWeight=0.07, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.07 PerfScore 0.51
+G_M207_IG05:        ; bbWeight=0.04, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.07 PerfScore 0.15
-G_M207_IG05:        ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.04 PerfScore 0.17
+G_M207_IG06:        ; bbWeight=0.04, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.04 PerfScore 0.57
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.04 PerfScore 0.45
 
-; Total bytes of code 84, prolog size 8, PerfScore 3.70, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 3.67, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+9.52%) : 175264.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.89)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.67)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.33)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.11 PerfScore 1.11
-G_M207_IG03:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.22, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.22 PerfScore 1.33
-G_M207_IG04:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.22 PerfScore 1.56
+G_M207_IG05:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.22 PerfScore 0.44
-G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.11 PerfScore 0.44
+G_M207_IG06:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.11 PerfScore 1.50
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.11 PerfScore 1.17
 
-; Total bytes of code 84, prolog size 8, PerfScore 5.89, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 5.78, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-36 (-15.79%) : 101419.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,90 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <ManagedTests.DynamicCSharp.Conformance.dynamic.statements.cnst.readonly08.readonly08.MyStruct2>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            add     x0, x21, #0xD1FFAB1E
-            cmp     x1, x0
-            bne     G_M16591_IG07
-            add     x0, x21, #0xD1FFAB1E
-            cmp     x1, x0
-            beq     G_M16591_IG05
-                       ;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            add     x0, x21, #0xD1FFAB1E
-            bl      CORINFO_HELP_UNBOX
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     w1, [x20, #0x08]
             str     w1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -101,7 +86,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -117,15 +102,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 228, prolog size 24, PerfScore 32.50, instruction count 57, allocated bytes for code 228 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 27.25, instruction count 48, allocated bytes for code 192 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -150,9 +134,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-32 (-15.69%) : 25557.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)

@@ -10,16 +10,14 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T07] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T02] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V07 tmp4         [V07,T07] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V09 cse0         [V09,T03] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V10 cse1         [V10,T05] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V11 cse2         [V11,T08] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V06 tmp3         [V06,T04] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V07 tmp4         [V07,T05] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T03] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V09 cse0         [V09,T06] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -33,59 +31,46 @@ G_M44930_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M44930_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M44930_IG07
+            cbz     x20, G_M44930_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M44930_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x1, x0
-            bne     G_M44930_IG07
-            cmp     x1, x0
-            beq     G_M44930_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M44930_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M44930_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ldr     w0, [x20, #0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M44930_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M44930_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x19, #0x10]
             strb    wzr, [x19, #0x10]
-            cbz     w0, G_M44930_IG09
+            cbz     w0, G_M44930_IG08
             mov     w0, wzr
                        ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M44930_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M44930_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19]
+            ldr     w0, [x20, #0x08]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19]
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M44930_IG11
+            beq     G_M44930_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -93,7 +78,7 @@ G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -109,14 +94,14 @@ G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M44930_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 204, prolog size 20, PerfScore 27.75, instruction count 51, allocated bytes for code 204 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
+; Total bytes of code 172, prolog size 20, PerfScore 25.50, instruction count 43, allocated bytes for code 172 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-32 (-15.69%) : 25603.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)

@@ -10,16 +10,14 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T07] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T02] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V07 tmp4         [V07,T07] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V09 cse0         [V09,T03] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V10 cse1         [V10,T05] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V11 cse2         [V11,T08] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V06 tmp3         [V06,T04] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V07 tmp4         [V07,T05] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T03] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V09 cse0         [V09,T06] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -33,59 +31,46 @@ G_M44174_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M44174_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M44174_IG07
+            cbz     x20, G_M44174_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M44174_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x1, x0
-            bne     G_M44174_IG07
-            cmp     x1, x0
-            beq     G_M44174_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M44174_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M44174_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ldrb    w0, [x20, #0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M44174_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44174_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M44174_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M44174_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x19, #0x10]
             strb    wzr, [x19, #0x10]
-            cbz     w0, G_M44174_IG09
+            cbz     w0, G_M44174_IG08
             mov     w0, wzr
                        ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M44174_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44174_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44174_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M44174_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19]
+            ldrb    w0, [x20, #0x08]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M44174_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M44174_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19]
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M44174_IG11
+            beq     G_M44174_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M44174_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44174_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -93,7 +78,7 @@ G_M44174_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M44174_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44174_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -109,14 +94,14 @@ G_M44174_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M44174_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44174_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 204, prolog size 20, PerfScore 27.75, instruction count 51, allocated bytes for code 204 (MethodHash=493d5371) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 20, PerfScore 25.50, instruction count 43, allocated bytes for code 172 (MethodHash=493d5371) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+6.67%) : 125209.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)

@@ -56,12 +56,11 @@ G_M4885_IG05:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {},
             ldr     w4, [x2, #0x08]
             cmp     w4, w3
             blo     G_M4885_IG04
-            add     x2, x2, #16
+            b       G_M4885_IG08
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             ; gcrRegs -[x2]
             ; byrRegs +[x2]
-            sxtw    w4, w3
-                       ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             mov     w3, w4
             add     x0, x0, #28
             ; gcrRegs -[x0]
@@ -77,8 +76,16 @@ G_M4885_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M4885_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0 x2]
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+            sxtw    w4, w3
+            b       G_M4885_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 20.75, instruction count 30, allocated bytes for code 120 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
+; Total bytes of code 128, prolog size 8, PerfScore 21.75, instruction count 32, allocated bytes for code 128 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +96,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+11.48%) : 67291.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M22620_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M22620_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M22620_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M22620_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M22620_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M22620_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M22620_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M22620_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M22620_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M22620_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22620_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M22620_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M22620_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M22620_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M22620_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22620_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M22620_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M22620_IG07
+            b       G_M22620_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M22620_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M22620_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M22620_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M22620_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M22620_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M22620_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M22620_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M22620_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M22620_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

+28 (+11.48%) : 69112.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M57052_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M57052_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M57052_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M57052_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M57052_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M57052_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M57052_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M57052_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M57052_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M57052_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M57052_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M57052_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M57052_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M57052_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M57052_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57052_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M57052_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M57052_IG07
+            b       G_M57052_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M57052_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M57052_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M57052_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M57052_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M57052_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M57052_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M57052_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M57052_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M57052_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

realworld.run.linux.arm64.checked.mch

-32 (-5.84%) : 18582.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -11,20 +11,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x3         single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x4        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x5        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x5        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x6         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x7        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x8        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x9        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x7        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x5        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x6         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x6         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -32,199 +32,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x5         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->   x3         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w3, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w3, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            add     x4, x0, #12
+            ; byrRegs +[x4]
+            ldrh    w5, [x4, w2, UXTW #2]
+            sxtw    w6, w5
+            cmp     w6, #32
+            ccmp    w6, #9, z, ne
+            ccmp    w6, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w6, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x4]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            ; byrRegs +[x4]
+            sxtw    w6, w5
+            cmp     w6, #34
+            beq     G_M24207_IG08
+            cmp     w6, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            mov     w5, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w4, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w6, w2
+            sxtw    w7, w3
+            mov     w8, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w20, UXTW #2]
-            cmp     w5, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w3, w2
+            ble     G_M24207_IG16
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            ldrh    w9, [x4, w2, UXTW #2]
+            cmp     w9, #92
             bne     G_M24207_IG12
-            mov     w4, #1
-            add     w20, w20, #2
+            mov     w8, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w5, #61
-            beq     G_M24207_IG19
-            cmp     w5, #44
-            beq     G_M24207_IG19
-            cmp     w5, #34
-            beq     G_M24207_IG29
-            cmp     w5, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w5, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, #61
             beq     G_M24207_IG18
+            cmp     w9, #44
+            beq     G_M24207_IG18
+            cmp     w9, #34
+            beq     G_M24207_IG27
+            cmp     w9, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, w5
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w2, w3
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w7, w2
+            add     w2, w7, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG24
+            sub     w7, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sub     w7, w7, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w7, w6
+            blt     G_M24207_IG21
+            cmp     w7, w3
+            bhs     G_M24207_IG33
...

-16 (-5.26%) : 30478.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)

@@ -11,25 +11,24 @@
 ;  V00 arg0         [V00,T02] (  7,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T03] (  4,  3.50)   byref  ->  x20         single-def
 ;  V02 arg2         [V02,T04] (  4,  3.50)   byref  ->  x21         single-def
-;  V03 loc0         [V03,T08] (  5,  4   )     int  ->  x23        
+;  V03 loc0         [V03,T08] (  5,  2.50)     int  ->  x22        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
-;  V05 loc2         [V05,T01] (  6, 18.50)     int  ->  x24        
+;  V05 loc2         [V05,T01] (  6, 17   )     int  ->   x0        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V08 tmp2         [V08,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp3         [V09,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x1         "Inlining Arg"
-;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  x22         "CSE - aggressive"
-;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x0         hoist "CSE - aggressive"
+;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x3         "Inlining Arg"
+;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->   x2         "CSE - aggressive"
+;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x1         hoist "CSE - aggressive"
 ;  V13 cse2         [V13,T07] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -37,7 +36,7 @@ G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs +[x20]
             mov     x21, x2
             ; byrRegs +[x21]
-                       ;; size=32 bbWeight=1 PerfScore 6.00
+                       ;; size=28 bbWeight=1 PerfScore 5.00
 G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -59,64 +58,60 @@ G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20
             cbz     x19, G_M22854_IG04
                        ;; size=40 bbWeight=1 PerfScore 6.50
 G_M22854_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            ldr     w22, [x19, #0x08]
-            cbz     w22, G_M22854_IG04
-            mov     w23, wzr
-            mov     w24, wzr
-            cmp     w22, #0
-            ble     G_M22854_IG12
-            b       G_M22854_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+            ldr     w2, [x19, #0x08]
+            cbnz    w2, G_M22854_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M22854_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20-x21]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M22854_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref, isz
             ; gcrRegs +[x19]
             ; byrRegs +[x20-x21]
-            add     x0, x19, #12
-            ; byrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            ldrh    w1, [x0, w24, UXTW #2]
-            mov     w2, #0xD1FFAB1E
-            mov     w3, #0xD1FFAB1E
-            cmp     w1, #45
-            ccmp    w1, w2, z, ne
-            ccmp    w1, w3, z, ne
-            beq     G_M22854_IG11
+            mov     w22, wzr
+            mov     w0, wzr
+            cmp     w2, #0
+            ble     G_M22854_IG11
+            add     x1, x19, #12
+            ; byrRegs +[x1]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            ldrh    w3, [x1, w0, UXTW #2]
+            mov     w4, #0xD1FFAB1E
+            mov     w5, #0xD1FFAB1E
+            cmp     w3, #45
+            ccmp    w3, w4, z, ne
+            ccmp    w3, w5, z, ne
+            beq     G_M22854_IG10
                        ;; size=28 bbWeight=4 PerfScore 26.00
-G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            mov     w2, #0xD1FFAB1E
-            cmp     w1, w2
-            beq     G_M22854_IG11
+G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            mov     w4, #0xD1FFAB1E
+            cmp     w3, w4
+            beq     G_M22854_IG10
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            add     w24, w24, #1
-            cmp     w22, w24
+G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            add     w0, w0, #1
+            cmp     w2, w0
             bgt     G_M22854_IG07
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+            b       G_M22854_IG11
+                       ;; size=16 bbWeight=4 PerfScore 12.00
 G_M22854_IG10:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            ; byrRegs -[x0]
-            b       G_M22854_IG12
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22854_IG11:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            sxtw    w23, w24
-                       ;; size=4 bbWeight=2 PerfScore 1.00
-G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            cmp     w23, #0
+            ; byrRegs -[x1]
+            sxtw    w22, w0
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
+            cmp     w22, #0
             ble     G_M22854_IG04
             mov     x0, x19
             ; gcrRegs +[x0]
-            mov     w2, w23
+            mov     w2, w22
             mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.String:Substring(int,int):System.String:this
             movk    x3, #0xD1FFAB1E LSL #16
@@ -131,7 +126,7 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14 x20]
-            add     w1, w23, #1
+            add     w1, w22, #1
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.String:Substring(int):System.String:this
@@ -150,15 +145,14 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             ; byrRegs -[x14 x21]
             mov     w0, #1
                        ;; size=96 bbWeight=0.50 PerfScore 9.75
-G_M22854_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
+G_M22854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 304, prolog size 32, PerfScore 71.00, instruction count 76, allocated bytes for code 304 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
+; Total bytes of code 288, prolog size 28, PerfScore 71.25, instruction count 72, allocated bytes for code 288 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -169,7 +163,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 76 (0x0004c) Actual length = 304 (0x000130)
+  Function Length   : 72 (0x00048) Actual length = 288 (0x000120)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -181,9 +175,9 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    E6          save_next
     C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    E4          end
     E4          end
     E4          end
 

-12 (-5.17%) : 11599.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)

@@ -11,7 +11,7 @@
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T00] (  5, 44   )     ref  ->  x19         class-hnd exact "impAppendStmt" <System.String>
-;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
+;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.String>
 ;  V04 tmp3         [V04,T01] (  5, 32   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.String>
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -81,10 +81,8 @@ G_M26077_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=68 bbWeight=8 PerfScore 144.00
 G_M26077_IG03:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x19, #0x08]
-            cbz     w1, G_M26077_IG04
-            cbz     x0, G_M26077_IG07
-            b       G_M26077_IG06
-                       ;; size=16 bbWeight=2 PerfScore 12.00
+            cbnz    w1, G_M26077_IG06
+                       ;; size=8 bbWeight=2 PerfScore 8.00
 G_M26077_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19]
             mov     x20, x0
@@ -101,21 +99,19 @@ G_M26077_IG05:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M26077_IG06:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x20] +[x0 x19]
+            cbz     x0, G_M26077_IG07
             ldr     w3, [x0, #0x08]
-            cbz     w3, G_M26077_IG07
-            add     x2, x19, #12
-            ; byrRegs +[x2]
-            b       G_M26077_IG08
-                       ;; size=16 bbWeight=2 PerfScore 11.00
+            cbnz    w3, G_M26077_IG08
+                       ;; size=12 bbWeight=2 PerfScore 10.00
 G_M26077_IG07:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ; byrRegs -[x2]
             mov     x20, x19
             ; gcrRegs +[x20]
             b       G_M26077_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
-            ; gcrRegs -[x19-x20] +[x0]
+G_M26077_IG08:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x20] +[x0]
+            add     x2, x19, #12
             ; byrRegs +[x2]
             add     x0, x0, #12
             ; gcrRegs -[x0]
@@ -130,15 +126,13 @@ G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, by
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs +[x0]
+            ; gcrRegs -[x19] +[x0]
             ; byrRegs -[x0 x2]
-            mov     x19, x0
-            ; gcrRegs +[x19]
-            mov     x20, x19
+            mov     x20, x0
             ; gcrRegs +[x20]
                        ;; size=44 bbWeight=2 PerfScore 17.00
 G_M26077_IG09:        ; bbWeight=8, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -159,7 +153,7 @@ G_M26077_IG11:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 232, prolog size 12, PerfScore 274.50, instruction count 58, allocated bytes for code 232 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 269.50, instruction count 55, allocated bytes for code 220 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -170,7 +164,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 26293.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 29305.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+5.41%) : 17940.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)

@@ -19,7 +19,7 @@
 ;
 ; Lcl frame size = 8
 
-G_M5512_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M5512_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
@@ -47,7 +47,7 @@ G_M5512_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    w0, G_M5512_IG09
+            cbnz    w0, G_M5512_IG07
                        ;; size=44 bbWeight=2 PerfScore 35.00
 G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x10]
@@ -56,11 +56,11 @@ G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             mov     w1, #0xD1FFAB1E
             ; gcrRegs -[x1]
             cmp     w0, w1
-            beq     G_M5512_IG07
+            beq     G_M5512_IG09
             ldr     x19, [x19, #0x08]
                        ;; size=24 bbWeight=2 PerfScore 22.00
 G_M5512_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cbz     x19, G_M5512_IG07
+            cbz     x19, G_M5512_IG09
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x1, #0xD1FFAB1E
@@ -70,10 +70,11 @@ G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x1]
             cmp     x19, x1
             bne     G_M5512_IG03
-                       ;; size=24 bbWeight=4 PerfScore 24.00
+            b       G_M5512_IG11
+                       ;; size=28 bbWeight=4 PerfScore 28.00
 G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1 x19]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
@@ -81,15 +82,18 @@ G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M5512_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M5512_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M5512_IG09
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 148, prolog size 12, PerfScore 100.00, instruction count 37, allocated bytes for code 148 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 104.50, instruction count 39, allocated bytes for code 156 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -100,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

smoke_tests.nativeaot.linux.arm64.checked.mch

-8 (-5.41%) : 2470.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)

@@ -76,10 +76,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0x08]
-            cbz     w0, G_M49441_IG04
-            cbz     x20, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w0, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     x0, x20
@@ -93,16 +91,12 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
+            cbz     x20, G_M49441_IG07
             ldr     w21, [x20, #0x08]
-            cbz     w21, G_M49441_IG07
-            add     x0, x20, #12
-            ; byrRegs +[x0]
-            sxtw    w1, w21
-            b       G_M49441_IG09
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+            cbnz    w21, G_M49441_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
-            ; byrRegs -[x0]
             mov     x0, x19
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -112,9 +106,11 @@ G_M49441_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0001 {x0}, gcvars, byref, isz
+G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x20]
+            add     x0, x20, #12
             ; byrRegs +[x0]
+            sxtw    w1, w21
             bl      System.IO.Path:IsPathRooted(System.ReadOnlySpan`1[ushort]):ubyte
             ; byrRegs -[x0]
             cbnz    w0, G_M49441_IG04
@@ -127,7 +123,7 @@ G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             bl      <unknown method>
             ; gcrRegs -[x19-x20] +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+                       ;; size=36 bbWeight=0.50 PerfScore 4.25
 G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -135,7 +131,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 148, prolog size 16, PerfScore 23.25, instruction count 37, allocated bytes for code 148 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 140, prolog size 16, PerfScore 22.25, instruction count 35, allocated bytes for code 140 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Cfi Info:

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

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

-12 (-3.12%) : 1372.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)

@@ -47,10 +47,8 @@ G_M26691_IG02:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefReg
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M26691_IG03:        ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
             ldr     w23, [x20, #0x08]
-            cbz     w23, G_M26691_IG04
-            cbz     x21, G_M26691_IG07
-            b       G_M26691_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w23, G_M26691_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M26691_IG04:        ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
             mov     x0, x21
@@ -71,11 +69,10 @@ G_M26691_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M26691_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0-x2] +[x20]
+            cbz     x21, G_M26691_IG07
             ldr     w24, [x21, #0x08]
-            cbz     w24, G_M26691_IG07
-            cbz     x22, G_M26691_IG10
-            b       G_M26691_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w24, G_M26691_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M26691_IG07:        ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
             mov     x0, x20
@@ -96,11 +93,10 @@ G_M26691_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M26691_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0-x2] +[x21]
+            cbz     x22, G_M26691_IG10
             ldr     w25, [x22, #0x08]
-            cbz     w25, G_M26691_IG10
-            cbz     x19, G_M26691_IG14
-            b       G_M26691_IG12
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w25, G_M26691_IG12
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M26691_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22]
             mov     x0, x20
@@ -121,8 +117,30 @@ G_M26691_IG11:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0-x2] +[x22]
+            cbz     x19, G_M26691_IG13
             ldr     w0, [x19, #0x08]
-            cbz     w0, G_M26691_IG14
+            cbnz    w0, G_M26691_IG15
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M26691_IG13:        ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
+            mov     x0, x20
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
+            mov     x2, x22
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=0.50 PerfScore 0.75
+G_M26691_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x25, x26, [sp, #0x40]
+            ldp     x23, x24, [sp, #0x30]
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x50
+            b       <unknown method>
+            ; gcr arg pop 0
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M26691_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x0-x2] +[x19]
             mov     w0, w24
             add     x0, x0, w23, UXTW
             add     x0, x0, w25, UXTW
@@ -130,7 +148,7 @@ G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780
             add     x0, x0, w1, UXTW
             mov     x1, #0xD1FFAB1E
             cmp     x0, x1
-            bgt     G_M26691_IG16
+            bgt     G_M26691_IG17
             bl      System.String:FastAllocateString(int):System.String
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -169,8 +187,8 @@ G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=780
             ; gcr arg pop 0
             mov     x0, x26
             ; gcrRegs +[x0]
-                       ;; size=116 bbWeight=0.50 PerfScore 12.25
-G_M26691_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=108 bbWeight=0.50 PerfScore 10.25
+G_M26691_IG16:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x25, x26, [sp, #0x40]
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
@@ -178,32 +196,14 @@ G_M26691_IG13:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M26691_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x26] +[x20-x22]
-            mov     x0, x20
-            ; gcrRegs +[x0]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            mov     x2, x22
-            ; gcrRegs +[x2]
-                       ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M26691_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0x40]
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x50
-            b       <unknown method>
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M26691_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0-x2 x20-x22]
+G_M26691_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x26]
             bl      System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 384, prolog size 40, PerfScore 47.75, instruction count 96, allocated bytes for code 384 (MethodHash=389697bc) for method System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 372, prolog size 40, PerfScore 46.25, instruction count 93, allocated bytes for code 372 (MethodHash=389697bc) for method System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Cfi Info:

+12 (+3.06%) : 1350.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)

@@ -82,58 +82,64 @@ G_M25962_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ldrsb   wzr, [x20]
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M25962_IG09:        ; bbWeight=4, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            str     x20, [fp, #0x18]   // [V06 loc3]
+            stp     x20, x20, [fp, #0x10]  // [V00 arg0], [V06 loc3]
+            ; GC ptr vars +{V00}
             ldr     x0, [fp, #0x18]    // [V06 loc3]
             ; byrRegs +[x0]
             sub     x1, x0, #4
                        ;; size=12 bbWeight=4 PerfScore 14.00
-G_M25962_IG10:        ; bbWeight=32, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG10:        ; bbWeight=32, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x20]
             ; byrRegs -[x0]
             ldr     w0, [x1]
             and     w2, w0, #0xD1FFAB1E
-            cbnz    w2, G_M25962_IG13
+            cbnz    w2, G_M25962_IG12
                        ;; size=12 bbWeight=32 PerfScore 144.00
-G_M25962_IG11:        ; bbWeight=16, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG11:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             orr     w2, w0, w19
             mov     w3, w0
             casal   w3, w2, [x1]
             cmp     w3, w0
             bne     G_M25962_IG10
-                       ;; size=20 bbWeight=16 PerfScore 88.00
-G_M25962_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20]
             b       G_M25962_IG26
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M25962_IG13:        ; bbWeight=32, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x20]
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M25962_IG12:        ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             and     w3, w0, #0xD1FFAB1E
             mov     w4, #0xD1FFAB1E
             cmp     w3, w4
             beq     G_M25962_IG23
-            tbnz    w0, #27, G_M25962_IG24
+            tbnz    w0, #27, G_M25962_IG15
             uxth    w2, w0
             cmp     w2, w19
             bne     G_M25962_IG16
                        ;; size=32 bbWeight=32 PerfScore 176.00
-G_M25962_IG14:        ; bbWeight=16, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG13:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             add     w2, w0, #16, LSL #12
             tst     w2, #0xD1FFAB1E
-            beq     G_M25962_IG24
+            beq     G_M25962_IG14
             mov     w3, w0
             casal   w3, w2, [x1]
             cmp     w3, w0
             bne     G_M25962_IG10
-                       ;; size=28 bbWeight=16 PerfScore 112.00
-G_M25962_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20]
             b       G_M25962_IG26
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M25962_IG16:        ; bbWeight=4, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+                       ;; size=32 bbWeight=16 PerfScore 128.00
+G_M25962_IG14:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
             ; gcrRegs +[x20]
+            b       G_M25962_IG24
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M25962_IG15:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x20]
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
+            ; gcrRegs +[x20]
+            b       G_M25962_IG24
+                       ;; size=8 bbWeight=16 PerfScore 48.00
+G_M25962_IG16:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
             str     xzr, [fp, #0x18]   // [V06 loc3]
             cbz     w21, G_M25962_IG20
                        ;; size=8 bbWeight=4 PerfScore 8.00
-G_M25962_IG17:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w22, #0xD1FFAB1E
             ble     G_M25962_IG18
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]
@@ -145,32 +151,29 @@ G_M25962_IG17:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 8.00
-G_M25962_IG18:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG18:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w22, #0
             ble     G_M25962_IG20
-            str     x20, [fp, #0x10]   // [V00 arg0]
-            ; GC ptr vars +{V00}
             mov     w0, w22
-                       ;; size=16 bbWeight=2 PerfScore 6.00
-G_M25962_IG19:        ; bbWeight=2, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x20]
+                       ;; size=12 bbWeight=2 PerfScore 4.00
+G_M25962_IG19:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     w0, [x0]
-            ldr     x20, [fp, #0x10]   // [V00 arg0]
-            ; gcrRegs +[x20]
             cbnz    w0, G_M25962_IG28
-                       ;; size=24 bbWeight=2 PerfScore 16.00
-G_M25962_IG20:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars -{V00}
+                       ;; size=20 bbWeight=2 PerfScore 12.00
+G_M25962_IG20:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             add     w22, w22, #1
             cmp     w22, w21
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
+            ; gcrRegs +[x20]
             ble     G_M25962_IG09
-                       ;; size=12 bbWeight=4 PerfScore 8.00
-G_M25962_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=16 bbWeight=4 PerfScore 16.00
+G_M25962_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x20]
+            ; GC ptr vars -{V00}
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M25962_IG22:        ; bbWeight=0.50, epilog, nogc, extend
@@ -206,14 +209,14 @@ G_M25962_IG27:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M25962_IG28:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x20]
+G_M25962_IG28:        ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; GC ptr vars +{V00 V08}
             bl      CORINFO_HELP_POLL_GC
             ; gcr arg pop 0
             b       G_M25962_IG20
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 392, prolog size 32, PerfScore 606.50, instruction count 98, allocated bytes for code 392 (MethodHash=c3c79a95) for method System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
+; Total bytes of code 404, prolog size 32, PerfScore 711.50, instruction count 101, allocated bytes for code 404 (MethodHash=c3c79a95) for method System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
 ; ============================================================
 
 Cfi Info:

+4 (+3.57%) : 15470.dasm - System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)

@@ -23,17 +23,17 @@ G_M11536_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M11536_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M11536_IG06
+            cbz     x0, G_M11536_IG05
             add     x1, x0, #16
             ; byrRegs +[x1]
             ldar    w1, [x1]
             ; byrRegs -[x1]
-            tbnz    w1, #0, G_M11536_IG05
+            tbnz    w1, #0, G_M11536_IG06
                        ;; size=16 bbWeight=1 PerfScore 5.50
 G_M11536_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x08]
             cmn     x1, #1
-            beq     G_M11536_IG05
+            beq     G_M11536_IG06
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M11536_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x19, [sp, #0x18]
@@ -42,6 +42,14 @@ G_M11536_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M11536_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ; gcrRegs +[x0]
+            bl      System.ArgumentNullException:Throw(System.String)
+            ; gcrRegs -[x0]
+            brk_unix #0
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M11536_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // <unknown class>
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             bl      CORINFO_HELP_NEWSFAST
@@ -60,17 +68,10 @@ G_M11536_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x19]
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M11536_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            adrp    x0, [HIGH RELOC #0xD1FFAB1E]
-            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ; gcrRegs +[x0]
-            bl      System.ArgumentNullException:Throw(System.String)
-            ; gcrRegs -[x0]
             brk_unix #0
-                       ;; size=16 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 112, prolog size 12, PerfScore 14.25, instruction count 28, allocated bytes for code 112 (MethodHash=02e6d2ef) for method System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 14.25, instruction count 29, allocated bytes for code 116 (MethodHash=02e6d2ef) for method System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)
 ; ============================================================
 
 Cfi Info:

+4 (+3.57%) : 15567.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)

@@ -23,13 +23,13 @@ G_M46483_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M46483_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x1, G_M46483_IG07
-            tbnz    w2, #31, G_M46483_IG06
+            cbz     x1, G_M46483_IG06
+            tbnz    w2, #31, G_M46483_IG07
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M46483_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             mov     w14, #0xD1FFAB1E
             cmp     w2, w14
-            bgt     G_M46483_IG06
+            bgt     G_M46483_IG07
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
 G_M46483_IG04:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
             str     w2, [x0, #0x10]
@@ -47,6 +47,14 @@ G_M46483_IG05:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M46483_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ; gcrRegs +[x0]
+            bl      System.ArgumentNullException:Throw(System.String)
+            ; gcrRegs -[x0]
+            brk_unix #0
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M46483_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // <unknown class>
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             bl      CORINFO_HELP_NEWSFAST
@@ -62,17 +70,10 @@ G_M46483_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x19]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M46483_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            adrp    x0, [HIGH RELOC #0xD1FFAB1E]
-            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ; gcrRegs +[x0]
-            bl      System.ArgumentNullException:Throw(System.String)
-            ; gcrRegs -[x0]
             brk_unix #0
-                       ;; size=16 bbWeight=0 PerfScore 0.00
+                       ;; size=40 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 112, prolog size 12, PerfScore 12.50, instruction count 28, allocated bytes for code 112 (MethodHash=d1844a6c) for method System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 12.50, instruction count 29, allocated bytes for code 116 (MethodHash=d1844a6c) for method System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
 ; ============================================================
 
 Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 1,414 287 197 930 -1,556 +1,924
benchmarks.run_pgo.linux.arm64.checked.mch 10,706 5,547 1,568 3,591 -27,264 +12,292
benchmarks.run_tiered.linux.arm64.checked.mch 615 92 82 441 -1,112 +972
coreclr_tests.run.linux.arm64.checked.mch 20,947 10,308 1,108 9,531 -47,300 +8,432
libraries.crossgen2.linux.arm64.checked.mch 4,696 523 393 3,780 -3,224 +3,248
libraries.pmi.linux.arm64.checked.mch 10,522 2,260 1,415 6,847 -14,120 +10,072
libraries_tests.run.linux.arm64.Release.mch 41,250 13,166 6,812 21,272 -107,120 +60,220
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 18,612 3,684 1,412 13,516 -32,060 +10,816
realworld.run.linux.arm64.checked.mch 1,661 258 206 1,197 -1,740 +1,568
smoke_tests.nativeaot.linux.arm64.checked.mch 463 71 45 347 -536 +340
110,886 36,196 13,238 61,452 -236,032 +109,884

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,636 2,755 30,881 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 153,704 60,106 93,598 152 (0.10%) 152 (0.10%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,983 47,942 16,041 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 628,136 383,770 244,366 334 (0.05%) 335 (0.05%)
libraries.crossgen2.linux.arm64.checked.mch 233,777 15 233,762 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 294,238 6 294,232 1 (0.00%) 2 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 737,784 487,495 250,289 3,053 (0.41%) 3,054 (0.41%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,057 21,560 282,497 6 (0.00%) 14 (0.00%)
realworld.run.linux.arm64.checked.mch 33,304 151 33,153 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,041 6 19,035 0 (0.00%) 0 (0.00%)
2,501,660 1,003,806 1,497,854 3,546 (0.14%) 3,557 (0.14%)

jit-analyze output

benchmarks.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15579776 (overridden on cmd)
Total bytes of diff: 15580144 (overridden on cmd)
Total bytes of delta: 368 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 28414.dasm (0.49 % of base)
         100 : 28851.dasm (0.52 % of base)
          60 : 13360.dasm (3.14 % of base)
          44 : 542.dasm (2.29 % of base)
          40 : 22379.dasm (0.42 % of base)
          36 : 18267.dasm (0.61 % of base)
          36 : 18317.dasm (1.04 % of base)
          36 : 22973.dasm (0.46 % of base)
          32 : 11481.dasm (0.22 % of base)
          32 : 30817.dasm (0.86 % of base)
          32 : 32879.dasm (0.84 % of base)
          32 : 9055.dasm (2.04 % of base)
          32 : 29206.dasm (2.35 % of base)
          32 : 29744.dasm (0.23 % of base)
          28 : 29742.dasm (0.47 % of base)
          28 : 1739.dasm (0.27 % of base)
          28 : 20136.dasm (0.60 % of base)
          24 : 11476.dasm (0.30 % of base)
          24 : 17479.dasm (1.21 % of base)
          24 : 33030.dasm (0.23 % of base)

Top file improvements (bytes):
         -32 : 11489.dasm (-0.32 % of base)
         -32 : 12480.dasm (-0.32 % of base)
         -28 : 4120.dasm (-0.52 % of base)
         -24 : 6901.dasm (-0.68 % of base)
         -16 : 3431.dasm (-3.36 % of base)
         -16 : 3513.dasm (-1.25 % of base)
         -16 : 12345.dasm (-4.04 % of base)
         -16 : 14072.dasm (-1.26 % of base)
         -16 : 9141.dasm (-1.20 % of base)
         -12 : 11497.dasm (-0.12 % of base)
         -12 : 4165.dasm (-4.62 % of base)
         -12 : 7191.dasm (-0.17 % of base)
         -12 : 755.dasm (-1.92 % of base)
         -12 : 12679.dasm (-0.56 % of base)
         -12 : 19749.dasm (-0.43 % of base)
         -12 : 2345.dasm (-3.33 % of base)
         -12 : 2597.dasm (-0.36 % of base)
         -12 : 1039.dasm (-1.27 % of base)
         -12 : 12117.dasm (-3.45 % of base)
         -12 : 28854.dasm (-0.22 % of base)

71 total files with Code Size differences (35 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (0.49 % of base) : 28414.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 28851.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          60 (3.14 % of base) : 13360.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          44 (2.29 % of base) : 542.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.42 % of base) : 22379.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 22973.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (1.04 % of base) : 18317.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 18267.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (0.22 % of base) : 11481.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 29744.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.35 % of base) : 29206.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          32 (0.84 % of base) : 32879.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
          32 (0.86 % of base) : 30817.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
          32 (2.04 % of base) : 9055.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.47 % of base) : 29742.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          28 (0.60 % of base) : 20136.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          28 (0.27 % of base) : 1739.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          24 (0.23 % of base) : 33030.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 11476.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          24 (1.21 % of base) : 17479.dasm - Interop+procfs:TryParseStatusFile(System.String,byref):ubyte (FullOpts)

Top method improvements (bytes):
         -32 (-0.32 % of base) : 12480.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.32 % of base) : 11489.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -28 (-0.52 % of base) : 4120.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         -24 (-0.68 % of base) : 6901.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -16 (-1.25 % of base) : 3513.dasm - Interop+Crypto:HashAlgorithmToEvp(System.String):long (FullOpts)
         -16 (-3.36 % of base) : 3431.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.20 % of base) : 9141.dasm - System.Text.Json.JsonHelpers:TryParseDateTimeOffset(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
         -16 (-4.04 % of base) : 12345.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -16 (-1.26 % of base) : 14072.dasm - System.Xml.XmlBinaryReader:ReadElementContentAsInt():int:this (FullOpts)
         -12 (-1.27 % of base) : 1039.dasm - BenchmarkDotNet.Engines.EngineActualStage:.ctor(BenchmarkDotNet.Engines.IEngine):this (FullOpts)
         -12 (-0.22 % of base) : 28854.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
         -12 (-0.12 % of base) : 11497.dasm - Jil.Deserialize.Methods:SkipWithLeadCharThunkReader(byref,int) (FullOpts)
         -12 (-0.43 % of base) : 19749.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckAbstractClassImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-3.33 % of base) : 2345.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.56 % of base) : 12679.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
         -12 (-4.62 % of base) : 4165.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.45 % of base) : 12117.dasm - System.Security.Cryptography.ECParameters:Validate():this (FullOpts)
         -12 (-1.92 % of base) : 755.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-0.36 % of base) : 2597.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
         -12 (-0.17 % of base) : 7191.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WritePrimitive(System.Xml.Serialization.TypeMapping,System.String):this (FullOpts)

Top method regressions (percentages):
           8 (4.65 % of base) : 15270.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 21208.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 6566.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
          60 (3.14 % of base) : 13360.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
           8 (2.74 % of base) : 7842.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          12 (2.73 % of base) : 29918.dasm - System.Linq.Tests.Perf_Enumerable:EmptyTakeSelectToArray():this (FullOpts)
          32 (2.35 % of base) : 29206.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          44 (2.29 % of base) : 542.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.22 % of base) : 2456.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           4 (2.22 % of base) : 17753.dasm - System.Xml.XmlTextReaderImpl:MoveToNextContentNode(ubyte):ubyte:this (FullOpts)
           8 (2.13 % of base) : 19936.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.04 % of base) : 9055.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (2.00 % of base) : 17081.dasm - System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)
          12 (1.92 % of base) : 15988.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[int](System.Collections.Generic.IEnumerable`1[int],int):int[] (FullOpts)
          20 (1.88 % of base) : 15248.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterIndexViewModel:Write3_CampaignSummaryViewModel(System.String,System.String,MicroBenchmarks.Serializers.CampaignSummaryViewModel,ubyte,ubyte):this (FullOpts)
          16 (1.85 % of base) : 12772.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
           4 (1.75 % of base) : 20854.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
           4 (1.61 % of base) : 19587.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          12 (1.36 % of base) : 16181.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
           4 (1.27 % of base) : 180.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)

Top method improvements (percentages):
          -8 (-6.45 % of base) : 15383.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
          -8 (-6.06 % of base) : 1975.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 4922.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
         -12 (-4.62 % of base) : 4165.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -16 (-4.04 % of base) : 12345.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
          -4 (-3.57 % of base) : 16639.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
         -12 (-3.45 % of base) : 12117.dasm - System.Security.Cryptography.ECParameters:Validate():this (FullOpts)
         -16 (-3.36 % of base) : 3431.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.33 % of base) : 2345.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -4 (-3.23 % of base) : 20072.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          -8 (-2.78 % of base) : 12207.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectInternal(int,System.Threading.CancellationToken,int):this (FullOpts)
          -8 (-2.41 % of base) : 16205.dasm - System.Collections.IterateForEach`1[int]:Stack():int:this (FullOpts)
          -4 (-2.27 % of base) : 4704.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13318.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 14485.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 21535.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 22543.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 28677.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 8622.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7944.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)


benchmarks.run_pgo.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 80916176 (overridden on cmd)
Total bytes of diff: 80901204 (overridden on cmd)
Total bytes of delta: -14972 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         284 : 134867.dasm (11.11 % of base)
         100 : 114762.dasm (0.49 % of base)
         100 : 121879.dasm (0.52 % of base)
          40 : 97418.dasm (0.42 % of base)
          36 : 100640.dasm (0.46 % of base)
          32 : 101774.dasm (2.20 % of base)
          32 : 150248.dasm (4.02 % of base)
          32 : 28559.dasm (0.22 % of base)
          32 : 95543.dasm (2.20 % of base)
          32 : 121632.dasm (2.20 % of base)
          32 : 130486.dasm (0.23 % of base)
          32 : 130696.dasm (2.69 % of base)
          32 : 139225.dasm (2.20 % of base)
          32 : 147816.dasm (2.20 % of base)
          32 : 23595.dasm (2.20 % of base)
          32 : 54210.dasm (2.20 % of base)
          28 : 100966.dasm (4.76 % of base)
          28 : 123888.dasm (4.76 % of base)
          28 : 92783.dasm (4.76 % of base)
          28 : 114136.dasm (4.76 % of base)

Top file improvements (bytes):
        -504 : 147752.dasm (-34.90 % of base)
        -456 : 147769.dasm (-33.14 % of base)
        -156 : 70760.dasm (-21.55 % of base)
        -156 : 70731.dasm (-21.55 % of base)
         -72 : 50583.dasm (-3.10 % of base)
         -64 : 94632.dasm (-1.80 % of base)
         -56 : 70761.dasm (-0.90 % of base)
         -56 : 102666.dasm (-6.70 % of base)
         -44 : 134744.dasm (-3.10 % of base)
         -40 : 1077.dasm (-1.25 % of base)
         -40 : 75812.dasm (-2.89 % of base)
         -40 : 85640.dasm (-0.21 % of base)
         -36 : 69858.dasm (-0.67 % of base)
         -36 : 48315.dasm (-0.81 % of base)
         -36 : 94549.dasm (-2.79 % of base)
         -36 : 32188.dasm (-0.81 % of base)
         -36 : 43925.dasm (-0.81 % of base)
         -32 : 91787.dasm (-0.53 % of base)
         -32 : 125442.dasm (-0.72 % of base)
         -32 : 69938.dasm (-1.54 % of base)

72 total files with Code Size differences (35 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         284 (11.11 % of base) : 134867.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         100 (0.49 % of base) : 114762.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 121879.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          40 (0.42 % of base) : 97418.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 100640.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          32 (0.22 % of base) : 28559.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 130486.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.20 % of base) : 101774.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 95543.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 121632.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 139225.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 147816.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 23595.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 54210.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.69 % of base) : 130696.dasm - System.Reflection.TypeNameParser:ParseNamedTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier1)
          32 (4.02 % of base) : 150248.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem[System.__Canon](System.Action`1[System.__Canon],System.__Canon,ubyte):ubyte (Tier1)
          28 (4.76 % of base) : 100966.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 123888.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 92783.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 114136.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)

Top method improvements (bytes):
        -504 (-34.90 % of base) : 147752.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -456 (-33.14 % of base) : 147769.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 70760.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 70731.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -72 (-3.10 % of base) : 50583.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
         -64 (-1.80 % of base) : 94632.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Free():this (Tier1)
         -56 (-6.70 % of base) : 102666.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -56 (-0.90 % of base) : 70761.dasm - LUDecomp:Run():double:this (Tier1)
         -44 (-3.10 % of base) : 134744.dasm - System.Text.RegularExpressions.RegexCharClass:MayOverlap(System.String,System.String):ubyte (Tier1)
         -40 (-0.21 % of base) : 85640.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -40 (-2.89 % of base) : 75812.dasm - System.Reflection.TypeNameParser:Parse():System.Type:this (Tier1)
         -40 (-1.25 % of base) : 1077.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier0-FullOpts)
         -36 (-2.79 % of base) : 94549.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:SetSlotAssigned(int,byref):this (Tier1)
         -36 (-0.81 % of base) : 48315.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -36 (-0.81 % of base) : 32188.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -36 (-0.81 % of base) : 43925.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -36 (-0.67 % of base) : 69858.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -32 (-0.72 % of base) : 125442.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -32 (-1.54 % of base) : 69938.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -32 (-0.53 % of base) : 91787.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)

Top method regressions (percentages):
         284 (11.11 % of base) : 134867.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          16 (10.81 % of base) : 49847.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 58399.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 5543.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 7466.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 44919.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (7.14 % of base) : 49848.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 44923.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 58400.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 7467.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (5.48 % of base) : 153180.dasm - System.Reflection.TypeNameParser:GetNextToken():int:this (Tier1)
           8 (5.13 % of base) : 59722.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
           8 (4.76 % of base) : 91830.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:Enqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):this (Tier1)
          28 (4.76 % of base) : 100966.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 123888.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 92783.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 114136.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 118825.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 120816.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 58658.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)

Top method improvements (percentages):
        -504 (-34.90 % of base) : 147752.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -456 (-33.14 % of base) : 147769.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 70760.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 70731.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          -8 (-11.11 % of base) : 5856.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
         -24 (-7.41 % of base) : 112419.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -24 (-7.41 % of base) : 28562.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -24 (-7.41 % of base) : 114763.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-7.25 % of base) : 103169.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
         -20 (-7.25 % of base) : 58164.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
         -20 (-7.25 % of base) : 54244.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
         -20 (-7.25 % of base) : 111701.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
         -20 (-7.25 % of base) : 109169.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
         -16 (-7.02 % of base) : 17466.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 17464.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -56 (-6.70 % of base) : 102666.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -4 (-6.67 % of base) : 37030.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 142611.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 21287.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 22319.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)


benchmarks.run_tiered.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 24709612 (overridden on cmd)
Total bytes of diff: 24709472 (overridden on cmd)
Total bytes of delta: -140 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 57319.dasm (0.49 % of base)
         100 : 58077.dasm (0.52 % of base)
          44 : 43053.dasm (2.29 % of base)
          40 : 53009.dasm (0.42 % of base)
          36 : 41559.dasm (0.61 % of base)
          36 : 50627.dasm (1.04 % of base)
          36 : 53786.dasm (0.46 % of base)
          32 : 23776.dasm (0.22 % of base)
          32 : 59272.dasm (0.23 % of base)
          32 : 49397.dasm (8.60 % of base)
          28 : 59270.dasm (0.47 % of base)
          24 : 24810.dasm (0.25 % of base)
          24 : 23728.dasm (0.30 % of base)
          24 : 62981.dasm (0.23 % of base)
          12 : 35038.dasm (0.20 % of base)
          12 : 36261.dasm (0.28 % of base)
          12 : 47270.dasm (0.58 % of base)
          12 : 24392.dasm (0.53 % of base)
          12 : 37682.dasm (0.49 % of base)
           8 : 19130.dasm (1.28 % of base)

Top file improvements (bytes):
        -420 : 63677.dasm (-31.44 % of base)
        -152 : 38820.dasm (-14.13 % of base)
         -56 : 53833.dasm (-6.97 % of base)
         -28 : 30298.dasm (-0.52 % of base)
         -16 : 19036.dasm (-1.25 % of base)
         -16 : 29664.dasm (-3.36 % of base)
         -12 : 10414.dasm (-0.57 % of base)
         -12 : 29794.dasm (-3.45 % of base)
         -12 : 45940.dasm (-1.23 % of base)
         -12 : 4928.dasm (-1.92 % of base)
          -8 : 19209.dasm (-6.06 % of base)
          -8 : 4894.dasm (-1.67 % of base)
          -8 : 51553.dasm (-1.87 % of base)
          -8 : 53839.dasm (-0.49 % of base)
          -8 : 29571.dasm (-0.46 % of base)
          -8 : 29815.dasm (-0.85 % of base)
          -8 : 41026.dasm (-1.75 % of base)
          -8 : 24861.dasm (-0.42 % of base)
          -8 : 30304.dasm (-0.82 % of base)
          -8 : 45973.dasm (-0.20 % of base)

65 total files with Code Size differences (28 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (0.49 % of base) : 57319.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 58077.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          44 (2.29 % of base) : 43053.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
          40 (0.42 % of base) : 53009.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 53786.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (1.04 % of base) : 50627.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (Tier1)
          36 (0.61 % of base) : 41559.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
          32 (0.22 % of base) : 23776.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 59272.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (8.60 % of base) : 49397.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
          28 (0.47 % of base) : 59270.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          24 (0.23 % of base) : 62981.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.25 % of base) : 24810.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 23728.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (0.20 % of base) : 35038.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.28 % of base) : 36261.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.58 % of base) : 47270.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)
          12 (0.53 % of base) : 24392.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          12 (0.49 % of base) : 37682.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier1)
           8 (1.32 % of base) : 46137.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetWellKnownTypeMember(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)

Top method improvements (bytes):
        -420 (-31.44 % of base) : 63677.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 38820.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 53833.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -28 (-0.52 % of base) : 30298.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
         -16 (-1.25 % of base) : 19036.dasm - Interop+Crypto:HashAlgorithmToEvp(System.String):long (Tier1)
         -16 (-3.36 % of base) : 29664.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
         -12 (-1.23 % of base) : 45940.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
         -12 (-0.57 % of base) : 10414.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
         -12 (-3.45 % of base) : 29794.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)
         -12 (-1.92 % of base) : 4928.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-1.87 % of base) : 51553.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-0.20 % of base) : 45973.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:LoadMembers():this (Tier1)
          -8 (-1.75 % of base) : 41026.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:EndOfLine(System.String,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia (Tier1)
          -8 (-0.49 % of base) : 53839.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)
          -8 (-6.06 % of base) : 19209.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
          -8 (-0.42 % of base) : 24861.dasm - System.IO.Tests.Perf_FileStream+<WriteAsync>d__37:MoveNext():this (Tier1)
          -8 (-0.82 % of base) : 30304.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
          -8 (-0.85 % of base) : 29815.dasm - System.Security.Cryptography.ECCurve:Validate():this (Tier1)
          -8 (-0.46 % of base) : 29571.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -8 (-1.67 % of base) : 4894.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)

Top method regressions (percentages):
          32 (8.60 % of base) : 49397.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           8 (4.00 % of base) : 47454.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (Tier1)
           4 (3.57 % of base) : 10428.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
           8 (2.74 % of base) : 49257.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
           8 (2.35 % of base) : 37897.dasm - Neural:DoNNetIteration(long):long (Tier1-OSR)
           8 (2.35 % of base) : 35337.dasm - NeuralJagged:DoNNetIteration(long):long (Tier1-OSR)
          44 (2.29 % of base) : 43053.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
           4 (2.22 % of base) : 25165.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (Tier1)
           4 (1.75 % of base) : 47100.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (Tier1)
           4 (1.61 % of base) : 46555.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (Tier1)
           4 (1.39 % of base) : 2847.dasm - System.IO.Stream:ReadAtLeastCore(System.Span`1[ubyte],int,ubyte):int:this (Tier1)
           4 (1.37 % of base) : 59641.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
           8 (1.32 % of base) : 46137.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetWellKnownTypeMember(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)
           8 (1.28 % of base) : 19130.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopyUtf16BE(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (Tier1)
           4 (1.27 % of base) : 950.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
           4 (1.19 % of base) : 23845.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
           4 (1.18 % of base) : 20207.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:DetermineIsCompatibleWithCurrentOptions():this (Tier1)
           4 (1.16 % of base) : 50967.dasm - Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
           4 (1.08 % of base) : 18730.dasm - System.Formats.Asn1.AsnDecoder:DecodeLength(System.ReadOnlySpan`1[ubyte],int,byref,byref):int (Tier1)
          36 (1.04 % of base) : 50627.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (Tier1)

Top method improvements (percentages):
        -420 (-31.44 % of base) : 63677.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 38820.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 53833.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -8 (-6.06 % of base) : 19209.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
         -12 (-3.45 % of base) : 29794.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)
         -16 (-3.36 % of base) : 29664.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
          -4 (-2.13 % of base) : 39154.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 24125.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 1440.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 19591.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4656.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-1.92 % of base) : 4928.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-1.87 % of base) : 51553.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-1.75 % of base) : 41026.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:EndOfLine(System.String,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia (Tier1)
          -8 (-1.67 % of base) : 4894.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
          -4 (-1.27 % of base) : 23411.dasm - Benchstone.MDBenchI.MDArray2:Bench(int):ubyte (Tier1-OSR)
         -16 (-1.25 % of base) : 19036.dasm - Interop+Crypto:HashAlgorithmToEvp(System.String):long (Tier1)
         -12 (-1.23 % of base) : 45940.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
          -4 (-1.05 % of base) : 4346.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)
          -4 (-1.03 % of base) : 30322.dasm - System.Net.Security.TargetHostNameHelper:NormalizeHostName(System.String):System.String (Tier1)


coreclr_tests.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 509948648 (overridden on cmd)
Total bytes of diff: 509909780 (overridden on cmd)
Total bytes of delta: -38868 (-0.01 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         120 : 415462.dasm (3.36 % of base)
         100 : 424977.dasm (2.89 % of base)
          88 : 625540.dasm (1.85 % of base)
          80 : 561490.dasm (3.60 % of base)
          60 : 439898.dasm (34.88 % of base)
          56 : 440315.dasm (32.56 % of base)
          52 : 323635.dasm (24.07 % of base)
          52 : 323639.dasm (24.07 % of base)
          48 : 416023.dasm (2.29 % of base)
          44 : 299919.dasm (8.87 % of base)
          44 : 532928.dasm (2.29 % of base)
          40 : 625407.dasm (0.46 % of base)
          40 : 425146.dasm (2.03 % of base)
          36 : 260057.dasm (1.04 % of base)
          36 : 532449.dasm (1.04 % of base)
          36 : 532399.dasm (0.61 % of base)
          36 : 187231.dasm (1.07 % of base)
          36 : 426333.dasm (1.42 % of base)
          32 : 439826.dasm (16.00 % of base)
          32 : 439788.dasm (16.00 % of base)

Top file improvements (bytes):
        -504 : 252889.dasm (-34.90 % of base)
        -168 : 316496.dasm (-31.82 % of base)
        -156 : 248393.dasm (-21.55 % of base)
        -156 : 387274.dasm (-2.88 % of base)
        -156 : 248380.dasm (-21.55 % of base)
        -156 : 614376.dasm (-2.91 % of base)
        -156 : 386402.dasm (-2.91 % of base)
        -156 : 613929.dasm (-2.91 % of base)
        -128 : 560076.dasm (-4.14 % of base)
         -56 : 416100.dasm (-1.12 % of base)
         -56 : 312916.dasm (-8.09 % of base)
         -56 : 570467.dasm (-8.05 % of base)
         -52 : 248403.dasm (-0.83 % of base)
         -52 : 425904.dasm (-0.96 % of base)
         -48 : 549755.dasm (-5.66 % of base)
         -48 : 415378.dasm (-2.31 % of base)
         -40 : 425578.dasm (-1.13 % of base)
         -36 : 419138.dasm (-0.75 % of base)
         -32 : 266928.dasm (-10.26 % of base)
         -32 : 266980.dasm (-10.81 % of base)

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

Top method regressions (bytes):
         120 (3.36 % of base) : 415462.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         100 (2.89 % of base) : 424977.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
          88 (1.85 % of base) : 625540.dasm - Internal.IL.Stubs.UnsafeIntrinsics:EmitIL(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
          80 (3.60 % of base) : 561490.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          60 (34.88 % of base) : 439898.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 440315.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (24.07 % of base) : 323635.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 323639.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (2.29 % of base) : 416023.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          44 (8.87 % of base) : 299919.dasm - RetBufferBug:Main():int (Tier1-OSR)
          44 (2.29 % of base) : 532928.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.46 % of base) : 625407.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          40 (2.03 % of base) : 425146.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          36 (1.42 % of base) : 426333.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.MethodEntryPointTableNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
          36 (1.04 % of base) : 532449.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 532399.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (1.04 % of base) : 260057.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
          36 (1.07 % of base) : 187231.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
          32 (16.00 % of base) : 439788.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          32 (16.00 % of base) : 439826.dasm - testout1:Sub_Funclet_145():int (FullOpts)

Top method improvements (bytes):
        -504 (-34.90 % of base) : 252889.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 316496.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 248393.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 248380.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-2.91 % of base) : 614376.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.91 % of base) : 613929.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.88 % of base) : 387274.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -156 (-2.91 % of base) : 386402.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -128 (-4.14 % of base) : 560076.dasm - Test_baduwinfo1:bar(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String):int (FullOpts)
         -56 (-1.12 % of base) : 416100.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:ResolveInterfaceMethodToDefaultImplementationOnType(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,byref):int (Tier1)
         -56 (-8.05 % of base) : 570467.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-8.09 % of base) : 312916.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -52 (-0.83 % of base) : 248403.dasm - LUDecomp:Run():double:this (Tier1)
         -52 (-0.96 % of base) : 425904.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -48 (-5.66 % of base) : 549755.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (FullOpts)
         -48 (-2.31 % of base) : 415378.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:FindMatchingVirtualMethodOnTypeByNameAndSig(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,ubyte,System.Func`3[Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc,ubyte]):Internal.TypeSystem.MethodDesc (Tier1)
         -40 (-1.13 % of base) : 425578.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
         -36 (-0.75 % of base) : 419138.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -32 (-10.81 % of base) : 266980.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 266928.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)

Top method regressions (percentages):
          60 (34.88 % of base) : 439898.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 440315.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (24.07 % of base) : 323635.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 323639.dasm - testout1:Test2(int):int (Tier1-OSR)
          32 (16.00 % of base) : 439788.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          32 (16.00 % of base) : 439826.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          32 (16.00 % of base) : 439900.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          28 (14.00 % of base) : 440205.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          28 (14.00 % of base) : 440243.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          28 (14.00 % of base) : 440317.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          24 (12.77 % of base) : 439825.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          24 (12.77 % of base) : 440242.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          16 (11.11 % of base) : 316703.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          20 (10.42 % of base) : 440244.dasm - testout1:Sub_Funclet_146():int (FullOpts)
          20 (10.42 % of base) : 439827.dasm - testout1:Sub_Funclet_146():int (FullOpts)
          20 (10.42 % of base) : 439864.dasm - testout1:Sub_Funclet_184():int (FullOpts)
          20 (10.42 % of base) : 439895.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          20 (10.42 % of base) : 440312.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          20 (10.42 % of base) : 439899.dasm - testout1:Sub_Funclet_222():int (FullOpts)
          20 (10.42 % of base) : 440316.dasm - testout1:Sub_Funclet_222():int (FullOpts)

Top method improvements (percentages):
        -504 (-34.90 % of base) : 252889.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 316496.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 248393.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 248380.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -28 (-14.00 % of base) : 440817.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -28 (-14.00 % of base) : 441233.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -32 (-10.81 % of base) : 266980.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 266928.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -28 (-8.33 % of base) : 267001.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -56 (-8.09 % of base) : 312916.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -56 (-8.05 % of base) : 570467.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -16 (-7.02 % of base) : 251179.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -28 (-6.93 % of base) : 548463.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 251173.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
          -4 (-6.25 % of base) : 387766.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 640.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 24084.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 25672.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 309575.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 387271.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)


libraries.crossgen2.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55736760 (overridden on cmd)
Total bytes of diff: 55736784 (overridden on cmd)
Total bytes of delta: 24 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         132 : 87479.dasm (0.35 % of base)
          84 : 48061.dasm (0.27 % of base)
          52 : 134101.dasm (1.33 % of base)
          44 : 141749.dasm (2.28 % of base)
          40 : 165506.dasm (1.89 % of base)
          40 : 177786.dasm (1.85 % of base)
          40 : 52870.dasm (1.39 % of base)
          32 : 105292.dasm (2.35 % of base)
          32 : 52866.dasm (2.13 % of base)
          32 : 13996.dasm (0.30 % of base)
          32 : 172658.dasm (2.24 % of base)
          32 : 172659.dasm (2.18 % of base)
          32 : 18894.dasm (2.12 % of base)
          28 : 162890.dasm (1.45 % of base)
          28 : 164260.dasm (4.22 % of base)
          28 : 173351.dasm (1.73 % of base)
          24 : 11000.dasm (0.49 % of base)
          24 : 187827.dasm (0.63 % of base)
          24 : 52863.dasm (0.51 % of base)
          24 : 202432.dasm (1.82 % of base)

Top file improvements (bytes):
         -84 : 173348.dasm (-7.81 % of base)
         -52 : 10306.dasm (-2.19 % of base)
         -44 : 170305.dasm (-1.75 % of base)
         -36 : 146546.dasm (-6.34 % of base)
         -36 : 193596.dasm (-6.34 % of base)
         -32 : 163920.dasm (-3.98 % of base)
         -32 : 202433.dasm (-0.86 % of base)
         -28 : 101203.dasm (-1.51 % of base)
         -28 : 104116.dasm (-0.66 % of base)
         -28 : 44698.dasm (-1.62 % of base)
         -24 : 11287.dasm (-0.84 % of base)
         -24 : 80903.dasm (-0.74 % of base)
         -20 : 148933.dasm (-2.38 % of base)
         -20 : 43931.dasm (-0.46 % of base)
         -16 : 28941.dasm (-3.77 % of base)
         -16 : 33711.dasm (-2.65 % of base)
         -16 : 164510.dasm (-0.28 % of base)
         -16 : 107434.dasm (-0.30 % of base)
         -16 : 81006.dasm (-0.59 % of base)
         -16 : 8411.dasm (-3.25 % of base)

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

Top method regressions (bytes):
         132 (0.35 % of base) : 87479.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          84 (0.27 % of base) : 48061.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          52 (1.33 % of base) : 134101.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (2.28 % of base) : 141749.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (1.39 % of base) : 52870.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          40 (1.89 % of base) : 165506.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (1.85 % of base) : 177786.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          32 (2.13 % of base) : 52866.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          32 (2.35 % of base) : 105292.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)
          32 (2.24 % of base) : 172658.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:SystemTypeName(System.String):System.String (FullOpts)
          32 (2.18 % of base) : 172659.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:VbTypeName(System.String):System.String (FullOpts)
          32 (0.30 % of base) : 13996.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          32 (2.12 % of base) : 18894.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (1.73 % of base) : 173351.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:CreateParamOrder(ubyte,int[],System.Reflection.ParameterInfo[],System.Object[],System.String[]):System.Exception:this (FullOpts)
          28 (4.22 % of base) : 164260.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
          28 (1.45 % of base) : 162890.dasm - System.Data.Common.DbColumn:get_Item(System.String):System.Object:this (FullOpts)
          24 (1.82 % of base) : 202432.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):ubyte:this (FullOpts)
          24 (0.51 % of base) : 52863.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          24 (0.63 % of base) : 187827.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (FullOpts)
          24 (0.49 % of base) : 11000.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)

Top method improvements (bytes):
         -84 (-7.81 % of base) : 173348.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -52 (-2.19 % of base) : 10306.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
         -44 (-1.75 % of base) : 170305.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -36 (-6.34 % of base) : 146546.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 193596.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.86 % of base) : 202433.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
         -32 (-3.98 % of base) : 163920.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -28 (-1.62 % of base) : 44698.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTupleBinaryOperatorNestedInfo(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.TupleBinaryOperatorInfo+Multiple:this (FullOpts)
         -28 (-0.66 % of base) : 104116.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+IntoClauseBinder:BindIntoSelector(Microsoft.CodeAnalysis.VisualBasic.Syntax.QueryClauseSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],System.Collections.Generic.HashSet`1[System.String],Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregationRangeVariableSyntax],ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -28 (-1.51 % of base) : 101203.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -24 (-0.74 % of base) : 80903.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindUserDefinedShortCircuitingOperator(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundUserDefinedShortCircuitingOperator:this (FullOpts)
         -24 (-0.84 % of base) : 11287.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WritePrimitive(System.Xml.Serialization.TypeMapping,System.Func`2[System.Object,System.String],System.Object):System.Object:this (FullOpts)
         -20 (-0.46 % of base) : 43931.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
         -20 (-2.38 % of base) : 148933.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -16 (-0.59 % of base) : 81006.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ComputeVariableType(Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.ModifiedIdentifierSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.AsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.EqualsValueSyntax,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
         -16 (-0.30 % of base) : 107434.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ImplementsHelper:FindExplicitlyImplementedMember[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.QualifiedNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],byref):System.__Canon (FullOpts)
         -16 (-0.28 % of base) : 94625.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
         -16 (-0.28 % of base) : 164510.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
         -16 (-2.65 % of base) : 33711.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
         -16 (-3.77 % of base) : 28941.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)

Top method regressions (percentages):
          16 (9.76 % of base) : 11984.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
           8 (8.33 % of base) : 50456.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
           8 (5.71 % of base) : 151081.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 198064.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (4.55 % of base) : 30770.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
          28 (4.22 % of base) : 164260.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
           8 (4.08 % of base) : 1594.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 139142.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (4.00 % of base) : 218179.dasm - System.Threading.ReaderWriterLock+ThreadLocalLockEntry:GetCurrent(long):System.Threading.ReaderWriterLock+ThreadLocalLockEntry (FullOpts)
           8 (3.77 % of base) : 164886.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
           8 (3.64 % of base) : 60701.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (3.57 % of base) : 204805.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.08 % of base) : 76189.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
          12 (2.78 % of base) : 173640.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
           8 (2.78 % of base) : 33337.dasm - System.DateTimeParse:ProcessDateTimeSuffix(byref,byref,byref):ubyte (FullOpts)
           8 (2.70 % of base) : 31693.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          32 (2.35 % of base) : 105292.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)
           4 (2.33 % of base) : 210740.dasm - CommandLine.Core.ValueMapper:CountOfMaxNumberOfValues(CommandLine.Core.Specification):CSharpx.Maybe`1[int] (FullOpts)
          44 (2.28 % of base) : 141749.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.27 % of base) : 172178.dasm - System.Net.Sockets.SocketAsyncContext+AsyncOperation:TryCancel():ubyte:this (FullOpts)

Top method improvements (percentages):
         -84 (-7.81 % of base) : 173348.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -16 (-6.78 % of base) : 22951.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-6.67 % of base) : 22949.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -36 (-6.34 % of base) : 146546.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 193596.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.77 % of base) : 22950.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 222822.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
          -8 (-4.65 % of base) : 28939.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -12 (-4.17 % of base) : 28940.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-3.98 % of base) : 163920.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -16 (-3.77 % of base) : 28941.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-3.70 % of base) : 22968.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
          -4 (-3.33 % of base) : 182969.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-3.33 % of base) : 8430.dasm - System.Xml.XPath.XPathNavigator:IsValidChildType(int):ubyte:this (FullOpts)
         -16 (-3.25 % of base) : 8411.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CachesResult(System.Xml.Xsl.Qil.QilNode):ubyte (FullOpts)
          -4 (-3.23 % of base) : 44351.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
         -16 (-2.65 % of base) : 33711.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
          -4 (-2.56 % of base) : 157721.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.56 % of base) : 5995.dasm - System.Xml.Serialization.XmlSerializationReader:IsXmlnsAttribute(System.String):ubyte:this (FullOpts)
          -4 (-2.50 % of base) : 195474.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:get_ParametersCount():int:this (FullOpts)


libraries.pmi.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 75993172 (overridden on cmd)
Total bytes of diff: 75989124 (overridden on cmd)
Total bytes of delta: -4048 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 93837.dasm (0.25 % of base)
          52 : 33112.dasm (0.15 % of base)
          52 : 28871.dasm (1.62 % of base)
          48 : 196671.dasm (1.21 % of base)
          44 : 29711.dasm (0.66 % of base)
          44 : 168903.dasm (2.29 % of base)
          40 : 281282.dasm (2.87 % of base)
          40 : 82618.dasm (0.45 % of base)
          40 : 86539.dasm (0.17 % of base)
          40 : 198326.dasm (2.01 % of base)
          40 : 19250.dasm (0.62 % of base)
          40 : 247055.dasm (2.06 % of base)
          40 : 149812.dasm (1.64 % of base)
          40 : 263165.dasm (2.29 % of base)
          36 : 38012.dasm (1.04 % of base)
          36 : 86534.dasm (0.44 % of base)
          36 : 22689.dasm (7.38 % of base)
          36 : 38005.dasm (0.61 % of base)
          32 : 14896.dasm (1.09 % of base)
          32 : 158283.dasm (5.76 % of base)

Top file improvements (bytes):
         -88 : 292717.dasm (-2.80 % of base)
         -80 : 166954.dasm (-2.48 % of base)
         -72 : 163632.dasm (-0.25 % of base)
         -60 : 287391.dasm (-2.47 % of base)
         -60 : 208842.dasm (-1.52 % of base)
         -56 : 81492.dasm (-8.24 % of base)
         -52 : 204439.dasm (-3.34 % of base)
         -44 : 194599.dasm (-3.86 % of base)
         -44 : 246961.dasm (-1.68 % of base)
         -40 : 171425.dasm (-0.66 % of base)
         -40 : 17673.dasm (-4.13 % of base)
         -40 : 194610.dasm (-4.76 % of base)
         -40 : 197621.dasm (-2.68 % of base)
         -40 : 15080.dasm (-1.78 % of base)
         -36 : 197874.dasm (-2.72 % of base)
         -36 : 12320.dasm (-0.68 % of base)
         -36 : 243539.dasm (-4.25 % of base)
         -32 : 192218.dasm (-3.85 % of base)
         -32 : 222642.dasm (-5.84 % of base)
         -32 : 181014.dasm (-5.84 % of base)

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

Top method regressions (bytes):
         100 (0.25 % of base) : 93837.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          52 (1.62 % of base) : 28871.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          52 (0.15 % of base) : 33112.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (1.21 % of base) : 196671.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (0.66 % of base) : 29711.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindElementOrIndexerAccess>g__bindInlineArrayElementAccess|499_1(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          44 (2.29 % of base) : 168903.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.45 % of base) : 82618.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          40 (1.64 % of base) : 149812.dasm - Microsoft.Build.Evaluation.ExpressionShredder:GetReferencedItemExpressions(System.String,int,int):System.Collections.Generic.List`1[Microsoft.Build.Evaluation.ExpressionShredder+ItemExpressionCapture] (FullOpts)
          40 (0.17 % of base) : 86539.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
          40 (2.01 % of base) : 198326.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.06 % of base) : 247055.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.87 % of base) : 281282.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          40 (2.29 % of base) : 263165.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          40 (0.62 % of base) : 19250.dasm - System.Xml.DtdParser+<ParseAttlistTypeAsync>d__161:MoveNext():this (FullOpts)
          36 (1.04 % of base) : 38012.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 38005.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (0.44 % of base) : 86534.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          36 (7.38 % of base) : 22689.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          32 (2.13 % of base) : 163656.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:VbTypeName(System.String):System.String (FullOpts)
          32 (5.76 % of base) : 158283.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:Insert(int,System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts)

Top method improvements (bytes):
         -88 (-2.80 % of base) : 292717.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
         -80 (-2.48 % of base) : 166954.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -72 (-0.25 % of base) : 163632.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)
         -60 (-1.52 % of base) : 208842.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -60 (-2.47 % of base) : 287391.dasm - System.Xml.Linq.XNodeBuilder:WriteEntityRef(System.String):this (FullOpts)
         -56 (-8.24 % of base) : 81492.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -52 (-3.34 % of base) : 204439.dasm - ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this (FullOpts)
         -44 (-3.86 % of base) : 194599.dasm - Newtonsoft.Json.JsonReader:ReadAsBytes():ubyte[]:this (FullOpts)
         -44 (-1.68 % of base) : 246961.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -40 (-2.68 % of base) : 197621.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadElement(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Converters.IXmlDocument,Newtonsoft.Json.Converters.IXmlNode,System.String,System.Xml.XmlNamespaceManager):this (FullOpts)
         -40 (-4.76 % of base) : 194610.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTimeOffset():System.Nullable`1[System.DateTimeOffset]:this (FullOpts)
         -40 (-0.66 % of base) : 171425.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -40 (-1.78 % of base) : 15080.dasm - System.Xml.XmlUtf8RawTextWriter+<DisposeAsyncCore>d__85:MoveNext():this (FullOpts)
         -40 (-4.13 % of base) : 17673.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache:WriteEntityRef(System.String):this (FullOpts)
         -36 (-2.72 % of base) : 197874.dasm - Newtonsoft.Json.JsonTextWriter+<WriteIndentAsync>d__13:MoveNext():this (FullOpts)
         -36 (-0.68 % of base) : 12320.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
         -36 (-4.25 % of base) : 243539.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:ValidateHashAlgorithm(System.Security.Cryptography.HashAlgorithmName) (FullOpts)
         -32 (-5.84 % of base) : 222642.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-5.84 % of base) : 181014.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.56 % of base) : 35493.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)

Top method regressions (percentages):
          28 (10.00 % of base) : 153182.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
          12 (10.00 % of base) : 30362.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
          16 (8.70 % of base) : 158281.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          16 (8.70 % of base) : 159357.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          36 (7.38 % of base) : 22689.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
           8 (6.67 % of base) : 281833.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
          16 (6.56 % of base) : 148885.dasm - Microsoft.Build.Graph.ProjectInterpretation:SplitPropertyNames(System.String):System.Collections.Generic.IReadOnlyCollection`1[System.String] (FullOpts)
           8 (6.45 % of base) : 281845.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          16 (6.06 % of base) : 153023.dasm - Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)
          32 (5.76 % of base) : 158283.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:Insert(int,System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts)
           8 (5.71 % of base) : 187668.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 229253.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
          20 (5.49 % of base) : 255458.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
           8 (5.13 % of base) : 156519.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]:Sort(System.Comparison`1[ubyte]):this (FullOpts)
           8 (4.76 % of base) : 47602.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (4.76 % of base) : 249250.dasm - System.Data.ProviderBase.DbConnectionFactory:FindConnectionOptions(System.Data.Common.DbConnectionPoolKey):System.Data.Common.DbConnectionOptions:this (FullOpts)
           8 (4.65 % of base) : 170820.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (4.65 % of base) : 242087.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (4.65 % of base) : 16271.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          12 (4.23 % of base) : 286764.dasm - Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)

Top method improvements (percentages):
         -16 (-10.81 % of base) : 176688.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
          -8 (-9.09 % of base) : 870.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -56 (-8.24 % of base) : 81492.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -28 (-6.93 % of base) : 166126.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -16 (-6.78 % of base) : 14462.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchPrefix(System.String,System.String):ubyte:this (FullOpts)
         -28 (-6.14 % of base) : 258053.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -28 (-6.09 % of base) : 287095.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -28 (-5.98 % of base) : 205818.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-5.88 % of base) : 258731.dasm - System.Diagnostics.Metrics.StringSequence3:Equals(System.Diagnostics.Metrics.StringSequence3):ubyte:this (FullOpts)
         -24 (-5.88 % of base) : 247465.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -24 (-5.88 % of base) : 198701.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -20 (-5.88 % of base) : 14467.dasm - System.Xml.XmlSqlBinaryReader+QName:Equals(System.Xml.XmlSqlBinaryReader+QName):ubyte:this (FullOpts)
         -32 (-5.84 % of base) : 222642.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-5.84 % of base) : 181014.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -16 (-5.56 % of base) : 180546.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -16 (-5.56 % of base) : 222177.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
          -4 (-5.56 % of base) : 285558.dasm - System.Formats.Asn1.SpanBasedEncoding:GetBytes(ulong,int,ulong,int):int:this (FullOpts)
          -4 (-5.56 % of base) : 285563.dasm - System.Formats.Asn1.SpanBasedEncoding:GetChars(ulong,int,ulong,int):int:this (FullOpts)
          -8 (-5.41 % of base) : 177074.dasm - Roslyn.Utilities.PathUtilities:CombinePaths(System.String,System.String):System.String (FullOpts)
         -16 (-5.41 % of base) : 12353.dasm - System.ComponentModel.DesignerAttribute:Equals(System.Object):ubyte:this (FullOpts)


libraries_tests.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 381327700 (overridden on cmd)
Total bytes of diff: 381280800 (overridden on cmd)
Total bytes of delta: -46900 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         140 : 178797.dasm (3.27 % of base)
         136 : 707193.dasm (0.99 % of base)
         136 : 670859.dasm (1.59 % of base)
         132 : 36814.dasm (1.14 % of base)
         132 : 90516.dasm (4.15 % of base)
         128 : 702305.dasm (4.05 % of base)
         124 : 62151.dasm (4.02 % of base)
         124 : 73081.dasm (2.34 % of base)
         120 : 106867.dasm (1.55 % of base)
         116 : 113403.dasm (16.11 % of base)
         112 : 367266.dasm (0.79 % of base)
         112 : 60137.dasm (2.32 % of base)
         108 : 83148.dasm (2.02 % of base)
         104 : 707889.dasm (0.49 % of base)
          92 : 489135.dasm (2.30 % of base)
          92 : 706639.dasm (0.85 % of base)
          88 : 676796.dasm (0.80 % of base)
          88 : 93115.dasm (1.86 % of base)
          88 : 410050.dasm (0.62 % of base)
          76 : 115501.dasm (1.39 % of base)

Top file improvements (bytes):
        -196 : 705746.dasm (-1.77 % of base)
        -168 : 227711.dasm (-8.38 % of base)
        -132 : 702693.dasm (-0.81 % of base)
        -128 : 80341.dasm (-1.09 % of base)
        -120 : 469607.dasm (-1.37 % of base)
        -116 : 86961.dasm (-1.50 % of base)
        -112 : 230824.dasm (-4.11 % of base)
        -108 : 719923.dasm (-0.88 % of base)
        -108 : 368421.dasm (-0.78 % of base)
        -100 : 70583.dasm (-0.67 % of base)
        -100 : 562325.dasm (-1.27 % of base)
        -100 : 83811.dasm (-0.83 % of base)
         -96 : 564580.dasm (-1.28 % of base)
         -92 : 255626.dasm (-0.75 % of base)
         -92 : 187895.dasm (-0.74 % of base)
         -92 : 549115.dasm (-0.75 % of base)
         -88 : 523003.dasm (-2.08 % of base)
         -88 : 625452.dasm (-2.02 % of base)
         -84 : 105301.dasm (-1.06 % of base)
         -84 : 315197.dasm (-1.00 % of base)

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

Top method regressions (bytes):
         140 (3.27 % of base) : 178797.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         136 (1.59 % of base) : 670859.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
         136 (0.99 % of base) : 707193.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream:GetColumn(Microsoft.CodeAnalysis.Formatting.TokenData,System.Func`3[Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TokenData,Microsoft.CodeAnalysis.Formatting.TriviaData]):int:this (Tier1)
         132 (1.14 % of base) : 36814.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         132 (4.15 % of base) : 90516.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         128 (4.05 % of base) : 702305.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         124 (4.02 % of base) : 62151.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         124 (2.34 % of base) : 73081.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         120 (1.55 % of base) : 106867.dasm - Microsoft.CSharp.RuntimeBinder.RuntimeBinder:BindCore(Microsoft.CSharp.RuntimeBinder.ICSharpBinder,System.Linq.Expressions.Expression[],System.Dynamic.DynamicMetaObject[],byref):System.Linq.Expressions.Expression:this (Tier1)
         116 (16.11 % of base) : 113403.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
         112 (2.32 % of base) : 60137.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
         112 (0.79 % of base) : 367266.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
         108 (2.02 % of base) : 83148.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         104 (0.49 % of base) : 707889.dasm - Roslyn.Utilities.EnumerableExtensions:Do[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation](System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation],System.Action`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation]):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation] (Tier1)
          92 (0.85 % of base) : 706639.dasm - Microsoft.CodeAnalysis.Formatting.FormattingContext:AddSuppressOperations(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation],System.Threading.CancellationToken):this (Tier1)
          92 (2.30 % of base) : 489135.dasm - System.Runtime.Caching.MemoryCacheStore:Dispose():this (Tier1-OSR)
          88 (0.80 % of base) : 676796.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
          88 (1.86 % of base) : 93115.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
          88 (0.62 % of base) : 410050.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          76 (1.39 % of base) : 115501.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)

Top method improvements (bytes):
        -196 (-1.77 % of base) : 705746.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.Simplifiers.NameSimplifier:TrySimplify(Microsoft.CodeAnalysis.CSharp.Syntax.NameSyntax,Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions,byref,byref,System.Threading.CancellationToken):ubyte:this (Tier1)
        -168 (-8.38 % of base) : 227711.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1)
        -132 (-0.81 % of base) : 702693.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        -128 (-1.09 % of base) : 80341.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -120 (-1.37 % of base) : 469607.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestInvalid(System.String[],System.String,System.String[]):int:this (Tier1)
        -116 (-1.50 % of base) : 86961.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(byref,byref,byref,byref):ubyte (Tier1)
        -112 (-4.11 % of base) : 230824.dasm - System.Collections.Tests.IEnumerable_NonGeneric_Tests:IEnumerable_NonGeneric_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1)
        -108 (-0.88 % of base) : 719923.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -108 (-0.78 % of base) : 368421.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
        -100 (-0.67 % of base) : 70583.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -100 (-0.83 % of base) : 83811.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -100 (-1.27 % of base) : 562325.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -96 (-1.28 % of base) : 564580.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (Tier1)
         -92 (-0.75 % of base) : 255626.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -92 (-0.74 % of base) : 187895.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -92 (-0.75 % of base) : 549115.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -88 (-2.02 % of base) : 625452.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Text.Json.Serialization.Tests.NumberHandlingTests+StructWithNumbers]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (Tier1)
         -88 (-2.08 % of base) : 523003.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 105301.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.00 % of base) : 315197.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
         116 (16.11 % of base) : 113403.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
           8 (9.52 % of base) : 175264.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
           8 (9.52 % of base) : 54438.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
          44 (8.94 % of base) : 216213.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.__Canon]):ubyte:this (Tier1-OSR)
          16 (8.70 % of base) : 43602.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
          32 (8.08 % of base) : 169478.dasm - System.Reflection.AssemblyNameParser:ParsePKT(System.String,ubyte):ubyte[]:this (Tier1)
          16 (7.14 % of base) : 673042.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          16 (7.14 % of base) : 190246.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          16 (7.14 % of base) : 670549.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          12 (6.67 % of base) : 689776.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetMetadataReference(Microsoft.CodeAnalysis.Symbols.IAssemblySymbolInternal):Microsoft.CodeAnalysis.MetadataReference:this (Tier1)
          32 (6.45 % of base) : 397602.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 491328.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 132227.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 731980.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 735187.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 154539.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 202896.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 320523.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 335826.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 392515.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

Top method improvements (percentages):
         -44 (-17.46 % of base) : 99642.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -44 (-17.46 % of base) : 99661.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 99621.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 99632.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-15.38 % of base) : 296345.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,double):System.Object (FullOpts)
         -40 (-15.15 % of base) : 296347.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -36 (-14.75 % of base) : 286175.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2):System.Object (FullOpts)
         -32 (-14.55 % of base) : 100218.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-14.55 % of base) : 99433.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-14.55 % of base) : 99891.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-14.55 % of base) : 99734.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-14.55 % of base) : 99713.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):short (FullOpts)
         -32 (-14.55 % of base) : 99884.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):uint (FullOpts)
         -32 (-14.55 % of base) : 99918.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ulong (FullOpts)
         -32 (-14.55 % of base) : 99835.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -32 (-14.29 % of base) : 99777.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):double (FullOpts)
         -32 (-14.29 % of base) : 99940.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):double (FullOpts)
         -32 (-14.29 % of base) : 99757.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):float (FullOpts)
         -32 (-14.29 % of base) : 99929.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):float (FullOpts)
         -32 (-13.79 % of base) : 290609.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,double):System.Object (FullOpts)


librariestestsnotieredcompilation.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 162523364 (overridden on cmd)
Total bytes of diff: 162502120 (overridden on cmd)
Total bytes of delta: -21244 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         184 : 291850.dasm (4.22 % of base)
         128 : 42510.dasm (1.67 % of base)
         128 : 48258.dasm (1.67 % of base)
         100 : 42639.dasm (3.22 % of base)
          84 : 127087.dasm (2.85 % of base)
          72 : 127616.dasm (2.55 % of base)
          64 : 48290.dasm (1.58 % of base)
          64 : 42538.dasm (1.55 % of base)
          52 : 5482.dasm (0.16 % of base)
          48 : 173829.dasm (0.83 % of base)
          44 : 117682.dasm (1.59 % of base)
          44 : 266129.dasm (0.70 % of base)
          44 : 3549.dasm (2.29 % of base)
          44 : 272840.dasm (2.17 % of base)
          40 : 302190.dasm (2.48 % of base)
          40 : 148326.dasm (2.87 % of base)
          40 : 179187.dasm (2.06 % of base)
          36 : 2300.dasm (1.04 % of base)
          36 : 266274.dasm (0.43 % of base)
          36 : 46135.dasm (1.50 % of base)

Top file improvements (bytes):
        -224 : 173827.dasm (-1.27 % of base)
        -156 : 164894.dasm (-8.23 % of base)
        -156 : 165090.dasm (-8.21 % of base)
        -116 : 197526.dasm (-3.15 % of base)
        -116 : 44125.dasm (-1.98 % of base)
         -88 : 176422.dasm (-1.97 % of base)
         -80 : 24703.dasm (-2.48 % of base)
         -76 : 59206.dasm (-0.26 % of base)
         -72 : 6436.dasm (-1.46 % of base)
         -68 : 274048.dasm (-1.30 % of base)
         -64 : 274386.dasm (-1.60 % of base)
         -56 : 115149.dasm (-8.24 % of base)
         -52 : 118492.dasm (-2.06 % of base)
         -52 : 101261.dasm (-15.85 % of base)
         -48 : 118296.dasm (-2.05 % of base)
         -48 : 164147.dasm (-1.61 % of base)
         -48 : 164835.dasm (-1.77 % of base)
         -44 : 154266.dasm (-1.70 % of base)
         -44 : 171026.dasm (-1.32 % of base)
         -40 : 14893.dasm (-1.26 % of base)

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

Top method regressions (bytes):
         184 (4.22 % of base) : 291850.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         128 (1.67 % of base) : 42510.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         128 (1.67 % of base) : 48258.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         100 (3.22 % of base) : 42639.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          84 (2.85 % of base) : 127087.dasm - System.IO.Pipelines.Tests.SchedulerFacts+<DefaultWriterSchedulerRunsOnSynchronizationContext>d__7:MoveNext():this (FullOpts)
          72 (2.55 % of base) : 127616.dasm - System.IO.Pipelines.Tests.SchedulerFacts+<UseSynchronizationContextFalseIgnoresSyncContextForWriterScheduler>d__6:MoveNext():this (FullOpts)
          64 (1.58 % of base) : 48290.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          64 (1.55 % of base) : 42538.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          52 (0.16 % of base) : 5482.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (0.83 % of base) : 173829.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestInvalid(System.String[],System.String,System.String[]):int:this (FullOpts)
          44 (1.59 % of base) : 117682.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectoryAsync_File_Tests+<LinkBeforeTargetAsync>d__13:MoveNext():this (FullOpts)
          44 (2.29 % of base) : 3549.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          44 (2.17 % of base) : 272840.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1075_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          44 (0.70 % of base) : 266129.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitIndexOfAnyCustomHelper(System.String,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte):System.String (FullOpts)
          40 (2.06 % of base) : 179187.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.87 % of base) : 148326.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          40 (2.48 % of base) : 302190.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          36 (0.43 % of base) : 266274.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (FullOpts)
          36 (1.04 % of base) : 2300.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (1.50 % of base) : 46135.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)

Top method improvements (bytes):
        -224 (-1.27 % of base) : 173827.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
        -156 (-8.23 % of base) : 164894.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write2_wrapper(System.Object[]):this (FullOpts)
        -156 (-8.21 % of base) : 165090.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterTypeWithArrayPropertyHavingChoice:Write3_Item(System.String,System.String,SerializationTypes.TypeWithArrayPropertyHavingChoice,ubyte,ubyte):this (FullOpts)
        -116 (-1.98 % of base) : 44125.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -116 (-3.15 % of base) : 197526.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -88 (-1.97 % of base) : 176422.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue+TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this (FullOpts)
         -80 (-2.48 % of base) : 24703.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -76 (-0.26 % of base) : 59206.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -72 (-1.46 % of base) : 6436.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -68 (-1.30 % of base) : 274048.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1658_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-1.60 % of base) : 274386.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1927_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-8.24 % of base) : 115149.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -52 (-15.85 % of base) : 101261.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04d.usage04d.Parent,System.Object,System.Object):System.Object (FullOpts)
         -52 (-2.06 % of base) : 118492.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectoryAsync_Stream_Tests+<ExtractToDirectory_ExactRootDirMatch_SymLinks_TargetOutside_Throws_Async>d__21:MoveNext():this (FullOpts)
         -48 (-1.61 % of base) : 164147.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterXmlSerializerAttributes:Write3_XmlSerializerAttributes(System.String,System.String,SerializationTypes.XmlSerializerAttributes,ubyte,ubyte):this (FullOpts)
         -48 (-1.77 % of base) : 164835.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterXmlSerializerAttributes:Write3_XmlSerializerAttributes(System.String,System.String,SerializationTypes.XmlSerializerAttributes,ubyte,ubyte):this (FullOpts)
         -48 (-2.05 % of base) : 118296.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectoryAsync_Stream_Tests+<ExtractToDirectory_ExactRootDirMatch_Directory_Relative_Throws_Async>d__18:MoveNext():this (FullOpts)
         -44 (-1.70 % of base) : 154266.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -44 (-1.32 % of base) : 171026.dasm - System.Xml.XmlSchemaTests.TestData:.cctor() (FullOpts)
         -40 (-1.26 % of base) : 14893.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.ElasticTriviaFormattingRule:LineBreaksAfter(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken):int (FullOpts)

Top method regressions (percentages):
          28 (11.48 % of base) : 67291.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
          28 (11.48 % of base) : 69112.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
           8 (6.67 % of base) : 125209.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
           8 (6.45 % of base) : 125154.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          20 (5.49 % of base) : 38283.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
          20 (5.49 % of base) : 38209.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
           8 (5.41 % of base) : 22295.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (5.41 % of base) : 33982.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (5.41 % of base) : 216962.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (4.65 % of base) : 42078.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
         184 (4.22 % of base) : 291850.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
           8 (4.00 % of base) : 47141.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
          16 (3.85 % of base) : 97705.dasm - System.Diagnostics.Tests.FileVersionInfoTest:FileVersionInfo_EmptyFVI():this (FullOpts)
           4 (3.57 % of base) : 18536.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 30902.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
         100 (3.22 % of base) : 42639.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
           8 (2.90 % of base) : 106638.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms12b.prms12b.Parent,System.Object):System.Object (FullOpts)
          40 (2.87 % of base) : 148326.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          12 (2.86 % of base) : 57713.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          84 (2.85 % of base) : 127087.dasm - System.IO.Pipelines.Tests.SchedulerFacts+<DefaultWriterSchedulerRunsOnSynchronizationContext>d__7:MoveNext():this (FullOpts)

Top method improvements (percentages):
         -52 (-15.85 % of base) : 101261.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04d.usage04d.Parent,System.Object,System.Object):System.Object (FullOpts)
         -36 (-15.79 % of base) : 101419.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-15.69 % of base) : 25557.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-15.69 % of base) : 25603.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
         -32 (-14.29 % of base) : 101206.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.Oneclass2operates.conversion.onedynamicparam001.onedynamicparam001.Target (FullOpts)
         -36 (-13.64 % of base) : 106097.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,double):System.Object (FullOpts)
         -36 (-13.64 % of base) : 105871.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -36 (-13.43 % of base) : 106100.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -32 (-12.90 % of base) : 25663.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,Microsoft.CSharp.RuntimeBinder.Tests.RuntimeBinderTests+Builder`1[System.Object],System.Object) (FullOpts)
         -28 (-12.73 % of base) : 27464.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -28 (-12.73 % of base) : 27512.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 28893.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 102729.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 110382.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 109232.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25793.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25806.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25920.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-12.31 % of base) : 101181.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104873.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)


realworld.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15906968 (overridden on cmd)
Total bytes of diff: 15906796 (overridden on cmd)
Total bytes of delta: -172 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          52 : 16162.dasm (0.16 % of base)
          44 : 542.dasm (2.29 % of base)
          36 : 16585.dasm (0.61 % of base)
          36 : 30090.dasm (1.91 % of base)
          36 : 16625.dasm (1.04 % of base)
          32 : 2451.dasm (2.12 % of base)
          28 : 16610.dasm (1.41 % of base)
          28 : 21426.dasm (0.60 % of base)
          28 : 31969.dasm (0.27 % of base)
          24 : 27694.dasm (0.45 % of base)
          24 : 8787.dasm (0.26 % of base)
          24 : 24965.dasm (0.71 % of base)
          24 : 26129.dasm (0.91 % of base)
          20 : 30275.dasm (2.33 % of base)
          16 : 28278.dasm (0.45 % of base)
          16 : 27742.dasm (0.18 % of base)
          16 : 5600.dasm (1.66 % of base)
          16 : 14321.dasm (1.56 % of base)
          16 : 14476.dasm (0.18 % of base)
          16 : 22682.dasm (1.19 % of base)

Top file improvements (bytes):
         -80 : 9352.dasm (-0.75 % of base)
         -56 : 2926.dasm (-7.41 % of base)
         -36 : 14641.dasm (-0.91 % of base)
         -32 : 19805.dasm (-0.57 % of base)
         -32 : 14201.dasm (-2.38 % of base)
         -32 : 14294.dasm (-2.65 % of base)
         -32 : 18582.dasm (-5.84 % of base)
         -28 : 15011.dasm (-0.52 % of base)
         -20 : 3066.dasm (-1.67 % of base)
         -16 : 14061.dasm (-1.69 % of base)
         -16 : 29915.dasm (-2.48 % of base)
         -16 : 30478.dasm (-5.26 % of base)
         -16 : 2303.dasm (-4.04 % of base)
         -16 : 2959.dasm (-0.68 % of base)
         -16 : 3705.dasm (-0.26 % of base)
         -16 : 1095.dasm (-1.67 % of base)
         -16 : 18498.dasm (-1.20 % of base)
         -16 : 31652.dasm (-0.11 % of base)
         -16 : 31879.dasm (-1.24 % of base)
         -12 : 11599.dasm (-5.17 % of base)

67 total files with Code Size differences (32 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
          52 (0.16 % of base) : 16162.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          44 (2.29 % of base) : 542.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          36 (1.91 % of base) : 30090.dasm - Interop+procfs:TryParseStatusFile(System.String,byref):ubyte (FullOpts)
          36 (1.04 % of base) : 16625.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 16585.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (2.12 % of base) : 2451.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.60 % of base) : 21426.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          28 (1.41 % of base) : 16610.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          28 (0.27 % of base) : 31969.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          24 (0.26 % of base) : 8787.dasm - FSharp.Compiler.TypedTreeOps:mkExprAddrOfExprAux(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.TypedTreeOps+Mutates,FSharp.Compiler.TypedTree+Expr,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+ValRef],FSharp.Compiler.Text.Range):System.Tuple`4[Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.TypedTree+Expr,ubyte,ubyte] (FullOpts)
          24 (0.71 % of base) : 24965.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
          24 (0.91 % of base) : 26129.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
          24 (0.45 % of base) : 27694.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          20 (2.33 % of base) : 30275.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          16 (1.66 % of base) : 5600.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          16 (0.39 % of base) : 24773.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertToArrayIndex(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (1.19 % of base) : 22682.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetParamArrayArgument(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],System.Collections.Immutable.ImmutableArray`1[System.String],int,int,Microsoft.CodeAnalysis.CSharp.Conversions,byref):Microsoft.CodeAnalysis.TypedConstant (FullOpts)
          16 (0.45 % of base) : 28278.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitStringSwitchJumpTable(System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.ConstantValue,System.Object][],Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CodeGen.LocalOrParameter,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
          16 (0.18 % of base) : 27742.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          16 (1.56 % of base) : 14321.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)

Top method improvements (bytes):
         -80 (-0.75 % of base) : 9352.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
         -56 (-7.41 % of base) : 2926.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -36 (-0.91 % of base) : 14641.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
         -32 (-5.84 % of base) : 18582.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.57 % of base) : 19805.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -32 (-2.65 % of base) : 14294.dasm - Microsoft.ML.Data.BufferBuilder`1[float]:GetResult(byref):this (FullOpts)
         -32 (-2.38 % of base) : 14201.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[System.ReadOnlyMemory`1[ushort]]:Get(byref):this (FullOpts)
         -28 (-0.52 % of base) : 15011.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         -20 (-1.67 % of base) : 3066.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
         -16 (-1.67 % of base) : 1095.dasm - BenchmarkDotNet.Engines.EngineActualStage:.ctor(BenchmarkDotNet.Engines.IEngine):this (FullOpts)
         -16 (-0.26 % of base) : 3705.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)
         -16 (-0.68 % of base) : 2959.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -16 (-1.20 % of base) : 18498.dasm - Interop+Crypto:HashAlgorithmToEvp(System.String):long (FullOpts)
         -16 (-1.69 % of base) : 14061.dasm - Microsoft.ML.Data.VBuffer`1[double]:Copy(double[],int,byref,int) (FullOpts)
         -16 (-2.48 % of base) : 29915.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.24 % of base) : 31879.dasm - System.Linq.Expressions.Expression:ValidateTryAndCatchHaveSameType(System.Type,System.Linq.Expressions.Expression,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.CatchBlock]) (FullOpts)
         -16 (-5.26 % of base) : 30478.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -16 (-0.11 % of base) : 31652.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
         -16 (-4.04 % of base) : 2303.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -12 (-5.17 % of base) : 11599.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)

Top method regressions (percentages):
           8 (5.41 % of base) : 17940.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (4.00 % of base) : 29305.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 26293.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 23507.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
           8 (2.74 % of base) : 3016.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.63 % of base) : 22025.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
          20 (2.33 % of base) : 30275.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          44 (2.29 % of base) : 542.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.22 % of base) : 14953.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           8 (2.13 % of base) : 22945.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.12 % of base) : 2451.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (2.00 % of base) : 23187.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:HasInitializer(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          12 (1.92 % of base) : 14078.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[double](System.Collections.Generic.IEnumerable`1[double],int):double[] (FullOpts)
          12 (1.91 % of base) : 14360.dasm - Microsoft.ML.Trainers.LbfgsTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainModelCore(Microsoft.ML.TrainContext):System.__Canon:this (FullOpts)
          36 (1.91 % of base) : 30090.dasm - Interop+procfs:TryParseStatusFile(System.String,byref):ubyte (FullOpts)
           4 (1.85 % of base) : 30795.dasm - System.Management.Automation.LogProvider:GetPSLevelFromSeverity(System.String):ubyte (FullOpts)
           4 (1.75 % of base) : 28850.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
          16 (1.66 % of base) : 5600.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
           4 (1.61 % of base) : 19761.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          16 (1.56 % of base) : 14321.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)

Top method improvements (percentages):
         -56 (-7.41 % of base) : 2926.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -32 (-5.84 % of base) : 18582.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -16 (-5.26 % of base) : 30478.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.17 % of base) : 11599.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
         -16 (-4.04 % of base) : 2303.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
          -4 (-3.23 % of base) : 21269.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          -8 (-2.90 % of base) : 2645.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-2.86 % of base) : 32639.dasm - System.Management.Automation.WildcardPattern:ContainsWildcardCharacters(System.String):ubyte (FullOpts)
          -4 (-2.78 % of base) : 31128.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
         -12 (-2.68 % of base) : 3398.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-2.65 % of base) : 14294.dasm - Microsoft.ML.Data.BufferBuilder`1[float]:GetResult(byref):this (FullOpts)
         -16 (-2.48 % of base) : 29915.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -32 (-2.38 % of base) : 14201.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[System.ReadOnlyMemory`1[ushort]]:Get(byref):this (FullOpts)
          -4 (-2.33 % of base) : 29532.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEmbeddedAttributeSymbolBase:GetMembers(System.String):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          -4 (-2.13 % of base) : 13530.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 5118.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 30437.dasm - System.Management.Automation.ExecutionContext:TryGetFromAssemblyCache(System.String,System.String,byref):ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 15369.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3664.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)


smoke_tests.nativeaot.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 2948924 (overridden on cmd)
Total bytes of diff: 2948728 (overridden on cmd)
Total bytes of delta: -196 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          64 : 383.dasm (5.76 % of base)
          28 : 13442.dasm (0.32 % of base)
          24 : 15221.dasm (1.60 % of base)
          12 : 1350.dasm (3.06 % of base)
          12 : 16212.dasm (0.68 % of base)
          12 : 1928.dasm (0.70 % of base)
           8 : 15621.dasm (0.98 % of base)
           8 : 15126.dasm (0.90 % of base)
           8 : 15422.dasm (0.97 % of base)
           8 : 15652.dasm (0.35 % of base)
           8 : 5424.dasm (0.93 % of base)
           8 : 2810.dasm (2.82 % of base)
           8 : 2466.dasm (0.86 % of base)
           8 : 3849.dasm (2.47 % of base)
           4 : 12690.dasm (2.50 % of base)
           4 : 15470.dasm (3.57 % of base)
           4 : 15567.dasm (3.57 % of base)
           4 : 14656.dasm (0.70 % of base)
           4 : 15718.dasm (1.67 % of base)
           4 : 15864.dasm (0.25 % of base)

Top file improvements (bytes):
         -52 : 2103.dasm (-3.22 % of base)
         -52 : 15538.dasm (-3.22 % of base)
         -52 : 2578.dasm (-3.22 % of base)
         -20 : 13900.dasm (-2.66 % of base)
         -16 : 13582.dasm (-0.92 % of base)
         -16 : 16334.dasm (-0.88 % of base)
         -16 : 16511.dasm (-0.88 % of base)
         -12 : 1372.dasm (-3.12 % of base)
         -12 : 15201.dasm (-1.16 % of base)
         -12 : 15150.dasm (-1.55 % of base)
          -8 : 13627.dasm (-0.59 % of base)
          -8 : 14951.dasm (-2.22 % of base)
          -8 : 13460.dasm (-0.76 % of base)
          -8 : 18396.dasm (-0.95 % of base)
          -8 : 12752.dasm (-0.95 % of base)
          -8 : 2470.dasm (-5.41 % of base)
          -8 : 818.dasm (-2.94 % of base)
          -8 : 1776.dasm (-0.59 % of base)
          -4 : 12607.dasm (-2.22 % of base)
          -4 : 1424.dasm (-2.13 % of base)

61 total files with Code Size differences (31 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
          64 (5.76 % of base) : 383.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.32 % of base) : 13442.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          24 (1.60 % of base) : 15221.dasm - Interop+procfs:TryParseStatusFile(System.String,byref):ubyte (FullOpts)
          12 (0.68 % of base) : 16212.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.70 % of base) : 1928.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (3.06 % of base) : 1350.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           8 (2.47 % of base) : 3849.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           8 (0.93 % of base) : 5424.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)
           8 (2.82 % of base) : 2810.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           8 (0.90 % of base) : 15126.dasm - System.Diagnostics.ProcessWaitState+<WaitForExitAsync>d__26:MoveNext():this (FullOpts)
           8 (0.35 % of base) : 15652.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
           8 (0.86 % of base) : 2466.dasm - System.TerminalFormatStrings:GetTitle(System.TermInfo+Database):System.String (FullOpts)
           8 (0.97 % of base) : 15422.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           8 (0.98 % of base) : 15621.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
           4 (2.50 % of base) : 12690.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (2.50 % of base) : 18353.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (0.40 % of base) : 5708.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.RuntimeTypeHandle[],byref,byref):ubyte (FullOpts)
           4 (1.18 % of base) : 8410.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           4 (2.38 % of base) : 18122.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)
           4 (2.38 % of base) : 18965.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)

Top method improvements (bytes):
         -52 (-3.22 % of base) : 2103.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -52 (-3.22 % of base) : 15538.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -52 (-3.22 % of base) : 2578.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -20 (-2.66 % of base) : 13900.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (FullOpts)
         -16 (-0.88 % of base) : 16334.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -16 (-0.88 % of base) : 16511.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -16 (-0.92 % of base) : 13582.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)
         -12 (-1.16 % of base) : 15201.dasm - System.Diagnostics.Process:ForkAndExecProcess(System.Diagnostics.ProcessStartInfo,System.String,System.String[],System.String[],System.String,ubyte,uint,uint,uint[],byref,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
         -12 (-1.55 % of base) : 15150.dasm - System.SpanHelpers:LastIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,short,int):int (FullOpts)
         -12 (-3.12 % of base) : 1372.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-0.95 % of base) : 18396.dasm - Interfaces:TestArrayInterfaces():int (FullOpts)
          -8 (-0.95 % of base) : 12752.dasm - Interfaces:TestArrayInterfaces():int (FullOpts)
          -8 (-0.59 % of base) : 1776.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Resize(int,ubyte):this (FullOpts)
          -8 (-0.59 % of base) : 13627.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Resize(int,ubyte):this (FullOpts)
          -8 (-5.41 % of base) : 2470.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -8 (-0.76 % of base) : 13460.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileMemberInit(System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.MemberBinding]):this (FullOpts)
          -8 (-2.22 % of base) : 14951.dasm - System.Reflection.AssemblyNameParser:ParseProcessorArchitecture(System.String):int:this (FullOpts)
          -8 (-2.94 % of base) : 818.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.94 % of base) : 3693.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.33 % of base) : 18100.dasm - ReflectionTest+TestAttributeInheritance:Run() (FullOpts)

Top method regressions (percentages):
          64 (5.76 % of base) : 383.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (3.57 % of base) : 15567.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           4 (3.57 % of base) : 15470.dasm - System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)
          12 (3.06 % of base) : 1350.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           8 (2.82 % of base) : 2810.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.50 % of base) : 12690.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (2.50 % of base) : 18353.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           8 (2.47 % of base) : 3849.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (2.38 % of base) : 18122.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)
           4 (2.38 % of base) : 18965.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)
           4 (1.67 % of base) : 15718.dasm - System.Net.Sockets.SocketAsyncContext+AsyncOperation:TryCancel():ubyte:this (FullOpts)
          24 (1.60 % of base) : 15221.dasm - Interop+procfs:TryParseStatusFile(System.String,byref):ubyte (FullOpts)
           4 (1.52 % of base) : 6312.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
           4 (1.45 % of base) : 14567.dasm - System.ConsolePal:SetTerminalCursorPosition(int,int) (FullOpts)
           4 (1.28 % of base) : 427.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
           4 (1.18 % of base) : 8410.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           8 (0.98 % of base) : 15621.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
           8 (0.97 % of base) : 15422.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           8 (0.93 % of base) : 5424.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)
           8 (0.90 % of base) : 15126.dasm - System.Diagnostics.ProcessWaitState+<WaitForExitAsync>d__26:MoveNext():this (FullOpts)

Top method improvements (percentages):
          -8 (-5.41 % of base) : 2470.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-3.45 % of base) : 16584.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
         -52 (-3.22 % of base) : 2103.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -52 (-3.22 % of base) : 15538.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -52 (-3.22 % of base) : 2578.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -12 (-3.12 % of base) : 1372.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.94 % of base) : 3693.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -8 (-2.94 % of base) : 818.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
         -20 (-2.66 % of base) : 13900.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (FullOpts)
          -4 (-2.33 % of base) : 18100.dasm - ReflectionTest+TestAttributeInheritance:Run() (FullOpts)
          -4 (-2.33 % of base) : 18980.dasm - ReflectionTest+TestAttributeInheritance:Run() (FullOpts)
          -4 (-2.27 % of base) : 13755.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 12607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-2.22 % of base) : 14951.dasm - System.Reflection.AssemblyNameParser:ParseProcessorArchitecture(System.String):int:this (FullOpts)
          -4 (-2.13 % of base) : 16580.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          -4 (-2.13 % of base) : 1424.dasm - System.Reflection.AssemblyName:get_FullName():System.String:this (FullOpts)
          -4 (-2.08 % of base) : 942.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.00 % of base) : 399.dasm - System.String:Concat(System.String,System.String):System.String (FullOpts)
          -4 (-1.89 % of base) : 2460.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.ReadOnlyMemory`1[ushort],System.ConsoleKeyInfo]:MoveNext():ubyte:this (FullOpts)
          -4 (-1.72 % of base) : 1225.dasm - System.Runtime.CompilerServices.ClassConstructorRunner+Cctor:Release(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle) (FullOpts)



linux x64

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

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

Overall (-208,870 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,736,862 +1,312
benchmarks.run_pgo.linux.x64.checked.mch 66,799,627 -28,244
benchmarks.run_tiered.linux.x64.checked.mch 17,373,587 +249
coreclr_tests.run.linux.x64.checked.mch 458,880,954 -56,518
libraries.crossgen2.linux.x64.checked.mch 38,668,832 -2,688
libraries.pmi.linux.x64.checked.mch 59,972,991 -4,424
libraries_tests.run.linux.x64.Release.mch 329,976,844 -101,989
librariestestsnotieredcompilation.run.linux.x64.Release.mch 130,000,373 -12,847
realworld.run.linux.x64.checked.mch 13,194,305 -2,952
smoke_tests.nativeaot.linux.x64.checked.mch 4,197,516 -769

FullOpts (-208,870 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,470,069 +1,312
benchmarks.run_pgo.linux.x64.checked.mch 46,969,870 -28,244
benchmarks.run_tiered.linux.x64.checked.mch 3,695,827 +249
coreclr_tests.run.linux.x64.checked.mch 132,322,819 -56,518
libraries.crossgen2.linux.x64.checked.mch 38,667,630 -2,688
libraries.pmi.linux.x64.checked.mch 59,860,121 -4,424
libraries_tests.run.linux.x64.Release.mch 145,587,323 -101,989
librariestestsnotieredcompilation.run.linux.x64.Release.mch 119,341,902 -12,847
realworld.run.linux.x64.checked.mch 12,805,199 -2,952
smoke_tests.nativeaot.linux.x64.checked.mch 4,196,605 -769

Example diffs

benchmarks.run.linux.x64.checked.mch

-18 (-6.90%) : 797.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

@@ -71,22 +71,43 @@ G_M46385_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
 G_M46385_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        mov      r9d, dword ptr [rbx+0x08]
        test     r9d, r9d
-       je       SHORT G_M46385_IG04
+       jne      SHORT G_M46385_IG05
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       mov      edi, 36
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        cmp      r9d, 1
-       jne      G_M46385_IG16
+       jne      G_M46385_IG17
        movzx    rdi, word  ptr [rbx+0x0C]
        or       edi, 32
        cmp      edi, 100
-       jg       G_M46385_IG12
+       jg       SHORT G_M46385_IG06
        cmp      edi, 98
-       je       G_M46385_IG14
+       je       SHORT G_M46385_IG08
        cmp      edi, 100
-       jne      G_M46385_IG17
-                       ;; size=53 bbWeight=0.50 PerfScore 5.25
-G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 36
+       jne      G_M46385_IG18
+       jmp      SHORT G_M46385_IG04
+                       ;; size=38 bbWeight=0.50 PerfScore 4.62
+G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       cmp      edi, 110
+       je       SHORT G_M46385_IG07
+       cmp      edi, 112
+       je       SHORT G_M46385_IG08
+       cmp      edi, 120
+       jne      G_M46385_IG18
+       mov      edi, 68
+       jmp      SHORT G_M46385_IG09
+                       ;; size=26 bbWeight=0.50 PerfScore 3.00
+G_M46385_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       mov      edi, 32
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+       mov      edi, 38
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+G_M46385_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        call     <unknown method>
        ; gcrRegs +[rax]
        mov      r14, rax
@@ -95,32 +116,41 @@ G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
        ; byrRegs +[rsi]
        mov      edx, dword ptr [r14+0x08]
        test     rbx, rbx
-       jne      G_M46385_IG15
-                       ;; size=25 bbWeight=1 PerfScore 5.00
-G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=8040 {rsi r15}, byref
+       jne      SHORT G_M46385_IG11
+                       ;; size=21 bbWeight=1 PerfScore 5.00
+G_M46385_IG10:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=8040 {rsi r15}, byref, isz
        ; gcrRegs -[rax rbx]
        xor      r8, r8
        ; byrRegs +[r8]
        xor      r9d, r9d
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M46385_IG07:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8140 {rsi r8 r15}, byref, isz
+       jmp      SHORT G_M46385_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG11:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8040 {rsi r15}, byref
+       ; gcrRegs +[rbx]
+       ; byrRegs -[r8]
+       lea      r8, bword ptr [rbx+0x0C]
+       ; byrRegs +[r8]
+       mov      r9d, dword ptr [rbx+0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG12:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8140 {rsi r8 r15}, byref, isz
+       ; gcrRegs -[rbx]
        lea      rcx, [rbp-0x20]
        mov      rdi, r15
        ; byrRegs +[rdi]
        call     [<unknown method>]
        ; byrRegs -[rsi rdi r8 r15]
        test     eax, eax
-       je       SHORT G_M46385_IG09
+       je       SHORT G_M46385_IG14
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        mov      edi, dword ptr [rbp-0x20]
        cmp      edi, dword ptr [r14+0x08]
        sete     dil
        movzx    rdi, dil
        test     dil, dil
-       jne      SHORT G_M46385_IG10
+       jne      SHORT G_M46385_IG15
                        ;; size=20 bbWeight=0.50 PerfScore 3.25
-G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
@@ -128,11 +158,11 @@ G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46385_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M46385_IG15:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
        mov      rax, r14
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46385_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r14
@@ -140,46 +170,17 @@ G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=1 PerfScore 3.25
-G_M46385_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref, isz
-       ; gcrRegs -[rax r14] +[rbx]
-       ; byrRegs +[r15]
-       cmp      edi, 110
-       je       SHORT G_M46385_IG13
-       cmp      edi, 112
-       je       SHORT G_M46385_IG14
-       cmp      edi, 120
-       jne      SHORT G_M46385_IG17
-       mov      edi, 68
-       jmp      G_M46385_IG05
-                       ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 32
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 38
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG15:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8040 {rsi r15}, byref
-       ; gcrRegs +[r14]
-       ; byrRegs +[rsi]
-       lea      r8, bword ptr [rbx+0x0C]
-       ; byrRegs +[r8]
-       mov      r9d, dword ptr [rbx+0x08]
-       jmp      G_M46385_IG07
-                       ;; size=13 bbWeight=0.50 PerfScore 2.25
-G_M46385_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx r14]
-       ; byrRegs -[rsi r8 r15]
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r14]
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46385_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 261, prolog size 12, PerfScore 38.88, instruction count 72, allocated bytes for code 261 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
+; Total bytes of code 243, prolog size 12, PerfScore 39.88, instruction count 73, allocated bytes for code 243 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-37 (-5.73%) : 28004.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)

@@ -21,20 +21,20 @@
 ;  V10 loc6         [V10,T15] (  3,  5   )     int  ->  [rbp-0x38] 
 ;  V11 loc7         [V11    ] ( 20, 83.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V12 loc8         [V12,T16] (  3,  1.50)     int  ->  rcx        
-;  V13 loc9         [V13,T08] (  7, 14   )  ushort  ->  rcx        
+;  V13 loc9         [V13,T08] (  7, 14   )  ushort  ->  rsi        
 ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )     int  ->  zero-ref   
-;  V16 tmp2         [V16,T00] (  3, 96   )     int  ->  rcx         "dup spill"
+;  V16 tmp2         [V16,T00] (  3, 96   )     int  ->  rsi         "dup spill"
 ;* V17 tmp3         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp4         [V18    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V19 tmp5         [V19,T12] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
+;  V19 tmp5         [V19,T12] (  3,  6   )    long  ->  rcx         "Inline stloc first use temp"
 ;* V20 tmp6         [V20    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V21 tmp7         [V21    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp8         [V22    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp9         [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V24 cse0         [V24,T01] (  3, 48   )     int  ->  rcx         "CSE - aggressive"
-;  V25 cse1         [V25,T10] (  5, 10   )     int  ->  rcx         multi-def "CSE - moderate"
-;  V26 cse2         [V26,T17] (  3,  1.50)     int  ->  rdi         "CSE - moderate"
+;  V24 cse0         [V24,T01] (  3, 48   )     int  ->  rsi         "CSE - aggressive"
+;  V25 cse1         [V25,T10] (  5, 10   )     int  ->  rsi         multi-def "CSE - moderate"
+;  V26 cse2         [V26,T17] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -57,227 +57,230 @@ G_M23448_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        xor      r12d, r12d
        xor      edx, edx
        xor      eax, eax
-       mov      dword ptr [rbp-0x2C], eax
        xor      r9d, r9d
-       xor      r10d, r10d
+       xor      edi, edi
+       mov      r10d, 1
        mov      r11d, 1
-       mov      r8d, 1
-       movsxd   rdi, r13d
-       cmp      word  ptr [r15+2*rdi], 58
+       movsxd   rsi, r13d
+       cmp      word  ptr [r15+2*rsi], 58
        jne      SHORT G_M23448_IG04
-                       ;; size=39 bbWeight=1 PerfScore 7.00
+                       ;; size=35 bbWeight=1 PerfScore 6.00
 G_M23448_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       lea      edi, [r13+0x01]
-       cmp      edi, dword ptr [rbx]
-       jge      G_M23448_IG29
-       movsxd   rdi, edi
-       cmp      word  ptr [r15+2*rdi], 58
-       jne      G_M23448_IG29
+       lea      esi, [r13+0x01]
+       cmp      esi, dword ptr [rbx]
+       jge      G_M23448_IG27
+       movsxd   rsi, esi
+       cmp      word  ptr [r15+2*rsi], 58
+       jne      G_M23448_IG27
                        ;; size=27 bbWeight=0.50 PerfScore 4.38
-G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      dword ptr [rbp-0x40], r13d
-       mov      edi, dword ptr [rbp-0x40]
-       cmp      edi, dword ptr [rbx]
-       jge      SHORT G_M23448_IG07
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
+       mov      esi, dword ptr [rbp-0x40]
+       cmp      esi, dword ptr [rbx]
+       jge      G_M23448_IG21
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
 G_M23448_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      dword ptr [rbp-0x30], r10d
-       test     r10d, r10d
-       jne      SHORT G_M23448_IG08
-                       ;; size=9 bbWeight=4 PerfScore 9.00
+       test     edi, edi
+       jne      SHORT G_M23448_IG07
+                       ;; size=4 bbWeight=4 PerfScore 5.00
 G_M23448_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       movsxd   rdi, dword ptr [rbp-0x40]
-       movzx    rcx, word  ptr [r15+2*rdi]
-       lea      edi, [rcx-0x30]
-       mov      rsi, 0xD1FFAB1E
-       shlx     rsi, rsi, rdi
-       add      rdi, -64
-       and      rdi, rsi
-       jge      SHORT G_M23448_IG10
-       jmp      SHORT G_M23448_IG09
+       movsxd   rsi, dword ptr [rbp-0x40]
+       movzx    rsi, word  ptr [r15+2*rsi]
+       lea      ecx, [rsi-0x30]
+       mov      r8, 0xD1FFAB1E
+       shlx     r8, r8, rcx
+       add      rcx, -64
+       and      rcx, r8
+       jge      SHORT G_M23448_IG09
+       jmp      SHORT G_M23448_IG08
                        ;; size=38 bbWeight=2 PerfScore 19.50
-G_M23448_IG07:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       mov      dword ptr [rbp-0x30], r10d
-       mov      dword ptr [rbp-0x34], r11d
-       jmp      G_M23448_IG23
-                       ;; size=13 bbWeight=0.25 PerfScore 1.00
-G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       movsxd   rcx, dword ptr [rbp-0x40]
-       movzx    rcx, word  ptr [r15+2*rcx]
-       lea      edi, [rcx-0x30]
-       cmp      edi, 9
-       ja       SHORT G_M23448_IG10
+G_M23448_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       movsxd   rsi, dword ptr [rbp-0x40]
+       movzx    rsi, word  ptr [r15+2*rsi]
+       lea      ecx, [rsi-0x30]
+       cmp      ecx, 9
+       ja       SHORT G_M23448_IG09
                        ;; size=17 bbWeight=2 PerfScore 13.50
-G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        inc      edx
-       xor      r11d, r11d
-       mov      dword ptr [rbp-0x34], r11d
-       jmp      G_M23448_IG22
-                       ;; size=14 bbWeight=2 PerfScore 7.00
-G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r10d, r10d
+       jmp      G_M23448_IG20
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      edx, 4
-       jg       G_M23448_IG29
+       jg       G_M23448_IG27
        test     edx, edx
-       je       SHORT G_M23448_IG11
+       je       SHORT G_M23448_IG10
        inc      r12d
-       mov      r8d, dword ptr [rbp-0x40]
-       sub      r8d, edx
+       mov      r11d, dword ptr [rbp-0x40]
+       sub      r11d, edx
                        ;; size=23 bbWeight=2 PerfScore 8.00
-G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      ecx, 46
-       ja       SHORT G_M23448_IG12
-       cmp      ecx, 37
-       je       SHORT G_M23448_IG14
-       cmp      ecx, 46
-       jne      G_M23448_IG29
+G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      esi, 46
+       ja       SHORT G_M23448_IG11
+       cmp      esi, 37
+       je       SHORT G_M23448_IG12
+       cmp      esi, 46
+       jne      G_M23448_IG27
        test     r9d, r9d
-       mov      dword ptr [rbp-0x34], r11d
-       jne      G_M23448_IG29
+       mov      dword ptr [rbp-0x30], edi
+       mov      dword ptr [rbp-0x34], r10d
+       mov      dword ptr [rbp-0x2C], eax
+       jne      G_M23448_IG27
+       jmp      G_M23448_IG18
+                       ;; size=43 bbWeight=2 PerfScore 20.00
+G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      esi, 47
+       je       G_M23448_IG17
+       cmp      esi, 58
+       je       SHORT G_M23448_IG15
+       cmp      esi, 93
+       je       SHORT G_M23448_IG14
+       jmp      G_M23448_IG23
+                       ;; size=24 bbWeight=2 PerfScore 11.50
+G_M23448_IG12:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       mov      esi, dword ptr [rbp-0x40]
+       inc      esi
+       mov      dword ptr [rbp-0x40], esi
+       cmp      esi, dword ptr [rbx]
+       je       G_M23448_IG27
+       movsxd   rsi, dword ptr [rbp-0x40]
+       movzx    rsi, word  ptr [r15+2*rsi]
+       cmp      esi, 93
+       je       SHORT G_M23448_IG14
+       cmp      esi, 47
+       jne      SHORT G_M23448_IG12
+                       ;; size=35 bbWeight=16 PerfScore 220.00
+G_M23448_IG13:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       jmp      SHORT G_M23448_IG17
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M23448_IG14:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       mov      r13d, dword ptr [rbp-0x40]
+       mov      esi, dword ptr [rbx]
+       mov      dword ptr [rbp-0x40], esi
+       jmp      G_M23448_IG20
+                       ;; size=14 bbWeight=2 PerfScore 12.00
+G_M23448_IG15:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      dword ptr [rbp-0x40], 0
+       jle      SHORT G_M23448_IG16
+       mov      r10d, dword ptr [rbp-0x40]
+       dec      r10d
+       movsxd   rdx, r10d
+       cmp      word  ptr [r15+2*rdx], 58
+       jne      SHORT G_M23448_IG16
+       test     eax, eax
+       jne      G_M23448_IG27
+       mov      dword ptr [rbp-0x2C], 1
+       xor      r10d, r10d
+       mov      dword ptr [rbp-0x34], r10d
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M23448_IG19
+                       ;; size=51 bbWeight=2 PerfScore 30.00
+G_M23448_IG16:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       mov      dword ptr [rbp-0x34], 1
+       jmp      SHORT G_M23448_IG19
+                       ;; size=9 bbWeight=8 PerfScore 24.00
+G_M23448_IG17:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       xor      edx, edx
+       test     r12d, r12d
+       sete     dl
+       or       edi, edx
+       movzx    rdx, r14b
+       or       edx, edi
+       jne      G_M23448_IG27
+       mov      dword ptr [rbp-0x30], 1
+       mov      edi, dword ptr [rbp-0x30]
+       jmp      SHORT G_M23448_IG16
+                       ;; size=34 bbWeight=16 PerfScore 116.00
+G_M23448_IG18:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      edx, dword ptr [rbx]
        mov      dword ptr [rbp-0x40], edx
        lea      rdx, [rbp-0x40]
        mov      rdi, r15
-       mov      dword ptr [rbp-0x38], r8d
-       mov      esi, r8d
+       mov      dword ptr [rbp-0x38], r11d
+       mov      esi, r11d
        mov      ecx, 1
        xor      r8d, r8d
        call     [<unknown method>]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M23448_IG29
-       jmp      G_M23448_IG20
-                       ;; size=78 bbWeight=2 PerfScore 35.50
-G_M23448_IG12:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      ecx, 47
-       je       G_M23448_IG19
-       cmp      ecx, 58
-       je       SHORT G_M23448_IG17
-       cmp      ecx, 93
-       je       SHORT G_M23448_IG16
...

-14 (-5.26%) : 162.dasm - System.String:Concat(System.String,System.String):System.String (FullOpts)

@@ -52,38 +52,23 @@ G_M34819_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
 G_M34819_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
-       je       SHORT G_M34819_IG04
-       test     rbx, rbx
-       je       G_M34819_IG12
-       jmp      SHORT G_M34819_IG08
-                       ;; size=20 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M34819_IG09
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
 G_M34819_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r15]
        test     rbx, rbx
-       je       SHORT G_M34819_IG06
+       je       SHORT G_M34819_IG05
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M34819_IG06
-       mov      rax, rbx
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.75
-G_M34819_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx]
+       jne      SHORT G_M34819_IG07
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M34819_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 0.25
-G_M34819_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34819_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -93,30 +78,65 @@ G_M34819_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rsi] +[rbx r15]
+G_M34819_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      rax, rbx
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M34819_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M34819_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[r15]
+       test     rbx, rbx
+       je       SHORT G_M34819_IG10
        cmp      dword ptr [rbx+0x08], 0
-       je       G_M34819_IG12
+       jne      SHORT G_M34819_IG12
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      rax, r15
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M34819_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rbx]
        mov      r13d, r14d
        mov      edi, r13d
        add      edi, dword ptr [rbx+0x08]
-       js       G_M34819_IG14
+       js       SHORT G_M34819_IG16
        call     <unknown method>
        ; gcrRegs +[rax]
        mov      r12, rax
        ; gcrRegs +[r12]
        test     r12, r12
-       jne      SHORT G_M34819_IG09
+       jne      SHORT G_M34819_IG13
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rdi, rsi
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rsi rdi]
-                       ;; size=57 bbWeight=0.50 PerfScore 7.25
-G_M34819_IG09:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=43 bbWeight=0.50 PerfScore 5.25
+G_M34819_IG13:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r12+0x08], r14d
-       jge      SHORT G_M34819_IG10
+       jge      SHORT G_M34819_IG14
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rdi, rsi
@@ -124,7 +144,7 @@ G_M34819_IG09:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
                        ;; size=26 bbWeight=0.50 PerfScore 3.75
-G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+G_M34819_IG14:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        lea      rdi, bword ptr [r12+0x0C]
        ; byrRegs +[rdi]
        lea      rsi, bword ptr [r15+0x0C]
@@ -144,7 +164,7 @@ G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        mov      rax, r12
        ; gcrRegs +[rax]
                        ;; size=39 bbWeight=0.50 PerfScore 4.25
-G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34819_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -154,28 +174,13 @@ G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r12] +[r15]
-       mov      rax, r15
-       ; gcrRegs +[rax]
-                       ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M34819_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r15]
+G_M34819_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r12]
        call     [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 266, prolog size 16, PerfScore 39.38, instruction count 88, allocated bytes for code 266 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 252, prolog size 16, PerfScore 38.38, instruction count 87, allocated bytes for code 252 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:

+23 (+4.83%) : 5979.dasm - System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)

@@ -80,7 +80,7 @@ G_M33104_IG02:        ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 {rb
        mov      edx, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x30], edx
        test     edx, edx
-       jle      G_M33104_IG14
+       jle      G_M33104_IG18
        mov      edi, dword ptr [r12+0x08]
                        ;; size=81 bbWeight=1 PerfScore 22.75
 G_M33104_IG03:        ; bbWeight=3.96, gcVars=0000000000000008 {V05}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref
@@ -114,9 +114,9 @@ G_M33104_IG03:        ; bbWeight=3.96, gcVars=0000000000000008 {V05}, gcrefRegs=
        mov      gword ptr [rbp-0x48], rax
        ; GC ptr vars +{V08}
        cmp      gword ptr [rbp-0x40], 0
-       jne      G_M33104_IG13
+       jne      G_M33104_IG17
                        ;; size=84 bbWeight=3.96 PerfScore 87.12
-G_M33104_IG04:        ; bbWeight=1.98, gcVars=0000000000000108 {V05 V08}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+G_M33104_IG04:        ; bbWeight=1.98, gcVars=0000000000000108 {V05 V08}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, gword ptr [rbx]
        ; gcrRegs +[rdi]
@@ -126,7 +126,7 @@ G_M33104_IG04:        ; bbWeight=1.98, gcVars=0000000000000108 {V05 V08}, gcrefR
        call     [r11]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        cmp      rax, gword ptr [rbp-0x48]
-       je       G_M33104_IG12
+       je       G_M33104_IG16
        mov      rdi, gword ptr [rbx]
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
@@ -142,8 +142,8 @@ G_M33104_IG04:        ; bbWeight=1.98, gcVars=0000000000000108 {V05 V08}, gcrefR
        ; GC ptr vars +{V05}
        xor      ecx, ecx
        cmp      dword ptr [rbp-0x2C], 0
-       jle      SHORT G_M33104_IG11
-                       ;; size=83 bbWeight=1.98 PerfScore 48.01
+       jle      G_M33104_IG15
+                       ;; size=87 bbWeight=1.98 PerfScore 48.01
 G_M33104_IG05:        ; bbWeight=15.84, gcVars=0000000000000108 {V05 V08}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs -[rax]
        mov      rdi, gword ptr [rbx]
@@ -165,7 +165,7 @@ G_M33104_IG05:        ; bbWeight=15.84, gcVars=0000000000000108 {V05 V08}, gcref
        inc      eax
        mov      ecx, dword ptr [rbp-0x2C]
        cmp      eax, ecx
-       jl       SHORT G_M33104_IG10
+       jl       SHORT G_M33104_IG14
                        ;; size=53 bbWeight=15.84 PerfScore 273.24
 G_M33104_IG06:        ; bbWeight=3.96, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      rax, gword ptr [rbp-0x40]
@@ -190,45 +190,22 @@ G_M33104_IG07:        ; bbWeight=1.98, gcVars=0000000000000100 {V08}, gcrefRegs=
        ; gcrRegs +[rax]
        mov      ecx, dword ptr [rbp-0x2C]
                        ;; size=29 bbWeight=1.98 PerfScore 12.87
-G_M33104_IG08:        ; bbWeight=3.96, gcVars=0000000000000000 {}, gcrefRegs=B001 {rax r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref
+G_M33104_IG08:        ; bbWeight=3.96, gcVars=0000000000000000 {}, gcrefRegs=B001 {rax r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; GC ptr vars -{V05}
        inc      ecx
        mov      edi, dword ptr [rbp-0x30]
        cmp      ecx, edi
+       jl       SHORT G_M33104_IG13
+                       ;; size=9 bbWeight=3.96 PerfScore 9.90
+G_M33104_IG09:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[r12-r13 r15]
        mov      gword ptr [rbp-0x40], rax
        ; GC ptr vars +{V05}
-       jl       G_M33104_IG03
-                       ;; size=17 bbWeight=3.96 PerfScore 13.86
-G_M33104_IG09:        ; bbWeight=1, gcVars=0000000000000008 {V05}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs -[rax r12-r13 r15]
-       jmp      SHORT G_M33104_IG14
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M33104_IG10:        ; bbWeight=7.92, gcVars=0000000000000108 {V05 V08}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs +[r12-r13 r15]
-       ; GC ptr vars +{V08}
-       mov      dword ptr [rbp-0x2C], ecx
-       mov      ecx, eax
-       jmp      SHORT G_M33104_IG05
-                       ;; size=7 bbWeight=7.92 PerfScore 25.74
-G_M33104_IG11:        ; bbWeight=0.99, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, dword ptr [rbp-0x2C]
-       jmp      SHORT G_M33104_IG06
-                       ;; size=5 bbWeight=0.99 PerfScore 2.97
-G_M33104_IG12:        ; bbWeight=0.99, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, dword ptr [rbp-0x2C]
-       jmp      SHORT G_M33104_IG06
-                       ;; size=5 bbWeight=0.99 PerfScore 2.97
-G_M33104_IG13:        ; bbWeight=1.98, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, dword ptr [rbp-0x2C]
-       jmp      SHORT G_M33104_IG06
-                       ;; size=5 bbWeight=1.98 PerfScore 5.94
-G_M33104_IG14:        ; bbWeight=1, gcVars=0000000000000008 {V05}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs -[r12-r13 r15]
-       ; GC ptr vars -{V08}
-       cmp      gword ptr [rbp-0x40], 0
-       je       SHORT G_M33104_IG16
-                       ;; size=7 bbWeight=1 PerfScore 3.00
-G_M33104_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       test     rax, rax
+       je       SHORT G_M33104_IG11
+                       ;; size=9 bbWeight=1 PerfScore 2.25
+G_M33104_IG10:        ; bbWeight=0.50, gcVars=0000000000000008 {V05}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -250,10 +227,10 @@ G_M33104_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; gcrRegs -[rsi r15]
        ; byrRegs -[rbx rdi]
                        ;; size=42 bbWeight=0.50 PerfScore 2.75
-G_M33104_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M33104_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M33104_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M33104_IG12:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      r12
@@ -263,8 +240,41 @@ G_M33104_IG17:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
+G_M33104_IG13:        ; bbWeight=1.98, gcVars=0000000000000000 {}, gcrefRegs=B001 {rax r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs +[rax r12-r13 r15]
+       ; byrRegs +[rbx]
+       mov      gword ptr [rbp-0x40], rax
+       ; GC ptr vars +{V05}
+       jmp      G_M33104_IG03
+                       ;; size=9 bbWeight=1.98 PerfScore 5.94
+G_M33104_IG14:        ; bbWeight=7.92, gcVars=0000000000000108 {V05 V08}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs -[rax]
+       ; GC ptr vars +{V08}
+       mov      dword ptr [rbp-0x2C], ecx
+       mov      ecx, eax
+       jmp      G_M33104_IG05
+                       ;; size=10 bbWeight=7.92 PerfScore 25.74
+G_M33104_IG15:        ; bbWeight=0.99, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref
+       mov      ecx, dword ptr [rbp-0x2C]
+       jmp      G_M33104_IG06
+                       ;; size=8 bbWeight=0.99 PerfScore 2.97
+G_M33104_IG16:        ; bbWeight=0.99, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref
+       mov      ecx, dword ptr [rbp-0x2C]
+       jmp      G_M33104_IG06
+                       ;; size=8 bbWeight=0.99 PerfScore 2.97
+G_M33104_IG17:        ; bbWeight=1.98, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0008 {rbx}, byref
+       mov      ecx, dword ptr [rbp-0x2C]
+       jmp      G_M33104_IG06
+                       ;; size=8 bbWeight=1.98 PerfScore 5.94
+G_M33104_IG18:        ; bbWeight=0.50, gcVars=0000000000000008 {V05}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs -[r12-r13 r15]
+       ; GC ptr vars -{V08}
+       mov      rax, gword ptr [rbp-0x40]
+       ; gcrRegs +[rax]
+       jmp      SHORT G_M33104_IG09
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 476, prolog size 19, PerfScore 524.38, instruction count 132, allocated bytes for code 476 (MethodHash=1a577eaf) for method System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)
+; Total bytes of code 499, prolog size 19, PerfScore 525.11, instruction count 135, allocated bytes for code 499 (MethodHash=1a577eaf) for method System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+14 (+5.20%) : 11292.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)

@@ -26,7 +26,7 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V17 tmp12        [V17,T03] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.String>
 ;  V19 tmp14        [V19,T05] (  2,  8   )   byref  ->  rdi         "impAppendStmt"
 ;* V20 tmp15        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp16        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -45,7 +45,7 @@
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V35 tmp30        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
-;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->  rdx         single-def "arr expr"
 ;  V38 tmp33        [V38,T10] (  3,  3   )     int  ->  rsi         "index expr"
 ;  V39 cse0         [V39,T02] (  4, 18.50)     int  ->  r14         "CSE - aggressive"
 ;  V40 cse1         [V40,T15] (  2,  1   )     ref  ->  rax         "CSE - aggressive"
@@ -69,7 +69,7 @@ G_M51747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M51747_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       G_M51747_IG16
+       je       G_M51747_IG17
        mov      r14d, dword ptr [rbx+0x08]
        test     r14d, r14d
        jne      SHORT G_M51747_IG05
@@ -103,60 +103,61 @@ G_M51747_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
        ; byrRegs -[rdi]
        ; gcr arg pop 0
        mov      r12d, eax
-       mov      rdi, gword ptr [r15+0x08]
-       ; gcrRegs +[rdi]
+       mov      rdx, gword ptr [r15+0x08]
+       ; gcrRegs +[rdx]
        mov      esi, r12d
        and      esi, dword ptr [r15+0x14]
-       cmp      esi, dword ptr [rdi+0x08]
-       jae      SHORT G_M51747_IG15
-       mov      rax, gword ptr [rdi+8*rsi+0x10]
+       cmp      esi, dword ptr [rdx+0x08]
+       jae      G_M51747_IG16
+       mov      rax, gword ptr [rdx+8*rsi+0x10]
        ; gcrRegs +[rax]
        test     rax, rax
        je       SHORT G_M51747_IG11
-                       ;; size=57 bbWeight=0.50 PerfScore 8.75
+                       ;; size=61 bbWeight=0.50 PerfScore 8.75
 G_M51747_IG06:        ; bbWeight=4, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       ; gcrRegs -[rdi]
+       ; gcrRegs -[rdx]
        cmp      dword ptr [rax+0x18], r12d
-       jne      SHORT G_M51747_IG10
+       jne      SHORT G_M51747_IG13
                        ;; size=6 bbWeight=4 PerfScore 16.00
 G_M51747_IG07:        ; bbWeight=2, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       mov      rcx, gword ptr [rax+0x08]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       cmp      rcx, rbx
-       je       SHORT G_M51747_IG13
-                       ;; size=11 bbWeight=2 PerfScore 12.50
-G_M51747_IG08:        ; bbWeight=16, gcrefRegs=800B {rax rcx rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       cmp      dword ptr [rcx+0x08], r14d
-       jne      SHORT G_M51747_IG10
-                       ;; size=6 bbWeight=16 PerfScore 64.00
-G_M51747_IG09:        ; bbWeight=2, gcrefRegs=800B {rax rcx rbx r15}, byrefRegs=2000 {r13}, byref, isz
        mov      gword ptr [rbp-0x30], rax
        ; GC ptr vars +{V04}
-       lea      rdi, bword ptr [rcx+0x0C]
+       mov      rdx, gword ptr [rax+0x08]
+       ; gcrRegs +[rdx]
+       cmp      byte  ptr [rdx], dl
+       cmp      rdx, rbx
+       je       SHORT G_M51747_IG14
+                       ;; size=15 bbWeight=2 PerfScore 14.50
+G_M51747_IG08:        ; bbWeight=16, gcVars=0000000000000002 {V04}, gcrefRegs=800C {rdx rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       cmp      dword ptr [rdx+0x08], r14d
+       jne      SHORT G_M51747_IG10
+                       ;; size=6 bbWeight=16 PerfScore 64.00
+G_M51747_IG09:        ; bbWeight=2, gcrefRegs=800C {rdx rbx r15}, byrefRegs=2000 {r13}, byref, isz
+       lea      rdi, bword ptr [rdx+0x0C]
        ; byrRegs +[rdi]
-       mov      edx, dword ptr [rcx+0x08]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
        add      edx, edx
        mov      rsi, r13
        ; byrRegs +[rsi]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx]
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
+       jne      SHORT G_M51747_IG14
+                       ;; size=22 bbWeight=2 PerfScore 14.50
+G_M51747_IG10:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=2000 {r13}, byref, isz
        mov      rax, gword ptr [rbp-0x30]
        ; gcrRegs +[rax]
-       jne      SHORT G_M51747_IG13
-                       ;; size=30 bbWeight=2 PerfScore 18.50
-G_M51747_IG10:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
-       ; GC ptr vars -{V04}
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M51747_IG06
-                       ;; size=9 bbWeight=4 PerfScore 13.00
-G_M51747_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+                       ;; size=13 bbWeight=4 PerfScore 17.00
+G_M51747_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        ; byrRegs -[r13]
+       ; GC ptr vars -{V04}
        mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      rsi, rbx
@@ -177,10 +178,21 @@ G_M51747_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51747_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+G_M51747_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
+       ; gcrRegs +[rbx r15]
+       ; byrRegs +[r13]
+       mov      gword ptr [rbp-0x30], rax
+       ; GC ptr vars +{V04}
+       jmp      SHORT G_M51747_IG10
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M51747_IG14:        ; bbWeight=0.50, gcVars=0000000000000002 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx r15]
+       ; byrRegs -[r13]
+       mov      rax, gword ptr [rbp-0x30]
+       ; gcrRegs +[rax]
        mov      rax, gword ptr [rax+0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M51747_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M51747_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -190,12 +202,13 @@ G_M51747_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51747_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M51747_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
+       ; GC ptr vars -{V04}
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51747_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51747_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 5
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -209,7 +222,7 @@ G_M51747_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 269, prolog size 22, PerfScore 154.75, instruction count 89, allocated bytes for code 269 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
+; Total bytes of code 283, prolog size 22, PerfScore 163.25, instruction count 92, allocated bytes for code 283 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+19 (+5.23%) : 30188.dasm - System.Linq.Tests.Perf_Enumerable:EmptyTakeSelectToArray():this (FullOpts)

@@ -11,35 +11,37 @@
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Linq.Tests.Perf_Enumerable>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T04] (  2,  4   )     ref  ->  rsi         class-hnd single-def "dup spill" <<unknown class>>
-;  V03 tmp2         [V03,T03] (  3,  4   )     ref  ->  rbx         class-hnd "impAppendStmt" <System.Collections.Generic.IEnumerable`1[int]>
+;  V03 tmp2         [V03,T03] (  3,  4   )     ref  ->  r14         class-hnd "impAppendStmt" <System.Collections.Generic.IEnumerable`1[int]>
 ;* V04 tmp3         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V05 tmp4         [V05,T05] (  4,  3.50)     ref  ->  rsi        
-;  V06 tmp5         [V06,T02] (  5,  5   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V06 tmp5         [V06,T02] (  5,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V07 tmp6         [V07,T00] (  5,  8   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <int[]>
 ;* V08 tmp7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <int[]>
 ;* V09 tmp8         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V10 tmp9         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <int[]>
-;  V11 tmp10        [V11,T10] (  3,  1.50)     ref  ->  rbx         class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[int]>
+;  V11 tmp10        [V11,T10] (  3,  1.50)     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[int]>
 ;  V12 tmp11        [V12,T11] (  3,  1.50)     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V13 tmp12        [V13,T08] (  4,  2   )     ref  ->  rbx         class-hnd "Inline stloc first use temp" <System.Collections.Generic.IEnumerable`1[int]>
-;  V14 tmp13        [V14,T09] (  4,  2   )     ref  ->  rbx        
+;  V13 tmp12        [V13,T08] (  4,  2   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Collections.Generic.IEnumerable`1[int]>
+;  V14 tmp13        [V14,T09] (  4,  2   )     ref  ->  r14        
 ;* V15 tmp14        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <int[]>
-;  V16 tmp15        [V16,T01] (  6,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Enumerable+ListPartition`1[int]>
+;  V16 tmp15        [V16,T01] (  6,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Enumerable+ListPartition`1[int]>
 ;* V17 tmp16        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Linq.Enumerable+EnumerablePartition`1[int]>
 ;  V18 tmp17        [V18,T06] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V19 cse0         [V19,T07] (  3,  2.50)     ref  ->  rbx         "CSE - moderate"
 ;* V20 cse1         [V20,T12] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;* V21 cse2         [V21,T13] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M60061_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
+       push     r14
        push     rbx
-       lea      rbp, [rsp+0x10]
-                       ;; size=9 bbWeight=1 PerfScore 3.50
-G_M60061_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       push     rax
+       lea      rbp, [rsp+0x20]
+                       ;; size=12 bbWeight=1 PerfScore 5.50
+G_M60061_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E
        mov      esi, 62
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
@@ -49,40 +51,36 @@ G_M60061_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15, rbx
        ; gcrRegs +[r15]
        test     r15, r15
-       je       G_M60061_IG13
+       je       G_M60061_IG14
        cmp      dword ptr [r15+0x08], 0
-       jne      SHORT G_M60061_IG04
-                       ;; size=52 bbWeight=1 PerfScore 9.25
-G_M60061_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r15]
-       jmp      SHORT G_M60061_IG08
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M60061_IG04:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx] +[r15]
+       je       G_M60061_IG08
+                       ;; size=56 bbWeight=1 PerfScore 9.25
+G_M60061_IG03:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_ISINSTANCEOFINTERFACE
        ; gcrRegs -[rsi] +[rax]
        test     rax, rax
-       jne      SHORT G_M60061_IG07
-       jmp      SHORT G_M60061_IG06
+       jne      SHORT G_M60061_IG06
+       jmp      SHORT G_M60061_IG05
                        ;; size=25 bbWeight=0.50 PerfScore 2.38
-G_M60061_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax r15] +[rbx]
-       jmp      SHORT G_M60061_IG08
+G_M60061_IG04:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax r15] +[r14]
+       jmp      SHORT G_M60061_IG07
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M60061_IG06:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx] +[r15]
+G_M60061_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14] +[r15]
        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable+ListPartition`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      r14, rax
+       ; gcrRegs +[r14]
        call     <unknown method>
        ; gcrRegs -[rax]
-       mov      dword ptr [rbx+0x08], eax
-       lea      rdi, bword ptr [rbx+0x18]
+       mov      dword ptr [r14+0x08], eax
+       lea      rdi, bword ptr [r14+0x18]
        ; byrRegs +[rdi]
        mov      rsi, r15
        ; gcrRegs +[rsi]
@@ -90,102 +88,113 @@ G_M60061_IG06:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
        ; gcrRegs -[rsi r15]
        ; byrRegs -[rdi]
        xor      edi, edi
-       mov      dword ptr [rbx+0x14], edi
-       mov      dword ptr [rbx+0x20], 9
-       jmp      SHORT G_M60061_IG05
-                       ;; size=52 bbWeight=0.50 PerfScore 4.75
-G_M60061_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx] +[rax]
+       mov      dword ptr [r14+0x14], edi
+       mov      dword ptr [r14+0x20], 9
+       jmp      SHORT G_M60061_IG04
+                       ;; size=55 bbWeight=0.50 PerfScore 4.75
+G_M60061_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14] +[rax]
        mov      rdi, rax
        ; gcrRegs +[rdi]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        mov      esi, 10
        call     [r11]<unknown method>
        ; gcrRegs -[rdi]
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       test     rbx, rbx
-       jne      SHORT G_M60061_IG08
+       mov      r14, rax
+       ; gcrRegs +[r14]
+       test     r14, r14
+       jne      SHORT G_M60061_IG07
        mov      rdi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      rbx, gword ptr [rdi]
+       mov      r14, gword ptr [rdi]
                        ;; size=42 bbWeight=0.50 PerfScore 3.75
-G_M60061_IG08:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M60061_IG07:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
+       jmp      SHORT G_M60061_IG09
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M60061_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14] +[rbx]
+       mov      r14, rbx
+       ; gcrRegs +[r14]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M60061_IG09:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M60061_IG14
+       je       G_M60061_IG15
                        ;; size=13 bbWeight=1 PerfScore 4.00
-G_M60061_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M60061_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        mov      rdi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       jne      SHORT G_M60061_IG11
+       jne      SHORT G_M60061_IG12
                        ;; size=18 bbWeight=1 PerfScore 3.50
-G_M60061_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M60061_IG11:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      r15, rax
-       ; gcrRegs +[r15]
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
        mov      rdi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       je       SHORT G_M60061_IG15
-       lea      rdi, bword ptr [r15+0x08]
+       je       SHORT G_M60061_IG16
+       lea      rdi, bword ptr [rbx+0x08]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
        mov      rdi, 0xD1FFAB1E      ; code for <unknown method>
-       mov      qword ptr [r15+0x18], rdi
+       mov      qword ptr [rbx+0x18], rdi
        mov      rdi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      rsi, r15
+       mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rsi]
-       mov      rsi, r15
+       mov      rsi, rbx
        ; gcrRegs +[rsi]
                        ;; size=80 bbWeight=0.50 PerfScore 4.75
-G_M60061_IG11:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r15]
-       mov      rdi, rbx
+G_M60061_IG12:        ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      rdi, r14
        ; gcrRegs +[rdi]
        call     [<unknown method>]
-       ; gcrRegs -[rbx rsi rdi] +[rax]
+       ; gcrRegs -[rsi rdi r14] +[rax]
        mov      rdi, rax
        ; gcrRegs +[rdi]
        call     [System.Linq.Enumerable:ToArray[int](System.Collections.Generic.IEnumerable`1[int]):int[]]
        ; gcrRegs -[rdi]
        nop      
                        ;; size=19 bbWeight=1 PerfScore 6.75
-G_M60061_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M60061_IG13:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 2.50
-G_M60061_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M60061_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      edi, 17
        call     [System.Linq.ThrowHelper:ThrowArgumentNullException(int)]
        int3     
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M60061_IG14:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+G_M60061_IG15:        ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[r14]
        mov      rdi, 0xD1FFAB1E
        mov      esi, 973
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-       jmp      G_M60061_IG09
+       jmp      G_M60061_IG10
                        ;; size=25 bbWeight=0 PerfScore 0.00
-G_M60061_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+G_M60061_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14]
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
...

benchmarks.run_pgo.linux.x64.checked.mch

-26 (-9.59%) : 98719.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ThisParameterSymbol:get_RefKind():ubyte:this (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rbp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are valid, and fgCalledCount is 4575
+; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4575
 ; 2 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -33,7 +33,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M31300_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M31300_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     rbx
@@ -41,117 +41,39 @@ G_M31300_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rdi
        ; gcrRegs +[rbx]
                        ;; size=12 bbWeight=1 PerfScore 3.75
-G_M31300_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M31300_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r15, gword ptr [rbx+0x10]
        ; gcrRegs +[r15]
        test     r15, r15
-       je       G_M31300_IG14
-                       ;; size=13 bbWeight=1 PerfScore 3.25
-G_M31300_IG03:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       jne      SHORT G_M31300_IG04
+                       ;; size=9 bbWeight=1 PerfScore 3.25
+G_M31300_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
+       mov      r15, gword ptr [rbx+0x18]
+       ; gcrRegs +[r15]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M31300_IG04:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rsi] +[rax]
        cmp      rax, r15
-       je       G_M31300_IG15
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple
+       jne      SHORT G_M31300_IG06
+                       ;; size=23 bbWeight=1 PerfScore 2.75
+G_M31300_IG05:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      qword ptr [r15], rax
-       jne      G_M31300_IG16
-       mov      rdi, gword ptr [r15+0x38]
-       ; gcrRegs +[rdi]
-                       ;; size=50 bbWeight=1 PerfScore 9.00
-G_M31300_IG04:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r15]
-       test     rdi, rdi
-       je       SHORT G_M31300_IG06
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol
-       cmp      qword ptr [rdi], rax
-       jne      G_M31300_IG17
-       mov      ecx, dword ptr [rdi+0x88]
-       sar      ecx, 10
-       and      ecx, 15
-                       ;; size=36 bbWeight=1 PerfScore 8.25
-G_M31300_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       cmp      ecx, 10
-       je       SHORT G_M31300_IG08
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M31300_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M31300_IG07:        ; bbWeight=1, epilog, nogc, extend
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=5 bbWeight=1 PerfScore 2.50
-G_M31300_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
-       mov      rdi, gword ptr [rbx+0x10]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M31300_IG10
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0xD0]
-       call     [rax+0x20]<unknown method>
-       ; gcrRegs -[rdi]
-       cmp      eax, 1
-       sete     al
-       movzx    rax, al
-       test     eax, eax
-       je       SHORT G_M31300_IG10
-       mov      eax, 2
-                       ;; size=40 bbWeight=0 PerfScore 0.00
-G_M31300_IG09:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31300_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      rdi, gword ptr [rbx+0x10]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M31300_IG12
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0xF8]
-       call     [rax]<unknown method>
-       ; gcrRegs -[rbx rdi]
-       test     eax, eax
-       je       SHORT G_M31300_IG12
-       mov      eax, 3
-                       ;; size=30 bbWeight=0 PerfScore 0.00
-G_M31300_IG11:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31300_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31300_IG13:        ; bbWeight=0, epilog, nogc, extend
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31300_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs +[rbx]
-       mov      r15, gword ptr [rbx+0x18]
-       ; gcrRegs +[r15]
-       jmp      G_M31300_IG03
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M31300_IG15:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rdi, r15
        ; gcrRegs +[rdi]
-       jmp      G_M31300_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M31300_IG16:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M31300_IG08
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M31300_IG06:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
+       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple
+       cmp      qword ptr [r15], rax
+       je       SHORT G_M31300_IG09
+                       ;; size=15 bbWeight=1 PerfScore 4.25
+G_M31300_IG07:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      rax, qword ptr [r15]
@@ -160,19 +82,106 @@ G_M31300_IG16:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        ; gcrRegs -[rdi r15] +[rax]
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       jmp      G_M31300_IG04
-                       ;; size=21 bbWeight=0 PerfScore 0.00
-G_M31300_IG17:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M31300_IG08:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
+       test     rdi, rdi
+       je       SHORT G_M31300_IG13
+       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol
+       cmp      qword ptr [rdi], rax
+       je       SHORT G_M31300_IG15
+       jmp      SHORT G_M31300_IG10
+                       ;; size=22 bbWeight=1 PerfScore 7.50
+G_M31300_IG09:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi] +[r15]
+       mov      rdi, gword ptr [r15+0x38]
+       ; gcrRegs +[rdi]
+       jmp      SHORT G_M31300_IG08
+                       ;; size=6 bbWeight=1 PerfScore 4.00
+G_M31300_IG10:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rdi]
        mov      ecx, eax
-       jmp      G_M31300_IG05
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
+G_M31300_IG11:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 10
+       jne      SHORT G_M31300_IG13
+                       ;; size=5 bbWeight=1 PerfScore 1.25
+G_M31300_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      rdi, gword ptr [rbx+0x10]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       je       SHORT G_M31300_IG18
+       jmp      SHORT G_M31300_IG16
+                       ;; size=11 bbWeight=0 PerfScore 0.00
+G_M31300_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rdi]
+       xor      eax, eax
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M31300_IG14:        ; bbWeight=1, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=1 PerfScore 2.50
+G_M31300_IG15:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx rdi]
+       mov      ecx, dword ptr [rdi+0x88]
+       sar      ecx, 10
+       and      ecx, 15
+       jmp      SHORT G_M31300_IG11
+                       ;; size=14 bbWeight=1 PerfScore 4.75
+G_M31300_IG16:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0xD0]
+       call     [rax+0x20]<unknown method>
+       ; gcrRegs -[rdi]
+       cmp      eax, 1
+       sete     al
+       movzx    rax, al
+       test     eax, eax
+       je       SHORT G_M31300_IG18
+       mov      eax, 2
+                       ;; size=31 bbWeight=0 PerfScore 0.00
+G_M31300_IG17:        ; bbWeight=0, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M31300_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      rdi, gword ptr [rbx+0x10]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       je       SHORT G_M31300_IG20
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0xF8]
+       call     [rax]<unknown method>
+       ; gcrRegs -[rbx rdi]
+       test     eax, eax
+       je       SHORT G_M31300_IG20
+       mov      eax, 3
+                       ;; size=30 bbWeight=0 PerfScore 0.00
+G_M31300_IG19:        ; bbWeight=0, epilog, nogc, extend
+       pop      rbx
...

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

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

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

@@ -35,16 +35,15 @@ G_M23529_IG04:        ; bbWeight=1, epilog, nogc, extend
 G_M23529_IG05:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        cmp      qword ptr [rsi], rdi
-       jne      SHORT G_M23529_IG06
-       jmp      SHORT G_M23529_IG03
-                       ;; size=7 bbWeight=0.33 PerfScore 2.00
+       je       SHORT G_M23529_IG03
+                       ;; size=5 bbWeight=0.33 PerfScore 1.33
 G_M23529_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, epilog, nogc
        pop      rbp
        tail.jmp [System.Runtime.CompilerServices.CastHelpers:ChkCastClassSpecial(ulong,System.Object):System.Object]
        ; gcr arg pop 0
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 28, prolog size 4, PerfScore 6.25, instruction count 12, allocated bytes for code 28 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 26, prolog size 4, PerfScore 5.58, instruction count 11, allocated bytes for code 26 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:

+44 (+10.53%) : 150845.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rbp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 9442
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 9442
 ; 8 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T04] (  9,  5.24)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T06] (  3,  3   )   ubyte  ->  r15         single-def
+;  V01 arg1         [V01,T06] (  4,  3   )   ubyte  ->  r15         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -51,28 +51,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG16
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E      ; System.Threading.Channels.VoidAsyncOperationWithData`1[System.Object[]]
        cmp      qword ptr [rax], rsi
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.23, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.23, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rsi, rbx
        ; gcrRegs +[rsi]
@@ -80,73 +70,28 @@ G_M29172_IG06:        ; bbWeight=0.23, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.23 PerfScore 0.82
-G_M29172_IG07:        ; bbWeight=0.27, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.27, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.27 PerfScore 0.07
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG17
        mov      rax, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rax]
        mov      r14, gword ptr [rax]
        ; gcrRegs +[r14]
        cmp      byte  ptr [r14+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=20 bbWeight=1 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       cmp      byte  ptr [rdi+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rsi rdi]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG18
+                       ;; size=33 bbWeight=1 PerfScore 7.50
+G_M29172_IG07:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        test     r15b, r15b
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      edi, 5
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, gword ptr [rax+0x40]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M29172_IG14
-       mov      rdi, gword ptr [rdi+0x18]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       cmp      dword ptr [rdi], edi
-       call     [<unknown method>]
-       ; gcrRegs -[rbx rsi rdi]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG19
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG08:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [r14+0x08]
        ; gcrRegs +[rdi]
        mov      r13, gword ptr [rdi+0x10]
@@ -154,28 +99,19 @@ G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        mov      r12, gword ptr [r13+0x08]
        ; gcrRegs +[r12]
                        ;; size=12 bbWeight=1 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG09:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [r13+0xA0]
        mov      dword ptr [rbp-0x2C], eax
        mov      esi, eax
        and      esi, dword ptr [r13+0x18]
        cmp      esi, dword ptr [r12+0x08]
-       jae      G_M29172_IG23
+       jae      G_M29172_IG15
        shl      rsi, 4
        lea      r15, bword ptr [r12+rsi+0x10]
        ; byrRegs +[r15]
        mov      ecx, dword ptr [r15+0x08]
        sub      ecx, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=44 bbWeight=1 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r15]
-       test     ecx, ecx
-       jge      SHORT G_M29172_IG15
-       jmp      G_M29172_IG24
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=8000 {r15}, byref, isz
-       ; byrRegs +[r15]
+       jne      G_M29172_IG20
        lea      rsi, bword ptr [r13+0xA0]
        ; byrRegs +[rsi]
        lea      ecx, [rax+0x01]
@@ -183,7 +119,7 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        cmpxchg  dword ptr [rsi], ecx
        cmp      eax, dword ptr [rbp-0x2C]
        mov      dword ptr [rbp-0x30], ecx
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG09
        mov      rdi, r15
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
@@ -195,8 +131,8 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        ; byrRegs -[rdi]
        mov      ebx, dword ptr [rbp-0x30]
        mov      dword ptr [r15+0x08], ebx
-                       ;; size=40 bbWeight=1 PerfScore 26.50
-G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+                       ;; size=88 bbWeight=1 PerfScore 41.50
+G_M29172_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r15]
        add      r14, 116
        ; gcrRegs -[r14]
@@ -206,9 +142,9 @@ G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byr
        lock     
        cmpxchg  dword ptr [r14], edi
        test     eax, eax
-       jne      SHORT G_M29172_IG21
+       jne      SHORT G_M29172_IG12
                        ;; size=20 bbWeight=1 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG11:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r14]
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r13, gword ptr [rdi]
@@ -224,19 +160,13 @@ G_M29172_IG19:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        cmp      dword ptr [r13+0x164], 6
-       je       SHORT G_M29172_IG21
+       jne      SHORT G_M29172_IG14
                        ;; size=42 bbWeight=0.92 PerfScore 23.87
-G_M29172_IG20:        ; bbWeight=0.00, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
-       mov      rdi, r13
-       ; gcrRegs +[rdi]
-       call     [<unknown method>]
-       ; gcrRegs -[rdi r13]
-       ; gcr arg pop 0
-                       ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M29172_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29172_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r13]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M29172_IG22:        ; bbWeight=1, epilog, nogc, extend
+G_M29172_IG13:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -246,21 +176,82 @@ G_M29172_IG22:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M29172_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29172_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[r13]
+       mov      rdi, r13
+       ; gcrRegs +[rdi]
+       call     [<unknown method>]
+       ; gcrRegs -[rdi r13]
+       ; gcr arg pop 0
+       jmp      SHORT G_M29172_IG12
+                       ;; size=11 bbWeight=0.00 PerfScore 0.00
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG24:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rdi r14]
+G_M29172_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      edi, 44
+       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
...

+44 (+10.53%) : 40379.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rbp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 7647
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 7647
 ; 8 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9,  5.19)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  r15         single-def
+;  V01 arg1         [V01,T05] (  4,  3   )   ubyte  ->  r15         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -51,28 +51,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG16
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E      ; System.Threading.Channels.AsyncOperation`1[ubyte]
        cmp      qword ptr [rax], rsi
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rsi, rbx
        ; gcrRegs +[rsi]
@@ -80,73 +70,28 @@ G_M29172_IG06:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.19 PerfScore 0.67
-G_M29172_IG07:        ; bbWeight=0.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.31 PerfScore 0.08
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG17
        mov      rax, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rax]
        mov      r14, gword ptr [rax]
        ; gcrRegs +[r14]
        cmp      byte  ptr [r14+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=20 bbWeight=1 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       cmp      byte  ptr [rdi+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rsi rdi]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG18
+                       ;; size=33 bbWeight=1 PerfScore 7.50
+G_M29172_IG07:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        test     r15b, r15b
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      edi, 5
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, gword ptr [rax+0x40]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M29172_IG14
-       mov      rdi, gword ptr [rdi+0x18]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       cmp      dword ptr [rdi], edi
-       call     [<unknown method>]
-       ; gcrRegs -[rbx rsi rdi]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG19
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG08:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [r14+0x08]
        ; gcrRegs +[rdi]
        mov      r13, gword ptr [rdi+0x10]
@@ -154,28 +99,19 @@ G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        mov      r12, gword ptr [r13+0x08]
        ; gcrRegs +[r12]
                        ;; size=12 bbWeight=1 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG09:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [r13+0xA0]
        mov      dword ptr [rbp-0x2C], eax
        mov      esi, eax
        and      esi, dword ptr [r13+0x18]
        cmp      esi, dword ptr [r12+0x08]
-       jae      G_M29172_IG23
+       jae      G_M29172_IG15
        shl      rsi, 4
        lea      r15, bword ptr [r12+rsi+0x10]
        ; byrRegs +[r15]
        mov      ecx, dword ptr [r15+0x08]
        sub      ecx, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=44 bbWeight=1 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r15]
-       test     ecx, ecx
-       jge      SHORT G_M29172_IG15
-       jmp      G_M29172_IG24
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=8000 {r15}, byref, isz
-       ; byrRegs +[r15]
+       jne      G_M29172_IG20
        lea      rsi, bword ptr [r13+0xA0]
        ; byrRegs +[rsi]
        lea      ecx, [rax+0x01]
@@ -183,7 +119,7 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        cmpxchg  dword ptr [rsi], ecx
        cmp      eax, dword ptr [rbp-0x2C]
        mov      dword ptr [rbp-0x30], ecx
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG09
        mov      rdi, r15
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
@@ -195,8 +131,8 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        ; byrRegs -[rdi]
        mov      ebx, dword ptr [rbp-0x30]
        mov      dword ptr [r15+0x08], ebx
-                       ;; size=40 bbWeight=1 PerfScore 26.50
-G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+                       ;; size=88 bbWeight=1 PerfScore 41.50
+G_M29172_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r15]
        add      r14, 116
        ; gcrRegs -[r14]
@@ -206,10 +142,23 @@ G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byr
        lock     
        cmpxchg  dword ptr [r14], edi
        test     eax, eax
-       jne      SHORT G_M29172_IG21
+       je       SHORT G_M29172_IG13
                        ;; size=20 bbWeight=1 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[r14]
+       mov      eax, 1
+                       ;; size=5 bbWeight=1 PerfScore 0.25
+G_M29172_IG12:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=1 PerfScore 4.25
+G_M29172_IG13:        ; bbWeight=0.29, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r13, gword ptr [rdi]
        ; gcrRegs +[r13]
@@ -224,43 +173,83 @@ G_M29172_IG19:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        cmp      dword ptr [r13+0x164], 6
-       je       SHORT G_M29172_IG21
+       je       SHORT G_M29172_IG11
                        ;; size=42 bbWeight=0.29 PerfScore 7.59
-G_M29172_IG20:        ; bbWeight=0.00, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
+G_M29172_IG14:        ; bbWeight=0.00, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r13
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rdi r13]
        ; gcr arg pop 0
-                       ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M29172_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M29172_IG22:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=1 PerfScore 4.25
-G_M29172_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       jmp      SHORT G_M29172_IG11
+                       ;; size=11 bbWeight=0.00 PerfScore 0.00
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG24:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rdi r14]
...

+44 (+10.53%) : 140540.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rbp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 9726
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 9726
 ; 8 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9,  5.22)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T06] (  3,  3   )   ubyte  ->  r15         single-def
+;  V01 arg1         [V01,T06] (  4,  3   )   ubyte  ->  r15         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -51,28 +51,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG16
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E      ; System.Threading.Channels.AsyncOperation`1[ubyte]
        cmp      qword ptr [rax], rsi
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rsi, rbx
        ; gcrRegs +[rsi]
@@ -80,73 +70,28 @@ G_M29172_IG06:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.22 PerfScore 0.77
-G_M29172_IG07:        ; bbWeight=0.28, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.28, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.28 PerfScore 0.07
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      edi, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG17
        mov      rax, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rax]
        mov      r14, gword ptr [rax]
        ; gcrRegs +[r14]
        cmp      byte  ptr [r14+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=20 bbWeight=1 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       cmp      byte  ptr [rdi+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rdi]
-       ; gcrRegs +[rdi]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rsi rdi]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG18
+                       ;; size=33 bbWeight=1 PerfScore 7.50
+G_M29172_IG07:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        test     r15b, r15b
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      edi, 5
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, gword ptr [rax+0x40]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M29172_IG14
-       mov      rdi, gword ptr [rdi+0x18]
-       mov      rsi, rbx
-       ; gcrRegs +[rsi]
-       cmp      dword ptr [rdi], edi
-       call     [<unknown method>]
-       ; gcrRegs -[rbx rsi rdi]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG19
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG08:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [r14+0x08]
        ; gcrRegs +[rdi]
        mov      r13, gword ptr [rdi+0x10]
@@ -154,28 +99,19 @@ G_M29172_IG14:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        mov      r12, gword ptr [r13+0x08]
        ; gcrRegs +[r12]
                        ;; size=12 bbWeight=1 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG09:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [r13+0xA0]
        mov      dword ptr [rbp-0x2C], eax
        mov      esi, eax
        and      esi, dword ptr [r13+0x18]
        cmp      esi, dword ptr [r12+0x08]
-       jae      G_M29172_IG23
+       jae      G_M29172_IG15
        shl      rsi, 4
        lea      r15, bword ptr [r12+rsi+0x10]
        ; byrRegs +[r15]
        mov      ecx, dword ptr [r15+0x08]
        sub      ecx, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=44 bbWeight=1 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r15]
-       test     ecx, ecx
-       jge      SHORT G_M29172_IG15
-       jmp      G_M29172_IG24
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefRegs=8000 {r15}, byref, isz
-       ; byrRegs +[r15]
+       jne      G_M29172_IG20
        lea      rsi, bword ptr [r13+0xA0]
        ; byrRegs +[rsi]
        lea      ecx, [rax+0x01]
@@ -183,7 +119,7 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        cmpxchg  dword ptr [rsi], ecx
        cmp      eax, dword ptr [rbp-0x2C]
        mov      dword ptr [rbp-0x30], ecx
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG09
        mov      rdi, r15
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
@@ -195,8 +131,8 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=7088 {rbx rdi r12 r13 r14}, byrefR
        ; byrRegs -[rdi]
        mov      ebx, dword ptr [rbp-0x30]
        mov      dword ptr [r15+0x08], ebx
-                       ;; size=40 bbWeight=1 PerfScore 26.50
-G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+                       ;; size=88 bbWeight=1 PerfScore 41.50
+G_M29172_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r15]
        add      r14, 116
        ; gcrRegs -[r14]
@@ -206,9 +142,9 @@ G_M29172_IG18:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byr
        lock     
        cmpxchg  dword ptr [r14], edi
        test     eax, eax
-       jne      SHORT G_M29172_IG21
+       jne      SHORT G_M29172_IG12
                        ;; size=20 bbWeight=1 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.85, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG11:        ; bbWeight=0.85, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r14]
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r13, gword ptr [rdi]
@@ -224,19 +160,13 @@ G_M29172_IG19:        ; bbWeight=0.85, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        cmp      dword ptr [r13+0x164], 6
-       je       SHORT G_M29172_IG21
+       jne      SHORT G_M29172_IG14
                        ;; size=42 bbWeight=0.85 PerfScore 22.08
-G_M29172_IG20:        ; bbWeight=0.00, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
-       mov      rdi, r13
-       ; gcrRegs +[rdi]
-       call     [<unknown method>]
-       ; gcrRegs -[rdi r13]
-       ; gcr arg pop 0
-                       ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M29172_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29172_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r13]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M29172_IG22:        ; bbWeight=1, epilog, nogc, extend
+G_M29172_IG13:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -246,21 +176,82 @@ G_M29172_IG22:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M29172_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29172_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[r13]
+       mov      rdi, r13
+       ; gcrRegs +[rdi]
+       call     [<unknown method>]
+       ; gcrRegs -[rdi r13]
+       ; gcr arg pop 0
+       jmp      SHORT G_M29172_IG12
+                       ;; size=11 bbWeight=0.00 PerfScore 0.00
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG24:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rdi r14]
+G_M29172_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      edi, 44
+       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
...

benchmarks.run_tiered.linux.x64.checked.mch

-18 (-6.90%) : 52239.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)

@@ -71,22 +71,43 @@ G_M46385_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
 G_M46385_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        mov      r9d, dword ptr [rbx+0x08]
        test     r9d, r9d
-       je       SHORT G_M46385_IG04
+       jne      SHORT G_M46385_IG05
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       mov      edi, 36
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        cmp      r9d, 1
-       jne      G_M46385_IG16
+       jne      G_M46385_IG17
        movzx    rdi, word  ptr [rbx+0x0C]
        or       edi, 32
        cmp      edi, 100
-       jg       G_M46385_IG12
+       jg       SHORT G_M46385_IG06
        cmp      edi, 98
-       je       G_M46385_IG14
+       je       SHORT G_M46385_IG08
        cmp      edi, 100
-       jne      G_M46385_IG17
-                       ;; size=53 bbWeight=0.50 PerfScore 5.25
-G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 36
+       jne      G_M46385_IG18
+       jmp      SHORT G_M46385_IG04
+                       ;; size=38 bbWeight=0.50 PerfScore 4.62
+G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       cmp      edi, 110
+       je       SHORT G_M46385_IG07
+       cmp      edi, 112
+       je       SHORT G_M46385_IG08
+       cmp      edi, 120
+       jne      G_M46385_IG18
+       mov      edi, 68
+       jmp      SHORT G_M46385_IG09
+                       ;; size=26 bbWeight=0.50 PerfScore 3.00
+G_M46385_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+       mov      edi, 32
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+       mov      edi, 38
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+G_M46385_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
        call     <unknown method>
        ; gcrRegs +[rax]
        mov      r14, rax
@@ -95,32 +116,41 @@ G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
        ; byrRegs +[rsi]
        mov      edx, dword ptr [r14+0x08]
        test     rbx, rbx
-       jne      G_M46385_IG15
-                       ;; size=25 bbWeight=1 PerfScore 5.00
-G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=8040 {rsi r15}, byref
+       jne      SHORT G_M46385_IG11
+                       ;; size=21 bbWeight=1 PerfScore 5.00
+G_M46385_IG10:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=8040 {rsi r15}, byref, isz
        ; gcrRegs -[rax rbx]
        xor      r8, r8
        ; byrRegs +[r8]
        xor      r9d, r9d
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M46385_IG07:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8140 {rsi r8 r15}, byref, isz
+       jmp      SHORT G_M46385_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG11:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8040 {rsi r15}, byref
+       ; gcrRegs +[rbx]
+       ; byrRegs -[r8]
+       lea      r8, bword ptr [rbx+0x0C]
+       ; byrRegs +[r8]
+       mov      r9d, dword ptr [rbx+0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG12:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8140 {rsi r8 r15}, byref, isz
+       ; gcrRegs -[rbx]
        lea      rcx, [rbp-0x20]
        mov      rdi, r15
        ; byrRegs +[rdi]
        call     [<unknown method>]
        ; byrRegs -[rsi rdi r8 r15]
        test     eax, eax
-       je       SHORT G_M46385_IG09
+       je       SHORT G_M46385_IG14
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        mov      edi, dword ptr [rbp-0x20]
        cmp      edi, dword ptr [r14+0x08]
        sete     dil
        movzx    rdi, dil
        test     dil, dil
-       jne      SHORT G_M46385_IG10
+       jne      SHORT G_M46385_IG15
                        ;; size=20 bbWeight=0.50 PerfScore 3.25
-G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
@@ -128,11 +158,11 @@ G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46385_IG10:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M46385_IG15:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
        mov      rax, r14
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46385_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r14
@@ -140,46 +170,17 @@ G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=11 bbWeight=1 PerfScore 3.25
-G_M46385_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref, isz
-       ; gcrRegs -[rax r14] +[rbx]
-       ; byrRegs +[r15]
-       cmp      edi, 110
-       je       SHORT G_M46385_IG13
-       cmp      edi, 112
-       je       SHORT G_M46385_IG14
-       cmp      edi, 120
-       jne      SHORT G_M46385_IG17
-       mov      edi, 68
-       jmp      G_M46385_IG05
-                       ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 32
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      edi, 38
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG15:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8040 {rsi r15}, byref
-       ; gcrRegs +[r14]
-       ; byrRegs +[rsi]
-       lea      r8, bword ptr [rbx+0x0C]
-       ; byrRegs +[r8]
-       mov      r9d, dword ptr [rbx+0x08]
-       jmp      G_M46385_IG07
-                       ;; size=13 bbWeight=0.50 PerfScore 2.25
-G_M46385_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx r14]
-       ; byrRegs -[rsi r8 r15]
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r14]
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46385_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 261, prolog size 12, PerfScore 38.88, instruction count 72, allocated bytes for code 261 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
+; Total bytes of code 243, prolog size 12, PerfScore 39.88, instruction count 73, allocated bytes for code 243 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:

-14 (-5.26%) : 3681.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)

@@ -52,38 +52,23 @@ G_M34819_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
 G_M34819_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
-       je       SHORT G_M34819_IG04
-       test     rbx, rbx
-       je       G_M34819_IG12
-       jmp      SHORT G_M34819_IG08
-                       ;; size=20 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M34819_IG09
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
 G_M34819_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r15]
        test     rbx, rbx
-       je       SHORT G_M34819_IG06
+       je       SHORT G_M34819_IG05
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M34819_IG06
-       mov      rax, rbx
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.75
-G_M34819_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx]
+       jne      SHORT G_M34819_IG07
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M34819_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 0.25
-G_M34819_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34819_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -93,30 +78,65 @@ G_M34819_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rsi] +[rbx r15]
+G_M34819_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      rax, rbx
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M34819_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M34819_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[r15]
+       test     rbx, rbx
+       je       SHORT G_M34819_IG10
        cmp      dword ptr [rbx+0x08], 0
-       je       G_M34819_IG12
+       jne      SHORT G_M34819_IG12
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      rax, r15
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M34819_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rbx]
        mov      r13d, r14d
        mov      edi, r13d
        add      edi, dword ptr [rbx+0x08]
-       js       G_M34819_IG14
+       js       SHORT G_M34819_IG16
        call     <unknown method>
        ; gcrRegs +[rax]
        mov      r12, rax
        ; gcrRegs +[r12]
        test     r12, r12
-       jne      SHORT G_M34819_IG09
+       jne      SHORT G_M34819_IG13
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rdi, rsi
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rsi rdi]
-                       ;; size=57 bbWeight=0.50 PerfScore 7.25
-G_M34819_IG09:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=43 bbWeight=0.50 PerfScore 5.25
+G_M34819_IG13:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r12+0x08], r14d
-       jge      SHORT G_M34819_IG10
+       jge      SHORT G_M34819_IG14
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        mov      rdi, rsi
@@ -124,7 +144,7 @@ G_M34819_IG09:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
                        ;; size=26 bbWeight=0.50 PerfScore 3.75
-G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+G_M34819_IG14:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        lea      rdi, bword ptr [r12+0x0C]
        ; byrRegs +[rdi]
        lea      rsi, bword ptr [r15+0x0C]
@@ -144,7 +164,7 @@ G_M34819_IG10:        ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        mov      rax, r12
        ; gcrRegs +[rax]
                        ;; size=39 bbWeight=0.50 PerfScore 4.25
-G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M34819_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -154,28 +174,13 @@ G_M34819_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r12] +[r15]
-       mov      rax, r15
-       ; gcrRegs +[rax]
-                       ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M34819_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M34819_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r15]
+G_M34819_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r12]
        call     [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 266, prolog size 16, PerfScore 39.38, instruction count 88, allocated bytes for code 266 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (Tier1)
+; Total bytes of code 252, prolog size 16, PerfScore 38.38, instruction count 87, allocated bytes for code 252 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:

-4 (-4.88%) : 5506.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)

@@ -80,11 +80,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rdi+0x08]
        test     edx, edx
-       je       SHORT G_M49441_IG04
-       test     rsi, rsi
-       je       SHORT G_M49441_IG07
-       jmp      SHORT G_M49441_IG06
-                       ;; size=14 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M49441_IG06
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rax, rsi
@@ -96,19 +93,14 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rdi]
+       test     rsi, rsi
+       je       SHORT G_M49441_IG07
        mov      ecx, dword ptr [rsi+0x08]
        test     ecx, ecx
-       je       SHORT G_M49441_IG07
-       lea      rax, bword ptr [rsi+0x0C]
-       ; byrRegs +[rax]
-       mov      r8, rax
-       ; byrRegs +[r8]
-       mov      r9d, ecx
-       jmp      SHORT G_M49441_IG09
-                       ;; size=19 bbWeight=0.50 PerfScore 3.12
+       jne      SHORT G_M49441_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
-       ; byrRegs -[rax r8]
        mov      rax, rdi
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
@@ -116,14 +108,18 @@ G_M49441_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0101 {rax r8}, gcvars, byref, isz
+G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rsi]
-       ; byrRegs +[rax r8]
+       lea      rax, bword ptr [rsi+0x0C]
+       ; byrRegs +[rax]
+       mov      r8, rax
+       ; byrRegs +[r8]
+       mov      r9d, ecx
        test     r9d, r9d
        jle      SHORT G_M49441_IG10
        cmp      word  ptr [r8], 47
        je       SHORT G_M49441_IG04
-                       ;; size=12 bbWeight=0.50 PerfScore 2.62
+                       ;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M49441_IG10:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0001 {rax}, byref
        ; gcrRegs -[rsi]
        ; byrRegs -[r8]
@@ -143,7 +139,7 @@ G_M49441_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 82, prolog size 4, PerfScore 16.00, instruction count 34, allocated bytes for code 82 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
+; Total bytes of code 78, prolog size 4, PerfScore 14.00, instruction count 32, allocated bytes for code 78 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:

+7 (+3.12%) : 50266.dasm - Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  6, 19   )   byref  ->  rbx         this single-def
+;  V00 this         [V00,T06] (  6, 19   )   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T13] (  4,  6   )   byref  ->  r15         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -32,9 +32,9 @@
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V24 tmp21        [V24,T07] (  5, 14.50)     ref  ->  r13         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V24 tmp21        [V24,T05] (  5, 28.50)     ref  ->  r14         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V25 tmp22        [V25,T00] (  6,336   )   byref  ->  r14         "Inlining Arg"
-;  V26 tmp23        [V26,T06] (  3, 18   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V26 tmp23        [V26,T07] (  3, 18   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V27 tmp24        [V27,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V28 tmp25        [V28,T01] (  3,144   )     int  ->  rdi         "Inline stloc first use temp"
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V05.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
@@ -68,9 +68,9 @@ G_M45554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M45554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        jmp      SHORT G_M45554_IG10
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M45554_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref, isz
-       ; gcrRegs +[r13]
-       mov      rdi, r13
+G_M45554_IG03:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref, isz
+       ; gcrRegs +[r14]
+       mov      rdi, r14
        ; gcrRegs +[rdi]
        call     [Microsoft.CodeAnalysis.SyntaxNode:get_FullSpan():Microsoft.CodeAnalysis.Text.TextSpan:this]
        ; gcrRegs -[rdi]
@@ -82,10 +82,10 @@ G_M45554_IG03:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r1
        mov      edx, dword ptr [rbp-0x28]
        jmp      SHORT G_M45554_IG05
                        ;; size=28 bbWeight=2 PerfScore 25.00
-G_M45554_IG04:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref
+G_M45554_IG04:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref
        mov      edx, ecx
                        ;; size=2 bbWeight=2 PerfScore 0.50
-G_M45554_IG05:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M45554_IG05:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref, isz
        mov      ecx, eax
        add      ecx, dword ptr [r15+0x04]
        mov      edi, ecx
@@ -95,12 +95,12 @@ G_M45554_IG05:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r1
        jle      SHORT G_M45554_IG06
        jmp      SHORT G_M45554_IG07
                        ;; size=20 bbWeight=2 PerfScore 19.50
-G_M45554_IG06:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref
+G_M45554_IG06:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref
        mov      esi, edi
                        ;; size=2 bbWeight=2 PerfScore 0.50
-G_M45554_IG07:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M45554_IG07:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref, isz
        cmp      edx, esi
-       jl       SHORT G_M45554_IG19
+       jl       G_M45554_IG19
        cmp      dword ptr [rbp-0x24], 0
        jne      SHORT G_M45554_IG10
        cmp      ecx, dword ptr [rbp-0x28]
@@ -109,16 +109,16 @@ G_M45554_IG07:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r1
        setge    al
        movzx    rax, al
        jmp      SHORT G_M45554_IG09
-                       ;; size=26 bbWeight=2 PerfScore 25.00
-G_M45554_IG08:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref
+                       ;; size=30 bbWeight=2 PerfScore 25.00
+G_M45554_IG08:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=2 PerfScore 0.50
-G_M45554_IG09:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M45554_IG09:        ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref, isz
        test     eax, eax
        jne      SHORT G_M45554_IG19
                        ;; size=4 bbWeight=2 PerfScore 2.50
 G_M45554_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
-       ; gcrRegs -[r13]
+       ; gcrRegs -[r14]
        mov      rdi, gword ptr [rbx]
        ; gcrRegs +[rdi]
        mov      esi, dword ptr [rbx+0x08]
@@ -139,35 +139,37 @@ G_M45554_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=C008 {rbx r14 r
        mov      r13, rax
        ; gcrRegs +[r13]
        test     r13, r13
-       jne      SHORT G_M45554_IG14
+       jne      SHORT G_M45554_IG15
                        ;; size=21 bbWeight=8 PerfScore 68.00
 G_M45554_IG12:        ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=C008 {rbx r14 r15}, byref, isz
        ; gcrRegs -[rax r13]
        mov      edi, dword ptr [r14+0x0C]
        inc      edi
        cmp      edi, dword ptr [r14+0x08]
-       jge      SHORT G_M45554_IG15
+       jge      SHORT G_M45554_IG14
                        ;; size=12 bbWeight=64 PerfScore 400.00
 G_M45554_IG13:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=C008 {rbx r14 r15}, byref, isz
        mov      dword ptr [r14+0x0C], edi
        jmp      SHORT G_M45554_IG11
                        ;; size=6 bbWeight=16 PerfScore 48.00
-G_M45554_IG14:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref, isz
-       ; gcrRegs +[r13]
+G_M45554_IG14:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
        ; byrRegs -[r14]
+       xor      r14, r14
+       ; gcrRegs +[r14]
        jmp      SHORT G_M45554_IG16
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M45554_IG15:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
-       ; gcrRegs -[r13]
-       xor      r13, r13
-       ; gcrRegs +[r13]
+                       ;; size=5 bbWeight=16 PerfScore 36.00
+G_M45554_IG15:        ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref
+       ; gcrRegs -[r14] +[r13]
+       mov      r14, r13
+       ; gcrRegs +[r14]
                        ;; size=3 bbWeight=2 PerfScore 0.50
-G_M45554_IG16:        ; bbWeight=8, gcrefRegs=2000 {r13}, byrefRegs=8008 {rbx r15}, byref
-       test     r13, r13
+G_M45554_IG16:        ; bbWeight=8, gcrefRegs=4000 {r14}, byrefRegs=8008 {rbx r15}, byref
+       ; gcrRegs -[r13]
+       test     r14, r14
        jne      G_M45554_IG03
                        ;; size=9 bbWeight=8 PerfScore 10.00
 G_M45554_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[r13]
+       ; gcrRegs -[r14]
        ; byrRegs -[r15]
        dec      dword ptr [rbx+0x08]
        xor      rax, rax
@@ -182,10 +184,10 @@ G_M45554_IG18:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M45554_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax] +[r13]
+G_M45554_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax] +[r14]
        ; byrRegs -[rbx]
-       mov      rax, r13
+       mov      rax, r14
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M45554_IG20:        ; bbWeight=0.50, epilog, nogc, extend
@@ -198,12 +200,12 @@ G_M45554_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M45554_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r13]
+       ; gcrRegs -[rax r14]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 224, prolog size 17, PerfScore 709.75, instruction count 84, allocated bytes for code 224 (MethodHash=e83c4e0d) for method Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
+; Total bytes of code 231, prolog size 17, PerfScore 741.75, instruction count 85, allocated bytes for code 231 (MethodHash=e83c4e0d) for method Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
 ; ============================================================
 
 Unwind Info:

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

@@ -117,7 +117,7 @@ G_M52295_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M52295_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, gcvars, byref
        ; GC ptr vars +{V00}
        cmp      dword ptr [rdi+0x14], 0x2710
-       jge      G_M52295_IG21
+       jge      G_M52295_IG23
                        ;; size=13 bbWeight=1 PerfScore 4.00
 G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
@@ -128,7 +128,7 @@ G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rdx, gword ptr [rbx+0x10]
        ; gcrRegs +[rdx]
        cmp      byte  ptr [rdx+0x24], 0
-       jne      G_M52295_IG08
+       jne      G_M52295_IG13
        lea      rsi, [rbp+0x78]
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -146,11 +146,11 @@ G_M52295_IG04:        ; bbWeight=4, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbp+0x98]
        vmovdqu  xmmword ptr [rbp+0xC8], xmm0
                        ;; size=29 bbWeight=4 PerfScore 36.00
-G_M52295_IG05:        ; bbWeight=4, isz, extend
+G_M52295_IG05:        ; bbWeight=4, extend
        mov      r15, gword ptr [rbp+0xA8]
        ; gcrRegs +[r15]
        test     r15, r15
-       je       G_M52295_IG09
+       je       G_M52295_IG15
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -158,7 +158,7 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      G_M52295_IG09
+       jne      G_M52295_IG15
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
@@ -169,16 +169,10 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        test     rax, rax
        setne    dil
        test     dil, dil
-       jne      SHORT G_M52295_IG06
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
-       call     [<unknown method>]
-       ; gcrRegs -[rax rsi rdi]
-       ; gcr arg pop 0
-                       ;; size=94 bbWeight=4 PerfScore 51.00
-G_M52295_IG06:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       je       G_M52295_IG14
+                       ;; size=79 bbWeight=4 PerfScore 37.00
+G_M52295_IG06:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      rsi, r15
        ; gcrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -186,12 +180,135 @@ G_M52295_IG06:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M52295_IG10
+       je       G_M52295_IG16
        test     dword ptr [rax+0x34], 0xD1FFAB1E
-       jne      G_M52295_IG11
-                       ;; size=36 bbWeight=4 PerfScore 27.00
-G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx r15]
+       je       G_M52295_IG17
+                       ;; size=40 bbWeight=4 PerfScore 27.00
+G_M52295_IG07:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax r15]
+       mov      r14, gword ptr [rbp+0xA8]
+       ; gcrRegs +[r14]
+       test     r14, r14
+       je       G_M52295_IG19
+                       ;; size=16 bbWeight=8 PerfScore 18.00
+G_M52295_IG08:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+       mov      rsi, r14
+       ; gcrRegs +[rsi]
+       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rsi] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      G_M52295_IG19
+       mov      rsi, r14
+       ; gcrRegs +[rsi]
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFANY
+       ; gcrRegs -[rsi]
+       ; gcr arg pop 0
+       xor      edi, edi
+       test     rax, rax
+       setne    dil
+       test     dil, dil
+       je       G_M52295_IG18
+                       ;; size=63 bbWeight=4 PerfScore 28.00
+G_M52295_IG09:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
+       mov      rsi, r14
+       ; gcrRegs +[rsi]
+       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rsi] +[rax]
+       ; gcr arg pop 0
+       mov      r13, rax
+       ; gcrRegs +[r13]
+       test     r13, r13
+       je       G_M52295_IG22
+       mov      edi, dword ptr [r13+0x34]
+       and      edi, 0xD1FFAB1E
+       cmp      edi, 0xD1FFAB1E
+       je       SHORT G_M52295_IG10
+       mov      rdi, r13
+       ; gcrRegs +[rdi]
+       xor      esi, esi
+       call     [<unknown method>]
+       ; gcrRegs -[rax rdi r14]
+       ; gcr arg pop 0
+                       ;; size=59 bbWeight=4 PerfScore 40.00
+G_M52295_IG10:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+       mov      edi, dword ptr [r13+0x34]
+       and      edi, 0xD1FFAB1E
+       cmp      edi, 0xD1FFAB1E
+       je       SHORT G_M52295_IG11
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
+       call     [<unknown method>]
+       ; gcrRegs -[rsi rdi]
+       ; gcr arg pop 0
+                       ;; size=44 bbWeight=4 PerfScore 28.00
+G_M52295_IG11:        ; bbWeight=4, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, nogc
+       vmovdqu  ymm0, ymmword ptr [r13+0x38]
+       vmovdqu  ymmword ptr [rbp-0x40], ymm0
+                       ;; size=11 bbWeight=4 PerfScore 24.00
+G_M52295_IG12:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r13]
+       mov      rsi, gword ptr [rbp-0x38]
+       ; gcrRegs +[rsi]
+       mov      edx, dword ptr [rbp-0x28]
+       mov      r15, bword ptr [rbp+0x130]
+       ; byrRegs +[r15]
+       mov      rdi, gword ptr [r15+0x08]
+       ; gcrRegs +[rdi]
+       and      edx, 0xD1FFAB1E
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x48]
+       call     [rax+0x38]<unknown method>
+       ; gcrRegs -[rsi rdi]
+       ; gcr arg pop 0
+       inc      dword ptr [r15+0x14]
+       cmp      dword ptr [r15+0x14], 0x2710
+       jl       G_M52295_IG03
+       jmp      G_M52295_IG23
+                       ;; size=57 bbWeight=8 PerfScore 170.00
+G_M52295_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       ; byrRegs -[r15]
+       mov      edi, 70
+       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M52295_IG14:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx r15]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
+       mov      rdi, rsi
+       ; gcrRegs +[rdi]
+       call     [<unknown method>]
+       ; gcrRegs -[rsi rdi]
+       ; gcr arg pop 0
+       jmp      G_M52295_IG06
+                       ;; size=24 bbWeight=4 PerfScore 22.00
+G_M52295_IG15:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       test     r15, r15
+       jne      G_M52295_IG06
+       jmp      G_M52295_IG07
+                       ;; size=14 bbWeight=4 PerfScore 13.00
+G_M52295_IG16:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       mov      rdi, r15
+       ; gcrRegs +[rdi]
+       movsx    rsi, word  ptr [rbp+0xB0]
+       mov      r11, 0xD1FFAB1E      ; code for <unknown method>
+       call     [r11]<unknown method>
+       ; gcrRegs -[rdi r15]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      G_M52295_IG07
+                       ;; size=32 bbWeight=4 PerfScore 31.00
+G_M52295_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
        xor      edi, edi
        mov      r15, bword ptr [rbp+0x130]
        ; byrRegs +[r15]
@@ -218,143 +335,34 @@ G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [<unknown method>]
        ; gcrRegs -[rax rsi]
        ; gcr arg pop 0
-       jmp      G_M52295_IG31
+       jmp      G_M52295_IG33
                        ;; size=79 bbWeight=1 PerfScore 18.75
-G_M52295_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52295_IG18:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx r14]
        ; byrRegs -[r15]
-       mov      edi, 70
-       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M52295_IG09:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx r15]
-       test     r15, r15
-       jne      G_M52295_IG06
-       jmp      SHORT G_M52295_IG11
-                       ;; size=11 bbWeight=4 PerfScore 13.00
-G_M52295_IG10:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, r15
-       ; gcrRegs +[rdi]
-       movsx    rsi, word  ptr [rbp+0xB0]
-       mov      r11, 0xD1FFAB1E      ; code for <unknown method>
-       call     [r11]<unknown method>
-       ; gcrRegs -[rdi r15]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M52295_IG11
-       jmp      G_M52295_IG07
-                       ;; size=33 bbWeight=4 PerfScore 39.00
-G_M52295_IG11:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      r14, gword ptr [rbp+0xA8]
-       ; gcrRegs +[r14]
-       test     r14, r14
-       je       SHORT G_M52295_IG13
-                       ;; size=12 bbWeight=8 PerfScore 18.00
-G_M52295_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, r14
-       ; gcrRegs +[rsi]
-       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
-       call     CORINFO_HELP_ISINSTANCEOFCLASS
-       ; gcrRegs -[rsi] +[rax]
-       ; gcr arg pop 0
...

+14 (+5.20%) : 22129.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)

@@ -26,7 +26,7 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V17 tmp12        [V17,T03] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.String>
 ;  V19 tmp14        [V19,T05] (  2,  8   )   byref  ->  rdi         "impAppendStmt"
 ;* V20 tmp15        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp16        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -45,7 +45,7 @@
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V35 tmp30        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
-;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->  rdx         single-def "arr expr"
 ;  V38 tmp33        [V38,T10] (  3,  3   )     int  ->  rsi         "index expr"
 ;  V39 cse0         [V39,T02] (  4, 18.50)     int  ->  r14         "CSE - aggressive"
 ;  V40 cse1         [V40,T15] (  2,  1   )     ref  ->  rax         "CSE - aggressive"
@@ -69,7 +69,7 @@ G_M51747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=22 bbWeight=1 PerfScore 8.00
 G_M51747_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       G_M51747_IG16
+       je       G_M51747_IG17
        mov      r14d, dword ptr [rbx+0x08]
        test     r14d, r14d
        jne      SHORT G_M51747_IG05
@@ -103,60 +103,61 @@ G_M51747_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
        ; byrRegs -[rdi]
        ; gcr arg pop 0
        mov      r12d, eax
-       mov      rdi, gword ptr [r15+0x08]
-       ; gcrRegs +[rdi]
+       mov      rdx, gword ptr [r15+0x08]
+       ; gcrRegs +[rdx]
        mov      esi, r12d
        and      esi, dword ptr [r15+0x14]
-       cmp      esi, dword ptr [rdi+0x08]
-       jae      SHORT G_M51747_IG15
-       mov      rax, gword ptr [rdi+8*rsi+0x10]
+       cmp      esi, dword ptr [rdx+0x08]
+       jae      G_M51747_IG16
+       mov      rax, gword ptr [rdx+8*rsi+0x10]
        ; gcrRegs +[rax]
        test     rax, rax
        je       SHORT G_M51747_IG11
-                       ;; size=57 bbWeight=0.50 PerfScore 8.75
+                       ;; size=61 bbWeight=0.50 PerfScore 8.75
 G_M51747_IG06:        ; bbWeight=4, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       ; gcrRegs -[rdi]
+       ; gcrRegs -[rdx]
        cmp      dword ptr [rax+0x18], r12d
-       jne      SHORT G_M51747_IG10
+       jne      SHORT G_M51747_IG13
                        ;; size=6 bbWeight=4 PerfScore 16.00
 G_M51747_IG07:        ; bbWeight=2, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       mov      rcx, gword ptr [rax+0x08]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       cmp      rcx, rbx
-       je       SHORT G_M51747_IG13
-                       ;; size=11 bbWeight=2 PerfScore 12.50
-G_M51747_IG08:        ; bbWeight=16, gcrefRegs=800B {rax rcx rbx r15}, byrefRegs=2000 {r13}, byref, isz
-       cmp      dword ptr [rcx+0x08], r14d
-       jne      SHORT G_M51747_IG10
-                       ;; size=6 bbWeight=16 PerfScore 64.00
-G_M51747_IG09:        ; bbWeight=2, gcrefRegs=800B {rax rcx rbx r15}, byrefRegs=2000 {r13}, byref, isz
        mov      gword ptr [rbp-0x30], rax
        ; GC ptr vars +{V04}
-       lea      rdi, bword ptr [rcx+0x0C]
+       mov      rdx, gword ptr [rax+0x08]
+       ; gcrRegs +[rdx]
+       cmp      byte  ptr [rdx], dl
+       cmp      rdx, rbx
+       je       SHORT G_M51747_IG14
+                       ;; size=15 bbWeight=2 PerfScore 14.50
+G_M51747_IG08:        ; bbWeight=16, gcVars=0000000000000002 {V04}, gcrefRegs=800C {rdx rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       cmp      dword ptr [rdx+0x08], r14d
+       jne      SHORT G_M51747_IG10
+                       ;; size=6 bbWeight=16 PerfScore 64.00
+G_M51747_IG09:        ; bbWeight=2, gcrefRegs=800C {rdx rbx r15}, byrefRegs=2000 {r13}, byref, isz
+       lea      rdi, bword ptr [rdx+0x0C]
        ; byrRegs +[rdi]
-       mov      edx, dword ptr [rcx+0x08]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
        add      edx, edx
        mov      rsi, r13
        ; byrRegs +[rsi]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx]
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
+       jne      SHORT G_M51747_IG14
+                       ;; size=22 bbWeight=2 PerfScore 14.50
+G_M51747_IG10:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=2000 {r13}, byref, isz
        mov      rax, gword ptr [rbp-0x30]
        ; gcrRegs +[rax]
-       jne      SHORT G_M51747_IG13
-                       ;; size=30 bbWeight=2 PerfScore 18.50
-G_M51747_IG10:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
-       ; GC ptr vars -{V04}
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M51747_IG06
-                       ;; size=9 bbWeight=4 PerfScore 13.00
-G_M51747_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+                       ;; size=13 bbWeight=4 PerfScore 17.00
+G_M51747_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        ; byrRegs -[r13]
+       ; GC ptr vars -{V04}
        mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      rsi, rbx
@@ -177,10 +178,21 @@ G_M51747_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51747_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+G_M51747_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=2000 {r13}, gcvars, byref, isz
+       ; gcrRegs +[rbx r15]
+       ; byrRegs +[r13]
+       mov      gword ptr [rbp-0x30], rax
+       ; GC ptr vars +{V04}
+       jmp      SHORT G_M51747_IG10
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M51747_IG14:        ; bbWeight=0.50, gcVars=0000000000000002 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx r15]
+       ; byrRegs -[r13]
+       mov      rax, gword ptr [rbp-0x30]
+       ; gcrRegs +[rax]
        mov      rax, gword ptr [rax+0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M51747_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M51747_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
        pop      r12
@@ -190,12 +202,13 @@ G_M51747_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51747_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M51747_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
+       ; GC ptr vars -{V04}
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51747_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51747_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 5
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -209,7 +222,7 @@ G_M51747_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 269, prolog size 22, PerfScore 154.75, instruction count 89, allocated bytes for code 269 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
+; Total bytes of code 283, prolog size 22, PerfScore 163.25, instruction count 92, allocated bytes for code 283 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:

coreclr_tests.run.linux.x64.checked.mch

-20 (-11.83%) : 444407.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
@@ -21,71 +21,70 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V13 tmp4         [V13,T10] (  2,  2   )     int  ->  rcx        
+;* V13 tmp4         [V13,T09] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V16 tmp7         [V16,T29] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T11] (  2,  2   )     int  ->  rcx         single-def
+;* V16 tmp7         [V16,T28] (  0,  0   )     int  ->  zero-ref   
+;* V17 tmp8         [V17,T10] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V19 tmp10        [V19,T12] (  2,  2   )     int  ->  rdx        
-;  V20 tmp11        [V20,T13] (  2,  2   )     int  ->  rcx         single-def
+;* V19 tmp10        [V19,T11] (  0,  0   )     int  ->  zero-ref   
+;* V20 tmp11        [V20,T12] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V22 tmp13        [V22,T14] (  2,  2   )     int  ->  rax        
-;  V23 tmp14        [V23,T15] (  2,  2   )     int  ->  rax         single-def
+;* V22 tmp13        [V22,T13] (  0,  0   )     int  ->  zero-ref   
+;* V23 tmp14        [V23,T14] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V25 tmp16        [V25,T30] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T16] (  2,  2   )     int  ->  rax         single-def
+;* V25 tmp16        [V25,T29] (  0,  0   )     int  ->  zero-ref   
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V32 tmp23        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32,T30] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V34 tmp25        [V34,T32] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp25        [V34,T31] (  0,  0   )     int  ->  zero-ref   
+;* V35 tmp26        [V35,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V37 tmp28        [V37,T19] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp28        [V37,T17] (  0,  0   )     int  ->  zero-ref   
+;* V38 tmp29        [V38,T18] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V40 tmp31        [V40,T33] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V40 tmp31        [V40,T32] (  0,  0   )     int  ->  zero-ref   
+;* V41 tmp32        [V41,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V43 tmp34        [V43,T22] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T34] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp34        [V43,T20] (  0,  0   )     int  ->  zero-ref   
+;* V44 tmp35        [V44,T33] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V46 tmp37        [V46,T35] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T23] (  2,  2   )     int  ->  rax         single-def
+;* V46 tmp37        [V46,T34] (  0,  0   )     int  ->  zero-ref   
+;* V47 tmp38        [V47,T21] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp40        [V49,T36] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T24] (  2,  2   )     int  ->  rax         single-def
+;* V49 tmp40        [V49,T35] (  0,  0   )     int  ->  zero-ref   
+;* V50 tmp41        [V50,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V53 tmp44        [V53,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T37] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56,T36] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp49        [V58,T37] (  0,  0   )     int  ->  zero-ref   
+;* V59 tmp50        [V59,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V61 tmp52        [V61,T27] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T28] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp52        [V61,T24] (  0,  0   )     int  ->  zero-ref   
+;* V62 tmp53        [V62,T25] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V64 tmp55        [V64,T39] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T40] (  0,  0   )     int  ->  zero-ref    single-def
+;* V64 tmp55        [V64,T38] (  0,  0   )     int  ->  zero-ref   
+;* V65 tmp56        [V65,T39] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V67 tmp58        [V67,T41] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T42] (  0,  0   )     int  ->  zero-ref    single-def
+;* V67 tmp58        [V67,T40] (  0,  0   )     int  ->  zero-ref   
+;  V68 tmp59        [V68,T26] (  2,  2   )     int  ->  rcx         single-def
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V70 tmp61        [V70,T43] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T03] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V72 cse1         [V72,T07] (  2,  2   )     int  ->  rax         "CSE - moderate"
+;  V70 tmp61        [V70,T27] (  2,  2   )     int  ->  rax        
+;* V71 cse0         [V71,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V72 cse1         [V72,T07] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;* V73 cse2         [V73,T08] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V74 cse3         [V74,T01] (  2,  2   )     int  ->  rdx         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  2,  2   )     int  ->  rcx         "CSE - conservative"
+;  V74 cse3         [V74,T01] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;* V75 cse4         [V75,T04] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
 ;  V76 cse5         [V76,T05] (  2,  2   )     int  ->  rax         "CSE - conservative"
-;  V77 cse6         [V77,T09] (  2,  2   )     int  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -117,18 +116,11 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rbx+0x08]
-       add      ecx, 17
-       mov      edx, dword ptr [rax+0x14]
-       add      ecx, edx
+       mov      ecx, dword ptr [rax+0x14]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
        add      eax, ecx
-       add      eax, 3
-       add      eax, -5
-       add      eax, 3
-       add      eax, -5
-                       ;; size=154 bbWeight=1 PerfScore 21.50
+                       ;; size=134 bbWeight=1 PerfScore 18.00
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
@@ -136,7 +128,7 @@ G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 169, prolog size 8, PerfScore 27.25, instruction count 37, allocated bytes for code 169 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 149, prolog size 8, PerfScore 23.75, instruction count 30, allocated bytes for code 149 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

-20 (-11.83%) : 444823.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,78 +10,77 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T03] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V09 tmp5         [V09,T10] (  2,  2   )     int  ->  rcx        
+;* V09 tmp5         [V09,T09] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V12 tmp8         [V12,T29] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp9         [V13,T11] (  2,  2   )     int  ->  rcx         single-def
+;* V12 tmp8         [V12,T28] (  0,  0   )     int  ->  zero-ref   
+;* V13 tmp9         [V13,T10] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T12] (  2,  2   )     int  ->  rdx        
-;  V16 tmp12        [V16,T13] (  2,  2   )     int  ->  rcx         single-def
+;* V15 tmp11        [V15,T11] (  0,  0   )     int  ->  zero-ref   
+;* V16 tmp12        [V16,T12] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V18 tmp14        [V18,T14] (  2,  2   )     int  ->  rax        
-;  V19 tmp15        [V19,T15] (  2,  2   )     int  ->  rax         single-def
+;* V18 tmp14        [V18,T13] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp15        [V19,T14] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V21 tmp17        [V21,T30] (  0,  0   )     int  ->  zero-ref   
-;  V22 tmp18        [V22,T16] (  2,  2   )     int  ->  rax         single-def
+;* V21 tmp17        [V21,T29] (  0,  0   )     int  ->  zero-ref   
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V28 tmp24        [V28,T31] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28,T30] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V30 tmp26        [V30,T32] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V30 tmp26        [V30,T31] (  0,  0   )     int  ->  zero-ref   
+;* V31 tmp27        [V31,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V33 tmp29        [V33,T19] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V33 tmp29        [V33,T17] (  0,  0   )     int  ->  zero-ref   
+;* V34 tmp30        [V34,T18] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V36 tmp32        [V36,T33] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V36 tmp32        [V36,T32] (  0,  0   )     int  ->  zero-ref   
+;* V37 tmp33        [V37,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V39 tmp35        [V39,T22] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T34] (  0,  0   )     int  ->  zero-ref    single-def
+;* V39 tmp35        [V39,T20] (  0,  0   )     int  ->  zero-ref   
+;* V40 tmp36        [V40,T33] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V42 tmp38        [V42,T35] (  0,  0   )     int  ->  zero-ref   
-;  V43 tmp39        [V43,T23] (  2,  2   )     int  ->  rax         single-def
+;* V42 tmp38        [V42,T34] (  0,  0   )     int  ->  zero-ref   
+;* V43 tmp39        [V43,T21] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V45 tmp41        [V45,T36] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp42        [V46,T24] (  2,  2   )     int  ->  rax         single-def
+;* V45 tmp41        [V45,T35] (  0,  0   )     int  ->  zero-ref   
+;* V46 tmp42        [V46,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp45        [V49,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T37] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52,T36] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V54 tmp50        [V54,T38] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V54 tmp50        [V54,T37] (  0,  0   )     int  ->  zero-ref   
+;* V55 tmp51        [V55,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V57 tmp53        [V57,T27] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T28] (  0,  0   )     int  ->  zero-ref    single-def
+;* V57 tmp53        [V57,T24] (  0,  0   )     int  ->  zero-ref   
+;* V58 tmp54        [V58,T25] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V60 tmp56        [V60,T39] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T40] (  0,  0   )     int  ->  zero-ref    single-def
+;* V60 tmp56        [V60,T38] (  0,  0   )     int  ->  zero-ref   
+;* V61 tmp57        [V61,T39] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V63 tmp59        [V63,T41] (  0,  0   )     int  ->  zero-ref   
-;* V64 tmp60        [V64,T42] (  0,  0   )     int  ->  zero-ref    single-def
+;* V63 tmp59        [V63,T40] (  0,  0   )     int  ->  zero-ref   
+;  V64 tmp60        [V64,T26] (  2,  2   )     int  ->  rcx         single-def
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V66 tmp62        [V66,T43] (  0,  0   )     int  ->  zero-ref   
-;  V67 cse0         [V67,T04] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V68 cse1         [V68,T07] (  2,  2   )     int  ->  rax         "CSE - moderate"
+;  V66 tmp62        [V66,T27] (  2,  2   )     int  ->  rax        
+;* V67 cse0         [V67,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V68 cse1         [V68,T07] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;* V69 cse2         [V69,T08] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V70 cse3         [V70,T02] (  2,  2   )     int  ->  rdx         "CSE - moderate"
-;  V71 cse4         [V71,T05] (  2,  2   )     int  ->  rcx         "CSE - conservative"
+;  V70 cse3         [V70,T02] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;* V71 cse4         [V71,T05] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
 ;  V72 cse5         [V72,T06] (  2,  2   )     int  ->  rax         "CSE - conservative"
-;  V73 cse6         [V73,T09] (  2,  2   )     int  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -113,18 +112,11 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rbx+0x08]
-       add      ecx, 17
-       mov      edx, dword ptr [rax+0x14]
-       add      ecx, edx
+       mov      ecx, dword ptr [rax+0x14]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
        add      eax, ecx
-       add      eax, 3
-       add      eax, -5
-       add      eax, 3
-       add      eax, -5
-                       ;; size=154 bbWeight=1 PerfScore 21.50
+                       ;; size=134 bbWeight=1 PerfScore 18.00
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
@@ -132,7 +124,7 @@ G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 169, prolog size 8, PerfScore 27.25, instruction count 37, allocated bytes for code 169 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 149, prolog size 8, PerfScore 23.75, instruction count 30, allocated bytes for code 149 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

-13 (-8.07%) : 266570.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(ulong,System.Object):System.Object (Tier1)

@@ -14,7 +14,7 @@
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T08] (  2,  4   )     ref  ->  rax         class-hnd single-def "impAppendStmt" <int[]>
-;  V05 tmp2         [V05,T11] (  2,  2   )     int  ->  rbx         "Inline return value spill temp"
+;  V05 tmp2         [V05,T11] (  2,  2   )     int  ->  r11         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T07] (  4,  5.15)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;  V07 tmp4         [V07,T01] (  3,  7.14)    long  ->  rcx         "Inlining Arg"
 ;  V08 tmp5         [V08,T06] (  4,  5.72)     int  ->  rdx         "Inline stloc first use temp"
@@ -22,18 +22,16 @@
 ;  V10 tmp7         [V10,T03] (  5,  6.70)   byref  ->   r9         "Inline stloc first use temp"
 ;  V11 tmp8         [V11,T04] (  5,  6.29)     int  ->  r10         "Inline stloc first use temp"
 ;  V12 tmp9         [V12,T09] (  2,  3.14)    long  ->  r11         "Inline stloc first use temp"
-;  V13 tmp10        [V13,T10] (  3,  2.98)    long  ->  rbx         "Inline stloc first use temp"
+;  V13 tmp10        [V13,T10] (  3,  2.98)    long  ->  r11         "Inline stloc first use temp"
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M33150_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
-                       ;; size=8 bbWeight=1 PerfScore 3.50
+       mov      rbp, rsp
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M33150_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rsi]
        mov      rax, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
@@ -64,9 +62,9 @@ G_M33150_IG03:        ; bbWeight=1.57, gcrefRegs=0040 {rsi}, byrefRegs=0001 {rax
        jne      SHORT G_M33150_IG07
                        ;; size=31 bbWeight=1.57 PerfScore 11.40
 G_M33150_IG04:        ; bbWeight=0.99, gcrefRegs=0040 {rsi}, byrefRegs=0201 {rax r9}, byref, isz
-       mov      rbx, rdi
-       xor      rbx, qword ptr [r9+0x10]
-       cmp      rbx, 1
+       mov      r11, rdi
+       xor      r11, qword ptr [r9+0x10]
+       cmp      r11, 1
        ja       SHORT G_M33150_IG07
                        ;; size=13 bbWeight=0.99 PerfScore 4.46
 G_M33150_IG05:        ; bbWeight=0.99, gcrefRegs=0040 {rsi}, byrefRegs=0200 {r9}, byref, isz
@@ -76,10 +74,10 @@ G_M33150_IG05:        ; bbWeight=0.99, gcrefRegs=0040 {rsi}, byrefRegs=0200 {r9}
                        ;; size=5 bbWeight=0.99 PerfScore 3.97
 G_M33150_IG06:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r9]
-       cmp      ebx, 1
+       cmp      r11d, 1
        jne      SHORT G_M33150_IG09
        jmp      SHORT G_M33150_IG11
-                       ;; size=7 bbWeight=1 PerfScore 3.25
+                       ;; size=8 bbWeight=1 PerfScore 3.25
 G_M33150_IG07:        ; bbWeight=0.58, gcrefRegs=0040 {rsi}, byrefRegs=0001 {rax}, byref, isz
        ; byrRegs +[rax]
        test     r10d, r10d
@@ -100,24 +98,20 @@ G_M33150_IG09:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        nop      
                        ;; size=6 bbWeight=1 PerfScore 1.25
 G_M33150_IG10:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=2 bbWeight=1 PerfScore 1.50
 G_M33150_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[rsi]
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=0 PerfScore 0.00
 G_M33150_IG12:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=0 PerfScore 0.00
+                       ;; size=2 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 161, prolog size 8, PerfScore 48.53, instruction count 51, allocated bytes for code 161 (MethodHash=c42d7e81) for method System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 148, prolog size 4, PerfScore 45.53, instruction count 45, allocated bytes for code 148 (MethodHash=c42d7e81) for method System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -125,11 +119,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+15 (+16.85%) : 220760.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,10 +9,10 @@
 ; 4 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  5   )   byref  ->  rbx         this single-def
+;  V00 this         [V00,T01] (  9,  5   )   byref  ->  rbx         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  rdi         "Span.get_Item index"
-;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rax         "Span.get_Item ptrToSpan"
+;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  r15         "Span.get_Item index"
+;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rdi         "Span.get_Item ptrToSpan"
 ;  V04 tmp3         [V04,T05] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V05 tmp4         [V05,T00] (  4,  8   )  ushort  ->  rdi         "Inlining Arg"
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
@@ -34,60 +34,66 @@
 ;* V22 tmp21        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
-;  V25 cse0         [V25,T04] (  3,  3   )     int  ->  rdi         "CSE - aggressive"
+;  V25 cse0         [V25,T04] (  5,  3   )     int  ->  r15         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M7781_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     rbx
-       push     rax
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; byrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=12 bbWeight=1 PerfScore 3.75
 G_M7781_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      edi, dword ptr [rbx+0x20]
-       cmp      edi, dword ptr [rbx+0x38]
-       jge      SHORT G_M7781_IG05
-       lea      rax, bword ptr [rbx+0x30]
-       ; byrRegs +[rax]
-       cmp      edi, dword ptr [rax+0x08]
-       jae      SHORT G_M7781_IG06
-       mov      rax, bword ptr [rax]
-       movzx    rdi, word  ptr [rax+2*rdi]
+       mov      r15d, dword ptr [rbx+0x20]
+       cmp      r15d, dword ptr [rbx+0x38]
+       jge      SHORT G_M7781_IG06
+                       ;; size=10 bbWeight=1 PerfScore 6.00
+G_M7781_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       lea      rdi, bword ptr [rbx+0x30]
+       ; byrRegs +[rdi]
+       cmp      r15d, dword ptr [rdi+0x08]
+       jae      SHORT G_M7781_IG07
+       mov      rdi, bword ptr [rdi]
+       mov      eax, r15d
+       movzx    rdi, word  ptr [rdi+2*rax]
+       ; byrRegs -[rdi]
        cmp      edi, 256
        jb       SHORT G_M7781_IG04
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M7781_IG05
-                       ;; size=42 bbWeight=1 PerfScore 20.00
-G_M7781_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       inc      dword ptr [rbx+0x20]
-       jmp      SHORT G_M7781_IG02
-                       ;; size=5 bbWeight=0 PerfScore 0.00
+       jne      SHORT G_M7781_IG05
+       jmp      SHORT G_M7781_IG06
+                       ;; size=40 bbWeight=1 PerfScore 16.25
 G_M7781_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      edi, edi
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdi+rax], 128
-       jne      SHORT G_M7781_IG03
+       je       SHORT G_M7781_IG06
                        ;; size=18 bbWeight=1 PerfScore 4.50
-G_M7781_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       inc      dword ptr [rbx+0x20]
+       mov      r15d, dword ptr [rbx+0x20]
+       cmp      r15d, dword ptr [rbx+0x38]
+       jl       SHORT G_M7781_IG03
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 8
        pop      rbx
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M7781_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=5 bbWeight=1 PerfScore 2.50
+G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 89, prolog size 11, PerfScore 30.50, instruction count 30, allocated bytes for code 89 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 104, prolog size 12, PerfScore 33.00, instruction count 34, allocated bytes for code 104 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -95,11 +101,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
+  SizeOfProlog      : 0x04
   CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+15 (+16.85%) : 301992.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,10 +9,10 @@
 ; 4 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  5   )   byref  ->  rbx         this single-def
+;  V00 this         [V00,T01] (  9,  5   )   byref  ->  rbx         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  rdi         "Span.get_Item index"
-;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rax         "Span.get_Item ptrToSpan"
+;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  r15         "Span.get_Item index"
+;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rdi         "Span.get_Item ptrToSpan"
 ;  V04 tmp3         [V04,T05] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V05 tmp4         [V05,T00] (  4,  8   )  ushort  ->  rdi         "Inlining Arg"
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
@@ -34,60 +34,66 @@
 ;* V22 tmp21        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
-;  V25 cse0         [V25,T04] (  3,  3   )     int  ->  rdi         "CSE - aggressive"
+;  V25 cse0         [V25,T04] (  5,  3   )     int  ->  r15         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M7781_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     rbx
-       push     rax
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; byrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=12 bbWeight=1 PerfScore 3.75
 G_M7781_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      edi, dword ptr [rbx+0x20]
-       cmp      edi, dword ptr [rbx+0x38]
-       jge      SHORT G_M7781_IG05
-       lea      rax, bword ptr [rbx+0x30]
-       ; byrRegs +[rax]
-       cmp      edi, dword ptr [rax+0x08]
-       jae      SHORT G_M7781_IG06
-       mov      rax, bword ptr [rax]
-       movzx    rdi, word  ptr [rax+2*rdi]
+       mov      r15d, dword ptr [rbx+0x20]
+       cmp      r15d, dword ptr [rbx+0x38]
+       jge      SHORT G_M7781_IG06
+                       ;; size=10 bbWeight=1 PerfScore 6.00
+G_M7781_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       lea      rdi, bword ptr [rbx+0x30]
+       ; byrRegs +[rdi]
+       cmp      r15d, dword ptr [rdi+0x08]
+       jae      SHORT G_M7781_IG07
+       mov      rdi, bword ptr [rdi]
+       mov      eax, r15d
+       movzx    rdi, word  ptr [rdi+2*rax]
+       ; byrRegs -[rdi]
        cmp      edi, 256
        jb       SHORT G_M7781_IG04
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M7781_IG05
-                       ;; size=42 bbWeight=1 PerfScore 20.00
-G_M7781_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       inc      dword ptr [rbx+0x20]
-       jmp      SHORT G_M7781_IG02
-                       ;; size=5 bbWeight=0 PerfScore 0.00
+       jne      SHORT G_M7781_IG05
+       jmp      SHORT G_M7781_IG06
+                       ;; size=40 bbWeight=1 PerfScore 16.25
 G_M7781_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      edi, edi
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdi+rax], 128
-       jne      SHORT G_M7781_IG03
+       je       SHORT G_M7781_IG06
                        ;; size=18 bbWeight=1 PerfScore 4.50
-G_M7781_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       inc      dword ptr [rbx+0x20]
+       mov      r15d, dword ptr [rbx+0x20]
+       cmp      r15d, dword ptr [rbx+0x38]
+       jl       SHORT G_M7781_IG03
+                       ;; size=13 bbWeight=0 PerfScore 0.00
+G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 8
        pop      rbx
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M7781_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=5 bbWeight=1 PerfScore 2.50
+G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 89, prolog size 11, PerfScore 30.50, instruction count 30, allocated bytes for code 89 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 104, prolog size 12, PerfScore 33.00, instruction count 34, allocated bytes for code 104 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -95,11 +101,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
+  SizeOfProlog      : 0x04
   CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+28 (+18.06%) : 443034.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -8,83 +8,82 @@
 ; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->  rsi        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T05] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;* V14 tmp5         [V14,T09] (  0,  0   )     int  ->  zero-ref    single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;* V17 tmp8         [V17,T10] (  0,  0   )     int  ->  zero-ref    single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;* V20 tmp11        [V20,T11] (  0,  0   )     int  ->  zero-ref    single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;* V23 tmp14        [V23,T12] (  0,  0   )     int  ->  zero-ref    single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;* V47 tmp38        [V47,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;* V50 tmp41        [V50,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
 ;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;  V68 tmp59        [V68,T21] (  2,  2   )     int  ->  rcx         single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;* V71 cse0         [V71,T06] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;* V72 cse1         [V72,T02] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T03] (  2,  2   )     int  ->  rcx         "CSE - aggressive"
-;* V74 cse3         [V74,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V75 cse4         [V75,T07] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V76 cse5         [V76,T08] (  2,  2   )    long  ->  rcx         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->  rsi         "CSE - aggressive"
+;  V72 cse1         [V72,T03] (  4,  4   )     int  ->  rdx         "CSE - aggressive"
+;  V73 cse2         [V73,T04] (  4,  4   )     int  ->  rdi         "CSE - aggressive"
+;  V74 cse3         [V74,T05] (  4,  4   )     int  ->  rax         "CSE - aggressive"
+;  V75 cse4         [V75,T07] (  3,  3   )    long  ->  rcx         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -117,11 +116,21 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rax+0x14]
+       mov      edx, dword ptr [rbx+0x08]
+       mov      edi, dword ptr [rax+0x14]
+       lea      esi, [rdx+rdi]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
-       add      eax, ecx
-                       ;; size=140 bbWeight=1 PerfScore 18.25
+       lea      esi, [rsi+rax+0x11]
+       add      esi, dword ptr [rcx]
+       add      esi, edx
+       lea      esi, [rsi+rdi+0x0A]
+       add      esi, eax
+       add      edx, esi
+       add      edx, edi
+       lea      esi, [rdx+rax+0x11]
+       mov      eax, esi
+                       ;; size=168 bbWeight=1 PerfScore 27.75
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        pop      rbx
@@ -129,7 +138,7 @@ G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 155, prolog size 8, PerfScore 24.00, instruction count 31, allocated bytes for code 155 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 183, prolog size 8, PerfScore 33.50, instruction count 41, allocated bytes for code 183 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.crossgen2.linux.x64.checked.mch

-31 (-11.27%) : 116455.dasm - System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndex(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)

@@ -48,19 +48,15 @@ G_M60484_IG02:        ; bbWeight=1, gcVars=0000000000000200 {V05}, gcrefRegs=D00
        mov      r8d, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x30], r8d
        cmp      r8d, ecx
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-       jle      SHORT G_M60484_IG08
+       jle      SHORT G_M60484_IG05
        test     rbx, rbx
-       je       SHORT G_M60484_IG07
+       je       SHORT G_M60484_IG06
        test     ecx, ecx
        jl       SHORT G_M60484_IG06
        cmp      dword ptr [rbx+0x08], r8d
-       mov      gword ptr [rbp-0x38], rax
-       jl       SHORT G_M60484_IG05
-                       ;; size=40 bbWeight=1 PerfScore 13.25
+       jl       SHORT G_M60484_IG04
+                       ;; size=32 bbWeight=1 PerfScore 11.25
 G_M60484_IG03:        ; bbWeight=3.96, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
        mov      dword ptr [rbp-0x2C], ecx
        mov      edx, ecx
        mov      rsi, gword ptr [r15+8*rdx+0x10]
@@ -73,52 +69,31 @@ G_M60484_IG03:        ; bbWeight=3.96, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
        call     [System.Runtime.Serialization.XmlReaderDelegator:IsStartElement(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):ubyte:this]
        ; gcrRegs -[rdx rsi rdi]
        test     eax, eax
-       jne      G_M60484_IG14
+       jne      SHORT G_M60484_IG10
        mov      ecx, dword ptr [rbp-0x2C]
        inc      ecx
        mov      eax, dword ptr [rbp-0x30]
        cmp      eax, ecx
        jg       SHORT G_M60484_IG03
-                       ;; size=46 bbWeight=3.96 PerfScore 64.35
-G_M60484_IG04:        ; bbWeight=1, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx r15]
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-       jmp      SHORT G_M60484_IG11
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M60484_IG05:        ; bbWeight=0.50, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rbx r15]
+       jmp      SHORT G_M60484_IG07
+                       ;; size=44 bbWeight=3.96 PerfScore 72.27
+G_M60484_IG04:        ; bbWeight=0.50, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x30]
-       jmp      SHORT G_M60484_IG09
+       jmp      SHORT G_M60484_IG06
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M60484_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=D009 {rax rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rax]
-       ; GC ptr vars -{V05}
-       mov      gword ptr [rbp-0x38], rax
-       ; GC ptr vars +{V05}
-       jmp      SHORT G_M60484_IG09
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M60484_IG07:        ; bbWeight=0.50, gcrefRegs=D009 {rax rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; GC ptr vars -{V05}
-       mov      gword ptr [rbp-0x38], rax
-       ; GC ptr vars +{V05}
-       jmp      SHORT G_M60484_IG09
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M60484_IG08:        ; bbWeight=0.50, gcrefRegs=5001 {rax r12 r14}, byrefRegs=0000 {}, byref, isz
+G_M60484_IG05:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx r15]
-       ; GC ptr vars -{V05}
-       jmp      SHORT G_M60484_IG11
+       jmp      SHORT G_M60484_IG07
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M60484_IG09:        ; bbWeight=0.04, gcVars=0000000000000200 {V05}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax] +[rbx r15]
-       ; GC ptr vars +{V05 V09}
+G_M60484_IG06:        ; bbWeight=0.04, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx r15]
        cmp      ecx, r8d
-       jae      SHORT G_M60484_IG16
+       jae      SHORT G_M60484_IG12
        mov      esi, ecx
        mov      rsi, gword ptr [r15+8*rsi+0x10]
        ; gcrRegs +[rsi]
        cmp      ecx, dword ptr [rbx+0x08]
-       jae      SHORT G_M60484_IG16
+       jae      SHORT G_M60484_IG12
        mov      dword ptr [rbp-0x2C], ecx
        mov      edx, ecx
        mov      rdx, gword ptr [rbx+8*rdx+0x10]
@@ -129,32 +104,28 @@ G_M60484_IG09:        ; bbWeight=0.04, gcVars=0000000000000200 {V05}, gcrefRegs=
        call     [System.Runtime.Serialization.XmlReaderDelegator:IsStartElement(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):ubyte:this]
        ; gcrRegs -[rdx rsi rdi]
        test     eax, eax
-       jne      SHORT G_M60484_IG14
+       jne      SHORT G_M60484_IG10
        mov      eax, dword ptr [rbp-0x2C]
        inc      eax
        cmp      dword ptr [rbp-0x30], eax
        mov      ecx, eax
-       jg       SHORT G_M60484_IG13
+       jg       SHORT G_M60484_IG09
                        ;; size=54 bbWeight=0.04 PerfScore 0.91
-G_M60484_IG10:        ; bbWeight=0.02, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
+G_M60484_IG07:        ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx r15]
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-                       ;; size=4 bbWeight=0.02 PerfScore 0.02
-G_M60484_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=5001 {rax r12 r14}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V05 V09}
        mov      rdi, r12
        ; gcrRegs +[rdi]
        mov      rsi, r14
        ; gcrRegs +[rsi]
-       mov      rdx, rax
+       mov      rdx, gword ptr [rbp-0x38]
        ; gcrRegs +[rdx]
        mov      ecx, r13d
+       ; GC ptr vars -{V05}
        call     [System.Runtime.Serialization.XmlObjectSerializerReadContext:HandleMemberNotFound(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.ExtensionDataObject,int):this]
-       ; gcrRegs -[rax rdx rsi rdi r12 r14]
+       ; gcrRegs -[rdx rsi rdi r12 r14]
        mov      eax, dword ptr [rbp-0x30]
-                       ;; size=21 bbWeight=0.50 PerfScore 2.50
-G_M60484_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+                       ;; size=22 bbWeight=0.50 PerfScore 2.88
+G_M60484_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -164,18 +135,18 @@ G_M60484_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60484_IG13:        ; bbWeight=0.02, gcVars=0000000000000200 {V05}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M60484_IG09:        ; bbWeight=0.02, gcVars=0000000000000200 {V05}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx r12 r14-r15]
        ; GC ptr vars +{V05 V09}
        mov      r8d, dword ptr [rbp-0x30]
-       jmp      SHORT G_M60484_IG09
+       jmp      SHORT G_M60484_IG06
                        ;; size=6 bbWeight=0.02 PerfScore 0.06
-G_M60484_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M60484_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx r12 r14-r15]
        ; GC ptr vars -{V05 V09}
        mov      eax, dword ptr [rbp-0x2C]
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
-G_M60484_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M60484_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -185,12 +156,12 @@ G_M60484_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60484_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M60484_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [CORINFO_HELP_RNGCHKFAIL]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 275, prolog size 19, PerfScore 103.34, instruction count 97, allocated bytes for code 275 (MethodHash=625f13bb) for method System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndex(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
+; Total bytes of code 244, prolog size 19, PerfScore 103.62, instruction count 89, allocated bytes for code 244 (MethodHash=625f13bb) for method System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndex(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-27 (-8.74%) : 116456.dasm - System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndexWithRequiredMembers(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)

@@ -48,19 +48,15 @@ G_M11155_IG02:        ; bbWeight=1, gcVars=0000000000000200 {V00}, gcrefRegs=C00
        mov      r8d, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x30], r8d
        cmp      r8d, ecx
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-       jle      SHORT G_M11155_IG08
+       jle      SHORT G_M11155_IG05
        test     rbx, rbx
-       je       SHORT G_M11155_IG07
+       je       SHORT G_M11155_IG06
        test     ecx, ecx
        jl       SHORT G_M11155_IG06
        cmp      dword ptr [rbx+0x08], r8d
-       mov      gword ptr [rbp-0x38], rax
-       jl       SHORT G_M11155_IG05
-                       ;; size=40 bbWeight=1 PerfScore 13.25
+       jl       SHORT G_M11155_IG04
+                       ;; size=32 bbWeight=1 PerfScore 11.25
 G_M11155_IG03:        ; bbWeight=3.96, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
        mov      dword ptr [rbp-0x2C], ecx
        mov      edx, ecx
        mov      rsi, gword ptr [r15+8*rdx+0x10]
@@ -73,52 +69,31 @@ G_M11155_IG03:        ; bbWeight=3.96, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        call     [System.Runtime.Serialization.XmlReaderDelegator:IsStartElement(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):ubyte:this]
        ; gcrRegs -[rdx rsi rdi]
        test     eax, eax
-       jne      G_M11155_IG14
+       jne      G_M11155_IG10
        mov      ecx, dword ptr [rbp-0x2C]
        inc      ecx
        mov      eax, dword ptr [rbp-0x30]
        cmp      eax, ecx
        jg       SHORT G_M11155_IG03
-                       ;; size=46 bbWeight=3.96 PerfScore 64.35
-G_M11155_IG04:        ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx r15]
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-       jmp      SHORT G_M11155_IG11
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M11155_IG05:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rbx r15]
+       jmp      SHORT G_M11155_IG07
+                       ;; size=48 bbWeight=3.96 PerfScore 72.27
+G_M11155_IG04:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, dword ptr [rbp-0x30]
-       jmp      SHORT G_M11155_IG09
+       jmp      SHORT G_M11155_IG06
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M11155_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rax]
-       ; GC ptr vars -{V00}
-       mov      gword ptr [rbp-0x38], rax
-       ; GC ptr vars +{V00}
-       jmp      SHORT G_M11155_IG09
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M11155_IG07:        ; bbWeight=0.50, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; GC ptr vars -{V00}
-       mov      gword ptr [rbp-0x38], rax
-       ; GC ptr vars +{V00}
-       jmp      SHORT G_M11155_IG09
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M11155_IG08:        ; bbWeight=0.50, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, byref, isz
+G_M11155_IG05:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx r15]
-       ; GC ptr vars -{V00}
-       jmp      SHORT G_M11155_IG11
+       jmp      SHORT G_M11155_IG07
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M11155_IG09:        ; bbWeight=0.04, gcVars=0000000000000200 {V00}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax] +[rbx r15]
-       ; GC ptr vars +{V00 V09}
+G_M11155_IG06:        ; bbWeight=0.04, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx r15]
        cmp      ecx, r8d
-       jae      G_M11155_IG17
+       jae      G_M11155_IG13
        mov      esi, ecx
        mov      rsi, gword ptr [r15+8*rsi+0x10]
        ; gcrRegs +[rsi]
        cmp      ecx, dword ptr [rbx+0x08]
-       jae      G_M11155_IG17
+       jae      G_M11155_IG13
        mov      dword ptr [rbp-0x2C], ecx
        mov      edx, ecx
        mov      rdx, gword ptr [rbx+8*rdx+0x10]
@@ -129,31 +104,61 @@ G_M11155_IG09:        ; bbWeight=0.04, gcVars=0000000000000200 {V00}, gcrefRegs=
        call     [System.Runtime.Serialization.XmlReaderDelegator:IsStartElement(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):ubyte:this]
        ; gcrRegs -[rdx rsi rdi]
        test     eax, eax
-       jne      SHORT G_M11155_IG14
+       jne      SHORT G_M11155_IG10
        mov      eax, dword ptr [rbp-0x2C]
        inc      eax
        cmp      dword ptr [rbp-0x30], eax
        mov      ecx, eax
-       jg       SHORT G_M11155_IG13
+       jg       SHORT G_M11155_IG09
                        ;; size=62 bbWeight=0.04 PerfScore 0.91
-G_M11155_IG10:        ; bbWeight=0.02, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M11155_IG07:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx r15]
-       mov      rax, gword ptr [rbp-0x38]
-       ; gcrRegs +[rax]
-                       ;; size=4 bbWeight=0.02 PerfScore 0.02
-G_M11155_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V00 V09}
-       mov      rdi, rax
+       mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
        mov      rsi, r14
        ; gcrRegs +[rsi]
        mov      rdx, gword ptr [rbp+0x10]
        ; gcrRegs +[rdx]
        mov      ecx, r13d
+       ; GC ptr vars -{V00}
        call     [System.Runtime.Serialization.XmlObjectSerializerReadContext:HandleMemberNotFound(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.ExtensionDataObject,int):this]
-       ; gcrRegs -[rax rdx rsi rdi r14]
+       ; gcrRegs -[rdx rsi rdi r14]
        mov      eax, dword ptr [rbp-0x30]
-                       ;; size=22 bbWeight=0.50 PerfScore 2.88
+                       ;; size=23 bbWeight=0.50 PerfScore 3.25
+G_M11155_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 24
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M11155_IG09:        ; bbWeight=0.02, gcVars=0000000000000200 {V00}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx r14-r15]
+       ; GC ptr vars +{V00 V09}
+       mov      r8d, dword ptr [rbp-0x30]
+       jmp      SHORT G_M11155_IG06
+                       ;; size=6 bbWeight=0.02 PerfScore 0.06
+G_M11155_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rbx]
+       ; GC ptr vars -{V00 V09}
+       mov      ebx, dword ptr [rbp-0x2C]
+       cmp      r12d, ebx
+       jge      SHORT G_M11155_IG11
+       mov      rdi, r14
+       ; gcrRegs +[rdi]
+       mov      esi, r13d
+       mov      edx, r12d
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdi r14-r15]
+                       ;; size=26 bbWeight=0.50 PerfScore 3.12
+G_M11155_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      eax, ebx
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M11155_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
@@ -164,46 +169,12 @@ G_M11155_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M11155_IG13:        ; bbWeight=0.02, gcVars=0000000000000200 {V00}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx r14-r15]
-       ; GC ptr vars +{V00 V09}
-       mov      r8d, dword ptr [rbp-0x30]
-       jmp      SHORT G_M11155_IG09
-                       ;; size=6 bbWeight=0.02 PerfScore 0.06
-G_M11155_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rbx]
-       ; GC ptr vars -{V00 V09}
-       mov      ebx, dword ptr [rbp-0x2C]
-       cmp      r12d, ebx
-       jge      SHORT G_M11155_IG15
-       mov      rdi, r14
-       ; gcrRegs +[rdi]
-       mov      esi, r13d
-       mov      edx, r12d
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdi r14-r15]
-                       ;; size=26 bbWeight=0.50 PerfScore 3.12
-G_M11155_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, ebx
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11155_IG16:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 24
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M11155_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M11155_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [CORINFO_HELP_RNGCHKFAIL]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 309, prolog size 19, PerfScore 106.47, instruction count 105, allocated bytes for code 309 (MethodHash=f103d46c) for method System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndexWithRequiredMembers(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
+; Total bytes of code 282, prolog size 19, PerfScore 106.74, instruction count 97, allocated bytes for code 282 (MethodHash=f103d46c) for method System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndexWithRequiredMembers(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-16 (-8.33%) : 10625.dasm - System.Reflection.Emit.TypeBuilder:DefinePInvokeMethod(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)

@@ -36,30 +36,30 @@ G_M10594_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=7 bbWeight=1 PerfScore 1.50
-G_M10594_IG02:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref
+G_M10594_IG02:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx rdx rdi]
        test     rax, rax
-       je       G_M10594_IG11
-                       ;; size=9 bbWeight=1 PerfScore 1.25
-G_M10594_IG03:        ; bbWeight=0.50, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref
+       je       SHORT G_M10594_IG10
+                       ;; size=5 bbWeight=1 PerfScore 1.25
+G_M10594_IG03:        ; bbWeight=0.50, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x08], 0
-       je       G_M10594_IG11
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M10594_IG04:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref
+       je       SHORT G_M10594_IG10
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
+G_M10594_IG04:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        test     rdx, rdx
-       je       G_M10594_IG12
-                       ;; size=9 bbWeight=1 PerfScore 1.25
-G_M10594_IG05:        ; bbWeight=0.50, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref
+       je       SHORT G_M10594_IG11
+                       ;; size=5 bbWeight=1 PerfScore 1.25
+G_M10594_IG05:        ; bbWeight=0.50, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rdx+0x08], 0
-       je       G_M10594_IG12
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+       je       SHORT G_M10594_IG11
+                       ;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M10594_IG06:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        test     rcx, rcx
-       je       SHORT G_M10594_IG10
+       je       SHORT G_M10594_IG12
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M10594_IG07:        ; bbWeight=0.50, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rcx+0x08], 0
-       je       SHORT G_M10594_IG10
+       je       SHORT G_M10594_IG12
                        ;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M10594_IG08:        ; bbWeight=1, gcrefRegs=0087 {rax rcx rdx rdi}, byrefRegs=0000 {}, byref, nogc
        mov      rsi, gword ptr [rbp+0x10]
@@ -89,20 +89,8 @@ G_M10594_IG09:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        tail.jmp [r11]<unknown method>
                        ;; size=4 bbWeight=1 PerfScore 2.50
-G_M10594_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rdx rsi rdi]
-       mov      rsi, qword ptr [(reloc)]      ; const ptr
-       mov      rsi, gword ptr [rsi]
-       ; gcrRegs +[rsi]
-       mov      rdi, rcx
-       ; gcrRegs +[rdi]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rcx rsi rdi]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M10594_IG11:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rax]
+G_M10594_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx rdx rsi rdi]
        mov      rsi, qword ptr [(reloc)]      ; const ptr
        mov      rsi, gword ptr [rsi]
        ; gcrRegs +[rsi]
@@ -113,7 +101,7 @@ G_M10594_IG11:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M10594_IG12:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+G_M10594_IG11:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdx]
        mov      rsi, qword ptr [(reloc)]      ; const ptr
        mov      rsi, gword ptr [rsi]
@@ -125,8 +113,20 @@ G_M10594_IG12:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=20 bbWeight=0 PerfScore 0.00
+G_M10594_IG12:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      rsi, qword ptr [(reloc)]      ; const ptr
+       mov      rsi, gword ptr [rsi]
+       ; gcrRegs +[rsi]
+       mov      rdi, rcx
+       ; gcrRegs +[rdi]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rcx rsi rdi]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 192, prolog size 7, PerfScore 33.50, instruction count 51, allocated bytes for code 192 (MethodHash=ba9fd69d) for method System.Reflection.Emit.TypeBuilder:DefinePInvokeMethod(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
+; Total bytes of code 176, prolog size 7, PerfScore 33.50, instruction count 51, allocated bytes for code 176 (MethodHash=ba9fd69d) for method System.Reflection.Emit.TypeBuilder:DefinePInvokeMethod(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+42 (+6.69%) : 15471.dasm - System.DefaultBinder:CreateParamOrder(int[],System.ReadOnlySpan`1[System.Reflection.ParameterInfo],System.String[]):ubyte (FullOpts)

@@ -53,11 +53,11 @@ G_M50985_IG02:        ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=2000 {r1
        ; gcrRegs +[r12]
        xor      edi, edi
        test     ebx, ebx
-       jle      SHORT G_M50985_IG06
+       jle      SHORT G_M50985_IG05
        test     r15, r15
-       je       SHORT G_M50985_IG05
+       je       SHORT G_M50985_IG04
        cmp      dword ptr [r15+0x08], ebx
-       jl       SHORT G_M50985_IG05
+       jl       SHORT G_M50985_IG04
                        ;; size=28 bbWeight=1 PerfScore 10.25
 G_M50985_IG03:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        ; gcrRegs -[rax]
@@ -66,34 +66,32 @@ G_M50985_IG03:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2
        inc      edi
        cmp      edi, ebx
        jl       SHORT G_M50985_IG03
-                       ;; size=18 bbWeight=3.96 PerfScore 10.89
-G_M50985_IG04:        ; bbWeight=1, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
-       jmp      SHORT G_M50985_IG06
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M50985_IG05:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       jmp      SHORT G_M50985_IG05
+                       ;; size=20 bbWeight=3.96 PerfScore 18.81
+G_M50985_IG04:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        cmp      edi, dword ptr [r15+0x08]
-       jae      G_M50985_IG39
+       jae      G_M50985_IG36
        mov      r11d, edi
        mov      dword ptr [r15+4*r11+0x10], -1
        inc      edi
        cmp      edi, ebx
-       jl       SHORT G_M50985_IG05
+       jl       SHORT G_M50985_IG04
                        ;; size=28 bbWeight=0.04 PerfScore 0.27
-G_M50985_IG06:        ; bbWeight=1, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
+G_M50985_IG05:        ; bbWeight=1, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
        xor      eax, eax
        mov      ecx, dword ptr [r14+0x08]
        mov      dword ptr [rbp-0x34], ecx
        test     ecx, ecx
        jle      G_M50985_IG18
        cmp      dword ptr [r12+0x08], ecx
-       jl       G_M50985_IG13
+       jl       G_M50985_IG12
                        ;; size=28 bbWeight=1 PerfScore 8.50
-G_M50985_IG07:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M50985_IG06:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        xor      edx, edx
        test     ebx, ebx
-       jle      SHORT G_M50985_IG11
+       jle      SHORT G_M50985_IG09
                        ;; size=6 bbWeight=3.96 PerfScore 5.94
-G_M50985_IG08:        ; bbWeight=15.84, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M50985_IG07:        ; bbWeight=15.84, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        mov      dword ptr [rbp-0x2C], eax
        mov      edi, eax
        mov      rsi, gword ptr [r14+8*rdi+0x10]
@@ -123,43 +121,44 @@ G_M50985_IG08:        ; bbWeight=15.84, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=
        mov      edx, dword ptr [rbp-0x30]
        inc      edx
        cmp      edx, ebx
-       mov      eax, dword ptr [rbp-0x2C]
        jl       SHORT G_M50985_IG08
-                       ;; size=67 bbWeight=15.84 PerfScore 411.84
-G_M50985_IG09:        ; bbWeight=1.98, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        jmp      SHORT G_M50985_IG11
-                       ;; size=2 bbWeight=1.98 PerfScore 3.96
+                       ;; size=66 bbWeight=15.84 PerfScore 427.68
+G_M50985_IG08:        ; bbWeight=7.92, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M50985_IG07
+                       ;; size=5 bbWeight=7.92 PerfScore 23.76
+G_M50985_IG09:        ; bbWeight=1.98, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       mov      dword ptr [rbp-0x2C], eax
+       jmp      SHORT G_M50985_IG11
+                       ;; size=5 bbWeight=1.98 PerfScore 5.94
 G_M50985_IG10:        ; bbWeight=1.98, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
        mov      edx, dword ptr [rbp-0x30]
        cmp      edx, dword ptr [r15+0x08]
-       jae      G_M50985_IG39
+       jae      G_M50985_IG36
        mov      edi, edx
-       mov      eax, dword ptr [rbp-0x2C]
-       mov      dword ptr [r15+4*rdi+0x10], eax
-       mov      edi, eax
+       mov      r11d, dword ptr [rbp-0x2C]
+       mov      dword ptr [r15+4*rdi+0x10], r11d
+       mov      edi, r11d
        mov      byte  ptr [r12+rdi+0x10], 1
-                       ;; size=31 bbWeight=1.98 PerfScore 16.83
-G_M50985_IG11:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       mov      dword ptr [rbp-0x2C], r11d
+                       ;; size=37 bbWeight=1.98 PerfScore 18.81
+G_M50985_IG11:        ; bbWeight=3.96, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
        cmp      edx, ebx
-       je       G_M50985_IG37
-       inc      eax
-       mov      ecx, dword ptr [rbp-0x34]
-       cmp      ecx, eax
-       jg       SHORT G_M50985_IG07
-                       ;; size=17 bbWeight=3.96 PerfScore 14.85
-G_M50985_IG12:        ; bbWeight=1, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14]
-       ; byrRegs -[r13]
+       je       G_M50985_IG34
+       mov      r11d, dword ptr [rbp-0x2C]
+       inc      r11d
+       cmp      dword ptr [rbp-0x34], r11d
+       mov      eax, r11d
+       jg       G_M50985_IG06
        jmp      G_M50985_IG18
-                       ;; size=5 bbWeight=1 PerfScore 2.00
-G_M50985_IG13:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
-       ; gcrRegs +[r14]
-       ; byrRegs +[r13]
+                       ;; size=33 bbWeight=3.96 PerfScore 30.69
+G_M50985_IG12:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        xor      edx, edx
        test     ebx, ebx
-       jle      SHORT G_M50985_IG17
+       jle      SHORT G_M50985_IG15
                        ;; size=6 bbWeight=0.04 PerfScore 0.06
-G_M50985_IG14:        ; bbWeight=0.16, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M50985_IG13:        ; bbWeight=0.16, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        mov      dword ptr [rbp-0x2C], eax
        mov      edi, eax
        mov      rdi, gword ptr [r14+8*rdi+0x10]
@@ -190,53 +189,61 @@ G_M50985_IG14:        ; bbWeight=0.16, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2
        mov      eax, dword ptr [rbp-0x30]
        inc      eax
        cmp      eax, ebx
+       jl       SHORT G_M50985_IG14
+       jmp      SHORT G_M50985_IG17
+                       ;; size=66 bbWeight=0.16 PerfScore 4.32
+G_M50985_IG14:        ; bbWeight=0.08, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
        mov      edx, eax
        mov      eax, dword ptr [rbp-0x2C]
-       jl       SHORT G_M50985_IG14
-                       ;; size=69 bbWeight=0.16 PerfScore 4.20
+       jmp      SHORT G_M50985_IG13
+                       ;; size=7 bbWeight=0.08 PerfScore 0.26
 G_M50985_IG15:        ; bbWeight=0.02, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       mov      dword ptr [rbp-0x2C], eax
+       mov      eax, edx
        jmp      SHORT G_M50985_IG17
-                       ;; size=2 bbWeight=0.02 PerfScore 0.04
+                       ;; size=7 bbWeight=0.02 PerfScore 0.07
 G_M50985_IG16:        ; bbWeight=0.02, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
-       mov      edx, dword ptr [rbp-0x30]
-       cmp      edx, dword ptr [r15+0x08]
-       jae      G_M50985_IG39
-       mov      edi, edx
-       mov      eax, dword ptr [rbp-0x2C]
-       mov      dword ptr [r15+4*rdi+0x10], eax
-       cmp      eax, dword ptr [r12+0x08]
-       jae      G_M50985_IG39
-       mov      edi, eax
-       mov      byte  ptr [r12+rdi+0x10], 1
-                       ;; size=42 bbWeight=0.02 PerfScore 0.25
-G_M50985_IG17:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
-       cmp      edx, ebx
-       je       G_M50985_IG37
-       inc      eax
-       mov      ecx, dword ptr [rbp-0x34]
-       cmp      ecx, eax
-       jg       G_M50985_IG13
-                       ;; size=21 bbWeight=0.04 PerfScore 0.15
+       mov      eax, dword ptr [rbp-0x30]
+       cmp      eax, dword ptr [r15+0x08]
+       jae      G_M50985_IG36
+       mov      ecx, eax
+       mov      edx, dword ptr [rbp-0x2C]
+       mov      dword ptr [r15+4*rcx+0x10], edx
+       cmp      edx, dword ptr [r12+0x08]
+       jae      G_M50985_IG36
+       mov      ecx, edx
+       mov      byte  ptr [r12+rcx+0x10], 1
+       mov      dword ptr [rbp-0x2C], edx
+                       ;; size=45 bbWeight=0.02 PerfScore 0.27
+G_M50985_IG17:        ; bbWeight=0.04, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref, isz
+       cmp      eax, ebx
+       je       G_M50985_IG34
+       mov      edx, dword ptr [rbp-0x2C]
+       inc      edx
+       mov      eax, dword ptr [rbp-0x34]
+       cmp      eax, edx
+       jg       SHORT G_M50985_IG22
+                       ;; size=20 bbWeight=0.04 PerfScore 0.19
 G_M50985_IG18:        ; bbWeight=0.50, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r14]
        ; byrRegs -[r13]
        xor      eax, eax
        xor      ecx, ecx
        test     ebx, ebx
-       jle      G_M50985_IG35
+       jle      G_M50985_IG32
        test     r15, r15
-       je       SHORT G_M50985_IG29
+       je       SHORT G_M50985_IG27
        cmp      dword ptr [r15+0x08], ebx
-       jl       SHORT G_M50985_IG29
+       jl       SHORT G_M50985_IG27
                        ;; size=23 bbWeight=0.50 PerfScore 3.50
 G_M50985_IG19:        ; bbWeight=3.96, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, ecx
        cmp      dword ptr [r15+4*rdx+0x10], -1
-       jne      SHORT G_M50985_IG27
+       jne      SHORT G_M50985_IG26
                        ;; size=10 bbWeight=3.96 PerfScore 16.83
 G_M50985_IG20:        ; bbWeight=1.98, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      eax, ebx
-       jge      SHORT G_M50985_IG27
+       jge      SHORT G_M50985_IG26
        test     eax, eax
        jl       SHORT G_M50985_IG23
        cmp      dword ptr [r12+0x08], ebx
@@ -245,85 +252,83 @@ G_M50985_IG20:        ; bbWeight=1.98, gcrefRegs=9000 {r12 r15}, byrefRegs=0000
 G_M50985_IG21:        ; bbWeight=15.68, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, eax
        cmp      byte  ptr [r12+rdx+0x10], 0
-       je       SHORT G_M50985_IG26
+       je       SHORT G_M50985_IG25
        inc      eax
        cmp      eax, ebx
        jl       SHORT G_M50985_IG21
-                       ;; size=16 bbWeight=15.68 PerfScore 90.17
-G_M50985_IG22:        ; bbWeight=1.98, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M50985_IG27
-                       ;; size=2 bbWeight=1.98 PerfScore 3.96
+       jmp      SHORT G_M50985_IG26
+                       ;; size=18 bbWeight=15.68 PerfScore 121.53
+G_M50985_IG22:        ; bbWeight=0.02, gcrefRegs=D000 {r12 r14 r15}, byrefRegs=2000 {r13}, byref
+       ; gcrRegs +[r14]
+       ; byrRegs +[r13]
+       mov      eax, edx
+       jmp      G_M50985_IG12
+                       ;; size=7 bbWeight=0.02 PerfScore 0.05
 G_M50985_IG23:        ; bbWeight=0.02, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14]
+       ; byrRegs -[r13]
        mov      edx, dword ptr [r12+0x08]
                        ;; size=5 bbWeight=0.02 PerfScore 0.04
 G_M50985_IG24:        ; bbWeight=0.16, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      eax, dword ptr [r12+0x08]
-       jae      G_M50985_IG39
+       jae      G_M50985_IG36
        mov      edx, eax
...

+4 (+7.14%) : 58109.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)

@@ -17,21 +17,21 @@
 ;
 ; Lcl frame size = 0
 
-G_M12753_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M12753_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        mov      rbp, rsp
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M12753_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       SHORT G_M12753_IG04
+       je       SHORT G_M12753_IG06
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        movzx    rax, byte  ptr [rdi+0x12]
        cmp      eax, 117
-       je       SHORT G_M12753_IG06
+       je       SHORT G_M12753_IG04
        cmp      eax, 188
-       jne      SHORT G_M12753_IG04
+       jne      SHORT G_M12753_IG06
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
@@ -39,29 +39,34 @@ G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdi]
        test     rdi, rdi
        jne      SHORT G_M12753_IG03
-                       ;; size=31 bbWeight=4 PerfScore 43.00
-G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rdi]
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax] +[rdi]
+       jmp      SHORT G_M12753_IG08
+                       ;; size=33 bbWeight=4 PerfScore 51.00
+G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
        mov      rax, gword ptr [rax+0x20]
                        ;; size=10 bbWeight=0.50 PerfScore 2.50
+G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbp
+       ret      
+                       ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax]
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M12753_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M12753_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       jmp      SHORT G_M12753_IG06
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 56, prolog size 4, PerfScore 49.62, instruction count 20, allocated bytes for code 56 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
+; Total bytes of code 60, prolog size 4, PerfScore 58.62, instruction count 22, allocated bytes for code 60 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:

+15 (+14.02%) : 186.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)

@@ -9,39 +9,40 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )   byref  ->  rdi         this single-def
+;  V00 this         [V00,T00] (  5,  2   )   byref  ->  rdi         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T03] (  4,  3.50)     int  ->  rax        
+;  V02 loc0         [V02,T03] (  4,  0   )     int  ->  rax        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp2         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp3         [V06,T01] (  5,  5   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp4         [V07,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V06 tmp3         [V06,T01] (  5,  1   )   byref  ->  [rbp-0x18]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp4         [V07,T02] (  2,  1   )     int  ->  [rbp-0x0C]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp5         [V08,T05] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
-G_M34588_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M34588_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x10]
-                       ;; size=8 bbWeight=1 PerfScore 3.50
-G_M34588_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       ; byrRegs +[rsi rdi]
-       cmp      edx, 4
-       jne      SHORT G_M34588_IG06
+       sub      rsp, 24
+       lea      rbp, [rsp+0x20]
+       mov      bword ptr [rbp-0x18], rsi
+       ; GC ptr vars +{V06}
+       mov      dword ptr [rbp-0x0C], edx
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M34588_IG02:        ; bbWeight=0, gcVars=0000000000000002 {V06}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz
+       ; byrRegs +[rdi]
+       cmp      dword ptr [rbp-0x0C], 4
+       jne      SHORT G_M34588_IG04
+       mov      rsi, bword ptr [rbp-0x18]
+       ; byrRegs +[rsi]
        mov      eax, dword ptr [rsi+0x0C]
        test     eax, 0xD1FFAB1E
-       jne      SHORT G_M34588_IG06
-                       ;; size=15 bbWeight=1 PerfScore 4.50
-G_M34588_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       jne      SHORT G_M34588_IG04
        mov      ecx, eax
        and      ecx, 0xD1FFAB1E
        cmp      ecx, 0xD1FFAB1E
-       ja       SHORT G_M34588_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 0.88
-G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rdi}, byref
+       ja       SHORT G_M34588_IG04
        mov      ecx, dword ptr [rsi]
        mov      edx, dword ptr [rsi+0x04]
        shl      rdx, 32
@@ -50,15 +51,16 @@ G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rdi},
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rdi+0x04], ecx
        mov      dword ptr [rdi], eax
-                       ;; size=24 bbWeight=1 PerfScore 9.75
-G_M34588_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M34588_IG03:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 24
        pop      rbx
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M34588_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; byrRegs -[rsi rdi]
+       ; GC ptr vars -{V06}
        call     [CORINFO_HELP_READYTORUN_NEW]
        ; gcrRegs +[rax]
        mov      rbx, rax
@@ -77,7 +79,7 @@ G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=37 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 107, prolog size 8, PerfScore 20.88, instruction count 34, allocated bytes for code 107 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
+; Total bytes of code 122, prolog size 11, PerfScore 0.00, instruction count 37, allocated bytes for code 122 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -85,11 +87,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x03
+  SizeOfProlog      : 0x06
   CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

libraries.pmi.linux.x64.checked.mch

-39 (-12.26%) : 249705.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)

@@ -13,7 +13,7 @@
 ;  V02 arg2         [V02,T07] (  6,  9.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;  V03 loc0         [V03,T12] (  3,  6   )     int  ->  r13        
 ;  V04 loc1         [V04,T03] (  6, 17.50)     int  ->  r12        
-;  V05 loc2         [V05,T05] (  4, 14   )     ref  ->  [rbp-0x38]  class-hnd <<unknown class>>
+;  V05 loc2         [V05,T05] (  4, 14   )     ref  ->  [rbp-0x38]  class-hnd spill-single-def <<unknown class>>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T04] (  3, 17   )     ref  ->  rax         "CASTCLASS eval op1"
 ;  V08 tmp2         [V08,T15] (  3,  5   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
@@ -34,7 +34,7 @@
 ;* V23 tmp17        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp18        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp19        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V26 cse0         [V26,T09] (  3, 10   )    long  ->  [rbp-0x30]  "CSE - moderate"
+;  V26 cse0         [V26,T09] (  3, 10   )    long  ->  [rbp-0x30]  spill-single-def "CSE - moderate"
 ;  V27 cse1         [V27,T13] (  3,  5.50)     int  ->  rdx         "CSE - moderate"
 ;  V28 cse2         [V28,T14] (  3,  5.50)     int  ->  rdx         "CSE - moderate"
 ;
@@ -66,7 +66,7 @@ G_M15178_IG02:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
        mov      r13d, eax
        xor      r12d, r12d
        test     r13d, r13d
-       jle      G_M15178_IG15
+       jle      G_M15178_IG14
                        ;; size=28 bbWeight=1 PerfScore 9.00
 G_M15178_IG03:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [r14+0x10]
@@ -98,10 +98,10 @@ G_M15178_IG06:        ; bbWeight=4, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=
        ; gcrRegs -[rax]
        mov      rax, rcx
        ; gcrRegs +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
        mov      gword ptr [rbp-0x38], rax
        ; GC ptr vars +{V05}
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
        mov      rcx, qword ptr [rax]
        ; gcrRegs -[rcx]
        mov      rcx, qword ptr [rcx+0x68]
@@ -109,20 +109,15 @@ G_M15178_IG06:        ; bbWeight=4, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=
        call     [rcx+0x30]<unknown method>
        ; gcrRegs -[rdi]
        cmp      rax, rbx
-       je       SHORT G_M15178_IG09
+       je       SHORT G_M15178_IG08
                        ;; size=29 bbWeight=4 PerfScore 43.00
 G_M15178_IG07:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        test     rax, rax
-       je       SHORT G_M15178_IG14
-                       ;; size=5 bbWeight=1.75 PerfScore 2.19
-G_M15178_IG08:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, gword ptr [rbp-0x38]
-       ; gcrRegs +[rcx]
-       mov      r8, qword ptr [rbp-0x30]
-       jmp      SHORT G_M15178_IG17
-                       ;; size=10 bbWeight=1.75 PerfScore 7.00
-G_M15178_IG09:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rcx]
+       je       SHORT G_M15178_IG13
+       jmp      SHORT G_M15178_IG16
+                       ;; size=7 bbWeight=1.75 PerfScore 5.69
+G_M15178_IG08:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
        mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
        mov      rcx, qword ptr [rbp-0x30]
@@ -130,22 +125,22 @@ G_M15178_IG09:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
        call     [rcx+0x18]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        cmp      rax, r15
-       je       G_M15178_IG20
-                       ;; size=20 bbWeight=2 PerfScore 12.50
-G_M15178_IG10:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M15178_IG19
+                       ;; size=16 bbWeight=2 PerfScore 12.50
+G_M15178_IG09:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        test     rax, rax
-       je       SHORT G_M15178_IG14
+       je       SHORT G_M15178_IG13
+                       ;; size=5 bbWeight=1.75 PerfScore 2.19
+G_M15178_IG10:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       test     r15, r15
+       je       SHORT G_M15178_IG13
                        ;; size=5 bbWeight=1.75 PerfScore 2.19
 G_M15178_IG11:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       test     r15, r15
-       je       SHORT G_M15178_IG14
-                       ;; size=5 bbWeight=1.75 PerfScore 2.19
-G_M15178_IG12:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rax+0x08]
        cmp      edx, dword ptr [r15+0x08]
-       jne      SHORT G_M15178_IG14
+       jne      SHORT G_M15178_IG13
                        ;; size=9 bbWeight=1.75 PerfScore 10.50
-G_M15178_IG13:        ; bbWeight=2, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M15178_IG12:        ; bbWeight=2, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [rax+0x0C]
        ; byrRegs +[rdi]
        add      edx, edx
@@ -155,18 +150,18 @@ G_M15178_IG13:        ; bbWeight=2, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=
        ; gcrRegs -[rax]
        ; byrRegs -[rsi rdi]
        test     eax, eax
-       jne      SHORT G_M15178_IG20
+       jne      SHORT G_M15178_IG19
                        ;; size=20 bbWeight=2 PerfScore 11.00
-G_M15178_IG14:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M15178_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        inc      r12d
        cmp      r12d, r13d
        jl       G_M15178_IG03
                        ;; size=12 bbWeight=4 PerfScore 6.00
-G_M15178_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15178_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx r14-r15]
        mov      eax, -1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M15178_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M15178_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -176,21 +171,18 @@ G_M15178_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M15178_IG17:        ; bbWeight=1.75, gcVars=0000000000000000 {}, gcrefRegs=C00B {rax rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rax rcx rbx r14-r15]
+G_M15178_IG16:        ; bbWeight=1.75, gcVars=0000000000000020 {V05}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rax rbx r14-r15]
+       ; GC ptr vars +{V05}
        test     rbx, rbx
-       je       SHORT G_M15178_IG14
+       je       SHORT G_M15178_IG13
                        ;; size=5 bbWeight=1.75 PerfScore 2.19
-G_M15178_IG18:        ; bbWeight=1.75, gcrefRegs=C00B {rax rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M15178_IG17:        ; bbWeight=1.75, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rax+0x08]
        cmp      edx, dword ptr [rbx+0x08]
-       mov      gword ptr [rbp-0x38], rcx
-       ; GC ptr vars +{V05}
-       mov      qword ptr [rbp-0x30], r8
-       jne      SHORT G_M15178_IG14
-                       ;; size=16 bbWeight=1.75 PerfScore 14.00
-G_M15178_IG19:        ; bbWeight=2, gcVars=0000000000000020 {V05}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rcx]
+       jne      SHORT G_M15178_IG13
+                       ;; size=8 bbWeight=1.75 PerfScore 10.50
+G_M15178_IG18:        ; bbWeight=2, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [rax+0x0C]
        ; byrRegs +[rdi]
        add      edx, edx
@@ -200,20 +192,15 @@ G_M15178_IG19:        ; bbWeight=2, gcVars=0000000000000020 {V05}, gcrefRegs=C00
        ; gcrRegs -[rax]
        ; byrRegs -[rsi rdi]
        test     eax, eax
-       je       SHORT G_M15178_IG14
-       mov      rcx, gword ptr [rbp-0x38]
-       ; gcrRegs +[rcx]
-       mov      r8, qword ptr [rbp-0x30]
-       mov      gword ptr [rbp-0x38], rcx
-       mov      qword ptr [rbp-0x30], r8
-       jmp      G_M15178_IG09
-                       ;; size=41 bbWeight=2 PerfScore 23.00
-G_M15178_IG20:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rcx rbx r14-r15]
+       je       SHORT G_M15178_IG13
+       jmp      SHORT G_M15178_IG08
+                       ;; size=22 bbWeight=2 PerfScore 15.00
+G_M15178_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx r14-r15]
        ; GC ptr vars -{V05}
        mov      eax, r12d
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M15178_IG21:        ; bbWeight=0.50, epilog, nogc, extend
+G_M15178_IG20:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -224,7 +211,7 @@ G_M15178_IG21:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 318, prolog size 19, PerfScore 182.76, instruction count 102, allocated bytes for code 318 (MethodHash=c3c1c4b5) for method System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
+; Total bytes of code 279, prolog size 19, PerfScore 167.76, instruction count 94, allocated bytes for code 279 (MethodHash=c3c1c4b5) for method System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-20 (-11.63%) : 202033.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T00] (  7,  5.94)     ref  ->  rdi         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T01] (  4,  4   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rsi        
+;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rax        
 ;* V03 loc1         [V03,T08] (  0,  0   )   ubyte  ->  zero-ref    EH-live single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
@@ -19,122 +19,114 @@
 ;* V08 tmp4         [V08,T05] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <<unknown class>>
 ;* V10 tmp6         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[V] "PSPSym"
-;  V12 cse0         [V12,T03] (  4,  3.88)     int  ->  r15         "CSE - aggressive"
+;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x10]  do-not-enreg[V] "PSPSym"
+;  V12 cse0         [V12,T03] (  4,  3.88)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M53527_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       mov      qword ptr [rbp-0x20], rsp
+       push     rax
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rsp
        mov      rbx, rsi
        ; byrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M53527_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        xor      eax, eax
        mov      qword ptr [rbx], rax
        test     rdi, rdi
-       je       SHORT G_M53527_IG06
+       je       SHORT G_M53527_IG04
                        ;; size=10 bbWeight=1 PerfScore 2.50
 G_M53527_IG03:        ; bbWeight=0.94, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
-       je       SHORT G_M53527_IG06
-                       ;; size=9 bbWeight=0.94 PerfScore 3.05
-G_M53527_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      esi, 10
-       cmp      r15d, 2
-       jl       SHORT G_M53527_IG10
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M53527_IG05:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M53527_IG08
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M53527_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      esi, dword ptr [rdi+0x08]
+       test     esi, esi
+       jne      SHORT G_M53527_IG06
+                       ;; size=7 bbWeight=0.94 PerfScore 3.05
+G_M53527_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        ; byrRegs -[rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M53527_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+G_M53527_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M53527_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M53527_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs +[rdi]
        ; byrRegs +[rbx]
-       mov      eax, dword ptr [rdi+0x0C]
-       or       eax, 0xD1FFAB1E
-       cmp      eax, 0xD1FFAB1E
-       jne      SHORT G_M53527_IG10
-                       ;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M53527_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      esi, 16
-       jmp      SHORT G_M53527_IG12
+       mov      eax, 10
+       cmp      esi, 2
+       jl       SHORT G_M53527_IG09
+                       ;; size=10 bbWeight=1 PerfScore 1.50
+G_M53527_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ecx, dword ptr [rdi+0x0C]
+       or       ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       jne      SHORT G_M53527_IG09
+                       ;; size=17 bbWeight=0.50 PerfScore 1.75
+G_M53527_IG08:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      eax, 16
+       jmp      SHORT G_M53527_IG11
                        ;; size=7 bbWeight=1 PerfScore 2.25
-G_M53527_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       test     r15d, r15d
-       jle      SHORT G_M53527_IG12
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M53527_IG11:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       mov      eax, 8
+G_M53527_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       test     esi, esi
+       jle      SHORT G_M53527_IG11
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M53527_IG10:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+       mov      esi, 8
        cmp      word  ptr [rdi+0x0C], 48
-       cmove    esi, eax
+       cmove    eax, esi
                        ;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M53527_IG12:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+G_M53527_IG11:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+       mov      esi, eax
        call     [System.Convert:ToUInt64(System.String,int):ulong]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        mov      qword ptr [rbx], rax
-                       ;; size=9 bbWeight=1 PerfScore 4.00
-G_M53527_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=11 bbWeight=1 PerfScore 4.25
+G_M53527_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M53527_IG14:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+G_M53527_IG13:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M53527_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M53527_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M53527_IG16:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 16
+G_M53527_IG15:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M53527_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M53527_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
+       push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x20]
-                       ;; size=19 bbWeight=0 PerfScore 0.00
-G_M53527_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       lea      rax, G_M53527_IG15
+       lea      rbp, [rbp+0x10]
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M53527_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       lea      rax, G_M53527_IG14
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53527_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 16
+G_M53527_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 172, prolog size 20, PerfScore 30.05, instruction count 62, allocated bytes for code 172 (MethodHash=93cc2ee8) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte (FullOpts)
+; Total bytes of code 152, prolog size 15, PerfScore 28.05, instruction count 56, allocated bytes for code 152 (MethodHash=93cc2ee8) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,29 +134,27 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 Unwind Info:
   >> Start offset   : 0xd1ffab1e (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 *************** EH table for Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M53527_IG12..G_M53527_IG13) handled by [G_M53527_IG17..END) (class: 1000015)
+EH#0: try [G_M53527_IG11..G_M53527_IG12) handled by [G_M53527_IG16..END) (class: 1000015)

-20 (-11.63%) : 202034.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T00] (  7,  5.94)     ref  ->  rdi         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T01] (  4,  4   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rsi        
+;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rax        
 ;* V03 loc1         [V03,T08] (  0,  0   )   ubyte  ->  zero-ref    EH-live single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
@@ -19,121 +19,113 @@
 ;* V08 tmp4         [V08,T05] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <<unknown class>>
 ;* V10 tmp6         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[V] "PSPSym"
-;  V12 cse0         [V12,T03] (  4,  3.88)     int  ->  r15         "CSE - aggressive"
+;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x10]  do-not-enreg[V] "PSPSym"
+;  V12 cse0         [V12,T03] (  4,  3.88)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M64594_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       mov      qword ptr [rbp-0x20], rsp
+       push     rax
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rsp
        mov      rbx, rsi
        ; byrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M64594_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        mov      word  ptr [rbx], 0
        test     rdi, rdi
-       je       SHORT G_M64594_IG06
+       je       SHORT G_M64594_IG04
                        ;; size=10 bbWeight=1 PerfScore 2.25
 G_M64594_IG03:        ; bbWeight=0.94, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
-       je       SHORT G_M64594_IG06
-                       ;; size=9 bbWeight=0.94 PerfScore 3.05
-G_M64594_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      esi, 10
-       cmp      r15d, 2
-       jl       SHORT G_M64594_IG10
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M64594_IG05:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M64594_IG08
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M64594_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      esi, dword ptr [rdi+0x08]
+       test     esi, esi
+       jne      SHORT G_M64594_IG06
+                       ;; size=7 bbWeight=0.94 PerfScore 3.05
+G_M64594_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        ; byrRegs -[rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M64594_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+G_M64594_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M64594_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M64594_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs +[rdi]
        ; byrRegs +[rbx]
-       mov      eax, dword ptr [rdi+0x0C]
-       or       eax, 0xD1FFAB1E
-       cmp      eax, 0xD1FFAB1E
-       jne      SHORT G_M64594_IG10
-                       ;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M64594_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      esi, 16
-       jmp      SHORT G_M64594_IG12
+       mov      eax, 10
+       cmp      esi, 2
+       jl       SHORT G_M64594_IG09
+                       ;; size=10 bbWeight=1 PerfScore 1.50
+G_M64594_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ecx, dword ptr [rdi+0x0C]
+       or       ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       jne      SHORT G_M64594_IG09
+                       ;; size=17 bbWeight=0.50 PerfScore 1.75
+G_M64594_IG08:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      eax, 16
+       jmp      SHORT G_M64594_IG11
                        ;; size=7 bbWeight=1 PerfScore 2.25
-G_M64594_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       test     r15d, r15d
-       jle      SHORT G_M64594_IG12
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M64594_IG11:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       mov      eax, 8
+G_M64594_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       test     esi, esi
+       jle      SHORT G_M64594_IG11
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M64594_IG10:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+       mov      esi, 8
        cmp      word  ptr [rdi+0x0C], 48
-       cmove    esi, eax
+       cmove    eax, esi
                        ;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M64594_IG12:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+G_M64594_IG11:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+       mov      esi, eax
        call     [System.Convert:ToUInt16(System.String,int):ushort]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        mov      word  ptr [rbx], ax
-                       ;; size=9 bbWeight=1 PerfScore 4.00
-G_M64594_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=11 bbWeight=1 PerfScore 4.25
+G_M64594_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M64594_IG14:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+G_M64594_IG13:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M64594_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M64594_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M64594_IG16:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 16
+G_M64594_IG15:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M64594_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M64594_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
+       push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x20]
-                       ;; size=19 bbWeight=0 PerfScore 0.00
-G_M64594_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       lea      rax, G_M64594_IG15
+       lea      rbp, [rbp+0x10]
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M64594_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       lea      rax, G_M64594_IG14
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M64594_IG19:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 16
+G_M64594_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 172, prolog size 20, PerfScore 29.80, instruction count 61, allocated bytes for code 172 (MethodHash=6a4903ad) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
+; Total bytes of code 152, prolog size 15, PerfScore 27.80, instruction count 55, allocated bytes for code 152 (MethodHash=6a4903ad) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -141,29 +133,27 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 Unwind Info:
   >> Start offset   : 0xd1ffab1e (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 *************** EH table for Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M64594_IG12..G_M64594_IG13) handled by [G_M64594_IG17..END) (class: 1000015)
+EH#0: try [G_M64594_IG11..G_M64594_IG12) handled by [G_M64594_IG16..END) (class: 1000015)

+18 (+9.57%) : 1607.dasm - System.Int128:op_CheckedMultiply(System.Int128,System.Int128):System.Int128 (FullOpts)

@@ -21,7 +21,7 @@
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Int128>
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Int128>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.UInt128>
-;  V13 tmp9         [V13    ] (  3,  3   )  struct (16) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V13 tmp9         [V13    ] (  3,  0   )  struct (16) [rbp-0x20]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.UInt128>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Inline stloc first use temp" <System.UInt128>
@@ -49,39 +49,39 @@
 ;* V38 tmp34        [V38    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V39 tmp35        [V39    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp36        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
-;* V41 tmp37        [V41,T44] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V42 tmp38        [V42,T16] (  2,  2   )    long  ->  rsi         "Inline stloc first use temp"
+;* V41 tmp37        [V41,T45] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;  V42 tmp38        [V42,T16] (  2,  0   )    long  ->  rsi         "Inline stloc first use temp"
 ;* V43 tmp39        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V44 tmp40        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V45 tmp41        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp42        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V47 tmp43        [V47,T06] (  3,  3   )    long  ->   r8         "Inline stloc first use temp"
+;  V47 tmp43        [V47,T06] (  3,  0   )    long  ->   r9         "Inline stloc first use temp"
 ;* V48 tmp44        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V49 tmp45        [V49,T17] (  2,  2   )    long  ->  rdx         "Inline stloc first use temp"
+;  V49 tmp45        [V49,T17] (  2,  0   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V50 tmp46        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V51 tmp47        [V51    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Int128>
 ;* V52 tmp48        [V52    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp49        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V54 tmp50        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V55 tmp51        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
-;* V56 tmp52        [V56,T45] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V57 tmp53        [V57,T18] (  2,  2   )    long  ->  r15         "Inline stloc first use temp"
+;* V56 tmp52        [V56,T46] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;  V57 tmp53        [V57,T18] (  2,  0   )    long  ->  r15         "Inline stloc first use temp"
 ;* V58 tmp54        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V59 tmp55        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V60 tmp56        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp57        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V62 tmp58        [V62,T04] (  3,  3   )    long  ->  rax         "Inline stloc first use temp"
+;  V62 tmp58        [V62,T04] (  3,  0   )    long  ->  rsi         "Inline stloc first use temp"
 ;* V63 tmp59        [V63    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V64 tmp60        [V64,T07] (  2,  2   )    long  ->  rdx         "Inline stloc first use temp"
+;  V64 tmp60        [V64,T07] (  2,  0   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V65 tmp61        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V66 tmp62        [V66    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V67 tmp63        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V68 tmp64        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V69 tmp65        [V69,T53] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V69 tmp65        [V69,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V70 tmp66        [V70    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V71 tmp67        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V72 tmp68        [V72    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V73 tmp69        [V73,T54] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V73 tmp69        [V73,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V74 tmp70        [V74    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V75 tmp71        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V76 tmp72        [V76    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
@@ -89,20 +89,20 @@
 ;* V78 tmp74        [V78    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V79 tmp75        [V79    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V80 tmp76        [V80    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V81 tmp77        [V81,T55] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V81 tmp77        [V81,T49] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V82 tmp78        [V82    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp79        [V83    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V84 tmp80        [V84    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V85 tmp81        [V85,T52] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V85 tmp81        [V85,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V86 tmp82        [V86    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V87 tmp83        [V87,T02] (  3,  3   )    long  ->  r14         single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;  V88 tmp84        [V88,T00] (  4,  4   )    long  ->  rbx         single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;  V89 tmp85        [V89,T03] (  3,  3   )    long  ->  r13         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;  V90 tmp86        [V90,T01] (  4,  4   )    long  ->  r15         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V91 tmp87        [V91,T14] (  3,  2.50)    long  ->  rax         "field V02._lower (fldOffset=0x0)" P-INDEP
-;  V92 tmp88        [V92,T15] (  3,  2   )    long  ->  rdx         "field V02._upper (fldOffset=0x8)" P-INDEP
-;  V93 tmp89        [V93,T19] (  2,  2   )    long  ->  rcx         "field V03._lower (fldOffset=0x0)" P-INDEP
-;  V94 tmp90        [V94,T05] (  4,  3   )    long  ->  rdi         "field V03._upper (fldOffset=0x8)" P-INDEP
+;  V87 tmp83        [V87,T02] (  3,  1   )    long  ->  [rbp-0x28]  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;  V88 tmp84        [V88,T00] (  4,  1   )    long  ->  [rbp-0x30]  single-def "field V00._upper (fldOffset=0x8)" P-INDEP
+;  V89 tmp85        [V89,T03] (  3,  1   )    long  ->  [rbp-0x38]  single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;  V90 tmp86        [V90,T01] (  4,  1   )    long  ->  [rbp-0x40]  single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V91 tmp87        [V91,T08] (  3,  0   )    long  ->  rsi         "field V02._lower (fldOffset=0x0)" P-INDEP
+;  V92 tmp88        [V92,T09] (  3,  0   )    long  ->  rdx         "field V02._upper (fldOffset=0x8)" P-INDEP
+;  V93 tmp89        [V93,T20] (  2,  0   )    long  ->  rcx         "field V03._lower (fldOffset=0x0)" P-INDEP
+;  V94 tmp90        [V94,T05] (  4,  0   )    long  ->  rdi         "field V03._upper (fldOffset=0x8)" P-INDEP
 ;* V95 tmp91        [V95    ] (  0,  0   )    long  ->  zero-ref    "field V05._lower (fldOffset=0x0)" P-INDEP
 ;* V96 tmp92        [V96    ] (  0,  0   )    long  ->  zero-ref    "field V05._upper (fldOffset=0x8)" P-INDEP
 ;* V97 tmp93        [V97    ] (  0,  0   )    long  ->  zero-ref    "field V06._lower (fldOffset=0x0)" P-INDEP
@@ -119,153 +119,152 @@
 ;* V108 tmp104      [V108    ] (  0,  0   )    long  ->  zero-ref    "field V11._upper (fldOffset=0x8)" P-INDEP
 ;* V109 tmp105      [V109    ] (  0,  0   )    long  ->  zero-ref    "field V12._lower (fldOffset=0x0)" P-INDEP
 ;* V110 tmp106      [V110    ] (  0,  0   )    long  ->  zero-ref    "field V12._upper (fldOffset=0x8)" P-INDEP
-;  V111 tmp107      [V111    ] (  2,  2   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V13._lower (fldOffset=0x0)" P-DEP
-;  V112 tmp108      [V112    ] (  2,  2   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V13._upper (fldOffset=0x8)" P-DEP
+;  V111 tmp107      [V111    ] (  2,  0   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "field V13._lower (fldOffset=0x0)" P-DEP
+;  V112 tmp108      [V112    ] (  2,  0   )    long  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed "field V13._upper (fldOffset=0x8)" P-DEP
 ;* V113 tmp109      [V113    ] (  0,  0   )    long  ->  zero-ref    "field V14._lower (fldOffset=0x0)" P-INDEP
 ;* V114 tmp110      [V114    ] (  0,  0   )    long  ->  zero-ref    "field V14._upper (fldOffset=0x8)" P-INDEP
 ;* V115 tmp111      [V115    ] (  0,  0   )    long  ->  zero-ref    "field V15._lower (fldOffset=0x0)" P-DEP
 ;* V116 tmp112      [V116    ] (  0,  0   )    long  ->  zero-ref    "field V15._upper (fldOffset=0x8)" P-DEP
-;  V117 tmp113      [V117,T20] (  2,  2   )    long  ->  rax         "field V16._lower (fldOffset=0x0)" P-INDEP
-;  V118 tmp114      [V118,T21] (  2,  2   )    long  ->  rdx         "field V16._upper (fldOffset=0x8)" P-INDEP
-;  V119 tmp115      [V119,T08] (  3,  3   )    long  ->  rax         "field V17._lower (fldOffset=0x0)" P-INDEP
-;  V120 tmp116      [V120,T22] (  2,  2   )    long  ->  rdx         "field V17._upper (fldOffset=0x8)" P-INDEP
+;  V117 tmp113      [V117,T21] (  2,  0   )    long  ->  rax         "field V16._lower (fldOffset=0x0)" P-INDEP
+;  V118 tmp114      [V118,T22] (  2,  0   )    long  ->  rdx         "field V16._upper (fldOffset=0x8)" P-INDEP
+;  V119 tmp115      [V119,T10] (  3,  0   )    long  ->  rax         "field V17._lower (fldOffset=0x0)" P-INDEP
+;  V120 tmp116      [V120,T23] (  2,  0   )    long  ->  rdx         "field V17._upper (fldOffset=0x8)" P-INDEP
 ;* V121 tmp117      [V121    ] (  0,  0   )    long  ->  zero-ref    "field V18._lower (fldOffset=0x0)" P-INDEP
 ;* V122 tmp118      [V122    ] (  0,  0   )    long  ->  zero-ref    "field V18._upper (fldOffset=0x8)" P-INDEP
 ;* V123 tmp119      [V123    ] (  0,  0   )    long  ->  zero-ref    "field V19._lower (fldOffset=0x0)" P-INDEP
 ;* V124 tmp120      [V124    ] (  0,  0   )    long  ->  zero-ref    "field V19._upper (fldOffset=0x8)" P-INDEP
-;  V125 tmp121      [V125,T09] (  3,  3   )    long  ->   r8         "field V20._lower (fldOffset=0x0)" P-INDEP
-;  V126 tmp122      [V126,T23] (  2,  2   )    long  ->  rdx         "field V20._upper (fldOffset=0x8)" P-INDEP
+;  V125 tmp121      [V125,T11] (  3,  0   )    long  ->   r9         "field V20._lower (fldOffset=0x0)" P-INDEP
+;  V126 tmp122      [V126,T24] (  2,  0   )    long  ->  rdx         "field V20._upper (fldOffset=0x8)" P-INDEP
 ;* V127 tmp123      [V127    ] (  0,  0   )    long  ->  zero-ref    "field V21._lower (fldOffset=0x0)" P-INDEP
 ;* V128 tmp124      [V128    ] (  0,  0   )    long  ->  zero-ref    "field V21._upper (fldOffset=0x8)" P-INDEP
 ;* V129 tmp125      [V129    ] (  0,  0   )    long  ->  zero-ref    "field V22._lower (fldOffset=0x0)" P-INDEP
 ;* V130 tmp126      [V130    ] (  0,  0   )    long  ->  zero-ref    "field V22._upper (fldOffset=0x8)" P-INDEP
-;* V131 tmp127      [V131,T46] (  0,  0   )    long  ->  zero-ref    "field V23._lower (fldOffset=0x0)" P-INDEP
-;* V132 tmp128      [V132,T47] (  0,  0   )    long  ->  zero-ref    "field V23._upper (fldOffset=0x8)" P-INDEP
-;* V133 tmp129      [V133,T48] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
-;* V134 tmp130      [V134,T49] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
-;  V135 tmp131      [V135,T24] (  2,  2   )    long  ->  rcx         "field V29._lower (fldOffset=0x0)" P-INDEP
-;  V136 tmp132      [V136,T25] (  2,  2   )    long  ->  rdi         "field V29._upper (fldOffset=0x8)" P-INDEP
-;  V137 tmp133      [V137,T26] (  2,  2   )    long  ->  rcx         "field V30._lower (fldOffset=0x0)" P-INDEP
-;  V138 tmp134      [V138,T27] (  2,  2   )    long  ->  rdi         "field V30._upper (fldOffset=0x8)" P-INDEP
-;  V139 tmp135      [V139,T28] (  2,  2   )    long  ->  rax         "field V33._lower (fldOffset=0x0)" P-INDEP
-;  V140 tmp136      [V140,T29] (  2,  2   )    long  ->  rdx         "field V33._upper (fldOffset=0x8)" P-INDEP
-;  V141 tmp137      [V141,T30] (  2,  2   )    long  ->  rsi         "field V36._lower (fldOffset=0x0)" P-INDEP
-;  V142 tmp138      [V142,T10] (  3,  3   )    long  ->  rsi         "field V36._upper (fldOffset=0x8)" P-INDEP
+;* V131 tmp127      [V131,T50] (  0,  0   )    long  ->  zero-ref    "field V23._lower (fldOffset=0x0)" P-INDEP
+;* V132 tmp128      [V132,T51] (  0,  0   )    long  ->  zero-ref    "field V23._upper (fldOffset=0x8)" P-INDEP
+;* V133 tmp129      [V133,T52] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
+;* V134 tmp130      [V134,T53] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
+;  V135 tmp131      [V135,T25] (  2,  0   )    long  ->  rcx         "field V29._lower (fldOffset=0x0)" P-INDEP
+;  V136 tmp132      [V136,T26] (  2,  0   )    long  ->  rdi         "field V29._upper (fldOffset=0x8)" P-INDEP
+;  V137 tmp133      [V137,T27] (  2,  0   )    long  ->  rcx         "field V30._lower (fldOffset=0x0)" P-INDEP
+;  V138 tmp134      [V138,T28] (  2,  0   )    long  ->  rdi         "field V30._upper (fldOffset=0x8)" P-INDEP
+;  V139 tmp135      [V139,T29] (  2,  0   )    long  ->  rax         "field V33._lower (fldOffset=0x0)" P-INDEP
+;  V140 tmp136      [V140,T30] (  2,  0   )    long  ->  rdx         "field V33._upper (fldOffset=0x8)" P-INDEP
+;  V141 tmp137      [V141,T31] (  2,  0   )    long  ->  rsi         "field V36._lower (fldOffset=0x0)" P-INDEP
+;  V142 tmp138      [V142,T12] (  3,  0   )    long  ->  rsi         "field V36._upper (fldOffset=0x8)" P-INDEP
 ;* V143 tmp139      [V143    ] (  0,  0   )    long  ->  zero-ref    "field V40._lower (fldOffset=0x0)" P-INDEP
 ;* V144 tmp140      [V144    ] (  0,  0   )    long  ->  zero-ref    "field V40._upper (fldOffset=0x8)" P-INDEP
-;  V145 tmp141      [V145,T31] (  2,  2   )    long  ->  rsi         "field V43._lower (fldOffset=0x0)" P-INDEP
-;  V146 tmp142      [V146,T32] (  2,  2   )    long  ->  rsi         "field V43._upper (fldOffset=0x8)" P-INDEP
-;  V147 tmp143      [V147,T33] (  2,  2   )    long  ->  r13         "field V44._lower (fldOffset=0x0)" P-INDEP
-;  V148 tmp144      [V148,T34] (  2,  2   )    long  ->  rsi         "field V44._upper (fldOffset=0x8)" P-INDEP
-;  V149 tmp145      [V149,T35] (  2,  2   )    long  ->   r8         "field V50._lower (fldOffset=0x0)" P-INDEP
-;  V150 tmp146      [V150,T36] (  2,  2   )    long  ->  rdx         "field V50._upper (fldOffset=0x8)" P-INDEP
-;  V151 tmp147      [V151,T37] (  2,  2   )    long  ->  r15         "field V51._lower (fldOffset=0x0)" P-INDEP
-;  V152 tmp148      [V152,T11] (  3,  3   )    long  ->  r15         "field V51._upper (fldOffset=0x8)" P-INDEP
+;  V145 tmp141      [V145,T32] (  2,  0   )    long  ->  rsi         "field V43._lower (fldOffset=0x0)" P-INDEP
+;  V146 tmp142      [V146,T33] (  2,  0   )    long  ->  rsi         "field V43._upper (fldOffset=0x8)" P-INDEP
+;  V147 tmp143      [V147,T34] (  2,  0   )    long  ->   r8         "field V44._lower (fldOffset=0x0)" P-INDEP
+;  V148 tmp144      [V148,T35] (  2,  0   )    long  ->  rsi         "field V44._upper (fldOffset=0x8)" P-INDEP
+;  V149 tmp145      [V149,T36] (  2,  0   )    long  ->   r9         "field V50._lower (fldOffset=0x0)" P-INDEP
+;  V150 tmp146      [V150,T37] (  2,  0   )    long  ->  rdx         "field V50._upper (fldOffset=0x8)" P-INDEP
+;  V151 tmp147      [V151,T38] (  2,  0   )    long  ->  r15         "field V51._lower (fldOffset=0x0)" P-INDEP
+;  V152 tmp148      [V152,T13] (  3,  0   )    long  ->  r15         "field V51._upper (fldOffset=0x8)" P-INDEP
 ;* V153 tmp149      [V153    ] (  0,  0   )    long  ->  zero-ref    "field V55._lower (fldOffset=0x0)" P-INDEP
 ;* V154 tmp150      [V154    ] (  0,  0   )    long  ->  zero-ref    "field V55._upper (fldOffset=0x8)" P-INDEP
-;  V155 tmp151      [V155,T38] (  2,  2   )    long  ->  r15         "field V58._lower (fldOffset=0x0)" P-INDEP
-;  V156 tmp152      [V156,T39] (  2,  2   )    long  ->  r15         "field V58._upper (fldOffset=0x8)" P-INDEP
-;  V157 tmp153      [V157,T40] (  2,  2   )    long  ->  r14         "field V59._lower (fldOffset=0x0)" P-INDEP
-;  V158 tmp154      [V158,T41] (  2,  2   )    long  ->  rbx         "field V59._upper (fldOffset=0x8)" P-INDEP
-;* V159 tmp155      [V159,T50] (  0,  0   )    long  ->  zero-ref    "field V65._lower (fldOffset=0x0)" P-INDEP
-;* V160 tmp156      [V160,T51] (  0,  0   )    long  ->  zero-ref    "field V65._upper (fldOffset=0x8)" P-INDEP
+;  V155 tmp151      [V155,T39] (  2,  0   )    long  ->  r15         "field V58._lower (fldOffset=0x0)" P-INDEP
+;  V156 tmp152      [V156,T40] (  2,  0   )    long  ->  r15         "field V58._upper (fldOffset=0x8)" P-INDEP
+;  V157 tmp153      [V157,T41] (  2,  0   )    long  ->  rax         "field V59._lower (fldOffset=0x0)" P-INDEP
+;  V158 tmp154      [V158,T42] (  2,  0   )    long  ->  rbx         "field V59._upper (fldOffset=0x8)" P-INDEP
+;* V159 tmp155      [V159,T54] (  0,  0   )    long  ->  zero-ref    "field V65._lower (fldOffset=0x0)" P-INDEP
+;* V160 tmp156      [V160,T55] (  0,  0   )    long  ->  zero-ref    "field V65._upper (fldOffset=0x8)" P-INDEP
 ;* V161 tmp157      [V161    ] (  0,  0   )    long  ->  zero-ref    "field V67._lower (fldOffset=0x0)" P-INDEP
 ;* V162 tmp158      [V162    ] (  0,  0   )    long  ->  zero-ref    "field V67._upper (fldOffset=0x8)" P-INDEP
 ;* V163 tmp159      [V163    ] (  0,  0   )    long  ->  zero-ref    "field V71._lower (fldOffset=0x0)" P-INDEP
 ;* V164 tmp160      [V164    ] (  0,  0   )    long  ->  zero-ref    "field V71._upper (fldOffset=0x8)" P-INDEP
-;  V165 tmp161      [V165,T42] (  2,  1   )    long  ->  rax         "field V75._lower (fldOffset=0x0)" P-INDEP
-;  V166 tmp162      [V166,T43] (  2,  1   )    long  ->  rdx         "field V75._upper (fldOffset=0x8)" P-INDEP
+;  V165 tmp161      [V165,T43] (  2,  0   )    long  ->  rax         "field V75._lower (fldOffset=0x0)" P-INDEP
+;  V166 tmp162      [V166,T44] (  2,  0   )    long  ->  rdx         "field V75._upper (fldOffset=0x8)" P-INDEP
 ;* V167 tmp163      [V167    ] (  0,  0   )    long  ->  zero-ref    "field V79._lower (fldOffset=0x0)" P-INDEP
 ;* V168 tmp164      [V168    ] (  0,  0   )    long  ->  zero-ref    "field V79._upper (fldOffset=0x8)" P-INDEP
 ;* V169 tmp165      [V169    ] (  0,  0   )    long  ->  zero-ref    "field V83._lower (fldOffset=0x0)" P-INDEP
 ;* V170 tmp166      [V170    ] (  0,  0   )    long  ->  zero-ref    "field V83._upper (fldOffset=0x8)" P-INDEP
-;  V171 cse0        [V171,T12] (  2,  2   )    long  ->  rsi         "CSE - moderate"
-;  V172 cse1        [V172,T13] (  2,  2   )    long  ->  r15         "CSE - moderate"
+;  V171 cse0        [V171,T14] (  2,  0   )    long  ->  rsi         "CSE - moderate"
+;  V172 cse1        [V172,T15] (  2,  0   )    long  ->  r15         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 48
 
-G_M29692_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M29692_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
-       push     r13
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x30]
-       mov      r14, rdi
-       mov      rbx, rsi
-       mov      r13, rdx
-       mov      r15, rcx
-                       ;; size=29 bbWeight=1 PerfScore 6.75
-G_M29692_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, r14
-       mov      rsi, rbx
-       mov      rdx, r13
-       mov      rcx, r15
-       lea      r8, [rbp-0x30]
-       call     [<unknown method>]
-       mov      rcx, qword ptr [rbp-0x30]
+       sub      rsp, 48
+       lea      rbp, [rsp+0x40]
+       mov      qword ptr [rbp-0x28], rdi
+       mov      qword ptr [rbp-0x30], rsi
+       mov      qword ptr [rbp-0x38], rdx
+       mov      qword ptr [rbp-0x40], rcx
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M29692_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, qword ptr [rbp-0x28]
+       mov      rsi, qword ptr [rbp-0x30]
+       mov      rdx, qword ptr [rbp-0x38]
+       mov      rcx, qword ptr [rbp-0x40]
+       lea      r8, [rbp-0x20]
+       call     [<unknown method>]
+       mov      rcx, qword ptr [rbp-0x20]
+       mov      rdi, qword ptr [rbp-0x18]
+       mov      rbx, qword ptr [rbp-0x30]
        mov      rsi, rbx
        sar      rsi, 63
-       and      r13, rsi
+       mov      r8, rsi
+       and      r8, qword ptr [rbp-0x38]
+       mov      r15, qword ptr [rbp-0x40]
        and      rsi, r15
-       mov      r8, rax
-       sub      r8, r13
+       mov      r9, rax
+       sub      r9, r8
        sub      rdx, rsi
-       cmp      r8, rax
...

+26 (+15.38%) : 106289.dasm - Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)

@@ -8,69 +8,76 @@
 ; 2 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.Encoding>
-;  V01 arg1         [V01,T01] (  8,  5   )     ref  ->  r15         class-hnd single-def <System.Text.Encoding>
+;  V00 arg0         [V00,T01] (  7,  5   )     ref  ->  r15         class-hnd single-def <System.Text.Encoding>
+;  V01 arg1         [V01,T00] (  8,  5   )     ref  ->  rbx         class-hnd single-def <System.Text.Encoding>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  6,  4.98)     ref  ->  rbx         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V04 tmp2         [V04,T05] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V03 tmp1         [V03,T02] (  6,  4.98)     ref  ->  r15         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V04 tmp2         [V04,T06] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V05 tmp3         [V05,T03] (  5,  4.36)     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp4         [V06,T06] (  4,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V07 tmp5         [V07,T04] (  2,  1.23)   byref  ->  rdi         single-def "impAppendStmt"
+;  V06 tmp4         [V06,T07] (  4,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V07 tmp5         [V07,T05] (  2,  1.23)   byref  ->  rdi         single-def "impAppendStmt"
 ;* V08 tmp6         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V13 cse0         [V13,T04] (  3,  1.50)    long  ->  r14         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M3985_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
+       push     r14
        push     rbx
-       lea      rbp, [rsp+0x10]
-       mov      rbx, rdi
-       ; gcrRegs +[rbx]
-       mov      r15, rsi
+       push     rax
+       lea      rbp, [rsp+0x20]
+       mov      r15, rdi
        ; gcrRegs +[r15]
-                       ;; size=15 bbWeight=1 PerfScore 4.00
+       mov      rbx, rsi
+       ; gcrRegs +[rbx]
+                       ;; size=18 bbWeight=1 PerfScore 6.00
 G_M3985_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
+       test     r15, r15
        jne      SHORT G_M3985_IG05
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M3985_IG03:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+G_M3985_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
        xor      eax, eax
-       test     r15, r15
+       test     rbx, rbx
        sete     al
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3985_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M3985_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
-       test     r15, r15
+       ; gcrRegs +[r15]
+       test     rbx, rbx
        jne      SHORT G_M3985_IG07
        xor      eax, eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.75
 G_M3985_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M3985_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       cmp      rbx, r15
+       cmp      r15, rbx
        je       SHORT G_M3985_IG08
-       mov      rdi, rbx
+       mov      rdi, r15
        ; gcrRegs +[rdi]
-       mov      rsi, r15
+       mov      rsi, rbx
        ; gcrRegs +[rsi]
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
+       mov      r14, qword ptr [r15]
+       mov      rax, qword ptr [r14+0x48]
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rsi rdi]
        test     eax, eax
@@ -81,81 +88,84 @@ G_M3985_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M3985_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M3985_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx r15]
+       mov      rdi, r15
+       ; gcrRegs +[rdi]
+       mov      rax, qword ptr [r14+0x50]
+       call     [rax]<unknown method>
+       ; gcrRegs -[rdi r15] +[rax]
+       mov      r15, rax
+       ; gcrRegs +[r15]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x50]
-       call     [rax]<unknown method>
-       ; gcrRegs -[rbx rdi] +[rax]
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      rdi, r15
-       ; gcrRegs +[rdi]
-       mov      rax, qword ptr [r15]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x50]
        call     [rax]<unknown method>
-       ; gcrRegs -[rdi r15] +[rax]
+       ; gcrRegs -[rbx rdi] +[rax]
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       cmp      rbx, rsi
+       cmp      r15, rsi
        jne      SHORT G_M3985_IG12
-                       ;; size=35 bbWeight=0.50 PerfScore 8.12
+                       ;; size=32 bbWeight=0.50 PerfScore 7.12
 G_M3985_IG11:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax rbx rsi]
+       ; gcrRegs -[rax rsi r15]
        mov      eax, 1
        jmp      SHORT G_M3985_IG17
                        ;; size=7 bbWeight=0.06 PerfScore 0.14
-G_M3985_IG12:        ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi]
-       test     rbx, rbx
+G_M3985_IG12:        ; bbWeight=0.44, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rsi r15]
+       test     r15, r15
        je       SHORT G_M3985_IG15
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M3985_IG13:        ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M3985_IG13:        ; bbWeight=0.44, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
        je       SHORT G_M3985_IG15
                        ;; size=5 bbWeight=0.44 PerfScore 0.55
-G_M3985_IG14:        ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       mov      eax, dword ptr [rbx+0x08]
+G_M3985_IG14:        ; bbWeight=0.44, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz
+       mov      eax, dword ptr [r15+0x08]
        cmp      eax, dword ptr [rsi+0x08]
        je       SHORT G_M3985_IG16
-                       ;; size=8 bbWeight=0.44 PerfScore 2.63
+                       ;; size=9 bbWeight=0.44 PerfScore 2.63
 G_M3985_IG15:        ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rsi]
+       ; gcrRegs -[rsi r15]
        xor      eax, eax
        jmp      SHORT G_M3985_IG17
                        ;; size=4 bbWeight=0.13 PerfScore 0.29
-G_M3985_IG16:        ; bbWeight=0.31, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx rsi]
-       lea      rdi, bword ptr [rbx+0x0C]
+G_M3985_IG16:        ; bbWeight=0.31, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi r15]
+       lea      rdi, bword ptr [r15+0x0C]
        ; byrRegs +[rdi]
        add      rsi, 12
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
-       mov      edx, dword ptr [rbx+0x08]
+       mov      edx, dword ptr [r15+0x08]
        add      edx, edx
        call     [<unknown method>]
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r15]
        ; byrRegs -[rsi rdi]
-                       ;; size=19 bbWeight=0.31 PerfScore 1.84
+                       ;; size=20 bbWeight=0.31 PerfScore 1.84
 G_M3985_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M3985_IG18:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
 
-; Total bytes of code 169, prolog size 9, PerfScore 31.12, instruction count 69, allocated bytes for code 169 (MethodHash=24b3f06e) for method Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)
+; Total bytes of code 195, prolog size 12, PerfScore 33.62, instruction count 78, allocated bytes for code 195 (MethodHash=24b3f06e) for method Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -163,11 +173,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+30 (+16.30%) : 173301.dasm - Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)

@@ -8,50 +8,52 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8,  5   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CSharp.CSharpModifierAttributeConverter>
+;  V00 this         [V00,T05] (  8,  5.36)     ref  ->  rbx         this class-hnd single-def <Microsoft.CSharp.CSharpModifierAttributeConverter>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.ComponentModel.ITypeDescriptorContext>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Globalization.CultureInfo>
 ;  V03 arg3         [V03,T06] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Object>
 ;  V04 loc0         [V04,T01] (  6, 18.81)     ref  ->  r15         class-hnd exact <System.String>
 ;  V05 loc1         [V05,T03] (  4,  9   )     ref  ->  r14         class-hnd exact single-def <<unknown class>>
-;  V06 loc2         [V06,T02] (  7, 17.50)     int  ->  r13        
+;  V06 loc2         [V06,T02] (  7, 17.86)     int  ->  r13        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;  V09 tmp2         [V09,T07] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V10 tmp3         [V10,T00] (  6, 53.12)     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.String>
+;  V10 tmp3         [V10,T00] (  6, 53.12)     ref  ->  r12         class-hnd exact "Inlining Arg" <System.String>
 ;  V11 tmp4         [V11,T04] (  2,  8   )   byref  ->  rdi         "impAppendStmt"
 ;* V12 tmp5         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp6         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V17 tmp10        [V17,T08] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V17 tmp10        [V17,T08] (  3,  4.08)     ref  ->  rax         single-def "arr expr"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M35171_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     r14
        push     r13
+       push     r12
        push     rbx
-       lea      rbp, [rsp+0x20]
+       push     rax
+       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35171_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=19 bbWeight=1 PerfScore 7.75
+G_M35171_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      r15, rcx
        ; gcrRegs +[r15]
        test     r15, r15
-       je       SHORT G_M35171_IG09
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M35171_IG03:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       je       G_M35171_IG11
+                       ;; size=12 bbWeight=1 PerfScore 1.50
+G_M35171_IG03:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [r15], rdi
-       jne      SHORT G_M35171_IG09
-                       ;; size=15 bbWeight=0.25 PerfScore 1.06
+       jne      G_M35171_IG11
+                       ;; size=19 bbWeight=0.25 PerfScore 1.06
 G_M35171_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, rbx
        ; gcrRegs +[rdi]
@@ -64,58 +66,19 @@ G_M35171_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        ; gcrRegs +[r14]
        xor      r13d, r13d
        cmp      dword ptr [r14+0x08], 0
-       jle      SHORT G_M35171_IG09
+       jle      SHORT G_M35171_IG11
                        ;; size=26 bbWeight=0.50 PerfScore 5.88
 G_M35171_IG05:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      edx, r13d
-       mov      rdx, gword ptr [r14+8*rdx+0x10]
-       ; gcrRegs +[rdx]
-       cmp      byte  ptr [rdx], dl
-       cmp      rdx, r15
-       je       SHORT G_M35171_IG11
-                       ;; size=15 bbWeight=4 PerfScore 26.00
-G_M35171_IG06:        ; bbWeight=10.56, gcrefRegs=C00C {rdx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       mov      esi, dword ptr [rdx+0x08]
-       cmp      esi, dword ptr [r15+0x08]
+       mov      edi, r13d
+       mov      r12, gword ptr [r14+8*rdi+0x10]
+       ; gcrRegs +[r12]
+       cmp      byte  ptr [r12], r12b
+       cmp      r12, r15
        jne      SHORT G_M35171_IG08
-                       ;; size=9 bbWeight=10.56 PerfScore 63.35
-G_M35171_IG07:        ; bbWeight=2, gcrefRegs=C00C {rdx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       lea      rdi, bword ptr [rdx+0x0C]
-       ; byrRegs +[rdi]
-       mov      edx, dword ptr [rdx+0x08]
-       ; gcrRegs -[rdx]
-       add      edx, edx
-       lea      rsi, bword ptr [r15+0x0C]
-       ; byrRegs +[rsi]
-       call     [<unknown method>]
-       ; byrRegs -[rsi rdi]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M35171_IG11
-                       ;; size=23 bbWeight=2 PerfScore 15.00
-G_M35171_IG08:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       inc      r13d
-       cmp      dword ptr [r14+0x08], r13d
-       jg       SHORT G_M35171_IG05
-                       ;; size=9 bbWeight=4 PerfScore 17.00
-G_M35171_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14-r15]
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x58]
-                       ;; size=10 bbWeight=0.50 PerfScore 2.12
-G_M35171_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       tail.jmp [rax+0x10]<unknown method>
-                       ;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M35171_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rdi]
+                       ;; size=17 bbWeight=4 PerfScore 26.00
+G_M35171_IG06:        ; bbWeight=0.68, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r12 r14-r15]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      rax, qword ptr [rbx]
@@ -125,25 +88,69 @@ G_M35171_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcr arg pop 0
        cmp      r13d, dword ptr [rax+0x08]
        jae      SHORT G_M35171_IG13
-       mov      ecx, r13d
-       mov      rax, gword ptr [rax+8*rcx+0x10]
-                       ;; size=26 bbWeight=0.50 PerfScore 6.75
-G_M35171_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       mov      edx, r13d
+       mov      rax, gword ptr [rax+8*rdx+0x10]
+                       ;; size=26 bbWeight=0.68 PerfScore 9.18
+G_M35171_IG07:        ; bbWeight=0.68, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0.50 PerfScore 1.75
+                       ;; size=15 bbWeight=0.68 PerfScore 2.89
+G_M35171_IG08:        ; bbWeight=10.56, gcVars=0000000000000000 {}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rbx r12 r14-r15]
+       mov      edx, dword ptr [r12+0x08]
+       cmp      edx, dword ptr [r15+0x08]
+       jne      SHORT G_M35171_IG10
+                       ;; size=11 bbWeight=10.56 PerfScore 63.35
+G_M35171_IG09:        ; bbWeight=2, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+       lea      rdi, bword ptr [r12+0x0C]
+       ; byrRegs +[rdi]
+       mov      edx, dword ptr [r12+0x08]
+       add      edx, edx
+       lea      rsi, bword ptr [r15+0x0C]
+       ; byrRegs +[rsi]
+       call     [<unknown method>]
+       ; gcrRegs -[r12]
+       ; byrRegs -[rsi rdi]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      SHORT G_M35171_IG06
+                       ;; size=26 bbWeight=2 PerfScore 15.00
+G_M35171_IG10:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       inc      r13d
+       cmp      dword ptr [r14+0x08], r13d
+       jg       SHORT G_M35171_IG05
+                       ;; size=9 bbWeight=4 PerfScore 17.00
+G_M35171_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14-r15]
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x58]
+                       ;; size=10 bbWeight=0.50 PerfScore 2.12
+G_M35171_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       tail.jmp [rax+0x10]<unknown method>
+                       ;; size=18 bbWeight=0.50 PerfScore 2.62
 G_M35171_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rbx rdi]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 16, PerfScore 148.41, instruction count 64, allocated bytes for code 184 (MethodHash=e6b8769c) for method Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)
+; Total bytes of code 214, prolog size 19, PerfScore 154.36, instruction count 70, allocated bytes for code 214 (MethodHash=e6b8769c) for method Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -151,12 +158,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x0B
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

libraries_tests.run.linux.x64.Release.mch

-40 (-23.95%) : 101035.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,98 +10,79 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V08 tmp5         [V08,T07] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M16591_IG07
+       je       SHORT G_M16591_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; <unknown class>
-       cmp      rsi, r14
-       jne      SHORT G_M16591_IG07
-       je       SHORT G_M16591_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     [CORINFO_HELP_UNBOX]
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.88
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M16591_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M16591_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      edi, dword ptr [r15+0x08]
        mov      dword ptr [rax+0x08], edi
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M16591_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M16591_IG11
+       je       SHORT G_M16591_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     [CORINFO_HELP_CHKCASTCLASS_SPECIAL]
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -113,16 +94,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 167, prolog size 18, PerfScore 25.44, instruction count 55, allocated bytes for code 167 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 127, prolog size 15, PerfScore 21.19, instruction count 41, allocated bytes for code 127 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -130,13 +109,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-40 (-23.67%) : 101022.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,99 +10,80 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V08 tmp5         [V08,T07] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M16591_IG07
+       je       SHORT G_M16591_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; <unknown class>
-       cmp      rsi, r14
-       jne      SHORT G_M16591_IG07
-       je       SHORT G_M16591_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     [CORINFO_HELP_UNBOX]
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.88
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M16591_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M16591_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      edi, dword ptr [r15+0x08]
        neg      edi
        mov      dword ptr [rax+0x08], edi
-                       ;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M16591_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M16591_IG11
+       je       SHORT G_M16591_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     [CORINFO_HELP_CHKCASTCLASS_SPECIAL]
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -114,16 +95,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 169, prolog size 18, PerfScore 25.56, instruction count 56, allocated bytes for code 169 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 129, prolog size 15, PerfScore 21.31, instruction count 42, allocated bytes for code 129 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -131,13 +110,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-40 (-23.67%) : 101326.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,101 +10,82 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
-;  V03 loc0         [V03,T08] (  2,  1   )     int  ->  rbx         single-def
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V03 loc0         [V03,T07] (  2,  1   )     int  ->  rbx         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T10] (  0,  0   )     int  ->  zero-ref   
+;* V05 tmp1         [V05,T09] (  0,  0   )     int  ->  zero-ref   
 ;  V06 tmp2         [V06,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V07 tmp3         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V07 tmp3         [V07,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V08 tmp4         [V08,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <<unknown class>>
-;  V10 tmp6         [V10,T09] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V11 tmp7         [V11,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V12 cse0         [V12,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V13 cse1         [V13,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V10 tmp6         [V10,T08] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V11 tmp7         [V11,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V12 cse0         [V12,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M16591_IG07
+       je       SHORT G_M16591_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; <unknown class>
-       cmp      rsi, r14
-       jne      SHORT G_M16591_IG07
-       je       SHORT G_M16591_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     [CORINFO_HELP_UNBOX]
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.88
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M16591_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M16591_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        mov      ebx, dword ptr [r15+0x08]
        inc      ebx
-       mov      rdi, r14
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs -[r15] +[rax]
        ; gcr arg pop 0
        mov      dword ptr [rax+0x08], ebx
-                       ;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx r15]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M16591_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M16591_IG11
+       je       SHORT G_M16591_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     [CORINFO_HELP_CHKCASTCLASS_SPECIAL]
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -116,16 +97,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 169, prolog size 18, PerfScore 25.56, instruction count 56, allocated bytes for code 169 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 129, prolog size 15, PerfScore 21.31, instruction count 42, allocated bytes for code 129 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -133,13 +112,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+15 (+14.42%) : 82545.dasm - System.Collections.Immutable.ImmutableList1+Node[System.ValueTuple3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)

@@ -16,27 +16,75 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V05 tmp3         [V05,T05] (  2,  1.13)   byref  ->  rax         single-def "Inline return value spill temp"
 ;  V06 tmp4         [V06,T06] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V07 cse0         [V07,T03] (  4,  2.66)     int  ->  rcx         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  4,  2.66)     int  ->  rbx         "CSE - aggressive"
 ;  V08 cse1         [V08,T04] (  3,  2.39)     ref  ->  rax         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
-G_M27713_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M27713_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
+                       ;; size=8 bbWeight=1 PerfScore 3.50
 G_M27713_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     esi, esi
-       jl       SHORT G_M27713_IG03
+       jl       SHORT G_M27713_IG10
        xor      eax, eax
        cmp      esi, dword ptr [rdi+0x18]
        setl     al
        test     al, al
-       jne      SHORT G_M27713_IG04
-                       ;; size=16 bbWeight=1 PerfScore 6.75
-G_M27713_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       je       SHORT G_M27713_IG10
+       mov      rax, gword ptr [rdi+0x08]
+       ; gcrRegs +[rax]
+       mov      ebx, dword ptr [rax+0x18]
+       cmp      esi, ebx
+       jge      SHORT G_M27713_IG05
+                       ;; size=27 bbWeight=1 PerfScore 12.00
+G_M27713_IG03:        ; bbWeight=0.39, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+                       ;; size=3 bbWeight=0.39 PerfScore 0.10
+G_M27713_IG04:        ; bbWeight=0.39, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.39 PerfScore 1.26
+G_M27713_IG05:        ; bbWeight=0.61, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       cmp      esi, ebx
+       jle      SHORT G_M27713_IG08
+                       ;; size=4 bbWeight=0.61 PerfScore 0.77
+G_M27713_IG06:        ; bbWeight=0.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       sub      esi, ebx
+       dec      esi
+       mov      rdi, gword ptr [rdi+0x10]
+       cmp      dword ptr [rdi], edi
+                       ;; size=10 bbWeight=0.05 PerfScore 0.27
+G_M27713_IG07:        ; bbWeight=0.05, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.05 PerfScore 0.16
+G_M27713_IG08:        ; bbWeight=0.56, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
+       lea      rax, bword ptr [rdi+0x20]
+       ; byrRegs +[rax]
+                       ;; size=4 bbWeight=0.56 PerfScore 0.28
+G_M27713_IG09:        ; bbWeight=0.56, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+                       ;; size=7 bbWeight=0.56 PerfScore 1.27
+G_M27713_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rax]
        mov      edi, 0x57F
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -51,57 +99,8 @@ G_M27713_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M27713_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rdi]
-       mov      rax, gword ptr [rdi+0x08]
-       ; gcrRegs +[rax]
-       mov      ecx, dword ptr [rax+0x18]
-       cmp      esi, ecx
-       jge      SHORT G_M27713_IG06
-                       ;; size=11 bbWeight=1 PerfScore 5.25
-G_M27713_IG05:        ; bbWeight=0.39, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       jmp      SHORT G_M27713_IG07
-                       ;; size=2 bbWeight=0.39 PerfScore 0.77
-G_M27713_IG06:        ; bbWeight=0.61, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      esi, ecx
-       jle      SHORT G_M27713_IG09
-       jmp      SHORT G_M27713_IG11
-                       ;; size=6 bbWeight=0.61 PerfScore 1.99
-G_M27713_IG07:        ; bbWeight=0.39, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=3 bbWeight=0.39 PerfScore 0.10
-G_M27713_IG08:        ; bbWeight=0.39, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.39 PerfScore 0.97
-G_M27713_IG09:        ; bbWeight=0.56, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       lea      rax, bword ptr [rdi+0x20]
-       ; byrRegs +[rax]
-                       ;; size=4 bbWeight=0.56 PerfScore 0.28
-G_M27713_IG10:        ; bbWeight=0.56, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0.56 PerfScore 0.85
-G_M27713_IG11:        ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax]
-       sub      esi, ecx
-       dec      esi
-       mov      rdi, gword ptr [rdi+0x10]
-       cmp      dword ptr [rdi], edi
-                       ;; size=10 bbWeight=0.05 PerfScore 0.27
-G_M27713_IG12:        ; bbWeight=0.05, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.05 PerfScore 0.12
 
-; Total bytes of code 104, prolog size 4, PerfScore 18.60, instruction count 36, allocated bytes for code 104 (MethodHash=a29a93be) for method System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
+; Total bytes of code 119, prolog size 8, PerfScore 19.60, instruction count 42, allocated bytes for code 119 (MethodHash=a29a93be) for method System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -109,9 +108,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+15 (+14.42%) : 228557.dasm - System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRef(int):byref:this (Tier1)

@@ -16,29 +16,79 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V05 tmp3         [V05,T05] (  2,  0.71)   byref  ->  rax         single-def "Inline return value spill temp"
 ;  V06 tmp4         [V06,T06] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V07 cse0         [V07,T03] (  4,  2.77)     int  ->  rcx         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  4,  2.77)     int  ->  rbx         "CSE - aggressive"
 ;  V08 cse1         [V08,T04] (  3,  2.44)     ref  ->  rax         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
-G_M46553_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46553_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
+                       ;; size=8 bbWeight=1 PerfScore 3.50
 G_M46553_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     esi, esi
-       jl       SHORT G_M46553_IG04
+       jl       SHORT G_M46553_IG12
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M46553_IG03:        ; bbWeight=0.99, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        xor      eax, eax
        cmp      esi, dword ptr [rdi+0x1C]
        setl     al
        test     al, al
-       jne      SHORT G_M46553_IG05
+       je       SHORT G_M46553_IG12
                        ;; size=12 bbWeight=0.99 PerfScore 5.45
-G_M46553_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46553_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       mov      rax, gword ptr [rdi+0x08]
+       ; gcrRegs +[rax]
+       mov      ebx, dword ptr [rax+0x1C]
+       cmp      esi, ebx
+       jge      SHORT G_M46553_IG07
+                       ;; size=11 bbWeight=1 PerfScore 5.25
+G_M46553_IG05:        ; bbWeight=0.44, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+                       ;; size=3 bbWeight=0.44 PerfScore 0.11
+G_M46553_IG06:        ; bbWeight=0.44, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.44 PerfScore 1.42
+G_M46553_IG07:        ; bbWeight=0.56, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       cmp      esi, ebx
+       jle      SHORT G_M46553_IG10
+                       ;; size=4 bbWeight=0.56 PerfScore 0.70
+G_M46553_IG08:        ; bbWeight=0.21, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       sub      esi, ebx
+       dec      esi
+       mov      rdi, gword ptr [rdi+0x10]
+       cmp      dword ptr [rdi], edi
+                       ;; size=10 bbWeight=0.21 PerfScore 1.14
+G_M46553_IG09:        ; bbWeight=0.21, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.21 PerfScore 0.67
+G_M46553_IG10:        ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
+       lea      rax, bword ptr [rdi+0x18]
+       ; byrRegs +[rax]
+                       ;; size=4 bbWeight=0.36 PerfScore 0.18
+G_M46553_IG11:        ; bbWeight=0.36, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+                       ;; size=7 bbWeight=0.36 PerfScore 0.80
+G_M46553_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rax]
        mov      edi, 0x57F
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -53,57 +103,8 @@ G_M46553_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M46553_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rdi]
-       mov      rax, gword ptr [rdi+0x08]
-       ; gcrRegs +[rax]
-       mov      ecx, dword ptr [rax+0x1C]
-       cmp      esi, ecx
-       jge      SHORT G_M46553_IG07
-                       ;; size=11 bbWeight=1 PerfScore 5.25
-G_M46553_IG06:        ; bbWeight=0.44, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       jmp      SHORT G_M46553_IG08
-                       ;; size=2 bbWeight=0.44 PerfScore 0.87
-G_M46553_IG07:        ; bbWeight=0.56, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      esi, ecx
-       jle      SHORT G_M46553_IG10
-       jmp      SHORT G_M46553_IG12
-                       ;; size=6 bbWeight=0.56 PerfScore 1.83
-G_M46553_IG08:        ; bbWeight=0.44, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=3 bbWeight=0.44 PerfScore 0.11
-G_M46553_IG09:        ; bbWeight=0.44, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.44 PerfScore 1.09
-G_M46553_IG10:        ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       lea      rax, bword ptr [rdi+0x18]
-       ; byrRegs +[rax]
-                       ;; size=4 bbWeight=0.36 PerfScore 0.18
-G_M46553_IG11:        ; bbWeight=0.36, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0.36 PerfScore 0.53
-G_M46553_IG12:        ; bbWeight=0.21, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax]
-       sub      esi, ecx
-       dec      esi
-       mov      rdi, gword ptr [rdi+0x10]
-       cmp      dword ptr [rdi], edi
-                       ;; size=10 bbWeight=0.21 PerfScore 1.14
-G_M46553_IG13:        ; bbWeight=0.21, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.21 PerfScore 0.52
 
-; Total bytes of code 104, prolog size 4, PerfScore 19.47, instruction count 36, allocated bytes for code 104 (MethodHash=90984a26) for method System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRef(int):byref:this (Tier1)
+; Total bytes of code 119, prolog size 8, PerfScore 20.47, instruction count 42, allocated bytes for code 119 (MethodHash=90984a26) for method System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRef(int):byref:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -111,9 +112,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+15 (+14.42%) : 43914.dasm - System.Collections.Immutable.ImmutableList1+Node[System.ValueTuple3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)

@@ -16,27 +16,75 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V05 tmp3         [V05,T05] (  2,  1.20)   byref  ->  rax         single-def "Inline return value spill temp"
 ;  V06 tmp4         [V06,T06] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V07 cse0         [V07,T03] (  4,  2.68)     int  ->  rcx         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  4,  2.68)     int  ->  rbx         "CSE - aggressive"
 ;  V08 cse1         [V08,T04] (  3,  2.36)     ref  ->  rax         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
-G_M27713_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M27713_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       mov      rbp, rsp
-                       ;; size=4 bbWeight=1 PerfScore 1.25
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
+                       ;; size=8 bbWeight=1 PerfScore 3.50
 G_M27713_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        test     esi, esi
-       jl       SHORT G_M27713_IG03
+       jl       SHORT G_M27713_IG10
        xor      eax, eax
        cmp      esi, dword ptr [rdi+0x18]
        setl     al
        test     al, al
-       jne      SHORT G_M27713_IG04
-                       ;; size=16 bbWeight=1 PerfScore 6.75
-G_M27713_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       je       SHORT G_M27713_IG10
+       mov      rax, gword ptr [rdi+0x08]
+       ; gcrRegs +[rax]
+       mov      ebx, dword ptr [rax+0x18]
+       cmp      esi, ebx
+       jge      SHORT G_M27713_IG05
+                       ;; size=27 bbWeight=1 PerfScore 12.00
+G_M27713_IG03:        ; bbWeight=0.36, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+                       ;; size=3 bbWeight=0.36 PerfScore 0.09
+G_M27713_IG04:        ; bbWeight=0.36, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.36 PerfScore 1.17
+G_M27713_IG05:        ; bbWeight=0.64, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       cmp      esi, ebx
+       jle      SHORT G_M27713_IG08
+                       ;; size=4 bbWeight=0.64 PerfScore 0.80
+G_M27713_IG06:        ; bbWeight=0.04, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       sub      esi, ebx
+       dec      esi
+       mov      rdi, gword ptr [rdi+0x10]
+       cmp      dword ptr [rdi], edi
+                       ;; size=10 bbWeight=0.04 PerfScore 0.22
+G_M27713_IG07:        ; bbWeight=0.04, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
+       ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.04 PerfScore 0.13
+G_M27713_IG08:        ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
+       lea      rax, bword ptr [rdi+0x20]
+       ; byrRegs +[rax]
+                       ;; size=4 bbWeight=0.60 PerfScore 0.30
+G_M27713_IG09:        ; bbWeight=0.60, epilog, nogc, extend
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+                       ;; size=7 bbWeight=0.60 PerfScore 1.35
+G_M27713_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rax]
        mov      edi, 0x57F
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -51,57 +99,8 @@ G_M27713_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M27713_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rdi]
-       mov      rax, gword ptr [rdi+0x08]
-       ; gcrRegs +[rax]
-       mov      ecx, dword ptr [rax+0x18]
-       cmp      esi, ecx
-       jge      SHORT G_M27713_IG06
-                       ;; size=11 bbWeight=1 PerfScore 5.25
-G_M27713_IG05:        ; bbWeight=0.36, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       jmp      SHORT G_M27713_IG07
-                       ;; size=2 bbWeight=0.36 PerfScore 0.72
-G_M27713_IG06:        ; bbWeight=0.64, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      esi, ecx
-       jle      SHORT G_M27713_IG09
-       jmp      SHORT G_M27713_IG11
-                       ;; size=6 bbWeight=0.64 PerfScore 2.08
-G_M27713_IG07:        ; bbWeight=0.36, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=3 bbWeight=0.36 PerfScore 0.09
-G_M27713_IG08:        ; bbWeight=0.36, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.36 PerfScore 0.90
-G_M27713_IG09:        ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       lea      rax, bword ptr [rdi+0x20]
-       ; byrRegs +[rax]
-                       ;; size=4 bbWeight=0.60 PerfScore 0.30
-G_M27713_IG10:        ; bbWeight=0.60, epilog, nogc, extend
-       pop      rbp
-       ret      
-                       ;; size=2 bbWeight=0.60 PerfScore 0.90
-G_M27713_IG11:        ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax]
-       sub      esi, ecx
-       dec      esi
-       mov      rdi, gword ptr [rdi+0x10]
-       cmp      dword ptr [rdi], edi
-                       ;; size=10 bbWeight=0.04 PerfScore 0.22
-G_M27713_IG12:        ; bbWeight=0.04, epilog, nogc, extend
-       pop      rbp
-       tail.jmp [System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRefUnchecked(int):byref:this]
-       ; gcr arg pop 0
-                       ;; size=7 bbWeight=0.04 PerfScore 0.10
 
-; Total bytes of code 104, prolog size 4, PerfScore 18.56, instruction count 36, allocated bytes for code 104 (MethodHash=a29a93be) for method System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
+; Total bytes of code 119, prolog size 8, PerfScore 19.56, instruction count 42, allocated bytes for code 119 (MethodHash=a29a93be) for method System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -109,9 +108,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-40 (-23.81%) : 25999.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,101 +10,82 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
-;  V03 loc0         [V03,T08] (  2,  1   )     int  ->  rbx         single-def
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V03 loc0         [V03,T07] (  2,  1   )     int  ->  rbx         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T10] (  0,  0   )     int  ->  zero-ref   
+;* V05 tmp1         [V05,T09] (  0,  0   )     int  ->  zero-ref   
 ;  V06 tmp2         [V06,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V07 tmp3         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V07 tmp3         [V07,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V08 tmp4         [V08,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <<unknown class>>
-;  V10 tmp6         [V10,T09] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V11 tmp7         [V11,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V12 cse0         [V12,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V13 cse1         [V13,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V10 tmp6         [V10,T08] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V11 tmp7         [V11,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V12 cse0         [V12,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M16591_IG07
+       je       SHORT G_M16591_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; <unknown class>
-       cmp      rsi, r14
-       jne      SHORT G_M16591_IG07
-       je       SHORT G_M16591_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     [CORINFO_HELP_UNBOX]
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.88
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M16591_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M16591_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        mov      ebx, dword ptr [r15+0x08]
        inc      ebx
-       mov      rdi, r14
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs -[r15] +[rax]
        ; gcr arg pop 0
        mov      dword ptr [rax+0x08], ebx
-                       ;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx r15]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M16591_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M16591_IG11
+       je       SHORT G_M16591_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -116,16 +97,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 168, prolog size 18, PerfScore 25.06, instruction count 56, allocated bytes for code 168 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 128, prolog size 15, PerfScore 20.81, instruction count 42, allocated bytes for code 128 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -133,13 +112,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-39 (-23.64%) : 26821.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,98 +10,79 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V08 tmp5         [V08,T07] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M16591_IG07
+       je       SHORT G_M16591_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; <unknown class>
-       cmp      rsi, r14
-       jne      SHORT G_M16591_IG07
-       je       SHORT G_M16591_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; <unknown class>
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M16591_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M16591_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      edi, dword ptr [r15+0x08]
        mov      dword ptr [rax+0x08], edi
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M16591_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M16591_IG11
+       je       SHORT G_M16591_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -113,16 +94,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 165, prolog size 18, PerfScore 24.44, instruction count 55, allocated bytes for code 165 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 126, prolog size 15, PerfScore 20.69, instruction count 41, allocated bytes for code 126 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -130,13 +109,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-39 (-23.49%) : 27136.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1System.DateTime

@@ -10,98 +10,79 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  r15         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  r15         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->  rsi         "CSE - moderate"
+;  V08 tmp5         [V08,T07] (  2,  1   )   ubyte  ->  rdi         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T05] (  3,  1.50)    long  ->  rdi         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M27952_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rsi
        ; gcrRegs +[rbx]
        mov      r15, rdx
        ; gcrRegs +[r15]
-                       ;; size=18 bbWeight=1 PerfScore 6.00
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M27952_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M27952_IG07
+       je       SHORT G_M27952_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M27952_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, qword ptr [r15]
-       mov      r14, 0xD1FFAB1E      ; System.DateTime
-       cmp      rsi, r14
-       jne      SHORT G_M27952_IG07
-       je       SHORT G_M27952_IG05
-                       ;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M27952_IG04:        ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      rsi, r15
-       ; gcrRegs +[rsi]
-       mov      rdi, r14
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rsi]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M27952_IG05:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; System.DateTime
+       cmp      qword ptr [r15], rdi
+       je       SHORT G_M27952_IG06
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M27952_IG04:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       movzx    rdi, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     edi, edi
+       je       SHORT G_M27952_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=15 bbWeight=0.50 PerfScore 2.25
+G_M27952_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      rbx
+       pop      r15
+       pop      rbp
+       ret      
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M27952_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, qword ptr [r15+0x08]
        mov      qword ptr [rax+0x08], rdi
-                       ;; size=16 bbWeight=0.50 PerfScore 2.12
-G_M27952_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+                       ;; size=13 bbWeight=0.50 PerfScore 2.00
+G_M27952_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M27952_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M27952_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M27952_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M27952_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M27952_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M27952_IG11
+       je       SHORT G_M27952_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M27952_IG09:        ; bbWeight=0.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rsi] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M27952_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rsi]
@@ -113,16 +94,14 @@ G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
                        ;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M27952_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
+G_M27952_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 166, prolog size 18, PerfScore 24.44, instruction count 55, allocated bytes for code 166 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
+; Total bytes of code 127, prolog size 15, PerfScore 20.69, instruction count 41, allocated bytes for code 127 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -130,13 +109,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+18 (+9.57%) : 209977.dasm - System.Int128:op_CheckedMultiply(System.Int128,System.Int128):System.Int128 (FullOpts)

@@ -21,7 +21,7 @@
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Int128>
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Int128>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.UInt128>
-;  V13 tmp9         [V13    ] (  3,  3   )  struct (16) [rbp-0x30]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
+;  V13 tmp9         [V13    ] (  3,  0   )  struct (16) [rbp-0x20]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UInt128>
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.UInt128>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.UInt128>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Inline stloc first use temp" <System.UInt128>
@@ -49,39 +49,39 @@
 ;* V38 tmp34        [V38    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V39 tmp35        [V39    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp36        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
-;* V41 tmp37        [V41,T44] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V42 tmp38        [V42,T16] (  2,  2   )    long  ->  rsi         "Inline stloc first use temp"
+;* V41 tmp37        [V41,T45] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;  V42 tmp38        [V42,T16] (  2,  0   )    long  ->  rsi         "Inline stloc first use temp"
 ;* V43 tmp39        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V44 tmp40        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V45 tmp41        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp42        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V47 tmp43        [V47,T06] (  3,  3   )    long  ->   r8         "Inline stloc first use temp"
+;  V47 tmp43        [V47,T06] (  3,  0   )    long  ->   r9         "Inline stloc first use temp"
 ;* V48 tmp44        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V49 tmp45        [V49,T17] (  2,  2   )    long  ->  rdx         "Inline stloc first use temp"
+;  V49 tmp45        [V49,T17] (  2,  0   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V50 tmp46        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V51 tmp47        [V51    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Int128>
 ;* V52 tmp48        [V52    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp49        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V54 tmp50        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V55 tmp51        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
-;* V56 tmp52        [V56,T45] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V57 tmp53        [V57,T18] (  2,  2   )    long  ->  r15         "Inline stloc first use temp"
+;* V56 tmp52        [V56,T46] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;  V57 tmp53        [V57,T18] (  2,  0   )    long  ->  r15         "Inline stloc first use temp"
 ;* V58 tmp54        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V59 tmp55        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V60 tmp56        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp57        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V62 tmp58        [V62,T04] (  3,  3   )    long  ->  rax         "Inline stloc first use temp"
+;  V62 tmp58        [V62,T04] (  3,  0   )    long  ->  rsi         "Inline stloc first use temp"
 ;* V63 tmp59        [V63    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V64 tmp60        [V64,T07] (  2,  2   )    long  ->  rdx         "Inline stloc first use temp"
+;  V64 tmp60        [V64,T07] (  2,  0   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V65 tmp61        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V66 tmp62        [V66    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V67 tmp63        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V68 tmp64        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V69 tmp65        [V69,T53] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V69 tmp65        [V69,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V70 tmp66        [V70    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V71 tmp67        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V72 tmp68        [V72    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V73 tmp69        [V73,T54] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V73 tmp69        [V73,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V74 tmp70        [V74    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V75 tmp71        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V76 tmp72        [V76    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
@@ -89,20 +89,20 @@
 ;* V78 tmp74        [V78    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V79 tmp75        [V79    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V80 tmp76        [V80    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V81 tmp77        [V81,T55] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V81 tmp77        [V81,T49] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V82 tmp78        [V82    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp79        [V83    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Int128>
 ;* V84 tmp80        [V84    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V85 tmp81        [V85,T52] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V85 tmp81        [V85,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V86 tmp82        [V86    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V87 tmp83        [V87,T02] (  3,  3   )    long  ->  r14         single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;  V88 tmp84        [V88,T00] (  4,  4   )    long  ->  rbx         single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;  V89 tmp85        [V89,T03] (  3,  3   )    long  ->  r13         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;  V90 tmp86        [V90,T01] (  4,  4   )    long  ->  r15         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V91 tmp87        [V91,T14] (  3,  2.50)    long  ->  rax         "field V02._lower (fldOffset=0x0)" P-INDEP
-;  V92 tmp88        [V92,T15] (  3,  2   )    long  ->  rdx         "field V02._upper (fldOffset=0x8)" P-INDEP
-;  V93 tmp89        [V93,T19] (  2,  2   )    long  ->  rcx         "field V03._lower (fldOffset=0x0)" P-INDEP
-;  V94 tmp90        [V94,T05] (  4,  3   )    long  ->  rdi         "field V03._upper (fldOffset=0x8)" P-INDEP
+;  V87 tmp83        [V87,T02] (  3,  1   )    long  ->  [rbp-0x28]  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;  V88 tmp84        [V88,T00] (  4,  1   )    long  ->  [rbp-0x30]  single-def "field V00._upper (fldOffset=0x8)" P-INDEP
+;  V89 tmp85        [V89,T03] (  3,  1   )    long  ->  [rbp-0x38]  single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;  V90 tmp86        [V90,T01] (  4,  1   )    long  ->  [rbp-0x40]  single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V91 tmp87        [V91,T08] (  3,  0   )    long  ->  rsi         "field V02._lower (fldOffset=0x0)" P-INDEP
+;  V92 tmp88        [V92,T09] (  3,  0   )    long  ->  rdx         "field V02._upper (fldOffset=0x8)" P-INDEP
+;  V93 tmp89        [V93,T20] (  2,  0   )    long  ->  rcx         "field V03._lower (fldOffset=0x0)" P-INDEP
+;  V94 tmp90        [V94,T05] (  4,  0   )    long  ->  rdi         "field V03._upper (fldOffset=0x8)" P-INDEP
 ;* V95 tmp91        [V95    ] (  0,  0   )    long  ->  zero-ref    "field V05._lower (fldOffset=0x0)" P-INDEP
 ;* V96 tmp92        [V96    ] (  0,  0   )    long  ->  zero-ref    "field V05._upper (fldOffset=0x8)" P-INDEP
 ;* V97 tmp93        [V97    ] (  0,  0   )    long  ->  zero-ref    "field V06._lower (fldOffset=0x0)" P-INDEP
@@ -119,153 +119,152 @@
 ;* V108 tmp104      [V108    ] (  0,  0   )    long  ->  zero-ref    "field V11._upper (fldOffset=0x8)" P-INDEP
 ;* V109 tmp105      [V109    ] (  0,  0   )    long  ->  zero-ref    "field V12._lower (fldOffset=0x0)" P-INDEP
 ;* V110 tmp106      [V110    ] (  0,  0   )    long  ->  zero-ref    "field V12._upper (fldOffset=0x8)" P-INDEP
-;  V111 tmp107      [V111    ] (  2,  2   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V13._lower (fldOffset=0x0)" P-DEP
-;  V112 tmp108      [V112    ] (  2,  2   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V13._upper (fldOffset=0x8)" P-DEP
+;  V111 tmp107      [V111    ] (  2,  0   )    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "field V13._lower (fldOffset=0x0)" P-DEP
+;  V112 tmp108      [V112    ] (  2,  0   )    long  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed "field V13._upper (fldOffset=0x8)" P-DEP
 ;* V113 tmp109      [V113    ] (  0,  0   )    long  ->  zero-ref    "field V14._lower (fldOffset=0x0)" P-INDEP
 ;* V114 tmp110      [V114    ] (  0,  0   )    long  ->  zero-ref    "field V14._upper (fldOffset=0x8)" P-INDEP
 ;* V115 tmp111      [V115    ] (  0,  0   )    long  ->  zero-ref    "field V15._lower (fldOffset=0x0)" P-DEP
 ;* V116 tmp112      [V116    ] (  0,  0   )    long  ->  zero-ref    "field V15._upper (fldOffset=0x8)" P-DEP
-;  V117 tmp113      [V117,T20] (  2,  2   )    long  ->  rax         "field V16._lower (fldOffset=0x0)" P-INDEP
-;  V118 tmp114      [V118,T21] (  2,  2   )    long  ->  rdx         "field V16._upper (fldOffset=0x8)" P-INDEP
-;  V119 tmp115      [V119,T08] (  3,  3   )    long  ->  rax         "field V17._lower (fldOffset=0x0)" P-INDEP
-;  V120 tmp116      [V120,T22] (  2,  2   )    long  ->  rdx         "field V17._upper (fldOffset=0x8)" P-INDEP
+;  V117 tmp113      [V117,T21] (  2,  0   )    long  ->  rax         "field V16._lower (fldOffset=0x0)" P-INDEP
+;  V118 tmp114      [V118,T22] (  2,  0   )    long  ->  rdx         "field V16._upper (fldOffset=0x8)" P-INDEP
+;  V119 tmp115      [V119,T10] (  3,  0   )    long  ->  rax         "field V17._lower (fldOffset=0x0)" P-INDEP
+;  V120 tmp116      [V120,T23] (  2,  0   )    long  ->  rdx         "field V17._upper (fldOffset=0x8)" P-INDEP
 ;* V121 tmp117      [V121    ] (  0,  0   )    long  ->  zero-ref    "field V18._lower (fldOffset=0x0)" P-INDEP
 ;* V122 tmp118      [V122    ] (  0,  0   )    long  ->  zero-ref    "field V18._upper (fldOffset=0x8)" P-INDEP
 ;* V123 tmp119      [V123    ] (  0,  0   )    long  ->  zero-ref    "field V19._lower (fldOffset=0x0)" P-INDEP
 ;* V124 tmp120      [V124    ] (  0,  0   )    long  ->  zero-ref    "field V19._upper (fldOffset=0x8)" P-INDEP
-;  V125 tmp121      [V125,T09] (  3,  3   )    long  ->   r8         "field V20._lower (fldOffset=0x0)" P-INDEP
-;  V126 tmp122      [V126,T23] (  2,  2   )    long  ->  rdx         "field V20._upper (fldOffset=0x8)" P-INDEP
+;  V125 tmp121      [V125,T11] (  3,  0   )    long  ->   r9         "field V20._lower (fldOffset=0x0)" P-INDEP
+;  V126 tmp122      [V126,T24] (  2,  0   )    long  ->  rdx         "field V20._upper (fldOffset=0x8)" P-INDEP
 ;* V127 tmp123      [V127    ] (  0,  0   )    long  ->  zero-ref    "field V21._lower (fldOffset=0x0)" P-INDEP
 ;* V128 tmp124      [V128    ] (  0,  0   )    long  ->  zero-ref    "field V21._upper (fldOffset=0x8)" P-INDEP
 ;* V129 tmp125      [V129    ] (  0,  0   )    long  ->  zero-ref    "field V22._lower (fldOffset=0x0)" P-INDEP
 ;* V130 tmp126      [V130    ] (  0,  0   )    long  ->  zero-ref    "field V22._upper (fldOffset=0x8)" P-INDEP
-;* V131 tmp127      [V131,T46] (  0,  0   )    long  ->  zero-ref    "field V23._lower (fldOffset=0x0)" P-INDEP
-;* V132 tmp128      [V132,T47] (  0,  0   )    long  ->  zero-ref    "field V23._upper (fldOffset=0x8)" P-INDEP
-;* V133 tmp129      [V133,T48] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
-;* V134 tmp130      [V134,T49] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
-;  V135 tmp131      [V135,T24] (  2,  2   )    long  ->  rcx         "field V29._lower (fldOffset=0x0)" P-INDEP
-;  V136 tmp132      [V136,T25] (  2,  2   )    long  ->  rdi         "field V29._upper (fldOffset=0x8)" P-INDEP
-;  V137 tmp133      [V137,T26] (  2,  2   )    long  ->  rcx         "field V30._lower (fldOffset=0x0)" P-INDEP
-;  V138 tmp134      [V138,T27] (  2,  2   )    long  ->  rdi         "field V30._upper (fldOffset=0x8)" P-INDEP
-;  V139 tmp135      [V139,T28] (  2,  2   )    long  ->  rax         "field V33._lower (fldOffset=0x0)" P-INDEP
-;  V140 tmp136      [V140,T29] (  2,  2   )    long  ->  rdx         "field V33._upper (fldOffset=0x8)" P-INDEP
-;  V141 tmp137      [V141,T30] (  2,  2   )    long  ->  rsi         "field V36._lower (fldOffset=0x0)" P-INDEP
-;  V142 tmp138      [V142,T10] (  3,  3   )    long  ->  rsi         "field V36._upper (fldOffset=0x8)" P-INDEP
+;* V131 tmp127      [V131,T50] (  0,  0   )    long  ->  zero-ref    "field V23._lower (fldOffset=0x0)" P-INDEP
+;* V132 tmp128      [V132,T51] (  0,  0   )    long  ->  zero-ref    "field V23._upper (fldOffset=0x8)" P-INDEP
+;* V133 tmp129      [V133,T52] (  0,  0   )    long  ->  zero-ref    "field V26._lower (fldOffset=0x0)" P-INDEP
+;* V134 tmp130      [V134,T53] (  0,  0   )    long  ->  zero-ref    "field V26._upper (fldOffset=0x8)" P-INDEP
+;  V135 tmp131      [V135,T25] (  2,  0   )    long  ->  rcx         "field V29._lower (fldOffset=0x0)" P-INDEP
+;  V136 tmp132      [V136,T26] (  2,  0   )    long  ->  rdi         "field V29._upper (fldOffset=0x8)" P-INDEP
+;  V137 tmp133      [V137,T27] (  2,  0   )    long  ->  rcx         "field V30._lower (fldOffset=0x0)" P-INDEP
+;  V138 tmp134      [V138,T28] (  2,  0   )    long  ->  rdi         "field V30._upper (fldOffset=0x8)" P-INDEP
+;  V139 tmp135      [V139,T29] (  2,  0   )    long  ->  rax         "field V33._lower (fldOffset=0x0)" P-INDEP
+;  V140 tmp136      [V140,T30] (  2,  0   )    long  ->  rdx         "field V33._upper (fldOffset=0x8)" P-INDEP
+;  V141 tmp137      [V141,T31] (  2,  0   )    long  ->  rsi         "field V36._lower (fldOffset=0x0)" P-INDEP
+;  V142 tmp138      [V142,T12] (  3,  0   )    long  ->  rsi         "field V36._upper (fldOffset=0x8)" P-INDEP
 ;* V143 tmp139      [V143    ] (  0,  0   )    long  ->  zero-ref    "field V40._lower (fldOffset=0x0)" P-INDEP
 ;* V144 tmp140      [V144    ] (  0,  0   )    long  ->  zero-ref    "field V40._upper (fldOffset=0x8)" P-INDEP
-;  V145 tmp141      [V145,T31] (  2,  2   )    long  ->  rsi         "field V43._lower (fldOffset=0x0)" P-INDEP
-;  V146 tmp142      [V146,T32] (  2,  2   )    long  ->  rsi         "field V43._upper (fldOffset=0x8)" P-INDEP
-;  V147 tmp143      [V147,T33] (  2,  2   )    long  ->  r13         "field V44._lower (fldOffset=0x0)" P-INDEP
-;  V148 tmp144      [V148,T34] (  2,  2   )    long  ->  rsi         "field V44._upper (fldOffset=0x8)" P-INDEP
-;  V149 tmp145      [V149,T35] (  2,  2   )    long  ->   r8         "field V50._lower (fldOffset=0x0)" P-INDEP
-;  V150 tmp146      [V150,T36] (  2,  2   )    long  ->  rdx         "field V50._upper (fldOffset=0x8)" P-INDEP
-;  V151 tmp147      [V151,T37] (  2,  2   )    long  ->  r15         "field V51._lower (fldOffset=0x0)" P-INDEP
-;  V152 tmp148      [V152,T11] (  3,  3   )    long  ->  r15         "field V51._upper (fldOffset=0x8)" P-INDEP
+;  V145 tmp141      [V145,T32] (  2,  0   )    long  ->  rsi         "field V43._lower (fldOffset=0x0)" P-INDEP
+;  V146 tmp142      [V146,T33] (  2,  0   )    long  ->  rsi         "field V43._upper (fldOffset=0x8)" P-INDEP
+;  V147 tmp143      [V147,T34] (  2,  0   )    long  ->   r8         "field V44._lower (fldOffset=0x0)" P-INDEP
+;  V148 tmp144      [V148,T35] (  2,  0   )    long  ->  rsi         "field V44._upper (fldOffset=0x8)" P-INDEP
+;  V149 tmp145      [V149,T36] (  2,  0   )    long  ->   r9         "field V50._lower (fldOffset=0x0)" P-INDEP
+;  V150 tmp146      [V150,T37] (  2,  0   )    long  ->  rdx         "field V50._upper (fldOffset=0x8)" P-INDEP
+;  V151 tmp147      [V151,T38] (  2,  0   )    long  ->  r15         "field V51._lower (fldOffset=0x0)" P-INDEP
+;  V152 tmp148      [V152,T13] (  3,  0   )    long  ->  r15         "field V51._upper (fldOffset=0x8)" P-INDEP
 ;* V153 tmp149      [V153    ] (  0,  0   )    long  ->  zero-ref    "field V55._lower (fldOffset=0x0)" P-INDEP
 ;* V154 tmp150      [V154    ] (  0,  0   )    long  ->  zero-ref    "field V55._upper (fldOffset=0x8)" P-INDEP
-;  V155 tmp151      [V155,T38] (  2,  2   )    long  ->  r15         "field V58._lower (fldOffset=0x0)" P-INDEP
-;  V156 tmp152      [V156,T39] (  2,  2   )    long  ->  r15         "field V58._upper (fldOffset=0x8)" P-INDEP
-;  V157 tmp153      [V157,T40] (  2,  2   )    long  ->  r14         "field V59._lower (fldOffset=0x0)" P-INDEP
-;  V158 tmp154      [V158,T41] (  2,  2   )    long  ->  rbx         "field V59._upper (fldOffset=0x8)" P-INDEP
-;* V159 tmp155      [V159,T50] (  0,  0   )    long  ->  zero-ref    "field V65._lower (fldOffset=0x0)" P-INDEP
-;* V160 tmp156      [V160,T51] (  0,  0   )    long  ->  zero-ref    "field V65._upper (fldOffset=0x8)" P-INDEP
+;  V155 tmp151      [V155,T39] (  2,  0   )    long  ->  r15         "field V58._lower (fldOffset=0x0)" P-INDEP
+;  V156 tmp152      [V156,T40] (  2,  0   )    long  ->  r15         "field V58._upper (fldOffset=0x8)" P-INDEP
+;  V157 tmp153      [V157,T41] (  2,  0   )    long  ->  rax         "field V59._lower (fldOffset=0x0)" P-INDEP
+;  V158 tmp154      [V158,T42] (  2,  0   )    long  ->  rbx         "field V59._upper (fldOffset=0x8)" P-INDEP
+;* V159 tmp155      [V159,T54] (  0,  0   )    long  ->  zero-ref    "field V65._lower (fldOffset=0x0)" P-INDEP
+;* V160 tmp156      [V160,T55] (  0,  0   )    long  ->  zero-ref    "field V65._upper (fldOffset=0x8)" P-INDEP
 ;* V161 tmp157      [V161    ] (  0,  0   )    long  ->  zero-ref    "field V67._lower (fldOffset=0x0)" P-INDEP
 ;* V162 tmp158      [V162    ] (  0,  0   )    long  ->  zero-ref    "field V67._upper (fldOffset=0x8)" P-INDEP
 ;* V163 tmp159      [V163    ] (  0,  0   )    long  ->  zero-ref    "field V71._lower (fldOffset=0x0)" P-INDEP
 ;* V164 tmp160      [V164    ] (  0,  0   )    long  ->  zero-ref    "field V71._upper (fldOffset=0x8)" P-INDEP
-;  V165 tmp161      [V165,T42] (  2,  1   )    long  ->  rax         "field V75._lower (fldOffset=0x0)" P-INDEP
-;  V166 tmp162      [V166,T43] (  2,  1   )    long  ->  rdx         "field V75._upper (fldOffset=0x8)" P-INDEP
+;  V165 tmp161      [V165,T43] (  2,  0   )    long  ->  rax         "field V75._lower (fldOffset=0x0)" P-INDEP
+;  V166 tmp162      [V166,T44] (  2,  0   )    long  ->  rdx         "field V75._upper (fldOffset=0x8)" P-INDEP
 ;* V167 tmp163      [V167    ] (  0,  0   )    long  ->  zero-ref    "field V79._lower (fldOffset=0x0)" P-INDEP
 ;* V168 tmp164      [V168    ] (  0,  0   )    long  ->  zero-ref    "field V79._upper (fldOffset=0x8)" P-INDEP
 ;* V169 tmp165      [V169    ] (  0,  0   )    long  ->  zero-ref    "field V83._lower (fldOffset=0x0)" P-INDEP
 ;* V170 tmp166      [V170    ] (  0,  0   )    long  ->  zero-ref    "field V83._upper (fldOffset=0x8)" P-INDEP
-;  V171 cse0        [V171,T12] (  2,  2   )    long  ->  rsi         "CSE - moderate"
-;  V172 cse1        [V172,T13] (  2,  2   )    long  ->  r15         "CSE - moderate"
+;  V171 cse0        [V171,T14] (  2,  0   )    long  ->  rsi         "CSE - moderate"
+;  V172 cse1        [V172,T15] (  2,  0   )    long  ->  r15         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 48
 
-G_M29692_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M29692_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
-       push     r14
-       push     r13
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x30]
-       mov      r14, rdi
-       mov      rbx, rsi
-       mov      r13, rdx
-       mov      r15, rcx
-                       ;; size=29 bbWeight=1 PerfScore 6.75
-G_M29692_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, r14
-       mov      rsi, rbx
-       mov      rdx, r13
-       mov      rcx, r15
-       lea      r8, [rbp-0x30]
-       call     [<unknown method>]
-       mov      rcx, qword ptr [rbp-0x30]
+       sub      rsp, 48
+       lea      rbp, [rsp+0x40]
+       mov      qword ptr [rbp-0x28], rdi
+       mov      qword ptr [rbp-0x30], rsi
+       mov      qword ptr [rbp-0x38], rdx
+       mov      qword ptr [rbp-0x40], rcx
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M29692_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, qword ptr [rbp-0x28]
+       mov      rsi, qword ptr [rbp-0x30]
+       mov      rdx, qword ptr [rbp-0x38]
+       mov      rcx, qword ptr [rbp-0x40]
+       lea      r8, [rbp-0x20]
+       call     [<unknown method>]
+       mov      rcx, qword ptr [rbp-0x20]
+       mov      rdi, qword ptr [rbp-0x18]
+       mov      rbx, qword ptr [rbp-0x30]
        mov      rsi, rbx
        sar      rsi, 63
-       and      r13, rsi
+       mov      r8, rsi
+       and      r8, qword ptr [rbp-0x38]
+       mov      r15, qword ptr [rbp-0x40]
        and      rsi, r15
-       mov      r8, rax
-       sub      r8, r13
+       mov      r9, rax
+       sub      r9, r8
        sub      rdx, rsi
-       cmp      r8, rax
...

+25 (+11.36%) : 72278.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,60 +8,61 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [rbp-0x20]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [rbp-0x10]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->  rcx         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [rbp-0x28]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->  rcx         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [rbp-0x20]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->  registers   class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  rbx         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  r15         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->  registers   class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [rbp-0x28]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [rbp-0x14]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M22620_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M22620_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
-       push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
        lea      rbp, [rsp+0x30]
        mov      qword ptr [rbp-0x30], rsp
-       mov      qword ptr [rbp-0x18], rdi
-       mov      qword ptr [rbp-0x20], rdi
-                       ;; size=25 bbWeight=1 PerfScore 6.75
-G_M22620_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi}, byref
+       mov      qword ptr [rbp-0x08], rdi
+       mov      qword ptr [rbp-0x10], rdi
+       mov      bword ptr [rbp-0x28], rsi
+       ; GC ptr vars +{V12}
+       mov      dword ptr [rbp-0x14], edx
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M22620_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rcx]
+       mov      rsi, bword ptr [rbp-0x28]
        ; byrRegs +[rsi]
+       mov      edx, dword ptr [rbp-0x14]
        mov      rdi, gword ptr [rcx+0x08]
        ; gcrRegs +[rdi]
+       ; GC ptr vars -{V12}
        call     [rcx+0x18]<unknown method>
        ; gcrRegs -[rcx rdi]
        ; byrRegs -[rsi]
        ; gcr arg pop 0
        xor      rdi, rdi
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x28], rdi
+       mov      gword ptr [rbp-0x20], rdi
        ; GC ptr vars +{V03}
-                       ;; size=13 bbWeight=1 PerfScore 6.25
-G_M22620_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M22620_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
-       cmp      gword ptr [rbp-0x28], 0
-       je       SHORT G_M22620_IG09
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      rdi, qword ptr [rdi+0x38]
-       mov      rbx, qword ptr [rdi]
-       mov      rdi, rbx
-       mov      rsi, gword ptr [rbp-0x28]
+       cmp      gword ptr [rbp-0x20], 0
+       je       SHORT G_M22620_IG05
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rsi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rsi]
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ISINSTANCEOFANY
        ; gcrRegs -[rsi] +[rax]
@@ -70,46 +71,71 @@ G_M22620_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=000
        ; gcrRegs +[rcx]
        test     rcx, rcx
        je       SHORT G_M22620_IG08
-                       ;; size=38 bbWeight=1 PerfScore 11.75
-G_M22620_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
-       mov      r15, qword ptr [rcx]
-       mov      rdi, rbx
-       cmp      r15, rdi
-       je       SHORT G_M22620_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M22620_IG05:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx]
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rsi, qword ptr [rdi+0x38]
+       mov      rsi, qword ptr [rsi]
+       cmp      qword ptr [rcx], rsi
+       je       SHORT G_M22620_IG04
+       mov      rdi, rsi
        mov      rsi, rax
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHKCASTANY
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M22620_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=65 bbWeight=0 PerfScore 0.00
+G_M22620_IG04:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      r15, rbx
+       mov      rax, qword ptr [rcx]
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdx, qword ptr [rdi+0x38]
+       cmp      rax, qword ptr [rdx]
        jne      SHORT G_M22620_IG08
-       mov      rax, rcx
-       ; gcrRegs +[rax]
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22620_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rcx]
-       mov      rdi, rbx
+       jmp      SHORT G_M22620_IG06
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M22620_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       ; GC ptr vars -{V03}
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
        call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x28]
+       call     [<unknown method>]
+       ; gcrRegs -[rdi]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       call     CORINFO_HELP_THROW
+       ; gcrRegs -[rax rdi]
+       ; gcr arg pop 0
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M22620_IG06:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      rax, rcx
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0 PerfScore 0.00
+G_M22620_IG07:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbp
+       ret      
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rcx]
+       ; GC ptr vars +{V03}
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
+       call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
        ; GC ptr vars -{V03}
        call     [<unknown method>]
@@ -119,52 +145,29 @@ G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=000
        ; gcrRegs +[rdi]
        call     CORINFO_HELP_THROW
        ; gcrRegs -[rax rdi]
-       ; gcr arg pop 0
-                       ;; size=29 bbWeight=0 PerfScore 0.00
-G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      rdi, qword ptr [rdi+0x38]
-       mov      rbx, qword ptr [rdi]
-       mov      rdi, rbx
-       call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       call     [<unknown method>]
-       ; gcrRegs -[rdi]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
        int3     
-                       ;; size=37 bbWeight=0 PerfScore 0.00
-G_M22620_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+                       ;; size=38 bbWeight=0 PerfScore 0.00
+G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        ; gcrRegs +[rsi]
        push     rbp
-       push     r15
-       push     rbx
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x30]
-                       ;; size=19 bbWeight=0 PerfScore 0.00
-G_M22620_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
-       mov      gword ptr [rbp-0x28], rsi
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M22620_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+       mov      gword ptr [rbp-0x20], rsi
        ; GC ptr vars +{V03}
        lea      rax, G_M22620_IG03
                        ;; size=11 bbWeight=0 PerfScore 0.00
-G_M22620_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
+G_M22620_IG11:        ; bbWeight=0, funclet epilog, nogc, extend
        add      rsp, 16
-       pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 25, PerfScore 31.12, instruction count 69, allocated bytes for code 220 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
...

+25 (+11.36%) : 71540.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,60 +8,61 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [rbp-0x20]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [rbp-0x10]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->  rcx         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [rbp-0x28]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->  rcx         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [rbp-0x20]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->  registers   class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  rbx         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  r15         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->  rax         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->  registers   class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [rbp-0x28]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [rbp-0x14]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M57052_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M57052_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
-       push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
        lea      rbp, [rsp+0x30]
        mov      qword ptr [rbp-0x30], rsp
-       mov      qword ptr [rbp-0x18], rdi
-       mov      qword ptr [rbp-0x20], rdi
-                       ;; size=25 bbWeight=1 PerfScore 6.75
-G_M57052_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi}, byref
+       mov      qword ptr [rbp-0x08], rdi
+       mov      qword ptr [rbp-0x10], rdi
+       mov      bword ptr [rbp-0x28], rsi
+       ; GC ptr vars +{V12}
+       mov      dword ptr [rbp-0x14], edx
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M57052_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rcx]
+       mov      rsi, bword ptr [rbp-0x28]
        ; byrRegs +[rsi]
+       mov      edx, dword ptr [rbp-0x14]
        mov      rdi, gword ptr [rcx+0x08]
        ; gcrRegs +[rdi]
+       ; GC ptr vars -{V12}
        call     [rcx+0x18]<unknown method>
        ; gcrRegs -[rcx rdi]
        ; byrRegs -[rsi]
        ; gcr arg pop 0
        xor      rdi, rdi
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x28], rdi
+       mov      gword ptr [rbp-0x20], rdi
        ; GC ptr vars +{V03}
-                       ;; size=13 bbWeight=1 PerfScore 6.25
-G_M57052_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M57052_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rdi]
-       cmp      gword ptr [rbp-0x28], 0
-       je       SHORT G_M57052_IG09
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      rdi, qword ptr [rdi+0x38]
-       mov      rbx, qword ptr [rdi]
-       mov      rdi, rbx
-       mov      rsi, gword ptr [rbp-0x28]
+       cmp      gword ptr [rbp-0x20], 0
+       je       SHORT G_M57052_IG05
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rsi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rsi]
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ISINSTANCEOFANY
        ; gcrRegs -[rsi] +[rax]
@@ -70,46 +71,71 @@ G_M57052_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=000
        ; gcrRegs +[rcx]
        test     rcx, rcx
        je       SHORT G_M57052_IG08
-                       ;; size=38 bbWeight=1 PerfScore 11.75
-G_M57052_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
-       mov      r15, qword ptr [rcx]
-       mov      rdi, rbx
-       cmp      r15, rdi
-       je       SHORT G_M57052_IG06
-                       ;; size=11 bbWeight=0.50 PerfScore 1.75
-G_M57052_IG05:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx]
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rsi, qword ptr [rdi+0x38]
+       mov      rsi, qword ptr [rsi]
+       cmp      qword ptr [rcx], rsi
+       je       SHORT G_M57052_IG04
+       mov      rdi, rsi
        mov      rsi, rax
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHKCASTANY
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M57052_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=65 bbWeight=0 PerfScore 0.00
+G_M57052_IG04:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      r15, rbx
+       mov      rax, qword ptr [rcx]
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdx, qword ptr [rdi+0x38]
+       cmp      rax, qword ptr [rdx]
        jne      SHORT G_M57052_IG08
-       mov      rax, rcx
-       ; gcrRegs +[rax]
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57052_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      r15
-       pop      rbp
-       ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rcx]
-       mov      rdi, rbx
+       jmp      SHORT G_M57052_IG06
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M57052_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       ; GC ptr vars -{V03}
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
        call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x28]
+       call     [<unknown method>]
+       ; gcrRegs -[rdi]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       call     CORINFO_HELP_THROW
+       ; gcrRegs -[rax rdi]
+       ; gcr arg pop 0
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M57052_IG06:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      rax, rcx
+       ; gcrRegs +[rax]
+                       ;; size=3 bbWeight=0 PerfScore 0.00
+G_M57052_IG07:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbp
+       ret      
+                       ;; size=6 bbWeight=0 PerfScore 0.00
+G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rcx]
+       ; GC ptr vars +{V03}
+       mov      rdi, qword ptr [rbp-0x10]
+       mov      rdi, qword ptr [rdi+0x38]
+       mov      rdi, qword ptr [rdi]
+       call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
        ; GC ptr vars -{V03}
        call     [<unknown method>]
@@ -119,52 +145,29 @@ G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=000
        ; gcrRegs +[rdi]
        call     CORINFO_HELP_THROW
        ; gcrRegs -[rax rdi]
-       ; gcr arg pop 0
-                       ;; size=29 bbWeight=0 PerfScore 0.00
-G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      rdi, qword ptr [rdi+0x38]
-       mov      rbx, qword ptr [rdi]
-       mov      rdi, rbx
-       call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       call     [<unknown method>]
-       ; gcrRegs -[rdi]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
        int3     
-                       ;; size=37 bbWeight=0 PerfScore 0.00
-G_M57052_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+                       ;; size=38 bbWeight=0 PerfScore 0.00
+G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        ; gcrRegs +[rsi]
        push     rbp
-       push     r15
-       push     rbx
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x30]
-                       ;; size=19 bbWeight=0 PerfScore 0.00
-G_M57052_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
-       mov      gword ptr [rbp-0x28], rsi
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M57052_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+       mov      gword ptr [rbp-0x20], rsi
        ; GC ptr vars +{V03}
        lea      rax, G_M57052_IG03
                        ;; size=11 bbWeight=0 PerfScore 0.00
-G_M57052_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
+G_M57052_IG11:        ; bbWeight=0, funclet epilog, nogc, extend
        add      rsp, 16
-       pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 25, PerfScore 31.12, instruction count 69, allocated bytes for code 220 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
...

realworld.run.linux.x64.checked.mch

-20 (-11.63%) : 16231.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 arg0         [V00,T00] (  7,  6   )     ref  ->  rdi         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T01] (  4,  4   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rsi        
+;  V02 loc0         [V02,T02] (  5,  4   )     int  ->  rax        
 ;* V03 loc1         [V03,T08] (  0,  0   )   ubyte  ->  zero-ref    EH-live single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
@@ -19,117 +19,111 @@
 ;* V08 tmp4         [V08,T05] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <<unknown class>>
 ;* V10 tmp6         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[V] "PSPSym"
-;  V12 cse0         [V12,T03] (  4,  4   )     int  ->  r15         "CSE - aggressive"
+;  V11 PSPSym       [V11,T07] (  1,  1   )    long  ->  [rbp-0x10]  do-not-enreg[V] "PSPSym"
+;  V12 cse0         [V12,T03] (  4,  4   )     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M64594_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       mov      qword ptr [rbp-0x20], rsp
+       push     rax
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x10], rsp
        mov      rbx, rsi
        ; byrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
+                       ;; size=15 bbWeight=1 PerfScore 4.75
 G_M64594_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rdi]
        mov      word  ptr [rbx], 0
        test     rdi, rdi
-       je       SHORT G_M64594_IG04
-       mov      r15d, dword ptr [rdi+0x08]
-       test     r15d, r15d
-       je       SHORT G_M64594_IG04
-       mov      esi, 10
-       cmp      r15d, 2
-       jl       SHORT G_M64594_IG08
-                       ;; size=30 bbWeight=1 PerfScore 7.00
-G_M64594_IG03:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M64594_IG06
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M64594_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       je       SHORT G_M64594_IG03
+       mov      esi, dword ptr [rdi+0x08]
+       test     esi, esi
+       jne      SHORT G_M64594_IG05
+                       ;; size=17 bbWeight=1 PerfScore 5.50
+G_M64594_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        ; byrRegs -[rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M64594_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+G_M64594_IG04:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
-G_M64594_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M64594_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs +[rdi]
        ; byrRegs +[rbx]
-       mov      eax, dword ptr [rdi+0x0C]
-       or       eax, 0xD1FFAB1E
-       cmp      eax, 0xD1FFAB1E
+       mov      eax, 10
+       cmp      esi, 2
+       jl       SHORT G_M64594_IG08
+                       ;; size=10 bbWeight=1 PerfScore 1.50
+G_M64594_IG06:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ecx, dword ptr [rdi+0x0C]
+       or       ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
        jne      SHORT G_M64594_IG08
-                       ;; size=15 bbWeight=0.50 PerfScore 1.75
+                       ;; size=17 bbWeight=0.50 PerfScore 1.75
 G_M64594_IG07:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      esi, 16
+       mov      eax, 16
        jmp      SHORT G_M64594_IG10
                        ;; size=7 bbWeight=1 PerfScore 2.25
 G_M64594_IG08:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
-       test     r15d, r15d
+       test     esi, esi
        jle      SHORT G_M64594_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M64594_IG09:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
-       mov      eax, 8
+       mov      esi, 8
        cmp      word  ptr [rdi+0x0C], 48
-       cmove    esi, eax
+       cmove    eax, esi
                        ;; size=13 bbWeight=0.50 PerfScore 1.75
 G_M64594_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref
+       mov      esi, eax
        call     [System.Convert:ToUInt16(System.String,int):ushort]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        mov      word  ptr [rbx], ax
-                       ;; size=9 bbWeight=1 PerfScore 4.00
+                       ;; size=11 bbWeight=1 PerfScore 4.25
 G_M64594_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
 G_M64594_IG12:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
+                       ;; size=7 bbWeight=1 PerfScore 2.25
 G_M64594_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M64594_IG14:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 G_M64594_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 16
+       push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x20]
-                       ;; size=19 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+0x10]
+                       ;; size=14 bbWeight=0 PerfScore 0.00
 G_M64594_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        lea      rax, G_M64594_IG13
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M64594_IG17:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 172, prolog size 20, PerfScore 30.00, instruction count 61, allocated bytes for code 172 (MethodHash=6a4903ad) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
+; Total bytes of code 152, prolog size 15, PerfScore 28.00, instruction count 55, allocated bytes for code 152 (MethodHash=6a4903ad) for method Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -137,28 +131,26 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 Unwind Info:
   >> Start offset   : 0xd1ffab1e (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x03
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
 *************** EH table for Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM

-22 (-9.87%) : 29827.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)

@@ -11,35 +11,33 @@
 ;  V00 arg0         [V00,T02] (  7,  8.50)     ref  ->  rbx         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T03] (  4,  3.50)   byref  ->  r15         single-def
 ;  V02 arg2         [V02,T04] (  4,  3.50)   byref  ->  r14         single-def
-;  V03 loc0         [V03,T07] (  5,  4   )     int  ->  r12        
+;  V03 loc0         [V03,T07] (  5,  2.50)     int  ->  r13        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
-;  V05 loc2         [V05,T01] (  6, 18.50)     int  ->  rax        
+;  V05 loc2         [V05,T01] (  6, 17   )     int  ->  rdx        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V08 tmp2         [V08,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp3         [V09,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T00] (  5, 28   )  ushort  ->  rcx         "Inlining Arg"
-;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  r13         "CSE - aggressive"
+;  V10 tmp4         [V10,T00] (  5, 28   )  ushort  ->  rsi         "Inlining Arg"
+;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  rdi         "CSE - aggressive"
 ;  V12 cse1         [V12,T06] (  3,  3   )     ref  ->  r13         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x30]
+       lea      rbp, [rsp+0x20]
        mov      rbx, rdi
        ; gcrRegs +[rbx]
        mov      r15, rsi
        ; byrRegs +[r15]
        mov      r14, rdx
        ; byrRegs +[r14]
-                       ;; size=25 bbWeight=1 PerfScore 8.25
+                       ;; size=22 bbWeight=1 PerfScore 6.25
 G_M22854_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
        mov      r13, 0xD1FFAB1E
        ; gcrRegs +[r13]
@@ -61,63 +59,60 @@ G_M22854_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r1
        je       SHORT G_M22854_IG04
                        ;; size=37 bbWeight=1 PerfScore 4.50
 G_M22854_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
-       mov      r13d, dword ptr [rbx+0x08]
-       test     r13d, r13d
-       je       SHORT G_M22854_IG04
-       xor      r12d, r12d
-       xor      eax, eax
-       test     r13d, r13d
-       jle      SHORT G_M22854_IG11
-       jmp      SHORT G_M22854_IG06
-                       ;; size=21 bbWeight=0.50 PerfScore 3.50
+       mov      edi, dword ptr [rbx+0x08]
+       test     edi, edi
+       jne      SHORT G_M22854_IG06
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
 G_M22854_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        ; byrRegs -[r14-r15]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M22854_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M22854_IG06:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, gcvars, byref, isz
+                       ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs +[r14-r15]
-       mov      ecx, eax
-       movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
-       cmp      ecx, 45
+       xor      r13d, r13d
+       xor      edx, edx
+       test     edi, edi
+       jle      SHORT G_M22854_IG11
+                       ;; size=9 bbWeight=0.50 PerfScore 0.88
+G_M22854_IG07:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
+       mov      esi, edx
+       movzx    rsi, word  ptr [rbx+2*rsi+0x0C]
+       cmp      esi, 45
        je       SHORT G_M22854_IG10
                        ;; size=12 bbWeight=4 PerfScore 14.00
-G_M22854_IG07:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
-       cmp      ecx, 0x2013
+G_M22854_IG08:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
+       cmp      esi, 0x2013
        je       SHORT G_M22854_IG10
-       cmp      ecx, 0x2014
+       cmp      esi, 0x2014
        je       SHORT G_M22854_IG10
-       cmp      ecx, 0x2015
+       cmp      esi, 0x2015
        je       SHORT G_M22854_IG10
                        ;; size=24 bbWeight=2 PerfScore 7.50
-G_M22854_IG08:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
-       inc      eax
-       cmp      r13d, eax
-       jg       SHORT G_M22854_IG06
-                       ;; size=7 bbWeight=4 PerfScore 6.00
-G_M22854_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
+G_M22854_IG09:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
+       inc      edx
+       cmp      edi, edx
+       jg       SHORT G_M22854_IG07
        jmp      SHORT G_M22854_IG11
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M22854_IG10:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref
-       mov      r12d, eax
-                       ;; size=3 bbWeight=2 PerfScore 0.50
+                       ;; size=8 bbWeight=4 PerfScore 14.00
+G_M22854_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref
+       mov      r13d, edx
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14 r15}, byref, isz
-       test     r12d, r12d
+       test     r13d, r13d
        jle      SHORT G_M22854_IG04
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       mov      edx, r12d
+       mov      edx, r13d
        xor      esi, esi
        call     [System.String:Substring(int,int):System.String:this]
        ; gcrRegs -[rdi] +[rax]
@@ -129,7 +124,7 @@ G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi r15]
-       lea      esi, [r12+0x01]
+       lea      esi, [r13+0x01]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [System.String:Substring(int):System.String:this]
@@ -143,19 +138,17 @@ G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C000 {r14
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi r14]
        mov      eax, 1
-                       ;; size=60 bbWeight=0.50 PerfScore 6.00
+                       ;; size=59 bbWeight=0.50 PerfScore 6.00
 G_M22854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.12
+                       ;; size=9 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 223, prolog size 25, PerfScore 55.62, instruction count 76, allocated bytes for code 223 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
+; Total bytes of code 201, prolog size 22, PerfScore 58.50, instruction count 69, allocated bytes for code 201 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -163,14 +156,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0B
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

-25 (-8.04%) : 21055.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)

@@ -45,9 +45,9 @@ G_M42804_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        xor      r13d, r13d
        mov      r12d, dword ptr [rbx+0x08]
        test     r12d, r12d
-       jle      G_M42804_IG13
+       jle      G_M42804_IG10
                        ;; size=19 bbWeight=1 PerfScore 3.75
-G_M42804_IG03:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M42804_IG03:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edi, r13d
        mov      rax, gword ptr [rbx+8*rdi+0x10]
        ; gcrRegs +[rax]
@@ -65,18 +65,17 @@ G_M42804_IG03:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
        mov      rsi, gword ptr [rbp-0x38]
        ; gcrRegs +[rsi]
        cmp      rax, rsi
-       mov      rax, gword ptr [rbp-0x40]
-       je       G_M42804_IG10
-                       ;; size=45 bbWeight=4 PerfScore 44.00
-G_M42804_IG04:        ; bbWeight=2, gcVars=0000000000000040 {V05}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rsi]
+       je       SHORT G_M42804_IG07
+                       ;; size=37 bbWeight=4 PerfScore 40.00
+G_M42804_IG04:        ; bbWeight=2, gcVars=0000000000000040 {V05}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi]
        ; GC ptr vars -{V04}
        test     r14, r14
-       jne      SHORT G_M42804_IG10
+       jne      SHORT G_M42804_IG07
        mov      esi, r12d
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_OBJ
-       ; gcrRegs -[r14]
+       ; gcrRegs -[r14] +[rax]
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
@@ -85,7 +84,7 @@ G_M42804_IG04:        ; bbWeight=2, gcVars=0000000000000040 {V05}, gcrefRegs=C00
        test     r13d, r13d
        jle      SHORT G_M42804_IG07
        cmp      r12d, r13d
-       jl       SHORT G_M42804_IG08
+       jl       SHORT G_M42804_IG06
                        ;; size=38 bbWeight=2 PerfScore 11.50
 G_M42804_IG05:        ; bbWeight=15.84, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, eax
@@ -102,22 +101,11 @@ G_M42804_IG05:        ; bbWeight=15.84, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=
        inc      eax
        cmp      eax, r13d
        jl       SHORT G_M42804_IG05
-                       ;; size=31 bbWeight=15.84 PerfScore 114.84
-G_M42804_IG06:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       mov      rax, gword ptr [rbp-0x40]
-       ; gcrRegs +[rax]
-       jmp      SHORT G_M42804_IG10
-                       ;; size=6 bbWeight=2 PerfScore 6.00
-G_M42804_IG07:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      rax, gword ptr [rbp-0x40]
-       ; gcrRegs +[rax]
-       jmp      SHORT G_M42804_IG10
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M42804_IG08:        ; bbWeight=0.16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+       jmp      SHORT G_M42804_IG07
+                       ;; size=33 bbWeight=15.84 PerfScore 146.52
+G_M42804_IG06:        ; bbWeight=0.16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        cmp      eax, r12d
-       jae      G_M42804_IG18
+       jae      SHORT G_M42804_IG15
        mov      edx, eax
        mov      rdx, gword ptr [rbx+8*rdx+0x10]
        ; gcrRegs +[rdx]
@@ -132,43 +120,39 @@ G_M42804_IG08:        ; bbWeight=0.16, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        inc      esi
        cmp      esi, r13d
        mov      eax, esi
-       jl       SHORT G_M42804_IG08
-                       ;; size=42 bbWeight=0.16 PerfScore 1.40
-G_M42804_IG09:        ; bbWeight=0.08, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rbp-0x40]
-       ; gcrRegs +[rax]
-                       ;; size=4 bbWeight=0.08 PerfScore 0.08
-G_M42804_IG10:        ; bbWeight=4, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M42804_IG06
+                       ;; size=38 bbWeight=0.16 PerfScore 1.40
+G_M42804_IG07:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        test     r14, r14
-       je       SHORT G_M42804_IG12
+       je       SHORT G_M42804_IG09
                        ;; size=5 bbWeight=4 PerfScore 5.00
-G_M42804_IG11:        ; bbWeight=2, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M42804_IG08:        ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        movsxd   rsi, r13d
        mov      rdi, r14
        ; gcrRegs +[rdi]
-       mov      rdx, rax
+       mov      rdx, gword ptr [rbp-0x40]
        ; gcrRegs +[rdx]
        ; GC ptr vars -{V05}
        call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rax rdx rdi]
+       ; gcrRegs -[rdx rdi]
        ; gcr arg pop 0
-                       ;; size=14 bbWeight=2 PerfScore 3.50
-G_M42804_IG12:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+                       ;; size=15 bbWeight=2 PerfScore 5.00
+G_M42804_IG09:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        inc      r13d
        cmp      r12d, r13d
        jg       G_M42804_IG03
                        ;; size=12 bbWeight=4 PerfScore 6.00
-G_M42804_IG13:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M42804_IG10:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r15]
        test     r14, r14
-       jne      SHORT G_M42804_IG16
+       jne      SHORT G_M42804_IG13
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M42804_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M42804_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        mov      rax, rbx
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M42804_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M42804_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -178,7 +162,7 @@ G_M42804_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M42804_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
+G_M42804_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rbx] +[r14]
        mov      rsi, r14
        ; gcrRegs +[rsi]
@@ -188,7 +172,7 @@ G_M42804_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
        ; gcr arg pop 0
        nop      
                        ;; size=20 bbWeight=0.50 PerfScore 1.88
-G_M42804_IG17:        ; bbWeight=0.50, epilog, nogc, extend
+G_M42804_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -198,14 +182,14 @@ G_M42804_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M42804_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42804_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 311, prolog size 25, PerfScore 213.82, instruction count 99, allocated bytes for code 311 (MethodHash=99cf58cb) for method Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
+; Total bytes of code 286, prolog size 25, PerfScore 233.92, instruction count 94, allocated bytes for code 286 (MethodHash=99cf58cb) for method Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+40 (+5.34%) : 3266.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:GetPathToDotNetFrameworkImlpementationAssemblies@57(System.String):Microsoft.FSharp.Collections.FSharpList`1System.String

@@ -51,7 +51,7 @@
 ;  V40 tmp35        [V40,T16] (  2,  2   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;  V41 tmp36        [V41,T02] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;  V42 tmp37        [V42,T13] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V43 cse0         [V43,T14] ( 11,  2.75)     int  ->  rbx         "CSE - moderate"
+;  V43 cse0         [V43,T14] ( 11,  2.75)     int  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -69,16 +69,116 @@ G_M34998_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        je       G_M34998_IG33
                        ;; size=9 bbWeight=1 PerfScore 1.25
 G_M34998_IG03:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ebx, dword ptr [rdi+0x08]
-       cmp      ebx, 4
-       jne      SHORT G_M34998_IG06
+       mov      eax, dword ptr [rdi+0x08]
+       cmp      eax, 4
+       jne      SHORT G_M34998_IG05
                        ;; size=8 bbWeight=0.25 PerfScore 0.81
-G_M34998_IG04:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+G_M34998_IG04:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       cmp      qword ptr [rdi+0x0C], rcx
+       je       G_M34998_IG23
+                       ;; size=20 bbWeight=0.12 PerfScore 0.53
+G_M34998_IG05:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG07
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG06:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG24
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG07:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG09
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG08:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG25
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG09:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 4
+       jne      SHORT G_M34998_IG11
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG10:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       cmp      qword ptr [rdi+0x0C], rcx
+       je       G_M34998_IG26
+                       ;; size=20 bbWeight=0.12 PerfScore 0.53
+G_M34998_IG11:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG13
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG12:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG27
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG13:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG15
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG14:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG28
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG15:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 4
+       jne      SHORT G_M34998_IG17
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG16:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       cmp      qword ptr [rdi+0x0C], rcx
+       je       G_M34998_IG29
+                       ;; size=20 bbWeight=0.12 PerfScore 0.53
+G_M34998_IG17:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG19
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG18:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG30
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG19:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       cmp      eax, 6
+       jne      SHORT G_M34998_IG21
+                       ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG20:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       xor      rcx, qword ptr [rdi+0x0C]
+       mov      edx, dword ptr [rdi+0x14]
+       xor      edx, 0xD1FFAB1E
+       or       rcx, rdx
+       je       G_M34998_IG31
+                       ;; size=32 bbWeight=0.12 PerfScore 0.84
+G_M34998_IG21:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       cmp      eax, 4
+       jne      G_M34998_IG33
+                       ;; size=9 bbWeight=0.25 PerfScore 0.31
+G_M34998_IG22:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        mov      rax, 0xD1FFAB1E
        cmp      qword ptr [rdi+0x0C], rax
-       jne      SHORT G_M34998_IG06
-                       ;; size=16 bbWeight=0.12 PerfScore 0.53
-G_M34998_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jne      G_M34998_IG33
+       jmp      G_M34998_IG32
+                       ;; size=25 bbWeight=0.12 PerfScore 0.78
+G_M34998_IG23:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
@@ -86,180 +186,72 @@ G_M34998_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      dword ptr [rax+0x08], 5
        jmp      G_M34998_IG34
                        ;; size=27 bbWeight=0.50 PerfScore 2.12
-G_M34998_IG06:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      ebx, 6
-       jne      SHORT G_M34998_IG09
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M34998_IG07:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rax, 0xD1FFAB1E
-       xor      rax, qword ptr [rdi+0x0C]
-       mov      ecx, dword ptr [rdi+0x14]
-       xor      ecx, 0xD1FFAB1E
-       or       rax, rcx
-       jne      SHORT G_M34998_IG09
-                       ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M34998_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+G_M34998_IG24:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        mov      dword ptr [rax+0x08], 6
        jmp      G_M34998_IG34
                        ;; size=27 bbWeight=0.50 PerfScore 2.12
-G_M34998_IG09:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      ebx, 6
-       jne      SHORT G_M34998_IG12
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M34998_IG10:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rax, 0xD1FFAB1E
-       xor      rax, qword ptr [rdi+0x0C]
-       mov      ecx, dword ptr [rdi+0x14]
-       xor      ecx, 0xD1FFAB1E
-       or       rax, rcx
-       jne      SHORT G_M34998_IG12
-                       ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M34998_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+G_M34998_IG25:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        mov      dword ptr [rax+0x08], 9
        jmp      G_M34998_IG34
                        ;; size=27 bbWeight=0.50 PerfScore 2.12
-G_M34998_IG12:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      ebx, 4
-       jne      SHORT G_M34998_IG15
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M34998_IG13:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rax, 0xD1FFAB1E
-       cmp      qword ptr [rdi+0x0C], rax
-       jne      SHORT G_M34998_IG15
-                       ;; size=16 bbWeight=0.12 PerfScore 0.53
-G_M34998_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+G_M34998_IG26:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        mov      dword ptr [rax+0x08], 7
        jmp      G_M34998_IG34
                        ;; size=27 bbWeight=0.50 PerfScore 2.12
-G_M34998_IG15:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      ebx, 6
-       jne      SHORT G_M34998_IG18
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M34998_IG16:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rax, 0xD1FFAB1E
-       xor      rax, qword ptr [rdi+0x0C]
-       mov      ecx, dword ptr [rdi+0x14]
-       xor      ecx, 0xD1FFAB1E
-       or       rax, rcx
-       jne      SHORT G_M34998_IG18
-                       ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M34998_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+G_M34998_IG27:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        mov      dword ptr [rax+0x08], 8
-       jmp      G_M34998_IG34
-                       ;; size=27 bbWeight=0.50 PerfScore 2.12
-G_M34998_IG18:        ; bbWeight=0.25, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       cmp      ebx, 6
-       jne      SHORT G_M34998_IG21
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M34998_IG19:        ; bbWeight=0.12, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rax, 0xD1FFAB1E
-       xor      rax, qword ptr [rdi+0x0C]
-       mov      ecx, dword ptr [rdi+0x14]
-       xor      ecx, 0xD1FFAB1E
-       or       rax, rcx
-       jne      SHORT G_M34998_IG21
-                       ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M34998_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+       jmp      SHORT G_M34998_IG34
+                       ;; size=24 bbWeight=0.50 PerfScore 2.12
+G_M34998_IG28:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        mov      dword ptr [rax+0x08], 10
-       jmp      G_M34998_IG34
...

+27 (+6.70%) : 4833.dasm - FSharp.Compiler.CompilerOptions:SetTarget(FSharp.Compiler.CompilerConfig+TcConfigBuilder,System.String) (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4   )     ref  ->  rbx         class-hnd single-def <FSharp.Compiler.CompilerConfig+TcConfigBuilder>
-;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  r15         class-hnd single-def <System.String>
-;  V02 loc0         [V02,T02] ( 11,  3.25)     ref  ->  rax         class-hnd exact single-def <System.String>
+;  V00 arg0         [V00,T01] (  6,  3.50)     ref  ->  r15         class-hnd single-def <FSharp.Compiler.CompilerConfig+TcConfigBuilder>
+;  V01 arg1         [V01,T00] (  5,  4   )     ref  ->  rbx         class-hnd single-def <System.String>
+;  V02 loc0         [V02,T02] ( 11,  3   )     ref  ->  rax         class-hnd exact single-def <System.String>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <FSharp.Compiler.ErrorLogger+Error>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
@@ -18,11 +18,11 @@
 ;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V08 tmp4         [V08,T05] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
-;* V10 tmp6         [V10,T06] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;* V10 tmp6         [V10,T09] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V12 tmp8         [V12,T10] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V13 tmp9         [V13,T08] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Tuple`2[int,System.String]>
-;  V14 tmp10        [V14,T07] (  6,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ErrorLogger+Error>
+;  V13 tmp9         [V13,T07] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Tuple`2[int,System.String]>
+;  V14 tmp10        [V14,T06] (  6,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ErrorLogger+Error>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <FSharp.Compiler.Text.Range>
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <FSharp.Compiler.CompilerConfig+CompilerTarget>
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <FSharp.Compiler.CompilerConfig+CompilerTarget>
@@ -30,147 +30,136 @@
 ;* V19 tmp15        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <FSharp.Compiler.CompilerConfig+CompilerTarget>
 ;* V20 tmp16        [V20,T11] (  0,  0   )    long  ->  zero-ref    single-def "field V15.code1 (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21,T12] (  0,  0   )    long  ->  zero-ref    single-def "field V15.code2 (fldOffset=0x8)" P-INDEP
-;  V22 tmp18        [V22,T09] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V23 cse0         [V23,T03] (  5,  1.25)     int  ->  rdi         "CSE - moderate"
+;  V22 tmp18        [V22,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V23 cse0         [V23,T03] (  5,  1   )     int  ->  r14         "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M53613_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
+       push     r14
        push     rbx
-       lea      rbp, [rsp+0x10]
-       mov      rbx, rdi
-       ; gcrRegs +[rbx]
-       mov      r15, rsi
+       push     rax
+       lea      rbp, [rsp+0x20]
+       mov      r15, rdi
        ; gcrRegs +[r15]
-                       ;; size=15 bbWeight=1 PerfScore 4.00
+       mov      rbx, rsi
+       ; gcrRegs +[rbx]
+                       ;; size=18 bbWeight=1 PerfScore 6.00
 G_M53613_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
-       cmp      byte  ptr [r15], r15b
+       cmp      byte  ptr [rbx], bl
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        ; gcrRegs +[rdi]
-       mov      rsi, r15
+       mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     [System.Globalization.TextInfo:ToLower(System.String):System.String:this]
        ; gcrRegs -[rsi rdi] +[rax]
        test     rax, rax
-       je       G_M53613_IG17
-                       ;; size=34 bbWeight=1 PerfScore 9.75
+       je       G_M53613_IG15
+                       ;; size=33 bbWeight=1 PerfScore 9.75
 G_M53613_IG03:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      edi, dword ptr [rax+0x08]
-       cmp      edi, 3
-       jne      SHORT G_M53613_IG06
-                       ;; size=8 bbWeight=0.25 PerfScore 0.81
+       mov      r14d, dword ptr [rax+0x08]
+       cmp      r14d, 3
+       jne      SHORT G_M53613_IG05
+                       ;; size=10 bbWeight=0.25 PerfScore 0.81
 G_M53613_IG04:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      esi, dword ptr [rax+0x0C]
+       mov      edi, dword ptr [rax+0x0C]
+       xor      edi, 0xD1FFAB1E
+       mov      esi, dword ptr [rax+0x0E]
        xor      esi, 0xD1FFAB1E
-       mov      ecx, dword ptr [rax+0x0E]
-       xor      ecx, 0xD1FFAB1E
-       or       esi, ecx
-       jne      SHORT G_M53613_IG06
+       or       edi, esi
+       je       SHORT G_M53613_IG12
                        ;; size=22 bbWeight=0.12 PerfScore 0.72
-G_M53613_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax r15]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
-       ; gcrRegs +[rsi]
-       lea      rdi, bword ptr [rbx+0xC0]
-       ; byrRegs +[rdi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rbx rsi]
-       ; byrRegs -[rdi]
-       jmp      G_M53613_IG15
-                       ;; size=30 bbWeight=0.50 PerfScore 2.88
-G_M53613_IG06:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax rbx r15]
-       cmp      edi, 6
-       jne      SHORT G_M53613_IG09
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M53613_IG07:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, 0xD1FFAB1E
-       xor      rsi, qword ptr [rax+0x0C]
-       mov      ecx, dword ptr [rax+0x14]
-       xor      ecx, 0xD1FFAB1E
-       or       rsi, rcx
-       jne      SHORT G_M53613_IG09
-                       ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M53613_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax r15]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
-       ; gcrRegs +[rsi]
-       lea      rdi, bword ptr [rbx+0xC0]
-       ; byrRegs +[rdi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rbx rsi]
-       ; byrRegs -[rdi]
-       jmp      SHORT G_M53613_IG15
-                       ;; size=27 bbWeight=0.50 PerfScore 2.88
-G_M53613_IG09:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax rbx r15]
-       cmp      edi, 7
-       jne      SHORT G_M53613_IG12
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M53613_IG10:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, 0xD1FFAB1E
-       xor      rsi, qword ptr [rax+0x0C]
-       mov      rcx, 0xD1FFAB1E
-       xor      rcx, qword ptr [rax+0x12]
-       or       rsi, rcx
-       jne      SHORT G_M53613_IG12
-                       ;; size=33 bbWeight=0.12 PerfScore 0.97
-G_M53613_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax r15]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
-       ; gcrRegs +[rsi]
-       lea      rdi, bword ptr [rbx+0xC0]
-       ; byrRegs +[rdi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rbx rsi]
-       ; byrRegs -[rdi]
-       jmp      SHORT G_M53613_IG15
-                       ;; size=27 bbWeight=0.50 PerfScore 2.88
-G_M53613_IG12:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax rbx r15]
-       cmp      edi, 6
-       jne      SHORT G_M53613_IG17
-                       ;; size=5 bbWeight=0.25 PerfScore 0.31
-G_M53613_IG13:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M53613_IG05:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
+       cmp      r14d, 6
+       jne      SHORT G_M53613_IG07
+                       ;; size=6 bbWeight=0.25 PerfScore 0.31
+G_M53613_IG06:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, 0xD1FFAB1E
        xor      rdi, qword ptr [rax+0x0C]
        mov      esi, dword ptr [rax+0x14]
        xor      esi, 0xD1FFAB1E
        or       rdi, rsi
-       jne      SHORT G_M53613_IG17
+       je       SHORT G_M53613_IG13
                        ;; size=28 bbWeight=0.12 PerfScore 0.84
-G_M53613_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax r15]
+G_M53613_IG07:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+       cmp      r14d, 7
+       jne      G_M53613_IG16
+                       ;; size=10 bbWeight=0.25 PerfScore 0.31
+G_M53613_IG08:        ; bbWeight=0.12, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+       mov      rdi, 0xD1FFAB1E
+       xor      rdi, qword ptr [rax+0x0C]
+       mov      rsi, 0xD1FFAB1E
+       xor      rsi, qword ptr [rax+0x12]
+       or       rdi, rsi
+       jne      G_M53613_IG16
+                       ;; size=37 bbWeight=0.12 PerfScore 0.97
+G_M53613_IG09:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax rbx]
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
-       lea      rdi, bword ptr [rbx+0xC0]
+       lea      rdi, bword ptr [r15+0xC0]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rbx rsi]
+       ; gcrRegs -[rsi r15]
        ; byrRegs -[rdi]
                        ;; size=25 bbWeight=0.50 PerfScore 1.88
-G_M53613_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53613_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M53613_IG16:        ; bbWeight=1, epilog, nogc, extend
+G_M53613_IG11:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 2.50
-G_M53613_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M53613_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[r15]
-       mov      rdi, r15
+       mov      rdi, 0xD1FFAB1E      ; const ptr
+       mov      rsi, gword ptr [rdi]
+       ; gcrRegs +[rsi]
+       lea      rdi, bword ptr [r15+0xC0]
+       ; byrRegs +[rdi]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rsi r15]
+       ; byrRegs -[rdi]
+       jmp      SHORT G_M53613_IG10
+                       ;; size=27 bbWeight=0.50 PerfScore 2.88
+G_M53613_IG13:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r15]
+       mov      rdi, 0xD1FFAB1E      ; const ptr
+       mov      rsi, gword ptr [rdi]
+       ; gcrRegs +[rsi]
+       lea      rdi, bword ptr [r15+0xC0]
+       ; byrRegs +[rdi]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rsi r15]
+       ; byrRegs -[rdi]
+       jmp      SHORT G_M53613_IG10
+                       ;; size=27 bbWeight=0.50 PerfScore 2.88
+G_M53613_IG14:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[r15]
+       mov      rdi, 0xD1FFAB1E      ; const ptr
+       mov      rsi, gword ptr [rdi]
+       ; gcrRegs +[rsi]
+       lea      rdi, bword ptr [r15+0xC0]
+       ; byrRegs +[rdi]
...

+42 (+7.71%) : 30851.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 this         [V00,T02] (  5,  3.50)     ref  ->  r14         this class-hnd single-def <System.Management.Automation.Provider.NavigationCmdletProvider>
 ;  V01 arg1         [V01,T01] ( 17, 10   )     ref  ->  r15         class-hnd <System.String>
-;  V02 arg2         [V02,T00] ( 19, 10.50)     ref  ->  rbx         class-hnd <System.String>
+;  V02 arg2         [V02,T00] ( 18, 10   )     ref  ->  rbx         class-hnd <System.String>
 ;  V03 arg3         [V03,T03] (  3,  2.50)   ubyte  ->  r13         single-def
 ;* V04 loc0         [V04,T33] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <System.IDisposable>
 ;  V05 loc1         [V05,T04] (  6,  3.50)     ref  ->  rax         class-hnd <System.String>
@@ -83,45 +83,111 @@ G_M32221_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[rbx]
        mov      r13d, ecx
                        ;; size=35 bbWeight=1 PerfScore 8.75
-G_M32221_IG02:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG02:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        test     r15, r15
-       jne      SHORT G_M32221_IG09
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M32221_IG03:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       jne      G_M32221_IG15
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M32221_IG03:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M32221_IG08
+       je       G_M32221_IG14
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M32221_IG04:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M32221_IG10
-                       ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M32221_IG04:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       je       G_M32221_IG16
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG10
+       je       G_M32221_IG16
        test     r15, r15
-       jne      SHORT G_M32221_IG11
-                       ;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M32221_IG05:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
-       je       SHORT G_M32221_IG12
-       cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG12
+       je       G_M32221_IG17
+                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+G_M32221_IG05:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+       cmp      dword ptr [r15+0x08], 0
+       je       G_M32221_IG17
+                       ;; size=11 bbWeight=0.50 PerfScore 2.00
+G_M32221_IG06:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+       cmp      dword ptr [r15+0x08], 0
+       jne      G_M32221_IG19
+                       ;; size=11 bbWeight=0.50 PerfScore 2.00
+G_M32221_IG07:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       mov      rdi, r14
+       ; gcrRegs +[rdi]
+       mov      rsi, r15
+       ; gcrRegs +[rsi]
+       call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
+       ; gcrRegs -[rsi rdi r15] +[rax]
+       ; gcr arg pop 0
+       mov      r15, rax
+       ; gcrRegs +[r15]
+       test     r13b, r13b
+       jne      SHORT G_M32221_IG08
        mov      rdi, r14
        ; gcrRegs +[rdi]
        mov      rsi, rbx
        ; gcrRegs +[rsi]
        call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
-       ; gcrRegs -[rbx rsi rdi r14-r15] +[rax]
+       ; gcrRegs -[rbx rsi rdi r14]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0.50 PerfScore 4.38
-G_M32221_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       jmp      G_M32221_IG23
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+                       ;; size=35 bbWeight=0.50 PerfScore 4.38
+G_M32221_IG08:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
+       test     rbx, rbx
+       jne      G_M32221_IG22
+       xor      r14, r14
+       ; byrRegs +[r14]
+       xor      r13d, r13d
+                       ;; size=15 bbWeight=0.50 PerfScore 0.88
+G_M32221_IG09:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=4000 {r14}, byref, isz
+       mov      r12, r14
+       ; byrRegs +[r12]
+       mov      eax, r13d
+       cmp      word  ptr [rbx+0x0C], 47
+       jne      SHORT G_M32221_IG10
+       test     r13d, r13d
+       je       SHORT G_M32221_IG13
+       add      r14, 2
+       dec      r13d
+       mov      edi, r13d
+       not      edi
+       shr      edi, 31
+       call     [<unknown method>]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[r12]
+       ; gcr arg pop 0
+       mov      r12, r14
+       ; byrRegs +[r12]
+       mov      eax, r13d
+       mov      dword ptr [rbp-0x2C], eax
+       mov      eax, dword ptr [rbp-0x2C]
+                       ;; size=51 bbWeight=0.50 PerfScore 6.38
+G_M32221_IG10:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=1000 {r12}, byref
+       ; byrRegs -[r14]
+       test     r15, r15
+       jne      G_M32221_IG23
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      esi, esi
+                       ;; size=13 bbWeight=0.50 PerfScore 0.88
+G_M32221_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=1080 {rdi r12}, byref
+       ; gcrRegs -[r15]
+       mov      rdx, r12
+       ; byrRegs +[rdx]
+       mov      ecx, eax
+       call     [System.IO.Path:Join(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rdx rdi r12]
+       ; gcr arg pop 0
+                       ;; size=11 bbWeight=0.50 PerfScore 1.75
+G_M32221_IG12:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+       jmp      G_M32221_IG24
                        ;; size=5 bbWeight=1 PerfScore 2.00
-G_M32221_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M32221_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32221_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M32221_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 0xD1FFAB1E
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -138,36 +204,44 @@ G_M32221_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
                        ;; size=37 bbWeight=0 PerfScore 0.00
-G_M32221_IG09:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r14-r15]
        cmp      dword ptr [r15+0x08], 0
-       jne      SHORT G_M32221_IG11
-       test     rbx, rbx
-       jne      SHORT G_M32221_IG04
-                       ;; size=12 bbWeight=0.50 PerfScore 2.62
-G_M32221_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jne      G_M32221_IG05
+       jmp      G_M32221_IG04
+                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+G_M32221_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx r14-r15]
        mov      rax, 0xD1FFAB1E
        ; gcrRegs +[rax]
-       jmp      SHORT G_M32221_IG06
+       jmp      SHORT G_M32221_IG12
                        ;; size=12 bbWeight=0.50 PerfScore 1.12
-G_M32221_IG11:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG17:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax] +[rbx r14-r15]
-       cmp      dword ptr [r15+0x08], 0
-       jne      SHORT G_M32221_IG13
-       jmp      SHORT G_M32221_IG05
-                       ;; size=9 bbWeight=0.50 PerfScore 3.00
-G_M32221_IG12:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
-       test     r15, r15
-       je       G_M32221_IG16
-                       ;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       cmp      dword ptr [r15+0x08], 0
-       je       G_M32221_IG16
        test     rbx, rbx
-       je       SHORT G_M32221_IG14
+       je       SHORT G_M32221_IG18
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG14
+       je       SHORT G_M32221_IG18
+       mov      rdi, r14
+       ; gcrRegs +[rdi]
+       mov      rsi, rbx
+       ; gcrRegs +[rsi]
+       call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
+       ; gcrRegs -[rbx rsi rdi r14-r15] +[rax]
+       ; gcr arg pop 0
+       jmp      SHORT G_M32221_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 5.38
+G_M32221_IG18:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax] +[rbx r14-r15]
+       test     r15, r15
+       je       G_M32221_IG07
+       jmp      G_M32221_IG06
+                       ;; size=14 bbWeight=0.50 PerfScore 1.62
+G_M32221_IG19:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M32221_IG20
+       cmp      dword ptr [rbx+0x08], 0
+       je       SHORT G_M32221_IG20
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        ; gcrRegs +[rsi]
@@ -178,7 +252,7 @@ G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M32221_IG14
+       jne      SHORT G_M32221_IG20
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        ; gcrRegs +[rsi]
@@ -189,18 +263,18 @@ G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M32221_IG16
-                       ;; size=84 bbWeight=0.50 PerfScore 11.62
-G_M32221_IG14:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       je       G_M32221_IG07
+                       ;; size=77 bbWeight=0.50 PerfScore 9.62
+G_M32221_IG20:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx r14]
        mov      edi, dword ptr [r15+0x08]
        cmp      word  ptr [r15+2*rdi+0x0A], 47
-       jne      SHORT G_M32221_IG15
+       jne      SHORT G_M32221_IG21
        mov      rax, r15
        ; gcrRegs +[rax]
-       jmp      G_M32221_IG06
+       jmp      G_M32221_IG12
                        ;; size=21 bbWeight=0.50 PerfScore 4.12
-G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M32221_IG21:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      edi, 1
        call     <unknown method>
@@ -214,94 +288,21 @@ G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi r15]
        ; gcr arg pop 0
-       jmp      G_M32221_IG06
+       jmp      G_M32221_IG12
                        ;; size=33 bbWeight=0.50 PerfScore 3.88
...

smoke_tests.nativeaot.linux.x64.checked.mch

-46 (-6.05%) : 5756.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (FullOpts)

@@ -7,14 +7,14 @@
 ; fully interruptible
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T01] ( 12,230.50)     ref  ->  [rbp-0x38]  class-hnd exact single-def <System.Threading.PortableThreadPool>
-;  V01 loc1         [V01,T08] (  3,  9   )     ref  ->  [rbp-0x40]  class-hnd exact single-def <<unknown class>>
-;  V02 loc2         [V02,T05] (  4, 25   )     ref  ->  [rbp-0x48]  class-hnd exact single-def <<unknown class>>
+;  V00 loc0         [V00,T01] ( 12,230.50)     ref  ->  [rbp-0x30]  class-hnd exact single-def <System.Threading.PortableThreadPool>
+;  V01 loc1         [V01,T08] (  3,  9   )     ref  ->  [rbp-0x38]  class-hnd exact single-def <<unknown class>>
+;  V02 loc2         [V02,T05] (  4, 25   )     ref  ->  [rbp-0x40]  class-hnd exact single-def <<unknown class>>
 ;  V03 loc3         [V03,T04] (  5, 25.50)     int  ->  r12        
 ;* V04 loc4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    <System.Threading.PortableThreadPool+ThreadCounts>
 ;  V05 loc5         [V05,T06] (  7, 21   )     int  ->  rdi        
 ;  V06 loc6         [V06,T07] (  3, 12   )     int  ->  rax        
-;  V07 loc7         [V07,T03] (  2, 32   )   ubyte  ->  [rbp-0x2C]  ld-addr-op spill-single-def
+;  V07 loc7         [V07,T03] (  2, 32   )   ubyte  ->  r15         ld-addr-op
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T12] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.Threading.Thread>
 ;  V10 tmp2         [V10,T13] (  4,  3.50)     ref  ->  rdi        
@@ -28,7 +28,7 @@
 ;  V18 rat1         [V18,T10] (  5,  6   )    long  ->  r13         "fgMakeTemp is creating a new local variable"
 ;  V19 rat2         [V19,T00] (  3,384   )    long  ->  r15         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M43936_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -37,8 +37,8 @@ G_M43936_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 24
+       lea      rbp, [rsp+0x40]
                        ;; size=19 bbWeight=1 PerfScore 6.75
 G_M43936_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
@@ -66,13 +66,13 @@ G_M43936_IG04:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        lea      rax, [(reloc)]
        cmp      qword ptr [rax-0x08], 0
-       jne      G_M43936_IG34
+       jne      G_M43936_IG29
        mov      rax, qword ptr [(reloc)]
        mov      rbx, gword ptr [rax+0x08]
        ; gcrRegs +[rbx]
        lea      rax, [(reloc)]
        cmp      qword ptr [rax-0x08], 0
-       jne      G_M43936_IG35
+       jne      G_M43936_IG30
                        ;; size=54 bbWeight=1 PerfScore 17.00
 G_M43936_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rax, qword ptr [(reloc)]
@@ -81,55 +81,50 @@ G_M43936_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        cmp      byte  ptr [rax], al
        mov      r15, gword ptr [rbx+0x10]
        ; gcrRegs +[r15]
-       mov      gword ptr [rbp-0x40], r15
+       mov      gword ptr [rbp-0x38], r15
        ; GC ptr vars +{V01}
        lea      rax, [(reloc)]
        ; gcrRegs -[rax]
        cmp      qword ptr [rax-0x08], 0
-       jne      G_M43936_IG36
+       jne      G_M43936_IG31
                        ;; size=39 bbWeight=1 PerfScore 14.50
-G_M43936_IG06:        ; bbWeight=0.50, gcVars=0000000000000100 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43936_IG06:        ; bbWeight=1, gcVars=0000000000000100 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r15]
-       mov      r15, gword ptr [rbp-0x40]
-       ; gcrRegs +[r15]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43936_IG07:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V01}
        mov      rax, qword ptr [(reloc)]
        mov      r14, gword ptr [rax+0x08]
        ; gcrRegs +[r14]
        lea      r13, [(reloc)]
        cmp      qword ptr [r13-0x08], 0
-       jne      G_M43936_IG37
+       jne      G_M43936_IG32
                        ;; size=29 bbWeight=1 PerfScore 8.50
-G_M43936_IG08:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M43936_IG07:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        mov      r12d, dword ptr [r13+0x04]
        lea      r13, [(reloc)]
        cmp      qword ptr [r13-0x08], 0
-       jne      G_M43936_IG38
+       jne      G_M43936_IG33
                        ;; size=22 bbWeight=1 PerfScore 6.50
-G_M43936_IG09:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M43936_IG08:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        movsx    rax, word  ptr [r13]
        test     eax, eax
-       je       SHORT G_M43936_IG14
+       je       SHORT G_M43936_IG13
                        ;; size=9 bbWeight=1 PerfScore 5.25
-G_M43936_IG10:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M43936_IG09:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=2000 {r13}, byref, isz
        ; byrRegs +[r13]
        test     eax, eax
-       jge      SHORT G_M43936_IG12
+       jge      SHORT G_M43936_IG11
                        ;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M43936_IG11:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M43936_IG10:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r13]
        mov      r12d, -1
-       jmp      SHORT G_M43936_IG14
+       jmp      SHORT G_M43936_IG13
                        ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M43936_IG12:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M43936_IG11:        ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=2000 {r13}, byref, isz
        ; byrRegs +[r13]
        mov      edi, dword ptr [rbx+0x48]
        cmp      eax, edi
-       jle      SHORT G_M43936_IG14
+       jle      SHORT G_M43936_IG13
                        ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M43936_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000 {r13}, byref, isz
+G_M43936_IG12:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=2000 {r13}, byref, isz
        lea      rsi, bword ptr [rbx+0x48]
        ; byrRegs +[rsi]
        lea      edx, [rdi+0x01]
@@ -137,16 +132,16 @@ G_M43936_IG13:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=2000
        lock     
        cmpxchg  dword ptr [rsi], edx
        cmp      eax, edi
-       je       SHORT G_M43936_IG11
+       je       SHORT G_M43936_IG10
        mov      edi, eax
        movsx    rsi, word  ptr [r13]
        ; byrRegs -[rsi]
        cmp      esi, edi
-       jg       SHORT G_M43936_IG13
+       jg       SHORT G_M43936_IG12
                        ;; size=28 bbWeight=4 PerfScore 104.00
-G_M43936_IG14:        ; bbWeight=8, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M43936_IG13:        ; bbWeight=8, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        ; byrRegs -[r13]
-       mov      gword ptr [rbp-0x48], r14
+       mov      gword ptr [rbp-0x40], r14
        ; GC ptr vars +{V02}
        mov      rdi, r14
        ; gcrRegs +[rdi]
@@ -157,14 +152,11 @@ G_M43936_IG14:        ; bbWeight=8, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
        ; gcrRegs -[rdi r14]
        ; gcr arg pop 0
        test     eax, eax
-       mov      r14, gword ptr [rbp-0x48]
-       ; gcrRegs +[r14]
-       je       G_M43936_IG31
-                       ;; size=34 bbWeight=8 PerfScore 64.00
-G_M43936_IG15:        ; bbWeight=16, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V02}
+       je       G_M43936_IG27
+                       ;; size=30 bbWeight=8 PerfScore 56.00
+G_M43936_IG14:        ; bbWeight=16, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        xor      r13d, r13d
-       mov      gword ptr [rbp-0x38], rbx
+       mov      gword ptr [rbp-0x30], rbx
        ; GC ptr vars +{V00}
        mov      rdi, rbx
        ; gcrRegs +[rdi]
@@ -172,62 +164,55 @@ G_M43936_IG15:        ; bbWeight=16, gcVars=0000000000000000 {}, gcrefRegs=C008
        ; gcrRegs -[rbx rdi]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M43936_IG26
+       je       G_M43936_IG22
                        ;; size=23 bbWeight=16 PerfScore 60.00
-G_M43936_IG16:        ; bbWeight=8, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
-       mov      gword ptr [rbp-0x48], r14
-       ; GC ptr vars +{V02}
-       mov      gword ptr [rbp-0x40], r15
-       ; GC ptr vars +{V01}
-                       ;; size=8 bbWeight=8 PerfScore 16.00
-G_M43936_IG17:        ; bbWeight=64, gcVars=0000000000000122 {V00 V01 V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[r14-r15]
+G_M43936_IG15:        ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     <unknown method>
        ; gcr arg pop 0
-       mov      rbx, gword ptr [rbp-0x38]
+       mov      rbx, gword ptr [rbp-0x30]
        ; gcrRegs +[rbx]
        mov      dword ptr [rbx+0xE0], eax
        cmp      dword ptr [(reloc)], 0
-       jne      G_M43936_IG39
+       jne      G_M43936_IG34
                        ;; size=28 bbWeight=64 PerfScore 448.00
-G_M43936_IG18:        ; bbWeight=64, gcVars=0000000000000120 {V01 V02}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43936_IG16:        ; bbWeight=64, gcVars=0000000000000120 {V01 V02}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars -{V00 V01}
        call     <unknown method>
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M43936_IG27
-       mov      gword ptr [rbp-0x38], rbx
+       je       SHORT G_M43936_IG23
+       mov      gword ptr [rbp-0x30], rbx
        ; GC ptr vars +{V00}
        cmp      dword ptr [rbx+0x160], 0
-       mov      rbx, gword ptr [rbp-0x38]
-       jle      SHORT G_M43936_IG25
+       mov      rbx, gword ptr [rbp-0x30]
+       jle      SHORT G_M43936_IG24
        ; GC ptr vars -{V00}
        call     <unknown method>
        ; gcr arg pop 0
        lea      r15, [(reloc)]
        cmp      qword ptr [r15-0x08], 0
-       jne      G_M43936_IG40
-                       ;; size=53 bbWeight=64 PerfScore 880.00
-G_M43936_IG19:        ; bbWeight=64, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jne      G_M43936_IG35
+                       ;; size=49 bbWeight=64 PerfScore 880.00
+G_M43936_IG17:        ; bbWeight=64, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r15+0x04], 1
-       je       SHORT G_M43936_IG22
+       je       SHORT G_M43936_IG20
                        ;; size=7 bbWeight=64 PerfScore 256.00
-G_M43936_IG20:        ; bbWeight=32, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       mov      gword ptr [rbp-0x38], rbx
+G_M43936_IG18:        ; bbWeight=32, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      gword ptr [rbp-0x30], rbx
        ; GC ptr vars +{V00}
        mov      edi, 1
                        ;; size=9 bbWeight=32 PerfScore 40.00
-G_M43936_IG21:        ; bbWeight=32, gcVars=0000000000000122 {V00 V01 V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M43936_IG19:        ; bbWeight=32, gcVars=0000000000000122 {V00 V01 V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rbx]
        ; GC ptr vars +{V01}
        call     <unknown method>
        ; gcr arg pop 0
        cmp      dword ptr [(reloc)], 0
-       mov      rbx, gword ptr [rbp-0x38]
+       mov      rbx, gword ptr [rbp-0x30]
        ; gcrRegs +[rbx]
-       jne      G_M43936_IG41
+       jne      G_M43936_IG36
                        ;; size=22 bbWeight=32 PerfScore 192.00
-G_M43936_IG22:        ; bbWeight=64, gcVars=0000000000000120 {V01 V02}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43936_IG20:        ; bbWeight=64, gcVars=0000000000000120 {V01 V02}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars -{V00 V01}
        mov      rdi, rbx
        ; gcrRegs +[rdi]
@@ -235,87 +220,67 @@ G_M43936_IG22:        ; bbWeight=64, gcVars=0000000000000120 {V01 V02}, gcrefReg
        ; gcrRegs -[rdi]
...

-35 (-5.99%) : 6499.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)

@@ -21,8 +21,8 @@
 ;  V11 loc6         [V11,T03] (  8,  7   )     int  ->  r12         single-def
 ;  V12 loc7         [V12,T07] ( 11,  5.50)    long  ->  rax         ld-addr-op
 ;* V13 loc8         [V13    ] (  0,  0   )    long  ->  zero-ref    single-def
-;  V14 loc9         [V14,T08] (  3,  4.50)    long  ->  r14         single-def
-;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  r13        
+;  V14 loc9         [V14,T08] (  3,  4.50)    long  ->  rcx         single-def
+;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  rdi        
 ;* V16 loc11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.RuntimeTypeHandle>
 ;* V17 loc12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    <System.RuntimeMethodHandle>
 ;  V18 OutArgs      [V18    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -35,7 +35,7 @@
 ;* V25 tmp7         [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V26 tmp8         [V26,T09] (  3,  2.50)    long  ->  r13         single-def "field V01._value (fldOffset=0x0)" P-INDEP
 ;  V27 tmp9         [V27    ] (  5,  4   )    long  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed "field V07._value (fldOffset=0x0)" P-DEP
-;  V28 tmp10        [V28,T02] (  4,  8   )    long  ->  rdx         "field V16._value (fldOffset=0x0)" P-INDEP
+;  V28 tmp10        [V28,T02] (  4,  8   )    long  ->  rsi         "field V16._value (fldOffset=0x0)" P-INDEP
 ;  V29 tmp11        [V29,T13] (  2,  2   )    long  ->  rbx         single-def "field V17._value (fldOffset=0x0)" P-INDEP
 ;
 ; Lcl frame size = 136
@@ -130,7 +130,7 @@ G_M51005_IG06:        ; bbWeight=1, gcVars=0000000000000400 {V08}, gcrefRegs=808
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M51005_IG14
+       jne      G_M51005_IG18
                        ;; size=82 bbWeight=1 PerfScore 43.00
 G_M51005_IG07:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
@@ -147,46 +147,86 @@ G_M51005_IG09:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        xor      edi, edi
        jmp      SHORT G_M51005_IG11
                        ;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M51005_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M51005_IG10:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      edi, r12d
        sub      edi, 1
-       jo       G_M51005_IG15
+       jo       SHORT G_M51005_IG14
        imul     edi, edi, 8
-       jo       G_M51005_IG15
-                       ;; size=21 bbWeight=0.50 PerfScore 2.25
+       jo       SHORT G_M51005_IG14
+                       ;; size=13 bbWeight=0.50 PerfScore 2.25
 G_M51005_IG11:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        add      edi, 48
-       jo       G_M51005_IG15
+       jo       SHORT G_M51005_IG14
        movsxd   rdi, edi
        call     System.Runtime.InteropServices.NativeMemory:Alloc(ulong):ulong
        ; gcr arg pop 0
        test     rax, rax
-       je       G_M51005_IG17
+       je       SHORT G_M51005_IG13
        mov      qword ptr [rax], r13
        mov      qword ptr [rax+0x08], r14
        movups   xmm0, xmmword ptr [rbp-0x38]
        movups   xmmword ptr [rax+0x10], xmm0
        mov      dword ptr [rax+0x20], r12d
        cmp      byte  ptr [rax], al
-       lea      r14, [rax+0x28]
-       xor      r13d, r13d
+       lea      rcx, [rax+0x28]
+       xor      edi, edi
        test     r12d, r12d
-       jle      SHORT G_M51005_IG13
+       jle      SHORT G_M51005_IG17
        test     rbx, rbx
-       je       G_M51005_IG18
+       je       SHORT G_M51005_IG16
        cmp      dword ptr [rbx+0x08], r12d
-       jl       G_M51005_IG18
-                       ;; size=78 bbWeight=0.50 PerfScore 11.00
+       jl       SHORT G_M51005_IG16
+                       ;; size=61 bbWeight=0.50 PerfScore 11.00
 G_M51005_IG12:        ; bbWeight=3.96, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, r13d
-       mov      rdx, qword ptr [rbx+8*rcx+0x10]
-       movsxd   rcx, r13d
-       mov      qword ptr [r14+8*rcx], rdx
-       inc      r13d
-       cmp      r13d, r12d
+       mov      esi, edi
+       mov      rsi, qword ptr [rbx+8*rsi+0x10]
+       movsxd   rdx, edi
+       mov      qword ptr [rcx+8*rdx], rsi
+       inc      edi
+       cmp      edi, r12d
        jl       SHORT G_M51005_IG12
-                       ;; size=23 bbWeight=3.96 PerfScore 19.80
-G_M51005_IG13:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M51005_IG17
+                       ;; size=23 bbWeight=3.96 PerfScore 27.72
+G_M51005_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx r15]
+       lea      rdi, [(reloc)]      ; <unknown class>
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+       call     <unknown method>
+       ; gcrRegs -[rax rdi]
+       ; gcr arg pop 0
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
+       call     CORINFO_HELP_THROW
+       ; gcrRegs -[rbx rdi]
+       ; gcr arg pop 0
+                       ;; size=31 bbWeight=0 PerfScore 0.00
+G_M51005_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_OVERFLOW
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG16:        ; bbWeight=0.04, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx r15]
+       cmp      edi, dword ptr [rbx+0x08]
+       jae      SHORT G_M51005_IG15
+       mov      esi, edi
+       mov      rsi, qword ptr [rbx+8*rsi+0x10]
+       movsxd   rdx, edi
+       mov      qword ptr [rcx+8*rdx], rsi
+       inc      edi
+       cmp      edi, r12d
+       jl       SHORT G_M51005_IG16
+                       ;; size=26 bbWeight=0.04 PerfScore 0.36
+G_M51005_IG17:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        inc      rax
        mov      qword ptr [rbp-0x70], rax
@@ -214,51 +254,10 @@ G_M51005_IG13:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
        ; gcrRegs -[rdi r15]
        ; gcr arg pop 0
                        ;; size=69 bbWeight=0.50 PerfScore 20.75
-G_M51005_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M51005_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rbx, qword ptr [rbp-0x70]
-       jmp      SHORT G_M51005_IG19
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M51005_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_OVERFLOW
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       lea      rdi, [(reloc)]      ; <unknown class>
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
-       call     <unknown method>
-       ; gcrRegs -[rax rdi]
-       ; gcr arg pop 0
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rbx rdi]
-       ; gcr arg pop 0
-                       ;; size=31 bbWeight=0 PerfScore 0.00
-G_M51005_IG18:        ; bbWeight=0.04, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx r15]
-       cmp      r13d, dword ptr [rbx+0x08]
-       jae      SHORT G_M51005_IG16
-       mov      edi, r13d
-       mov      rdx, qword ptr [rbx+8*rdi+0x10]
-       movsxd   rdi, r13d
-       mov      qword ptr [r14+8*rdi], rdx
-       inc      r13d
-       cmp      r13d, r12d
-       jl       SHORT G_M51005_IG18
-       jmp      G_M51005_IG13
-                       ;; size=34 bbWeight=0.04 PerfScore 0.44
+                       ;; size=4 bbWeight=1 PerfScore 1.00
 G_M51005_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx r15]
        mov      rdi, gword ptr [rbp-0x80]
        ; gcrRegs +[rdi]
        ; GC ptr vars -{V08}
@@ -311,7 +310,7 @@ G_M51005_IG24:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 584, prolog size 70, PerfScore 141.32, instruction count 170, allocated bytes for code 584 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
+; Total bytes of code 549, prolog size 70, PerfScore 147.16, instruction count 169, allocated bytes for code 549 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-35 (-5.32%) : 9029.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)

@@ -23,15 +23,15 @@
 ;  V13 loc9         [V13,T08] (  7, 14   )  ushort  ->  rsi        
 ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )     int  ->  zero-ref   
-;  V16 tmp2         [V16,T00] (  3, 96   )     int  ->  rcx         "dup spill"
+;  V16 tmp2         [V16,T00] (  3, 96   )     int  ->  rsi         "dup spill"
 ;* V17 tmp3         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;  V18 tmp4         [V18,T12] (  2,  8   )  ushort  ->  rcx         "Inlining Arg"
-;  V19 tmp5         [V19,T13] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
+;  V19 tmp5         [V19,T13] (  3,  6   )    long  ->   r8         "Inline stloc first use temp"
 ;* V20 tmp6         [V20    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V21 tmp7         [V21    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp8         [V22    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp9         [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V24 cse0         [V24,T01] (  3, 48   )     int  ->  rcx         "CSE - aggressive"
+;  V24 cse0         [V24,T01] (  3, 48   )     int  ->  rsi         "CSE - aggressive"
 ;  V25 cse1         [V25,T10] (  5, 10   )     int  ->  rsi         multi-def "CSE - moderate"
 ;  V26 cse2         [V26,T18] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;
@@ -56,232 +56,235 @@ G_M23448_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        xor      r12d, r12d
        xor      edx, edx
        xor      eax, eax
-       mov      dword ptr [rbp-0x2C], eax
        xor      r9d, r9d
        mov      dword ptr [rbp-0x30], r9d
-       xor      r10d, r10d
+       xor      edi, edi
+       mov      r10d, 1
        mov      r11d, 1
-       mov      r8d, 1
        movsxd   rcx, r13d
        cmp      word  ptr [r15+2*rcx], 58
        jne      SHORT G_M23448_IG04
-                       ;; size=43 bbWeight=1 PerfScore 8.00
+                       ;; size=39 bbWeight=1 PerfScore 7.00
 G_M23448_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        lea      ecx, [r13+0x01]
        cmp      ecx, dword ptr [rbx]
-       jge      G_M23448_IG29
+       jge      G_M23448_IG27
        movsxd   rcx, ecx
        cmp      word  ptr [r15+2*rcx], 58
-       jne      G_M23448_IG29
+       jne      G_M23448_IG27
                        ;; size=27 bbWeight=0.50 PerfScore 4.38
-G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      dword ptr [rbp-0x48], r13d
        mov      ecx, dword ptr [rbp-0x48]
        cmp      ecx, dword ptr [rbx]
-       jge      SHORT G_M23448_IG07
-                       ;; size=11 bbWeight=0.50 PerfScore 3.00
+       jge      G_M23448_IG21
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
 G_M23448_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      dword ptr [rbp-0x34], r10d
-       test     r10d, r10d
-       jne      SHORT G_M23448_IG08
-                       ;; size=9 bbWeight=4 PerfScore 9.00
+       test     edi, edi
+       jne      SHORT G_M23448_IG07
+                       ;; size=4 bbWeight=4 PerfScore 5.00
 G_M23448_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        movsxd   rcx, dword ptr [rbp-0x48]
        movzx    rsi, word  ptr [r15+2*rcx]
        mov      ecx, esi
        add      ecx, -48
-       mov      edi, ecx
+       mov      r8d, ecx
        mov      r9, 0xD1FFAB1E
-       mov      ecx, edi
+       mov      ecx, r8d
        shl      r9, cl
-       add      rdi, -64
-       and      rdi, r9
-       jge      SHORT G_M23448_IG10
-       jmp      SHORT G_M23448_IG09
-                       ;; size=42 bbWeight=2 PerfScore 23.50
-G_M23448_IG07:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       mov      dword ptr [rbp-0x34], r10d
-       mov      dword ptr [rbp-0x38], r11d
-       jmp      G_M23448_IG23
-                       ;; size=13 bbWeight=0.25 PerfScore 1.00
-G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       add      r8, -64
+       and      r8, r9
+       jge      SHORT G_M23448_IG09
+       jmp      SHORT G_M23448_IG08
+                       ;; size=44 bbWeight=2 PerfScore 23.50
+G_M23448_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        movsxd   rsi, dword ptr [rbp-0x48]
        movzx    rsi, word  ptr [r15+2*rsi]
-       lea      edi, [rsi-0x30]
-       cmp      edi, 9
-       ja       SHORT G_M23448_IG10
+       lea      ecx, [rsi-0x30]
+       cmp      ecx, 9
+       ja       SHORT G_M23448_IG09
                        ;; size=17 bbWeight=2 PerfScore 13.50
-G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        inc      edx
-       xor      r11d, r11d
-       mov      dword ptr [rbp-0x38], r11d
-       jmp      G_M23448_IG22
-                       ;; size=14 bbWeight=2 PerfScore 7.00
-G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r10d, r10d
+       jmp      G_M23448_IG20
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      edx, 4
-       jg       G_M23448_IG29
+       jg       G_M23448_IG27
        test     edx, edx
-       je       SHORT G_M23448_IG11
+       je       SHORT G_M23448_IG10
        inc      r12d
-       mov      r8d, dword ptr [rbp-0x48]
-       sub      r8d, edx
+       mov      r11d, dword ptr [rbp-0x48]
+       sub      r11d, edx
                        ;; size=23 bbWeight=2 PerfScore 8.00
-G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 46
-       ja       SHORT G_M23448_IG12
+       ja       SHORT G_M23448_IG11
        cmp      esi, 37
-       je       SHORT G_M23448_IG14
+       je       SHORT G_M23448_IG12
        cmp      esi, 46
-       jne      G_M23448_IG29
+       jne      G_M23448_IG27
        cmp      dword ptr [rbp-0x30], 0
-       mov      dword ptr [rbp-0x38], r11d
-       jne      G_M23448_IG29
+       mov      dword ptr [rbp-0x34], edi
+       mov      dword ptr [rbp-0x38], r10d
+       mov      dword ptr [rbp-0x2C], eax
+       jne      G_M23448_IG27
+       jmp      G_M23448_IG18
+                       ;; size=44 bbWeight=2 PerfScore 23.50
+G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      esi, 47
+       je       G_M23448_IG17
+       cmp      esi, 58
+       je       SHORT G_M23448_IG15
+       cmp      esi, 93
+       je       SHORT G_M23448_IG14
+       jmp      G_M23448_IG23
+                       ;; size=24 bbWeight=2 PerfScore 11.50
+G_M23448_IG12:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       mov      esi, dword ptr [rbp-0x48]
+       inc      esi
+       mov      dword ptr [rbp-0x48], esi
+       cmp      esi, dword ptr [rbx]
+       je       G_M23448_IG27
+       movsxd   rsi, dword ptr [rbp-0x48]
+       movzx    rsi, word  ptr [r15+2*rsi]
+       cmp      esi, 93
+       je       SHORT G_M23448_IG14
+       cmp      esi, 47
+       jne      SHORT G_M23448_IG12
+                       ;; size=35 bbWeight=16 PerfScore 220.00
+G_M23448_IG13:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       jmp      SHORT G_M23448_IG17
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M23448_IG14:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       mov      r13d, dword ptr [rbp-0x48]
+       mov      esi, dword ptr [rbx]
+       mov      dword ptr [rbp-0x48], esi
+       jmp      G_M23448_IG20
+                       ;; size=14 bbWeight=2 PerfScore 12.00
+G_M23448_IG15:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      dword ptr [rbp-0x48], 0
+       jle      SHORT G_M23448_IG16
+       mov      r10d, dword ptr [rbp-0x48]
+       dec      r10d
+       movsxd   rdx, r10d
+       cmp      word  ptr [r15+2*rdx], 58
+       jne      SHORT G_M23448_IG16
+       test     eax, eax
+       jne      G_M23448_IG27
+       mov      dword ptr [rbp-0x2C], 1
+       xor      r10d, r10d
+       mov      dword ptr [rbp-0x38], r10d
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M23448_IG19
+                       ;; size=51 bbWeight=2 PerfScore 30.00
+G_M23448_IG16:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       mov      dword ptr [rbp-0x38], 1
+       jmp      SHORT G_M23448_IG19
+                       ;; size=9 bbWeight=8 PerfScore 24.00
+G_M23448_IG17:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       xor      edx, edx
+       test     r12d, r12d
+       sete     dl
+       or       edi, edx
+       movzx    rdx, r14b
+       or       edx, edi
+       jne      G_M23448_IG27
+       mov      dword ptr [rbp-0x34], 1
+       mov      edi, dword ptr [rbp-0x34]
+       jmp      SHORT G_M23448_IG16
+                       ;; size=34 bbWeight=16 PerfScore 116.00
+G_M23448_IG18:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      edx, dword ptr [rbx]
        mov      dword ptr [rbp-0x48], edx
        lea      rdx, [rbp-0x48]
        mov      rdi, r15
-       mov      dword ptr [rbp-0x3C], r8d
-       mov      esi, r8d
+       mov      dword ptr [rbp-0x3C], r11d
+       mov      esi, r11d
        mov      ecx, 1
        xor      r8d, r8d
        call     <unknown method>
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M23448_IG29
-       jmp      G_M23448_IG20
-                       ;; size=78 bbWeight=2 PerfScore 35.00
-G_M23448_IG12:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      esi, 47
-       je       G_M23448_IG19
-       cmp      esi, 58
-       je       SHORT G_M23448_IG17
-       cmp      esi, 93
-       je       SHORT G_M23448_IG16
-                       ;; size=19 bbWeight=2 PerfScore 7.50
-G_M23448_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rbx]
-       jmp      G_M23448_IG29
-                       ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M23448_IG14:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       ; byrRegs +[rbx]
-       mov      ecx, dword ptr [rbp-0x48]
-       inc      ecx
-       mov      dword ptr [rbp-0x48], ecx
-       cmp      ecx, dword ptr [rbx]
-       je       G_M23448_IG29
-       movsxd   rcx, dword ptr [rbp-0x48]
-       movzx    rcx, word  ptr [r15+2*rcx]
-       cmp      ecx, 93
-       je       SHORT G_M23448_IG16
-       cmp      ecx, 47
-       jne      SHORT G_M23448_IG14
-                       ;; size=35 bbWeight=16 PerfScore 220.00
...

+17 (+6.25%) : 17431.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)

@@ -11,7 +11,7 @@
 ;  V01 arg1         [V01,T03] (  3, 18   )    long  ->  rbx         single-def
 ;  V02 arg2         [V02,T04] (  3, 18   )  ushort  ->  r15         single-def
 ;  V03 arg3         [V03,T05] (  3, 18   )    long  ->  r14         single-def
-;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  r12        
+;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  registers  
 ;  V05 loc1         [V05,T02] (  4, 25   )   ubyte  ->  [rbp-0x2C] 
 ;  V06 loc2         [V06    ] (  2, 16.50)  ushort  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc3         [V07,T13] (  3,  1.50)    long  ->  rax        
@@ -53,7 +53,7 @@ G_M48740_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=5 bbWeight=1 PerfScore 0.50
 G_M48740_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        test     r12, r12
-       je       SHORT G_M48740_IG09
+       je       SHORT G_M48740_IG07
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdx, r15w
@@ -66,55 +66,62 @@ G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     System.Runtime.DispatchResolve:FindImplSlotForCurrentType(ulong,ulong,ushort,ubyte,ulong,ulong):ubyte
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M48740_IG10
+       jne      SHORT G_M48740_IG11
        mov      edi, dword ptr [r12]
        shr      edi, 26
        and      edi, 31
        cmp      edi, 23
-       je       SHORT G_M48740_IG08
+       je       SHORT G_M48740_IG06
                        ;; size=46 bbWeight=16 PerfScore 144.00
 G_M48740_IG05:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 24
-       je       SHORT G_M48740_IG08
+       jne      SHORT G_M48740_IG08
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG06:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       lea      r12, [(reloc)]
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M48740_IG04
+                       ;; size=12 bbWeight=16 PerfScore 56.00
+G_M48740_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rbp-0x2C], eax
+       jmp      SHORT G_M48740_IG09
+                       ;; size=5 bbWeight=4 PerfScore 12.00
+G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r12
        call     Internal.Runtime.MethodTable:get_NonArrayBaseType():ulong:this
        ; gcr arg pop 0
        mov      r12, rax
        test     r12, r12
-       mov      eax, dword ptr [rbp-0x2C]
-       jne      SHORT G_M48740_IG04
-                       ;; size=19 bbWeight=16 PerfScore 60.00
-G_M48740_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M48740_IG09
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       lea      r12, [(reloc)]
+       jne      SHORT G_M48740_IG10
+                       ;; size=16 bbWeight=16 PerfScore 44.00
+G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [rbp-0x2C], 0
+       jne      SHORT G_M48740_IG14
+       mov      r12d, 1
+       mov      rax, r13
+       mov      rcx, rax
+       mov      eax, r12d
+       mov      r12, rcx
+       jmp      SHORT G_M48740_IG03
+                       ;; size=26 bbWeight=4 PerfScore 25.00
+G_M48740_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp-0x2C]
        jmp      SHORT G_M48740_IG04
-                       ;; size=12 bbWeight=16 PerfScore 56.00
-G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       test     eax, eax
-       jne      SHORT G_M48740_IG13
-       mov      eax, 1
-       mov      r12, r13
-       jmp      SHORT G_M48740_IG03
-                       ;; size=14 bbWeight=4 PerfScore 15.00
-G_M48740_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=5 bbWeight=8 PerfScore 24.00
+G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, word  ptr [rbp-0x38]
        mov      eax, edi
        movzx    rcx, word  ptr [r12+0x10]
        cmp      eax, ecx
-       jge      SHORT G_M48740_IG11
+       jge      SHORT G_M48740_IG12
        mov      rax, qword ptr [r13+8*rdi+0x18]
-       jmp      SHORT G_M48740_IG12
+       jmp      SHORT G_M48740_IG13
                        ;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 0xFFFF
-       je       SHORT G_M48740_IG15
-       cmp      edi, 0xFFFE
        je       SHORT G_M48740_IG16
+       cmp      edi, 0xFFFE
+       je       SHORT G_M48740_IG17
        sub      edi, ecx
        movzx    rbx, di
        mov      rdi, r12
@@ -127,7 +134,7 @@ G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        movsxd   rdi, dword ptr [rax]
        add      rax, rdi
                        ;; size=41 bbWeight=0.50 PerfScore 4.62
-G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M48740_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -137,10 +144,10 @@ G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M48740_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -150,7 +157,7 @@ G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      edi, 11
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -161,7 +168,7 @@ G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
                        ;; size=18 bbWeight=0 PerfScore 0.00
-G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48740_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 12
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -174,7 +181,7 @@ G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=19 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 272, prolog size 31, PerfScore 320.50, instruction count 93, allocated bytes for code 272 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
+; Total bytes of code 289, prolog size 31, PerfScore 346.50, instruction count 98, allocated bytes for code 289 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
 ; ============================================================
 
 Cfi Info:

+17 (+6.25%) : 20416.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)

@@ -11,7 +11,7 @@
 ;  V01 arg1         [V01,T03] (  3, 18   )    long  ->  rbx         single-def
 ;  V02 arg2         [V02,T04] (  3, 18   )  ushort  ->  r15         single-def
 ;  V03 arg3         [V03,T05] (  3, 18   )    long  ->  r14         single-def
-;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  r12        
+;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  registers  
 ;  V05 loc1         [V05,T02] (  4, 25   )   ubyte  ->  [rbp-0x2C] 
 ;  V06 loc2         [V06    ] (  2, 16.50)  ushort  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc3         [V07,T13] (  3,  1.50)    long  ->  rax        
@@ -53,7 +53,7 @@ G_M48740_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=5 bbWeight=1 PerfScore 0.50
 G_M48740_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        test     r12, r12
-       je       SHORT G_M48740_IG09
+       je       SHORT G_M48740_IG07
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdx, r15w
@@ -66,55 +66,62 @@ G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     System.Runtime.DispatchResolve:FindImplSlotForCurrentType(ulong,ulong,ushort,ubyte,ulong,ulong):ubyte
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M48740_IG10
+       jne      SHORT G_M48740_IG11
        mov      edi, dword ptr [r12]
        shr      edi, 26
        and      edi, 31
        cmp      edi, 23
-       je       SHORT G_M48740_IG08
+       je       SHORT G_M48740_IG06
                        ;; size=46 bbWeight=16 PerfScore 144.00
 G_M48740_IG05:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 24
-       je       SHORT G_M48740_IG08
+       jne      SHORT G_M48740_IG08
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG06:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       lea      r12, [(reloc)]
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M48740_IG04
+                       ;; size=12 bbWeight=16 PerfScore 56.00
+G_M48740_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rbp-0x2C], eax
+       jmp      SHORT G_M48740_IG09
+                       ;; size=5 bbWeight=4 PerfScore 12.00
+G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r12
        call     Internal.Runtime.MethodTable:get_NonArrayBaseType():ulong:this
        ; gcr arg pop 0
        mov      r12, rax
        test     r12, r12
-       mov      eax, dword ptr [rbp-0x2C]
-       jne      SHORT G_M48740_IG04
-                       ;; size=19 bbWeight=16 PerfScore 60.00
-G_M48740_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M48740_IG09
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       lea      r12, [(reloc)]
+       jne      SHORT G_M48740_IG10
+                       ;; size=16 bbWeight=16 PerfScore 44.00
+G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [rbp-0x2C], 0
+       jne      SHORT G_M48740_IG14
+       mov      r12d, 1
+       mov      rax, r13
+       mov      rcx, rax
+       mov      eax, r12d
+       mov      r12, rcx
+       jmp      SHORT G_M48740_IG03
+                       ;; size=26 bbWeight=4 PerfScore 25.00
+G_M48740_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp-0x2C]
        jmp      SHORT G_M48740_IG04
-                       ;; size=12 bbWeight=16 PerfScore 56.00
-G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       test     eax, eax
-       jne      SHORT G_M48740_IG13
-       mov      eax, 1
-       mov      r12, r13
-       jmp      SHORT G_M48740_IG03
-                       ;; size=14 bbWeight=4 PerfScore 15.00
-G_M48740_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=5 bbWeight=8 PerfScore 24.00
+G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, word  ptr [rbp-0x38]
        mov      eax, edi
        movzx    rcx, word  ptr [r12+0x10]
        cmp      eax, ecx
-       jge      SHORT G_M48740_IG11
+       jge      SHORT G_M48740_IG12
        mov      rax, qword ptr [r13+8*rdi+0x18]
-       jmp      SHORT G_M48740_IG12
+       jmp      SHORT G_M48740_IG13
                        ;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 0xFFFF
-       je       SHORT G_M48740_IG15
-       cmp      edi, 0xFFFE
        je       SHORT G_M48740_IG16
+       cmp      edi, 0xFFFE
+       je       SHORT G_M48740_IG17
        sub      edi, ecx
        movzx    rbx, di
        mov      rdi, r12
@@ -127,7 +134,7 @@ G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        movsxd   rdi, dword ptr [rax]
        add      rax, rdi
                        ;; size=41 bbWeight=0.50 PerfScore 4.62
-G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M48740_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -137,10 +144,10 @@ G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M48740_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -150,7 +157,7 @@ G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      edi, 11
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -161,7 +168,7 @@ G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
                        ;; size=18 bbWeight=0 PerfScore 0.00
-G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48740_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 12
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -174,7 +181,7 @@ G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=19 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 272, prolog size 31, PerfScore 320.50, instruction count 93, allocated bytes for code 272 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
+; Total bytes of code 289, prolog size 31, PerfScore 346.50, instruction count 98, allocated bytes for code 289 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
 ; ============================================================
 
 Cfi Info:

+17 (+6.25%) : 23904.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)

@@ -11,7 +11,7 @@
 ;  V01 arg1         [V01,T03] (  3, 18   )    long  ->  rbx         single-def
 ;  V02 arg2         [V02,T04] (  3, 18   )  ushort  ->  r15         single-def
 ;  V03 arg3         [V03,T05] (  3, 18   )    long  ->  r14         single-def
-;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  r12        
+;  V04 loc0         [V04,T00] ( 11,110   )    long  ->  registers  
 ;  V05 loc1         [V05,T02] (  4, 25   )   ubyte  ->  [rbp-0x2C] 
 ;  V06 loc2         [V06    ] (  2, 16.50)  ushort  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc3         [V07,T13] (  3,  1.50)    long  ->  rax        
@@ -53,7 +53,7 @@ G_M48740_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=5 bbWeight=1 PerfScore 0.50
 G_M48740_IG03:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        test     r12, r12
-       je       SHORT G_M48740_IG09
+       je       SHORT G_M48740_IG07
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdx, r15w
@@ -66,55 +66,62 @@ G_M48740_IG04:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     System.Runtime.DispatchResolve:FindImplSlotForCurrentType(ulong,ulong,ushort,ubyte,ulong,ulong):ubyte
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M48740_IG10
+       jne      SHORT G_M48740_IG11
        mov      edi, dword ptr [r12]
        shr      edi, 26
        and      edi, 31
        cmp      edi, 23
-       je       SHORT G_M48740_IG08
+       je       SHORT G_M48740_IG06
                        ;; size=46 bbWeight=16 PerfScore 144.00
 G_M48740_IG05:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 24
-       je       SHORT G_M48740_IG08
+       jne      SHORT G_M48740_IG08
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M48740_IG06:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       lea      r12, [(reloc)]
+       mov      eax, dword ptr [rbp-0x2C]
+       jmp      SHORT G_M48740_IG04
+                       ;; size=12 bbWeight=16 PerfScore 56.00
+G_M48740_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rbp-0x2C], eax
+       jmp      SHORT G_M48740_IG09
+                       ;; size=5 bbWeight=4 PerfScore 12.00
+G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r12
        call     Internal.Runtime.MethodTable:get_NonArrayBaseType():ulong:this
        ; gcr arg pop 0
        mov      r12, rax
        test     r12, r12
-       mov      eax, dword ptr [rbp-0x2C]
-       jne      SHORT G_M48740_IG04
-                       ;; size=19 bbWeight=16 PerfScore 60.00
-G_M48740_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M48740_IG09
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M48740_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       lea      r12, [(reloc)]
+       jne      SHORT G_M48740_IG10
+                       ;; size=16 bbWeight=16 PerfScore 44.00
+G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [rbp-0x2C], 0
+       jne      SHORT G_M48740_IG14
+       mov      r12d, 1
+       mov      rax, r13
+       mov      rcx, rax
+       mov      eax, r12d
+       mov      r12, rcx
+       jmp      SHORT G_M48740_IG03
+                       ;; size=26 bbWeight=4 PerfScore 25.00
+G_M48740_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp-0x2C]
        jmp      SHORT G_M48740_IG04
-                       ;; size=12 bbWeight=16 PerfScore 56.00
-G_M48740_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       test     eax, eax
-       jne      SHORT G_M48740_IG13
-       mov      eax, 1
-       mov      r12, r13
-       jmp      SHORT G_M48740_IG03
-                       ;; size=14 bbWeight=4 PerfScore 15.00
-G_M48740_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=5 bbWeight=8 PerfScore 24.00
+G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movzx    rdi, word  ptr [rbp-0x38]
        mov      eax, edi
        movzx    rcx, word  ptr [r12+0x10]
        cmp      eax, ecx
-       jge      SHORT G_M48740_IG11
+       jge      SHORT G_M48740_IG12
        mov      rax, qword ptr [r13+8*rdi+0x18]
-       jmp      SHORT G_M48740_IG12
+       jmp      SHORT G_M48740_IG13
                        ;; size=23 bbWeight=0.50 PerfScore 4.25
-G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      edi, 0xFFFF
-       je       SHORT G_M48740_IG15
-       cmp      edi, 0xFFFE
        je       SHORT G_M48740_IG16
+       cmp      edi, 0xFFFE
+       je       SHORT G_M48740_IG17
        sub      edi, ecx
        movzx    rbx, di
        mov      rdi, r12
@@ -127,7 +134,7 @@ G_M48740_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        movsxd   rdi, dword ptr [rax]
        add      rax, rdi
                        ;; size=41 bbWeight=0.50 PerfScore 4.62
-G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M48740_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -137,10 +144,10 @@ G_M48740_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M48740_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -150,7 +157,7 @@ G_M48740_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48740_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      edi, 11
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -161,7 +168,7 @@ G_M48740_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rax rdi]
        ; gcr arg pop 0
                        ;; size=18 bbWeight=0 PerfScore 0.00
-G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48740_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      edi, 12
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -174,7 +181,7 @@ G_M48740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=19 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 272, prolog size 31, PerfScore 320.50, instruction count 93, allocated bytes for code 272 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
+; Total bytes of code 289, prolog size 31, PerfScore 346.50, instruction count 98, allocated bytes for code 289 (MethodHash=d484419b) for method System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
 ; ============================================================
 
 Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 1,430 455 249 726 -4,239 +5,551
benchmarks.run_pgo.linux.x64.checked.mch 13,830 10,336 1,229 2,265 -49,136 +20,892
benchmarks.run_tiered.linux.x64.checked.mch 595 166 86 343 -1,885 +2,134
coreclr_tests.run.linux.x64.checked.mch 23,547 14,654 3,406 5,487 -80,665 +24,147
libraries.crossgen2.linux.x64.checked.mch 4,711 998 517 3,196 -8,328 +5,640
libraries.pmi.linux.x64.checked.mch 10,510 3,150 2,066 5,294 -23,797 +19,373
libraries_tests.run.linux.x64.Release.mch 43,541 17,573 11,371 14,597 -210,166 +108,177
librariestestsnotieredcompilation.run.linux.x64.Release.mch 18,583 5,031 2,237 11,315 -42,628 +29,781
realworld.run.linux.x64.checked.mch 1,671 481 255 935 -5,206 +2,254
smoke_tests.nativeaot.linux.x64.checked.mch 915 235 124 556 -1,951 +1,182
119,333 53,079 21,540 44,714 -428,001 +219,131

Context information

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

jit-analyze output

benchmarks.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13736862 (overridden on cmd)
Total bytes of diff: 13738174 (overridden on cmd)
Total bytes of delta: 1312 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         241 : 30915.dasm (7.48 % of base)
         233 : 29949.dasm (7.21 % of base)
         228 : 17555.dasm (6.42 % of base)
         176 : 17192.dasm (8.48 % of base)
         123 : 8233.dasm (6.39 % of base)
         122 : 2133.dasm (2.82 % of base)
         113 : 16446.dasm (6.49 % of base)
         113 : 14621.dasm (6.60 % of base)
         112 : 10415.dasm (6.91 % of base)
         107 : 7726.dasm (3.54 % of base)
          96 : 20041.dasm (1.93 % of base)
          89 : 16515.dasm (6.05 % of base)
          78 : 14530.dasm (2.40 % of base)
          77 : 7728.dasm (3.94 % of base)
          73 : 16503.dasm (7.38 % of base)
          73 : 4896.dasm (1.86 % of base)
          72 : 10409.dasm (1.47 % of base)
          69 : 19723.dasm (5.76 % of base)
          68 : 11628.dasm (4.74 % of base)
          68 : 519.dasm (4.29 % of base)

Top file improvements (bytes):
        -114 : 4151.dasm (-1.54 % of base)
        -100 : 6788.dasm (-5.08 % of base)
         -95 : 33625.dasm (-0.88 % of base)
         -84 : 20635.dasm (-7.64 % of base)
         -79 : 6786.dasm (-2.89 % of base)
         -78 : 10155.dasm (-3.76 % of base)
         -78 : 13018.dasm (-1.15 % of base)
         -77 : 21525.dasm (-1.35 % of base)
         -62 : 26786.dasm (-6.60 % of base)
         -59 : 1534.dasm (-2.48 % of base)
         -57 : 17073.dasm (-3.30 % of base)
         -56 : 9876.dasm (-3.17 % of base)
         -55 : 27503.dasm (-8.12 % of base)
         -51 : 14397.dasm (-5.40 % of base)
         -49 : 4136.dasm (-0.27 % of base)
         -49 : 28387.dasm (-0.27 % of base)
         -46 : 10656.dasm (-1.66 % of base)
         -41 : 22386.dasm (-1.50 % of base)
         -39 : 14680.dasm (-2.89 % of base)
         -38 : 11891.dasm (-2.89 % of base)

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

Top method regressions (bytes):
         241 (7.48 % of base) : 30915.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
         233 (7.21 % of base) : 29949.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
         228 (6.42 % of base) : 17555.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
         176 (8.48 % of base) : 17192.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (FullOpts)
         123 (6.39 % of base) : 8233.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
         122 (2.82 % of base) : 2133.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         113 (6.60 % of base) : 14621.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsync>d__4:MoveNext():this (FullOpts)
         113 (6.49 % of base) : 16446.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsyncWithCancellationToken>d__8:MoveNext():this (FullOpts)
         112 (6.91 % of base) : 10415.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         107 (3.54 % of base) : 7726.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (FullOpts)
          96 (1.93 % of base) : 20041.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          89 (6.05 % of base) : 16515.dasm - System.Formats.Tar.TarHelpers+<AdvanceStreamAsync>d__8:MoveNext():this (FullOpts)
          78 (2.40 % of base) : 14530.dasm - System.Formats.Tar.TarHeader+<WriteAsPaxAsync>d__93:MoveNext():this (FullOpts)
          77 (3.94 % of base) : 7728.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (FullOpts)
          73 (1.86 % of base) : 4896.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (FullOpts)
          73 (7.38 % of base) : 16503.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
          72 (1.47 % of base) : 10409.dasm - System.Security.Cryptography.CryptoStream+<WriteAsyncCore>d__53:MoveNext():this (FullOpts)
          69 (5.76 % of base) : 19723.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (FullOpts)
          68 (4.74 % of base) : 11628.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (FullOpts)
          68 (4.29 % of base) : 519.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)

Top method improvements (bytes):
        -114 (-1.54 % of base) : 4151.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (FullOpts)
        -100 (-5.08 % of base) : 6788.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -95 (-0.88 % of base) : 33625.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         -84 (-7.64 % of base) : 20635.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -79 (-2.89 % of base) : 6786.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -78 (-1.15 % of base) : 13018.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (FullOpts)
         -78 (-3.76 % of base) : 10155.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -77 (-1.35 % of base) : 21525.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
         -62 (-6.60 % of base) : 26786.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -59 (-2.48 % of base) : 1534.dasm - BenchmarksGame.KNucleotide_9:Bench(BenchmarksGame.NucleotideHelpers,ubyte):ubyte (FullOpts)
         -57 (-3.30 % of base) : 17073.dasm - System.Net.WebSockets.ManagedWebSocket:SendFrameLockAcquiredNonCancelableAsync(ubyte,ubyte,ubyte,System.ReadOnlyMemory`1[ubyte]):System.Threading.Tasks.ValueTask:this (FullOpts)
         -56 (-3.17 % of base) : 9876.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
         -55 (-8.12 % of base) : 27503.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[int],System.Collections.Immutable.ImmutableList`1+Builder[int],int,int,ubyte):this (FullOpts)
         -51 (-5.40 % of base) : 14397.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         -49 (-0.27 % of base) : 28387.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -49 (-0.27 % of base) : 4136.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -46 (-1.66 % of base) : 10656.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -41 (-1.50 % of base) : 22386.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:DefaultVisit(Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -39 (-2.89 % of base) : 14680.dasm - System.UriHelper:UnescapeString(ulong,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (FullOpts)
         -38 (-2.89 % of base) : 11891.dasm - System.Xml.XmlWellFormedWriter:PushNamespaceImplicit(System.String,System.String):this (FullOpts)

Top method regressions (percentages):
          63 (9.06 % of base) : 16513.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
         176 (8.48 % of base) : 17192.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (FullOpts)
          54 (7.70 % of base) : 15294.dasm - System.Threading.Tasks.ValueTaskPerfTest+<AwaitTcsAsValueTask>d__21:MoveNext():this (FullOpts)
         241 (7.48 % of base) : 30915.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
          73 (7.38 % of base) : 16503.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
         233 (7.21 % of base) : 29949.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
         112 (6.91 % of base) : 10415.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         113 (6.60 % of base) : 14621.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsync>d__4:MoveNext():this (FullOpts)
         113 (6.49 % of base) : 16446.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsyncWithCancellationToken>d__8:MoveNext():this (FullOpts)
         228 (6.42 % of base) : 17555.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
         123 (6.39 % of base) : 8233.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
          89 (6.05 % of base) : 16515.dasm - System.Formats.Tar.TarHelpers+<AdvanceStreamAsync>d__8:MoveNext():this (FullOpts)
          63 (5.88 % of base) : 14549.dasm - System.Formats.Tar.TarWriter+<WriteFinalRecordsAsync>d__23:MoveNext():this (FullOpts)
          69 (5.76 % of base) : 19723.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (FullOpts)
          56 (5.59 % of base) : 11731.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedTask_ConfigureAwait>d__9:MoveNext():this (FullOpts)
          56 (5.59 % of base) : 33782.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedTask>d__8:MoveNext():this (FullOpts)
          56 (5.59 % of base) : 13583.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedValueTaskSource_ConfigureAwait>d__11:MoveNext():this (FullOpts)
          56 (5.59 % of base) : 12158.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedValueTaskSource>d__10:MoveNext():this (FullOpts)
          56 (5.56 % of base) : 14634.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromYieldingAsyncMethod>d__12:MoveNext():this (FullOpts)
          58 (5.26 % of base) : 19410.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (FullOpts)

Top method improvements (percentages):
         -55 (-8.12 % of base) : 27503.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[int],System.Collections.Immutable.ImmutableList`1+Builder[int],int,int,ubyte):this (FullOpts)
         -84 (-7.64 % of base) : 20635.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -18 (-6.90 % of base) : 797.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -62 (-6.60 % of base) : 26786.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -37 (-5.73 % of base) : 28004.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -51 (-5.40 % of base) : 14397.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         -14 (-5.26 % of base) : 162.dasm - System.String:Concat(System.String,System.String):System.String (FullOpts)
        -100 (-5.08 % of base) : 6788.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -33 (-4.95 % of base) : 7038.dasm - System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):this (FullOpts)
          -4 (-4.88 % of base) : 2736.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-4.88 % of base) : 15468.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -34 (-4.65 % of base) : 1629.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (FullOpts)
         -21 (-4.56 % of base) : 20730.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+UsingsFromOptionsAndDiagnostics:Complete(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Threading.CancellationToken):this (FullOpts)
         -31 (-3.97 % of base) : 55.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (FullOpts)
          -6 (-3.92 % of base) : 2732.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -78 (-3.76 % of base) : 10155.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -12 (-3.67 % of base) : 799.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -2 (-3.57 % of base) : 19560.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
         -18 (-3.54 % of base) : 2128.dasm - System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this (FullOpts)
         -14 (-3.32 % of base) : 709.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)


benchmarks.run_pgo.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 66799627 (overridden on cmd)
Total bytes of diff: 66771383 (overridden on cmd)
Total bytes of delta: -28244 (-0.04 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         978 : 145965.dasm (34.59 % of base)
         134 : 136738.dasm (8.11 % of base)
          94 : 113437.dasm (21.12 % of base)
          94 : 109353.dasm (21.12 % of base)
          94 : 67079.dasm (21.12 % of base)
          94 : 71155.dasm (21.12 % of base)
          75 : 116543.dasm (15.62 % of base)
          75 : 123273.dasm (15.62 % of base)
          75 : 124555.dasm (15.62 % of base)
          75 : 129494.dasm (15.62 % of base)
          75 : 45279.dasm (15.62 % of base)
          75 : 50922.dasm (15.62 % of base)
          75 : 63651.dasm (15.62 % of base)
          75 : 76716.dasm (15.62 % of base)
          73 : 10959.dasm (15.21 % of base)
          73 : 31517.dasm (15.21 % of base)
          73 : 40280.dasm (15.21 % of base)
          73 : 51185.dasm (15.21 % of base)
          72 : 107472.dasm (10.06 % of base)
          72 : 107593.dasm (16.18 % of base)

Top file improvements (bytes):
        -508 : 37942.dasm (-37.00 % of base)
        -451 : 37957.dasm (-33.33 % of base)
        -211 : 98784.dasm (-7.77 % of base)
        -200 : 73674.dasm (-30.40 % of base)
        -200 : 73704.dasm (-30.40 % of base)
        -178 : 54727.dasm (-8.44 % of base)
        -146 : 60246.dasm (-5.82 % of base)
        -144 : 73705.dasm (-2.18 % of base)
        -130 : 74762.dasm (-3.75 % of base)
        -123 : 76148.dasm (-2.90 % of base)
        -122 : 51893.dasm (-4.94 % of base)
        -119 : 93082.dasm (-5.55 % of base)
         -97 : 140481.dasm (-3.22 % of base)
         -95 : 128279.dasm (-2.21 % of base)
         -94 : 71202.dasm (-6.18 % of base)
         -94 : 93956.dasm (-6.18 % of base)
         -90 : 128967.dasm (-4.72 % of base)
         -90 : 31809.dasm (-4.71 % of base)
         -86 : 101610.dasm (-3.48 % of base)
         -86 : 109427.dasm (-3.47 % of base)

58 total files with Code Size differences (31 improved, 27 regressed), 20 unchanged.

Top method regressions (bytes):
         978 (34.59 % of base) : 145965.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         134 (8.11 % of base) : 136738.dasm - System.Threading.TimerQueue:TimerThread() (Tier1-OSR)
          94 (21.12 % of base) : 113437.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 109353.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 67079.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 71155.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 116543.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 123273.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 124555.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 129494.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 45279.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 50922.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 63651.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 76716.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 10959.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 31517.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 40280.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 51185.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (10.06 % of base) : 107472.dasm - System.Threading.Tasks.TaskScheduler:InternalQueueTask(System.Threading.Tasks.Task):this (Tier1)
          72 (16.18 % of base) : 107593.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)

Top method improvements (bytes):
        -508 (-37.00 % of base) : 37942.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -451 (-33.33 % of base) : 37957.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -211 (-7.77 % of base) : 98784.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Free():this (Tier1)
        -200 (-30.40 % of base) : 73674.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -200 (-30.40 % of base) : 73704.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -178 (-8.44 % of base) : 54727.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
        -146 (-5.82 % of base) : 60246.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
        -144 (-2.18 % of base) : 73705.dasm - LUDecomp:Run():double:this (Tier1)
        -130 (-3.75 % of base) : 74762.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
        -123 (-2.90 % of base) : 76148.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
        -122 (-4.94 % of base) : 51893.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsync>d__7:MoveNext():this (Tier1-OSR)
        -119 (-5.55 % of base) : 93082.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.Optimizer:FilterValidStackLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo]) (Tier1)
         -97 (-3.22 % of base) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
         -95 (-2.21 % of base) : 128279.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
         -94 (-6.18 % of base) : 71202.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -94 (-6.18 % of base) : 93956.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -90 (-4.72 % of base) : 128967.dasm - Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark+<Parse_SequentialAsync>d__15:MoveNext():this (Tier1-OSR)
         -90 (-4.71 % of base) : 31809.dasm - Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark+<Parse_SequentialAsync>d__15:MoveNext():this (Tier1-OSR)
         -86 (-3.48 % of base) : 101610.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -86 (-3.47 % of base) : 109427.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)

Top method regressions (percentages):
         978 (34.59 % of base) : 145965.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          94 (21.12 % of base) : 113437.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 109353.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 67079.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          94 (21.12 % of base) : 71155.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (16.18 % of base) : 107593.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (16.18 % of base) : 57426.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (16.18 % of base) : 61663.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (16.18 % of base) : 79248.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (16.18 % of base) : 96692.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 116543.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 123273.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 124555.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 129494.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 45279.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 50922.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 63651.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          75 (15.62 % of base) : 76716.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 10959.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          73 (15.21 % of base) : 31517.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)

Top method improvements (percentages):
        -508 (-37.00 % of base) : 37942.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -451 (-33.33 % of base) : 37957.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -200 (-30.40 % of base) : 73674.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -200 (-30.40 % of base) : 73704.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -26 (-9.59 % of base) : 98719.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ThisParameterSymbol:get_RefKind():ubyte:this (Tier1)
        -178 (-8.44 % of base) : 54727.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
        -211 (-7.77 % of base) : 98784.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Free():this (Tier1)
          -2 (-7.14 % of base) : 26478.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 6664.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -94 (-6.18 % of base) : 71202.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -94 (-6.18 % of base) : 93956.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -35 (-6.09 % of base) : 104361.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass6_0[int]:<SetupConcurrentBagIteration>b__1():this (Tier1-OSR)
         -46 (-5.85 % of base) : 108226.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
        -146 (-5.82 % of base) : 60246.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
          -8 (-5.80 % of base) : 102211.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          -8 (-5.80 % of base) : 117941.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          -8 (-5.80 % of base) : 79400.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
         -58 (-5.64 % of base) : 123596.dasm - System.Collections.Concurrent.AddRemoveFromSameThreads`1+<>c__DisplayClass5_0[int]:<SetupConcurrentBagIteration>b__1():this (Tier1-OSR)
        -119 (-5.55 % of base) : 93082.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.Optimizer:FilterValidStackLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo]) (Tier1)
         -43 (-5.54 % of base) : 119531.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)


benchmarks.run_tiered.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 17373587 (overridden on cmd)
Total bytes of diff: 17373836 (overridden on cmd)
Total bytes of delta: 249 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         268 : 35414.dasm (8.11 % of base)
         228 : 35415.dasm (6.42 % of base)
         162 : 33914.dasm (8.25 % of base)
         123 : 9852.dasm (6.52 % of base)
         122 : 32857.dasm (2.82 % of base)
          96 : 43487.dasm (1.93 % of base)
          77 : 10806.dasm (3.94 % of base)
          69 : 54553.dasm (5.76 % of base)
          68 : 44955.dasm (4.29 % of base)
          68 : 22232.dasm (4.74 % of base)
          67 : 35102.dasm (3.76 % of base)
          64 : 6844.dasm (2.97 % of base)
          59 : 50168.dasm (2.05 % of base)
          58 : 37842.dasm (5.26 % of base)
          48 : 54577.dasm (2.68 % of base)
          48 : 37810.dasm (2.38 % of base)
          42 : 30391.dasm (3.47 % of base)
          38 : 54401.dasm (2.13 % of base)
          37 : 5839.dasm (2.29 % of base)
          34 : 31063.dasm (1.91 % of base)

Top file improvements (bytes):
        -480 : 24399.dasm (-34.26 % of base)
        -177 : 37833.dasm (-17.32 % of base)
         -52 : 52723.dasm (-7.21 % of base)
         -49 : 53985.dasm (-0.27 % of base)
         -49 : 9537.dasm (-0.27 % of base)
         -41 : 53216.dasm (-0.47 % of base)
         -39 : 34616.dasm (-2.89 % of base)
         -35 : 686.dasm (-1.72 % of base)
         -34 : 5809.dasm (-4.65 % of base)
         -34 : 32476.dasm (-2.88 % of base)
         -33 : 55965.dasm (-0.32 % of base)
         -31 : 1221.dasm (-3.97 % of base)
         -29 : 54598.dasm (-0.29 % of base)
         -26 : 37159.dasm (-0.63 % of base)
         -21 : 55963.dasm (-0.47 % of base)
         -19 : 16332.dasm (-0.81 % of base)
         -18 : 52239.dasm (-6.90 % of base)
         -18 : 55197.dasm (-1.79 % of base)
         -17 : 19214.dasm (-1.48 % of base)
         -16 : 37840.dasm (-1.62 % of base)

56 total files with Code Size differences (32 improved, 24 regressed), 20 unchanged.

Top method regressions (bytes):
         268 (8.11 % of base) : 35414.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
         228 (6.42 % of base) : 35415.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
         162 (8.25 % of base) : 33914.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         123 (6.52 % of base) : 9852.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (Tier1)
         122 (2.82 % of base) : 32857.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
          96 (1.93 % of base) : 43487.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
          77 (3.94 % of base) : 10806.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (Tier1)
          69 (5.76 % of base) : 54553.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
          68 (4.74 % of base) : 22232.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
          68 (4.29 % of base) : 44955.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
          67 (3.76 % of base) : 35102.dasm - System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__93:MoveNext():this (Tier1)
          64 (2.97 % of base) : 6844.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
          59 (2.05 % of base) : 50168.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (Tier1)
          58 (5.26 % of base) : 37842.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1)
          48 (2.68 % of base) : 54577.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          48 (2.38 % of base) : 37810.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier1)
          42 (3.47 % of base) : 30391.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          38 (2.13 % of base) : 54401.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier1-OSR)
          37 (2.29 % of base) : 5839.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
          34 (1.91 % of base) : 31063.dasm - System.IO.Tests.Perf_RandomAccess+<ReadScatterAsync>d__21:MoveNext():this (Tier1)

Top method improvements (bytes):
        -480 (-34.26 % of base) : 24399.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -177 (-17.32 % of base) : 37833.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -52 (-7.21 % of base) : 52723.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -49 (-0.27 % of base) : 53985.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -49 (-0.27 % of base) : 9537.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -41 (-0.47 % of base) : 53216.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
         -39 (-2.89 % of base) : 34616.dasm - System.UriHelper:UnescapeString(ulong,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier1)
         -35 (-1.72 % of base) : 686.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(ulong,int,ulong,int,byref,byref):int (Tier1)
         -34 (-2.88 % of base) : 32476.dasm - System.Formats.Asn1.AsnWriter:PopTag(System.Formats.Asn1.Asn1Tag,int,ubyte):this (Tier1)
         -34 (-4.65 % of base) : 5809.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (Tier1)
         -33 (-0.32 % of base) : 55965.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
         -31 (-3.97 % of base) : 1221.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Tier1)
         -29 (-0.29 % of base) : 54598.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
         -26 (-0.63 % of base) : 37159.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
         -21 (-0.47 % of base) : 55963.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
         -19 (-0.81 % of base) : 16332.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (Tier0-FullOpts)
         -18 (-6.90 % of base) : 52239.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
         -18 (-1.79 % of base) : 55197.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
         -17 (-1.48 % of base) : 19214.dasm - System.Security.Cryptography.HMACCommon:ChangeKeyImpl(System.ReadOnlySpan`1[ubyte]):ubyte[]:this (Tier1)
         -16 (-1.62 % of base) : 37840.dasm - LUDecomp:Run():double:this (Tier1)

Top method regressions (percentages):
         162 (8.25 % of base) : 33914.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         268 (8.11 % of base) : 35414.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
         123 (6.52 % of base) : 9852.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (Tier1)
         228 (6.42 % of base) : 35415.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
          69 (5.76 % of base) : 54553.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
          58 (5.26 % of base) : 37842.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1)
          14 (5.20 % of base) : 22129.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
          68 (4.74 % of base) : 22232.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
          68 (4.29 % of base) : 44955.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
          77 (3.94 % of base) : 10806.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (Tier1)
          67 (3.76 % of base) : 35102.dasm - System.IO.File+<InternalReadAllBytesUnknownLengthAsync>d__93:MoveNext():this (Tier1)
          42 (3.47 % of base) : 30391.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
           7 (3.12 % of base) : 50266.dasm - Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
          64 (2.97 % of base) : 6844.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
           2 (2.94 % of base) : 6847.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
         122 (2.82 % of base) : 32857.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
          48 (2.68 % of base) : 54577.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          18 (2.39 % of base) : 30424.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1)
          48 (2.38 % of base) : 37810.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier1)
          37 (2.29 % of base) : 5839.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)

Top method improvements (percentages):
        -480 (-34.26 % of base) : 24399.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -177 (-17.32 % of base) : 37833.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -52 (-7.21 % of base) : 52723.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -18 (-6.90 % of base) : 52239.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
         -14 (-5.26 % of base) : 3681.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)
          -4 (-4.88 % of base) : 5506.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
         -34 (-4.65 % of base) : 5809.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (Tier1)
         -31 (-3.97 % of base) : 1221.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Tier1)
         -12 (-3.67 % of base) : 4115.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
         -14 (-3.32 % of base) : 4148.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
         -39 (-2.89 % of base) : 34616.dasm - System.UriHelper:UnescapeString(ulong,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier1)
         -34 (-2.88 % of base) : 32476.dasm - System.Formats.Asn1.AsnWriter:PopTag(System.Formats.Asn1.Asn1Tag,int,ubyte):this (Tier1)
          -6 (-2.80 % of base) : 24473.dasm - Benchstone.BenchI.CSieve:Test():ubyte:this (Tier1-OSR)
          -8 (-2.38 % of base) : 19153.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
         -15 (-2.24 % of base) : 47429.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Tier1)
          -2 (-1.87 % of base) : 51453.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier1)
         -18 (-1.79 % of base) : 55197.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
          -2 (-1.75 % of base) : 1451.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -2 (-1.75 % of base) : 13697.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -2 (-1.75 % of base) : 48221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)


coreclr_tests.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 458880954 (overridden on cmd)
Total bytes of diff: 458824436 (overridden on cmd)
Total bytes of delta: -56518 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         228 : 591675.dasm (6.42 % of base)
         171 : 420279.dasm (5.01 % of base)
         158 : 411598.dasm (5.04 % of base)
         135 : 622880.dasm (7.14 % of base)
         112 : 413038.dasm (5.98 % of base)
          96 : 592633.dasm (1.93 % of base)
          91 : 420350.dasm (2.21 % of base)
          81 : 416533.dasm (1.20 % of base)
          80 : 417292.dasm (0.73 % of base)
          79 : 416099.dasm (1.74 % of base)
          73 : 420585.dasm (3.86 % of base)
          68 : 593165.dasm (4.29 % of base)
          63 : 413012.dasm (2.52 % of base)
          60 : 279441.dasm (2.71 % of base)
          60 : 292678.dasm (2.71 % of base)
          59 : 236990.dasm (4.91 % of base)
          59 : 592683.dasm (2.05 % of base)
          58 : 590036.dasm (5.26 % of base)
          58 : 348839.dasm (1.48 % of base)
          54 : 420572.dasm (2.18 % of base)

Top file improvements (bytes):
        -641 : 406446.dasm (-5.81 % of base)
        -612 : 420517.dasm (-6.74 % of base)
        -608 : 406038.dasm (-5.52 % of base)
        -508 : 241819.dasm (-37.00 % of base)
        -254 : 421720.dasm (-3.82 % of base)
        -200 : 237148.dasm (-30.40 % of base)
        -200 : 237135.dasm (-30.40 % of base)
        -180 : 237158.dasm (-2.74 % of base)
        -167 : 419181.dasm (-2.55 % of base)
        -155 : 413875.dasm (-4.68 % of base)
        -135 : 301808.dasm (-33.50 % of base)
        -121 : 420927.dasm (-5.30 % of base)
        -111 : 416180.dasm (-5.06 % of base)
        -108 : 416004.dasm (-3.95 % of base)
        -108 : 417661.dasm (-2.07 % of base)
        -107 : 420546.dasm (-3.16 % of base)
        -107 : 411400.dasm (-1.53 % of base)
        -105 : 420852.dasm (-3.75 % of base)
        -104 : 414124.dasm (-2.31 % of base)
        -102 : 162085.dasm (-4.62 % of base)

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

Top method regressions (bytes):
         228 (6.42 % of base) : 591675.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
         171 (5.01 % of base) : 420279.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         158 (5.04 % of base) : 411598.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         135 (7.14 % of base) : 622880.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
         112 (5.98 % of base) : 413038.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          96 (1.93 % of base) : 592633.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          91 (2.21 % of base) : 420350.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
          81 (1.20 % of base) : 416533.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
          80 (0.73 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
          79 (1.74 % of base) : 416099.dasm - ILCompiler.DependencyAnalysis.NodeFactory:CreateMethodEntrypoint(ILCompiler.DependencyAnalysis.TypeAndMethod):ILCompiler.DependencyAnalysis.IMethodNode:this (Tier1)
          73 (3.86 % of base) : 420585.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          68 (4.29 % of base) : 593165.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          63 (2.52 % of base) : 413012.dasm - ILCompiler.Compilation+RootingServiceProvider:AddCompilationRoot(Internal.TypeSystem.MethodDesc,ubyte,System.String):this (Tier1)
          60 (2.71 % of base) : 279441.dasm - JitTest_lcsbox_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (Tier1-OSR)
          60 (2.71 % of base) : 292678.dasm - JitTest_lcsbox_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (Tier1-OSR)
          59 (4.91 % of base) : 236990.dasm - Huffman:Run():double:this (Tier1)
          59 (2.05 % of base) : 592683.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          58 (5.26 % of base) : 590036.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (FullOpts)
          58 (1.48 % of base) : 348839.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
          54 (2.18 % of base) : 420572.dasm - ILCompiler.Compilation+RootingServiceProvider:AddCompilationRoot(Internal.TypeSystem.MethodDesc,ubyte,System.String):this (Tier1)

Top method improvements (bytes):
        -641 (-5.81 % of base) : 406446.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
        -612 (-6.74 % of base) : 420517.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:ResolveInterfaceMethodToDefaultImplementationOnType(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,byref):int (Tier1)
        -608 (-5.52 % of base) : 406038.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
        -508 (-37.00 % of base) : 241819.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -254 (-3.82 % of base) : 421720.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
        -200 (-30.40 % of base) : 237148.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -200 (-30.40 % of base) : 237135.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -180 (-2.74 % of base) : 237158.dasm - LUDecomp:Run():double:this (Tier1)
        -167 (-2.55 % of base) : 419181.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
        -155 (-4.68 % of base) : 413875.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:ResolveInterfaceMethodToDefaultImplementationOnType(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,byref):int (Tier1)
        -135 (-33.50 % of base) : 301808.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -121 (-5.30 % of base) : 420927.dasm - Internal.JitInterface.CorInfoImpl:GetJitInstantiation(Internal.TypeSystem.Instantiation):ulong:this (Tier1)
        -111 (-5.06 % of base) : 416180.dasm - Internal.JitInterface.CorInfoImpl:GetJitInstantiation(Internal.TypeSystem.Instantiation):ulong:this (Tier1)
        -108 (-2.07 % of base) : 417661.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AllMethodsOnTypeNode:GetStaticDependencies(ILCompiler.DependencyAnalysis.NodeFactory):System.Collections.Generic.IEnumerable`1[ILCompiler.DependencyAnalysisFramework.DependencyNodeCore`1+DependencyListEntry[ILCompiler.DependencyAnalysis.NodeFactory]]:this (Tier1)
        -108 (-3.95 % of base) : 416004.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
        -107 (-3.16 % of base) : 420546.dasm - ILCompiler.ReadyToRunCodegenCompilation:ComputeDependencyNodeDependencies(System.Collections.Generic.List`1[ILCompiler.DependencyAnalysisFramework.DependencyNodeCore`1[ILCompiler.DependencyAnalysis.NodeFactory]]):this (Tier1-OSR)
        -107 (-1.53 % of base) : 411400.dasm - ILCompiler.ReadyToRunVisibilityRootProvider:RootMethods(Internal.TypeSystem.MetadataType,System.String,ILCompiler.IRootingServiceProvider,ubyte):this (Tier1-OSR)
        -105 (-3.75 % of base) : 420852.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
        -104 (-2.31 % of base) : 414124.dasm - Internal.TypeSystem.CastingHelper:CanCastGenericParameterTo(Internal.TypeSystem.GenericParameterDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect):ubyte (Tier1)
        -102 (-4.62 % of base) : 162085.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)

Top method regressions (percentages):
          28 (18.06 % of base) : 443034.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          15 (16.85 % of base) : 301992.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          15 (16.85 % of base) : 220760.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          26 (16.77 % of base) : 443451.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          30 (15.46 % of base) : 310967.dasm - testout1:Test1(int):int (Tier1-OSR)
          30 (15.46 % of base) : 310969.dasm - testout1:Test2(int):int (Tier1-OSR)
          16 (12.12 % of base) : 220759.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          15 (11.45 % of base) : 202870.dasm - System.Reflection.TypeNameParser:Skip():this (Instrumented Tier1)
          44 (10.45 % of base) : 380327.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
          44 (10.45 % of base) : 426979.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
          45 (9.64 % of base) : 427120.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          45 (9.64 % of base) : 427768.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          44 (9.15 % of base) : 257141.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
          44 (9.15 % of base) : 402794.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
          37 (7.86 % of base) : 415688.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier1)
          34 (7.28 % of base) : 224330.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          34 (7.28 % of base) : 380277.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          34 (7.28 % of base) : 402937.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          34 (7.28 % of base) : 426301.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          34 (7.28 % of base) : 426968.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)

Top method improvements (percentages):
        -508 (-37.00 % of base) : 241819.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -135 (-33.50 % of base) : 301808.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -200 (-30.40 % of base) : 237148.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -200 (-30.40 % of base) : 237135.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -94 (-12.43 % of base) : 179588.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -91 (-12.08 % of base) : 114607.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -20 (-11.83 % of base) : 444407.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -20 (-11.83 % of base) : 444823.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -91 (-11.82 % of base) : 158567.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -13 (-8.07 % of base) : 266570.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(ulong,System.Object):System.Object (Tier1)
         -65 (-7.78 % of base) : 592021.dasm - SciMark2.kernel:measureSparseMatmult(int,int,double,SciMark2.Random):double (FullOpts)
         -58 (-7.75 % of base) : 417322.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon],ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,int,byref):ubyte (Tier1)
         -84 (-7.64 % of base) : 593332.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -26 (-7.58 % of base) : 244264.dasm - System.Linq.Expressions.Expression:Parameter(System.Type,System.String):System.Linq.Expressions.ParameterExpression (Tier1)
         -19 (-7.31 % of base) : 257675.dasm - BinderTracingTests.BinderTracingTest+CustomALC:Load(System.Reflection.AssemblyName):System.Reflection.Assembly:this (Tier1)
         -14 (-7.22 % of base) : 247410.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -49 (-7.18 % of base) : 399713.dasm - System.IO.TextWriter:WriteLine(System.String):this (Tier1)
          -2 (-7.14 % of base) : 224857.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 245497.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-7.14 % of base) : 373993.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)


libraries.crossgen2.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38668832 (overridden on cmd)
Total bytes of diff: 38666144 (overridden on cmd)
Total bytes of delta: -2688 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         161 : 30504.dasm (0.52 % of base)
         129 : 11301.dasm (8.92 % of base)
         123 : 10774.dasm (4.13 % of base)
         122 : 11732.dasm (3.70 % of base)
         120 : 11355.dasm (4.33 % of base)
         115 : 11736.dasm (4.00 % of base)
          88 : 23865.dasm (6.76 % of base)
          84 : 11353.dasm (4.66 % of base)
          84 : 10772.dasm (8.40 % of base)
          84 : 11401.dasm (5.39 % of base)
          83 : 10766.dasm (3.94 % of base)
          80 : 11308.dasm (9.09 % of base)
          76 : 11472.dasm (9.30 % of base)
          72 : 11726.dasm (3.36 % of base)
          72 : 11730.dasm (5.48 % of base)
          61 : 210347.dasm (2.27 % of base)
          61 : 7270.dasm (3.44 % of base)
          61 : 10983.dasm (5.83 % of base)
          60 : 11002.dasm (1.76 % of base)
          58 : 60385.dasm (4.71 % of base)

Top file improvements (bytes):
        -386 : 125832.dasm (-1.51 % of base)
        -197 : 44427.dasm (-10.68 % of base)
        -132 : 191658.dasm (-3.89 % of base)
        -131 : 204667.dasm (-6.19 % of base)
        -112 : 170392.dasm (-4.08 % of base)
        -112 : 122464.dasm (-4.08 % of base)
        -100 : 21947.dasm (-5.28 % of base)
         -90 : 170325.dasm (-4.22 % of base)
         -86 : 20678.dasm (-3.72 % of base)
         -84 : 125834.dasm (-3.73 % of base)
         -84 : 139329.dasm (-7.37 % of base)
         -84 : 181703.dasm (-7.37 % of base)
         -70 : 43744.dasm (-8.06 % of base)
         -67 : 51334.dasm (-5.50 % of base)
         -64 : 50000.dasm (-3.03 % of base)
         -59 : 125870.dasm (-4.62 % of base)
         -58 : 126535.dasm (-7.18 % of base)
         -48 : 151934.dasm (-5.66 % of base)
         -48 : 23826.dasm (-2.46 % of base)
         -46 : 203957.dasm (-1.95 % of base)

63 total files with Code Size differences (31 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         161 (0.52 % of base) : 30504.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
         129 (8.92 % of base) : 11301.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
         123 (4.13 % of base) : 10774.dasm - System.IO.BufferedStream+<ReadFromUnderlyingStreamAsync>d__48:MoveNext():this (FullOpts)
         122 (3.70 % of base) : 11732.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (FullOpts)
         120 (4.33 % of base) : 11355.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (FullOpts)
         115 (4.00 % of base) : 11736.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (FullOpts)
          88 (6.76 % of base) : 23865.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          84 (8.40 % of base) : 10772.dasm - System.IO.BufferedStream+<FlushWriteAsync>d__40:MoveNext():this (FullOpts)
          84 (4.66 % of base) : 11353.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (FullOpts)
          84 (5.39 % of base) : 11401.dasm - System.IO.StreamWriter+<<FlushAsyncInternal>g__Core|76_0>d:MoveNext():this (FullOpts)
          83 (3.94 % of base) : 10766.dasm - System.IO.BufferedStream+<CopyToAsyncCore>d__68:MoveNext():this (FullOpts)
          80 (9.09 % of base) : 11308.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
          76 (9.30 % of base) : 11472.dasm - System.IO.TextReader+<ReadBlockAsyncInternal>d__23:MoveNext():this (FullOpts)
          72 (3.36 % of base) : 11726.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<CopyToAsyncCore>d__57:MoveNext():this (FullOpts)
          72 (5.48 % of base) : 11730.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<FlushAsyncInternal>d__55:MoveNext():this (FullOpts)
          61 (2.27 % of base) : 210347.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          61 (5.83 % of base) : 10983.dasm - System.IO.File+<InternalReadAllBytesAsync>d__92:MoveNext():this (FullOpts)
          61 (3.44 % of base) : 7270.dasm - System.Text.TranscodingStream+<<WriteAsync>g__WriteAsyncCore|50_0>d:MoveNext():this (FullOpts)
          60 (1.76 % of base) : 11002.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (FullOpts)
          58 (4.71 % of base) : 60385.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)

Top method improvements (bytes):
        -386 (-1.51 % of base) : 125832.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        -197 (-10.68 % of base) : 44427.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
        -132 (-3.89 % of base) : 191658.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
        -131 (-6.19 % of base) : 204667.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
        -112 (-4.08 % of base) : 170392.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
        -112 (-4.08 % of base) : 122464.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
        -100 (-5.28 % of base) : 21947.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -90 (-4.22 % of base) : 170325.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,ubyte):int:this (FullOpts)
         -86 (-3.72 % of base) : 20678.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -84 (-7.37 % of base) : 139329.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.37 % of base) : 181703.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-3.73 % of base) : 125834.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:SelectProperty(int,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         -70 (-8.06 % of base) : 43744.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:MakeEventAccessorCall(Microsoft.CodeAnalysis.VisualBasic.BoundAddRemoveHandlerStatement,Microsoft.CodeAnalysis.VisualBasic.BoundEventAccess,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundStatement:this (FullOpts)
         -67 (-5.50 % of base) : 51334.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
         -64 (-3.03 % of base) : 50000.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol+ComClassData+SynthesizedComInterface:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbol,int]]):this (FullOpts)
         -59 (-4.62 % of base) : 125870.dasm - Microsoft.VisualBasic.Conversion:Val(System.String):double (FullOpts)
         -58 (-7.18 % of base) : 126535.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -48 (-2.46 % of base) : 23826.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindQueryOperatorCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.String,Microsoft.CodeAnalysis.VisualBasic.BoundMethodGroup,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -48 (-5.66 % of base) : 151934.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -46 (-1.95 % of base) : 203957.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)

Top method regressions (percentages):
          15 (14.02 % of base) : 186.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
          76 (9.30 % of base) : 11472.dasm - System.IO.TextReader+<ReadBlockAsyncInternal>d__23:MoveNext():this (FullOpts)
          80 (9.09 % of base) : 11308.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
         129 (8.92 % of base) : 11301.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
          84 (8.40 % of base) : 10772.dasm - System.IO.BufferedStream+<FlushWriteAsync>d__40:MoveNext():this (FullOpts)
           4 (7.14 % of base) : 58109.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
          88 (6.76 % of base) : 23865.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          42 (6.69 % of base) : 15471.dasm - System.DefaultBinder:CreateParamOrder(int[],System.ReadOnlySpan`1[System.Reflection.ParameterInfo],System.String[]):ubyte (FullOpts)
          46 (6.63 % of base) : 51138.dasm - Microsoft.CodeAnalysis.VisualBasic.AbstractFlowPass`1[Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+LocalState]:VisitWithStatement(Microsoft.CodeAnalysis.VisualBasic.BoundWithStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
          46 (6.63 % of base) : 50260.dasm - Microsoft.CodeAnalysis.VisualBasic.AbstractFlowPass`1[System.__Canon]:VisitWithStatement(Microsoft.CodeAnalysis.VisualBasic.BoundWithStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
           6 (6.32 % of base) : 16065.dasm - System.Net.WebUtility:IndexOfHtmlEncodingChars(System.ReadOnlySpan`1[ushort]):int (FullOpts)
          61 (5.83 % of base) : 10983.dasm - System.IO.File+<InternalReadAllBytesAsync>d__92:MoveNext():this (FullOpts)
          27 (5.66 % of base) : 159201.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
          27 (5.66 % of base) : 163819.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
          43 (5.49 % of base) : 37884.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanXmlNcName(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
          72 (5.48 % of base) : 11730.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<FlushAsyncInternal>d__55:MoveNext():this (FullOpts)
          16 (5.48 % of base) : 126827.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          84 (5.39 % of base) : 11401.dasm - System.IO.StreamWriter+<<FlushAsyncInternal>g__Core|76_0>d:MoveNext():this (FullOpts)
          19 (5.23 % of base) : 44531.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:ReportOverloadResolutionFailedOrLateBound(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],int,ubyte,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression]):Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+OverloadResolutionResult (FullOpts)
          23 (5.18 % of base) : 134357.dasm - System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)

Top method improvements (percentages):
         -31 (-11.27 % of base) : 116455.dasm - System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndex(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
        -197 (-10.68 % of base) : 44427.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -27 (-8.74 % of base) : 116456.dasm - System.Runtime.Serialization.XmlObjectSerializerReadContext:GetMemberIndexWithRequiredMembers(System.Runtime.Serialization.XmlReaderDelegator,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[],int,int,System.Runtime.Serialization.ExtensionDataObject):int:this (FullOpts)
         -16 (-8.33 % of base) : 10625.dasm - System.Reflection.Emit.TypeBuilder:DefinePInvokeMethod(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -70 (-8.06 % of base) : 43744.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:MakeEventAccessorCall(Microsoft.CodeAnalysis.VisualBasic.BoundAddRemoveHandlerStatement,Microsoft.CodeAnalysis.VisualBasic.BoundEventAccess,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundStatement:this (FullOpts)
         -16 (-8.04 % of base) : 10624.dasm - System.Reflection.Emit.TypeBuilder:DefinePInvokeMethod(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -84 (-7.37 % of base) : 139329.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.37 % of base) : 181703.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -25 (-7.29 % of base) : 202781.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CachesResult(System.Xml.Xsl.Qil.QilNode):ubyte (FullOpts)
         -58 (-7.18 % of base) : 126535.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -21 (-7.02 % of base) : 75004.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -18 (-6.87 % of base) : 2473.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -34 (-6.48 % of base) : 205463.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts)
          -3 (-6.25 % of base) : 204415.dasm - System.Xml.Schema.Preprocessor:GetParentSchema(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchema (FullOpts)
        -131 (-6.19 % of base) : 204667.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
         -29 (-5.99 % of base) : 75234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)
         -28 (-5.79 % of base) : 10290.dasm - System.Reflection.Emit.RuntimeModuleBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -48 (-5.66 % of base) : 151934.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -67 (-5.50 % of base) : 51334.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -100 (-5.28 % of base) : 21947.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)


libraries.pmi.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 59972991 (overridden on cmd)
Total bytes of diff: 59968567 (overridden on cmd)
Total bytes of delta: -4424 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         140 : 21138.dasm (0.41 % of base)
         137 : 184484.dasm (5.81 % of base)
         124 : 249395.dasm (5.29 % of base)
         122 : 285173.dasm (6.48 % of base)
         109 : 143285.dasm (5.64 % of base)
         107 : 132992.dasm (4.35 % of base)
          98 : 251705.dasm (1.98 % of base)
          98 : 249373.dasm (3.60 % of base)
          96 : 52591.dasm (1.93 % of base)
          89 : 185364.dasm (1.08 % of base)
          88 : 164538.dasm (1.60 % of base)
          85 : 290271.dasm (5.93 % of base)
          83 : 184861.dasm (6.83 % of base)
          78 : 37249.dasm (1.31 % of base)
          78 : 290273.dasm (5.57 % of base)
          77 : 164536.dasm (1.32 % of base)
          75 : 253624.dasm (1.40 % of base)
          74 : 184784.dasm (4.22 % of base)
          72 : 204763.dasm (2.30 % of base)
          72 : 222356.dasm (2.30 % of base)

Top file improvements (bytes):
        -413 : 171517.dasm (-1.46 % of base)
        -210 : 37114.dasm (-9.78 % of base)
        -109 : 245777.dasm (-4.20 % of base)
        -109 : 42994.dasm (-3.42 % of base)
        -106 : 43321.dasm (-5.61 % of base)
        -105 : 129574.dasm (-3.08 % of base)
        -105 : 146615.dasm (-3.07 % of base)
        -105 : 263268.dasm (-3.14 % of base)
         -88 : 204799.dasm (-2.92 % of base)
         -88 : 222392.dasm (-2.92 % of base)
         -84 : 219872.dasm (-7.64 % of base)
         -84 : 202243.dasm (-7.64 % of base)
         -82 : 280461.dasm (-2.42 % of base)
         -77 : 44176.dasm (-2.23 % of base)
         -77 : 58625.dasm (-1.43 % of base)
         -76 : 155454.dasm (-3.67 % of base)
         -75 : 280330.dasm (-2.86 % of base)
         -74 : 41396.dasm (-1.56 % of base)
         -73 : 72860.dasm (-1.27 % of base)
         -73 : 154321.dasm (-2.00 % of base)

72 total files with Code Size differences (37 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         140 (0.41 % of base) : 21138.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
         137 (5.81 % of base) : 184484.dasm - System.Net.Http.MultipartContent+<SerializeToStreamAsyncCore>d__24:MoveNext():this (FullOpts)
         124 (5.29 % of base) : 249395.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteXmlDeclarationAsync>d__95:MoveNext():this (FullOpts)
         122 (6.48 % of base) : 285173.dasm - System.Net.Quic.QuicConnection+<DisposeAsync>d__49:MoveNext():this (FullOpts)
         109 (5.64 % of base) : 143285.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         107 (4.35 % of base) : 132992.dasm - System.Text.Json.JsonDocument+<ReadToEndAsync>d__78:MoveNext():this (FullOpts)
          98 (3.60 % of base) : 249373.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteDocTypeAsync>d__98:MoveNext():this (FullOpts)
          98 (1.98 % of base) : 251705.dasm - System.Xml.XmlTextReaderImpl+<SkipDtdAsync>d__568:MoveNext():this (FullOpts)
          96 (1.93 % of base) : 52591.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          89 (1.08 % of base) : 185364.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__89:MoveNext():this (FullOpts)
          88 (1.60 % of base) : 164538.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsNonReorderedWithIterationAsync>d__48[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
          85 (5.93 % of base) : 290271.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__43:MoveNext():this (FullOpts)
          83 (6.83 % of base) : 184861.dasm - System.Net.Http.DecompressionHandler+DeflateDecompressedContent+ZLibOrDeflateStream+PeekFirstByteReadStream+<CopyToAsync>d__14:MoveNext():this (FullOpts)
          78 (1.31 % of base) : 37249.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArguments(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Binder,byref,Microsoft.CodeAnalysis.SyntaxNode,ubyte,byref) (FullOpts)
          78 (5.57 % of base) : 290273.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__44:MoveNext():this (FullOpts)
          77 (1.32 % of base) : 164536.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsNonReorderedWithIterationAsync>d__48[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts)
          75 (1.40 % of base) : 253624.dasm - System.Xml.DtdParser+<ParseAttlistTypeAsync>d__161:MoveNext():this (FullOpts)
          74 (4.22 % of base) : 184784.dasm - System.Net.Http.HttpConnection+<SendRequestContentAsync>d__61:MoveNext():this (FullOpts)
          72 (2.30 % of base) : 204763.dasm - Microsoft.CodeAnalysis.SyntaxDiffer:GetSimilarity(byref,byref):int:this (FullOpts)
          72 (2.30 % of base) : 222356.dasm - Microsoft.CodeAnalysis.SyntaxDiffer:GetSimilarity(byref,byref):int:this (FullOpts)

Top method improvements (bytes):
        -413 (-1.46 % of base) : 171517.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        -210 (-9.78 % of base) : 37114.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
        -109 (-3.42 % of base) : 42994.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol+ComClassData+SynthesizedComInterface:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbol,int]]):this (FullOpts)
        -109 (-4.20 % of base) : 245777.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
        -106 (-5.61 % of base) : 43321.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -105 (-3.14 % of base) : 263268.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
        -105 (-3.08 % of base) : 129574.dasm - System.Net.Http.X509ResourceClient+<>c__DisplayClass15_0+<<CreateDownloadBytesFunc>b__0>d:MoveNext():this (FullOpts)
        -105 (-3.07 % of base) : 146615.dasm - System.Net.Http.X509ResourceClient+<>c__DisplayClass15_0+<<CreateDownloadBytesFunc>b__0>d:MoveNext():this (FullOpts)
         -88 (-2.92 % of base) : 204799.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -88 (-2.92 % of base) : 222392.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -84 (-7.64 % of base) : 219872.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.64 % of base) : 202243.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -82 (-2.42 % of base) : 280461.dasm - System.Reflection.DispatchProxyGenerator+ProxyBuilder:AddMethodImpl(System.Reflection.MethodInfo,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -77 (-2.23 % of base) : 44176.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeconstructSubpatterns(Microsoft.CodeAnalysis.CSharp.Syntax.PositionalPatternClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundDeconstructValuePlaceholder],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundPositionalSubpattern],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
         -77 (-1.43 % of base) : 58625.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -76 (-3.67 % of base) : 155454.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -75 (-2.86 % of base) : 280330.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.Patterns.PatternBuilder:Build(System.String):Microsoft.Extensions.FileSystemGlobbing.Internal.IPattern:this (FullOpts)
         -74 (-1.56 % of base) : 41396.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForRetargetingAssembly(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],int,byref,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol) (FullOpts)
         -73 (-1.27 % of base) : 72860.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
         -73 (-2.00 % of base) : 154321.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)

Top method regressions (percentages):
          30 (16.30 % of base) : 173301.dasm - Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)
          26 (15.38 % of base) : 106289.dasm - Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)
          18 (9.57 % of base) : 1607.dasm - System.Int128:op_CheckedMultiply(System.Int128,System.Int128):System.Int128 (FullOpts)
          65 (9.35 % of base) : 276393.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
          16 (8.70 % of base) : 106463.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
          16 (8.00 % of base) : 143493.dasm - System.Security.Cryptography.ECDsa:SignData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):int:this (FullOpts)
          20 (7.41 % of base) : 171800.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          16 (7.11 % of base) : 132281.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
          83 (6.83 % of base) : 184861.dasm - System.Net.Http.DecompressionHandler+DeflateDecompressedContent+ZLibOrDeflateStream+PeekFirstByteReadStream+<CopyToAsync>d__14:MoveNext():this (FullOpts)
          20 (6.64 % of base) : 150946.dasm - System.Data.Odbc.OdbcDataReader:GetOrdinalFromBaseColName(System.String,System.String):int:this (FullOpts)
          22 (6.63 % of base) : 295285.dasm - System.Threading.Channels.ChannelWriter`1[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         122 (6.48 % of base) : 285173.dasm - System.Net.Quic.QuicConnection+<DisposeAsync>d__49:MoveNext():this (FullOpts)
           4 (6.45 % of base) : 270509.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
          23 (6.35 % of base) : 294169.dasm - System.Reflection.Emit.ModuleBuilderImpl:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
           4 (6.25 % of base) : 270521.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          20 (6.15 % of base) : 131802.dasm - System.Net.Mail.MailMessage:.ctor(System.String,System.String):this (FullOpts)
          67 (6.15 % of base) : 184478.dasm - System.Net.Http.MultipartContent+ContentReadStream+<DisposeAsync>d__7:MoveNext():this (FullOpts)
          85 (5.93 % of base) : 290271.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__43:MoveNext():this (FullOpts)
         137 (5.81 % of base) : 184484.dasm - System.Net.Http.MultipartContent+<SerializeToStreamAsyncCore>d__24:MoveNext():this (FullOpts)
         109 (5.64 % of base) : 143285.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)

Top method improvements (percentages):
         -39 (-12.26 % of base) : 249705.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
         -20 (-11.63 % of base) : 219648.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
         -20 (-11.63 % of base) : 202034.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
         -20 (-11.63 % of base) : 202033.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte (FullOpts)
         -20 (-11.63 % of base) : 219647.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt64(System.String,byref):ubyte (FullOpts)
         -41 (-10.07 % of base) : 252876.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
        -210 (-9.78 % of base) : 37114.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -69 (-8.62 % of base) : 91012.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -55 (-8.12 % of base) : 243267.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[ubyte]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[ubyte],System.Collections.Immutable.ImmutableList`1+Builder[ubyte],int,int,ubyte):this (FullOpts)
         -25 (-8.04 % of base) : 70921.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -84 (-7.64 % of base) : 219872.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.64 % of base) : 202243.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -27 (-7.42 % of base) : 252875.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
         -71 (-7.32 % of base) : 145410.dasm - System.Security.Cryptography.X509Certificates.DSACertificateExtensions:CopyWithPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.DSA):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts)
          -4 (-7.14 % of base) : 994.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -51 (-7.02 % of base) : 161447.dasm - System.Configuration.MgmtConfigurationRecord:ChangeConfigSource(System.Configuration.SectionInformation,System.String,System.String,System.String):this (FullOpts)
         -51 (-6.98 % of base) : 190584.dasm - System.Configuration.MgmtConfigurationRecord:ChangeConfigSource(System.Configuration.SectionInformation,System.String,System.String,System.String):this (FullOpts)
         -22 (-6.73 % of base) : 259948.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CachesResult(System.Xml.Xsl.Qil.QilNode):ubyte (FullOpts)
         -62 (-6.60 % of base) : 243254.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -48 (-6.41 % of base) : 138714.dasm - System.Reflection.PathAssemblyResolver:Resolve(System.Reflection.MetadataLoadContext,System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)


libraries_tests.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 329976844 (overridden on cmd)
Total bytes of diff: 329874855 (overridden on cmd)
Total bytes of delta: -101989 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         500 : 704195.dasm (4.22 % of base)
         332 : 697581.dasm (7.32 % of base)
         298 : 624025.dasm (2.89 % of base)
         256 : 693332.dasm (3.37 % of base)
         200 : 62504.dasm (4.35 % of base)
         198 : 531279.dasm (1.64 % of base)
         197 : 94540.dasm (4.22 % of base)
         181 : 697661.dasm (1.81 % of base)
         170 : 683210.dasm (3.61 % of base)
         159 : 716900.dasm (4.71 % of base)
         152 : 698344.dasm (3.32 % of base)
         146 : 579789.dasm (1.08 % of base)
         142 : 114804.dasm (15.54 % of base)
         137 : 427808.dasm (8.19 % of base)
         134 : 334663.dasm (1.04 % of base)
         134 : 427809.dasm (10.40 % of base)
         132 : 116279.dasm (2.87 % of base)
         127 : 336682.dasm (3.03 % of base)
         126 : 49105.dasm (2.61 % of base)
         125 : 631858.dasm (5.15 % of base)

Top file improvements (bytes):
       -1079 : 185486.dasm (-42.85 % of base)
        -976 : 185945.dasm (-7.80 % of base)
        -703 : 50319.dasm (-4.48 % of base)
        -632 : 708019.dasm (-5.78 % of base)
        -622 : 85447.dasm (-4.03 % of base)
        -556 : 236005.dasm (-8.14 % of base)
        -544 : 94358.dasm (-3.08 % of base)
        -513 : 82193.dasm (-4.42 % of base)
        -475 : 72474.dasm (-4.71 % of base)
        -444 : 727304.dasm (-2.84 % of base)
        -396 : 20855.dasm (-4.17 % of base)
        -386 : 76909.dasm (-4.07 % of base)
        -375 : 26169.dasm (-5.65 % of base)
        -330 : 757036.dasm (-2.60 % of base)
        -295 : 63598.dasm (-5.00 % of base)
        -294 : 206946.dasm (-2.43 % of base)
        -289 : 128300.dasm (-2.26 % of base)
        -277 : 417993.dasm (-8.84 % of base)
        -274 : 106918.dasm (-8.75 % of base)
        -274 : 516048.dasm (-8.75 % of base)

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

Top method regressions (bytes):
         500 (4.22 % of base) : 704195.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
         332 (7.32 % of base) : 697581.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier1)
         298 (2.89 % of base) : 624025.dasm - System.Text.Json.Serialization.Converters.IListConverter`1[System.__Canon]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1-OSR)
         256 (3.37 % of base) : 693332.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
         200 (4.35 % of base) : 62504.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
         198 (1.64 % of base) : 531279.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         197 (4.22 % of base) : 94540.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
         181 (1.81 % of base) : 697661.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.__Canon](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.__Canon],System.__Canon,ubyte):ubyte (Tier1)
         170 (3.61 % of base) : 683210.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,System.Nullable`1[int]]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
         159 (4.71 % of base) : 716900.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindSubcaptures[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+FullInputReader[ulong]](System.ReadOnlySpan`1[ushort],int,int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+Registers[ulong]:this (Tier1)
         152 (3.32 % of base) : 698344.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         146 (1.08 % of base) : 579789.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         142 (15.54 % of base) : 114804.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
         137 (8.19 % of base) : 427808.dasm - System.Net.Security.TlsFrameHelper:TryParseHelloFrame(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (Tier1)
         134 (1.04 % of base) : 334663.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         134 (10.40 % of base) : 427809.dasm - System.Net.Security.TlsFrameHelper:TryParseClientHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (Tier1)
         132 (2.87 % of base) : 116279.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         127 (3.03 % of base) : 336682.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str:IgnoreSubDirectoryFiles():this (Tier1)
         126 (2.61 % of base) : 49105.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         125 (5.15 % of base) : 631858.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,int]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)

Top method improvements (bytes):
       -1079 (-42.85 % of base) : 185486.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
        -976 (-7.80 % of base) : 185945.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (Tier1)
        -703 (-4.48 % of base) : 50319.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -632 (-5.78 % of base) : 708019.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:BindAttributes(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],Microsoft.CodeAnalysis.CSharp.Binder):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]]:this (Tier1)
        -622 (-4.03 % of base) : 85447.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -556 (-8.14 % of base) : 236005.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -544 (-3.08 % of base) : 94358.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        -513 (-4.42 % of base) : 82193.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -475 (-4.71 % of base) : 72474.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -444 (-2.84 % of base) : 727304.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        -396 (-4.17 % of base) : 20855.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -386 (-4.07 % of base) : 76909.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -375 (-5.65 % of base) : 26169.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -330 (-2.60 % of base) : 757036.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -295 (-5.00 % of base) : 63598.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
        -294 (-2.43 % of base) : 206946.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -289 (-2.26 % of base) : 128300.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -277 (-8.84 % of base) : 417993.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -274 (-8.75 % of base) : 106918.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -274 (-8.75 % of base) : 516048.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
         142 (15.54 % of base) : 114804.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
          15 (14.42 % of base) : 228557.dasm - System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRef(int):byref:this (Tier1)
          15 (14.42 % of base) : 82545.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
          15 (14.42 % of base) : 43914.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
          15 (14.02 % of base) : 660390.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:ItemRef(int):byref:this (Tier1)
          15 (14.02 % of base) : 63728.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`2[System.__Canon,System.__Canon]]:ItemRef(int):byref:this (Tier1)
          65 (13.49 % of base) : 419920.dasm - System.Linq.EnumerableSorter`2[System.__Canon,System.__Canon]:PartialQuickSort(int[],int,int,int,int):this (Tier1)
          59 (12.02 % of base) : 336339.dasm - System.Linq.EnumerableSorter`2[System.__Canon,System.__Canon]:PartialQuickSort(int[],int,int,int,int):this (Tier1)
          57 (11.83 % of base) : 323441.dasm - System.Linq.EnumerableSorter`2[System.__Canon,System.__Canon]:PartialQuickSort(int[],int,int,int,int):this (Tier1)
          44 (11.70 % of base) : 531207.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 732531.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 744310.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 750016.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 80060.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 355055.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 405548.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 417859.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 750975.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 753612.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (11.70 % of base) : 409626.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

Top method improvements (percentages):
       -1079 (-42.85 % of base) : 185486.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
         -40 (-23.95 % of base) : 101035.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.67 % of base) : 101022.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.67 % of base) : 101036.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.67 % of base) : 101326.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.49 % of base) : 103067.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -40 (-23.39 % of base) : 101133.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.35 % of base) : 305226.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.26 % of base) : 297568.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.26 % of base) : 305204.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.08 % of base) : 308391.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.08 % of base) : 305232.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.81 % of base) : 295748.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 305218.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 308371.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 297569.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 305198.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 308357.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 308407.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-22.60 % of base) : 101027.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 130000373 (overridden on cmd)
Total bytes of diff: 129987526 (overridden on cmd)
Total bytes of delta: -12847 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         238 : 293812.dasm (5.95 % of base)
         212 : 267131.dasm (5.34 % of base)
         149 : 294940.dasm (4.55 % of base)
         149 : 42801.dasm (2.32 % of base)
         149 : 294755.dasm (4.60 % of base)
         149 : 48468.dasm (2.32 % of base)
         149 : 294834.dasm (4.58 % of base)
         149 : 294937.dasm (4.55 % of base)
         136 : 128588.dasm (2.00 % of base)
         120 : 22904.dasm (4.53 % of base)
         120 : 170784.dasm (4.42 % of base)
         119 : 294057.dasm (4.41 % of base)
         119 : 128677.dasm (4.23 % of base)
         111 : 20143.dasm (2.56 % of base)
         109 : 155872.dasm (5.90 % of base)
         107 : 255151.dasm (4.42 % of base)
         105 : 128807.dasm (5.42 % of base)
         104 : 154063.dasm (3.44 % of base)
         103 : 154062.dasm (3.47 % of base)
         102 : 128336.dasm (5.36 % of base)

Top file improvements (bytes):
        -409 : 59259.dasm (-1.44 % of base)
        -185 : 259450.dasm (-3.88 % of base)
        -185 : 244085.dasm (-3.88 % of base)
        -177 : 44416.dasm (-2.79 % of base)
        -168 : 197463.dasm (-4.93 % of base)
        -167 : 165420.dasm (-11.07 % of base)
        -159 : 165601.dasm (-10.59 % of base)
        -139 : 176887.dasm (-3.92 % of base)
        -130 : 288633.dasm (-2.62 % of base)
        -109 : 174295.dasm (-0.61 % of base)
        -106 : 13038.dasm (-6.13 % of base)
        -105 : 153465.dasm (-3.07 % of base)
        -105 : 156589.dasm (-3.10 % of base)
        -105 : 85154.dasm (-3.14 % of base)
        -104 : 5124.dasm (-2.25 % of base)
         -86 : 177217.dasm (-2.80 % of base)
         -84 : 52119.dasm (-7.64 % of base)
         -84 : 54326.dasm (-7.64 % of base)
         -84 : 45486.dasm (-7.64 % of base)
         -82 : 288815.dasm (-5.71 % of base)

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

Top method regressions (bytes):
         238 (5.95 % of base) : 293812.dasm - System.Threading.Channels.Tests.ChannelTestBase+<ReadAllAsync_DualConcurrentEnumeration_AllItemsEnumerated>d__72:MoveNext():this (FullOpts)
         212 (5.34 % of base) : 267131.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         149 (2.32 % of base) : 42801.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         149 (2.32 % of base) : 48468.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         149 (4.60 % of base) : 294755.dasm - System.Threading.RateLimiting.Test.ConcurrencyLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         149 (4.58 % of base) : 294834.dasm - System.Threading.RateLimiting.Test.FixedWindowRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         149 (4.55 % of base) : 294937.dasm - System.Threading.RateLimiting.Test.SlidingWindowRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__8:MoveNext():this (FullOpts)
         149 (4.55 % of base) : 294940.dasm - System.Threading.RateLimiting.Test.TokenBucketRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         136 (2.00 % of base) : 128588.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWithAppend>d__17:MoveNext():this (FullOpts)
         120 (4.53 % of base) : 22904.dasm - Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine+<>c__DisplayClass20_0+<<ProcessDocumentAsync>g__ProcessDocumentAsync|0>d:MoveNext():this (FullOpts)
         120 (4.42 % of base) : 170784.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteXmlDeclarationAsync>d__95:MoveNext():this (FullOpts)
         119 (4.23 % of base) : 128677.dasm - System.IO.Pipelines.Tests.PipePoolTests+<AdvanceToEndReturnsAllButOneBlockIfWritingBeforeAdvance>d__1:MoveNext():this (FullOpts)
         119 (4.41 % of base) : 294057.dasm - System.Threading.RateLimiting.Test.TokenBucketRateLimiterTests+<ReplenishWorksWithTicksOverInt32Max>d__43:MoveNext():this (FullOpts)
         111 (2.56 % of base) : 20143.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         109 (5.90 % of base) : 155872.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         107 (4.42 % of base) : 255151.dasm - System.Text.Json.JsonDocument+<ReadToEndAsync>d__78:MoveNext():this (FullOpts)
         105 (5.42 % of base) : 128807.dasm - System.IO.Pipelines.Tests.PipeLengthTests+<LengthIsBasedOnPreviouslyExamined>d__10:MoveNext():this (FullOpts)
         104 (3.44 % of base) : 154063.dasm - System.Net.Quic.Tests.QuicStreamTests+<>c__DisplayClass7_0+<<LargeDataSentAndReceived>b__1>d:MoveNext():this (FullOpts)
         103 (3.47 % of base) : 154062.dasm - System.Net.Quic.Tests.QuicStreamTests+<>c__DisplayClass7_0+<<LargeDataSentAndReceived>b__2>d:MoveNext():this (FullOpts)
         102 (5.36 % of base) : 128336.dasm - System.IO.Pipelines.Tests.PipeWriterTests+<WriteLargeDataBinary>d__9:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -409 (-1.44 % of base) : 59259.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)
        -185 (-3.88 % of base) : 259450.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<<FloatingPointConstants_Pass>g__PerformFloatingPointSerialization|38_0>d:MoveNext():this (FullOpts)
        -185 (-3.88 % of base) : 244085.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<<FloatingPointConstants_Pass>g__PerformFloatingPointSerialization|38_0>d:MoveNext():this (FullOpts)
        -177 (-2.79 % of base) : 44416.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -168 (-4.93 % of base) : 197463.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
        -167 (-11.07 % of base) : 165420.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write2_wrapper(System.Object[]):this (FullOpts)
        -159 (-10.59 % of base) : 165601.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterTypeWithArrayPropertyHavingChoice:Write3_Item(System.String,System.String,SerializationTypes.TypeWithArrayPropertyHavingChoice,ubyte,ubyte):this (FullOpts)
        -139 (-3.92 % of base) : 176887.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue+TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this (FullOpts)
        -130 (-2.62 % of base) : 288633.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6477_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -109 (-0.61 % of base) : 174295.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
        -106 (-6.13 % of base) : 13038.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -105 (-3.14 % of base) : 85154.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
        -105 (-3.07 % of base) : 153465.dasm - System.Net.Http.X509ResourceClient+<>c__DisplayClass15_0+<<CreateDownloadBytesFunc>b__0>d:MoveNext():this (FullOpts)
        -105 (-3.10 % of base) : 156589.dasm - System.Net.Http.X509ResourceClient+<>c__DisplayClass15_0+<<CreateDownloadBytesFunc>b__0>d:MoveNext():this (FullOpts)
        -104 (-2.25 % of base) : 5124.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -86 (-2.80 % of base) : 177217.dasm - System.Reflection.DispatchProxyGenerator+ProxyBuilder:AddMethodImpl(System.Reflection.MethodInfo,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -84 (-7.64 % of base) : 52119.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.64 % of base) : 54326.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -84 (-7.64 % of base) : 45486.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -82 (-5.71 % of base) : 288815.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6786_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)

Top method regressions (percentages):
          25 (11.36 % of base) : 72278.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
          25 (11.36 % of base) : 71540.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
          18 (9.57 % of base) : 209977.dasm - System.Int128:op_CheckedMultiply(System.Int128,System.Int128):System.Int128 (FullOpts)
          65 (9.35 % of base) : 118519.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
          67 (9.24 % of base) : 129103.dasm - System.IO.Pipelines.Tests.StreamPipeReaderTests+ThrowAfterZeroByteReadStream+<ReadAsync>d__4:MoveNext():this (FullOpts)
          59 (8.35 % of base) : 36482.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope:DisposeAsync():System.Threading.Tasks.ValueTask:this (FullOpts)
          20 (7.41 % of base) : 57737.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          16 (7.11 % of base) : 150534.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
          16 (7.11 % of base) : 150812.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
           4 (6.45 % of base) : 126361.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
           6 (6.45 % of base) : 61644.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteElementString(System.String,System.String,System.String):this (FullOpts)
          23 (6.35 % of base) : 178833.dasm - System.Reflection.Emit.ModuleBuilderImpl:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
           4 (6.25 % of base) : 126353.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          50 (6.20 % of base) : 234582.dasm - System.Text.Json.SourceGeneration.Tests.AsyncStreamSerializerWrapper+<DeserializeWrapper>d__6`1[System.Text.Json.Serialization.Tests.GenericStructISetWrapper`1[int]]:MoveNext():this (FullOpts)
          85 (6.14 % of base) : 303149.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__43:MoveNext():this (FullOpts)
           6 (6.12 % of base) : 62098.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteNullableStringLiteral(System.String,System.String,System.String):this (FullOpts)
          23 (6.05 % of base) : 195890.dasm - DataContractSerializerTests:VerifyXElementObject(System.Xml.Linq.XElement,System.Xml.Linq.XElement,ubyte) (FullOpts)
          23 (6.05 % of base) : 197554.dasm - DataContractSerializerTests:VerifyXElementObject(System.Xml.Linq.XElement,System.Xml.Linq.XElement,ubyte) (FullOpts)
          23 (6.05 % of base) : 164764.dasm - XmlSerializerTests:VerifyXElementObject(System.Xml.Linq.XElement,System.Xml.Linq.XElement,ubyte) (FullOpts)
          23 (6.05 % of base) : 304172.dasm - XmlSerializerTests:VerifyXElementObject(System.Xml.Linq.XElement,System.Xml.Linq.XElement,ubyte) (FullOpts)

Top method improvements (percentages):
         -40 (-23.81 % of base) : 25999.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.64 % of base) : 26821.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.49 % of base) : 27136.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -39 (-23.35 % of base) : 105986.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.35 % of base) : 26822.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.35 % of base) : 26815.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.26 % of base) : 108290.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-23.26 % of base) : 104338.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.08 % of base) : 108303.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.08 % of base) : 112351.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-23.08 % of base) : 28747.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -40 (-22.86 % of base) : 102527.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.Oneclass2operates.conversion.oneparamdifftypesconv010.oneparamdifftypesconv010.Target (FullOpts)
         -39 (-22.81 % of base) : 105006.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 104339.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 108288.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 112327.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 112358.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 108295.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.67 % of base) : 112340.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -39 (-22.54 % of base) : 108293.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)


realworld.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13194305 (overridden on cmd)
Total bytes of diff: 13191353 (overridden on cmd)
Total bytes of delta: -2952 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         122 : 14416.dasm (2.82 % of base)
          96 : 16455.dasm (1.93 % of base)
          68 : 519.dasm (4.29 % of base)
          59 : 16496.dasm (2.05 % of base)
          57 : 5418.dasm (3.64 % of base)
          54 : 1944.dasm (4.76 % of base)
          47 : 14197.dasm (1.03 % of base)
          47 : 16032.dasm (0.16 % of base)
          47 : 22241.dasm (1.81 % of base)
          42 : 30851.dasm (7.71 % of base)
          40 : 3266.dasm (5.34 % of base)
          40 : 21379.dasm (1.11 % of base)
          35 : 26546.dasm (3.30 % of base)
          33 : 13920.dasm (2.68 % of base)
          31 : 24018.dasm (1.30 % of base)
          27 : 4833.dasm (6.70 % of base)
          27 : 14269.dasm (0.34 % of base)
          27 : 25962.dasm (3.58 % of base)
          26 : 30848.dasm (1.02 % of base)
          25 : 16480.dasm (1.48 % of base)

Top file improvements (bytes):
        -420 : 9020.dasm (-4.06 % of base)
        -306 : 15325.dasm (-3.98 % of base)
         -84 : 26490.dasm (-7.64 % of base)
         -77 : 20814.dasm (-1.35 % of base)
         -72 : 13748.dasm (-2.28 % of base)
         -63 : 7935.dasm (-2.76 % of base)
         -62 : 25271.dasm (-6.60 % of base)
         -53 : 7508.dasm (-2.72 % of base)
         -50 : 19658.dasm (-0.84 % of base)
         -48 : 23913.dasm (-0.61 % of base)
         -44 : 23426.dasm (-2.16 % of base)
         -42 : 31298.dasm (-2.59 % of base)
         -41 : 22059.dasm (-1.92 % of base)
         -41 : 26159.dasm (-1.56 % of base)
         -39 : 25664.dasm (-0.33 % of base)
         -37 : 19484.dasm (-3.31 % of base)
         -37 : 26391.dasm (-1.97 % of base)
         -37 : 15176.dasm (-0.97 % of base)
         -36 : 6757.dasm (-2.40 % of base)
         -35 : 59.dasm (-1.72 % of base)

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

Top method regressions (bytes):
         122 (2.82 % of base) : 14416.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          96 (1.93 % of base) : 16455.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          68 (4.29 % of base) : 519.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          59 (2.05 % of base) : 16496.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          57 (3.64 % of base) : 5418.dasm - FSharp.Compiler.LexFilter:|TyparsCloseOp|_|$cont@519(Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[ubyte,FSharp.Compiler.Parser+token][],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Parser+token]]] (FullOpts)
          54 (4.76 % of base) : 1944.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          47 (0.16 % of base) : 16032.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          47 (1.81 % of base) : 22241.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
          47 (1.03 % of base) : 14197.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (FullOpts)
          42 (7.71 % of base) : 30851.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)
          40 (5.34 % of base) : 3266.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:GetPathToDotNetFrameworkImlpementationAssemblies@57(System.String):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          40 (1.11 % of base) : 21379.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolComplex:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (FullOpts)
          35 (3.30 % of base) : 26546.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          33 (2.68 % of base) : 13920.dasm - System.Enum:TryParseByName[uint](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)
          31 (1.30 % of base) : 24018.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<FindMostSpecificImplementationInBases>g__findMostSpecificImplementationInBases|92_1(Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],byref,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          27 (6.70 % of base) : 4833.dasm - FSharp.Compiler.CompilerOptions:SetTarget(FSharp.Compiler.CompilerConfig+TcConfigBuilder,System.String) (FullOpts)
          27 (3.58 % of base) : 25962.dasm - Microsoft.CodeAnalysis.CSharp.Binder+WithQueryLambdaParametersBinder:BindRangeVariable(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.RangeVariableSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          27 (0.34 % of base) : 14269.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__89:MoveNext():this (FullOpts)
          26 (1.02 % of base) : 30848.dasm - System.Management.Automation.LocationGlobber:GenerateRelativePath(System.Management.Automation.PSDriveInfo,System.String,ubyte,System.Management.Automation.Provider.CmdletProvider,System.Management.Automation.CmdletProviderContext):System.String:this (FullOpts)
          25 (1.48 % of base) : 16480.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)

Top method improvements (bytes):
        -420 (-4.06 % of base) : 9020.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
        -306 (-3.98 % of base) : 15325.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
         -84 (-7.64 % of base) : 26490.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -77 (-1.35 % of base) : 20814.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
         -72 (-2.28 % of base) : 13748.dasm - Microsoft.ML.Data.SchemaDefinition:Create(System.Type,int):Microsoft.ML.Data.SchemaDefinition (FullOpts)
         -63 (-2.76 % of base) : 7935.dasm - FSharp.Compiler.NameResolution:CheckForTypeLegitimacyAndMultipleGenericTypeAmbiguities(Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]],FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.Text.Range):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]] (FullOpts)
         -62 (-6.60 % of base) : 25271.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableList`1+Builder[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],int,int,ubyte):this (FullOpts)
         -53 (-2.72 % of base) : 7508.dasm - FSharp.Compiler.ParseAndCheckInputs:ProcessMetaCommand@572[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],FSharp.Compiler.CompilerConfig+TcConfigBuilder,System.String,ubyte,System.__Canon,FSharp.Compiler.Syntax.ParsedHashDirective):System.__Canon (FullOpts)
         -50 (-0.84 % of base) : 19658.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -48 (-0.61 % of base) : 23913.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedString(Microsoft.CodeAnalysis.CSharp.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -44 (-2.16 % of base) : 23426.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:ComputeBoundDecisionDagNodes(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DecisionDag,Microsoft.CodeAnalysis.CSharp.BoundLeafDecisionDagNode):this (FullOpts)
         -42 (-2.59 % of base) : 31298.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         -41 (-1.56 % of base) : 26159.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:DefaultVisit(Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -41 (-1.92 % of base) : 22059.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEEventSymbol:GetAssociatedField(Roslyn.Utilities.MultiDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:this (FullOpts)
         -39 (-0.33 % of base) : 25664.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -37 (-1.97 % of base) : 26391.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (FullOpts)
         -37 (-3.31 % of base) : 19484.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AnalyzeArguments(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.ArgumentAnalysisResult (FullOpts)
         -37 (-0.97 % of base) : 15176.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingTransformer:GetVocabularyDictionary(Microsoft.ML.Runtime.IHostEnvironment):Microsoft.ML.Transforms.Text.WordEmbeddingTransformer+Model:this (FullOpts)
         -36 (-2.40 % of base) : 6757.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)
         -35 (-1.72 % of base) : 59.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(ulong,int,ulong,int,byref,byref):int (FullOpts)

Top method regressions (percentages):
          42 (7.71 % of base) : 30851.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)
          27 (6.70 % of base) : 4833.dasm - FSharp.Compiler.CompilerOptions:SetTarget(FSharp.Compiler.CompilerConfig+TcConfigBuilder,System.String) (FullOpts)
          40 (5.34 % of base) : 3266.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:GetPathToDotNetFrameworkImlpementationAssemblies@57(System.String):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          14 (5.20 % of base) : 1796.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
          23 (4.83 % of base) : 30515.dasm - System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)
          54 (4.76 % of base) : 1944.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          68 (4.29 % of base) : 519.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          57 (3.64 % of base) : 5418.dasm - FSharp.Compiler.LexFilter:|TyparsCloseOp|_|$cont@519(Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[ubyte,FSharp.Compiler.Parser+token][],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Parser+token]]] (FullOpts)
           4 (3.60 % of base) : 17862.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          27 (3.58 % of base) : 25962.dasm - Microsoft.CodeAnalysis.CSharp.Binder+WithQueryLambdaParametersBinder:BindRangeVariable(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.RangeVariableSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          35 (3.30 % of base) : 26546.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          18 (3.19 % of base) : 15879.dasm - Microsoft.ML.Trainers.KMeansUtils:FindBestCluster(byref,Microsoft.ML.Data.VBuffer`1[float][],float[],int,ubyte,byref,byref,byref,byref) (FullOpts)
           5 (3.16 % of base) : 1976.dasm - System.Xml.XmlDeclaration:set_Standalone(System.String):this (FullOpts)
          17 (3.11 % of base) : 15557.dasm - Microsoft.ML.Data.VBuffer`1[float]:CopyTo(System.Span`1[float],int,float):this (FullOpts)
           2 (2.94 % of base) : 26134.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
          24 (2.83 % of base) : 13465.dasm - Microsoft.ML.Data.RoleMappedSchema:.ctor(Microsoft.ML.DataViewSchema,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.IReadOnlyList`1[Microsoft.ML.DataViewSchema+Column]]):this (FullOpts)
         122 (2.82 % of base) : 14416.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          13 (2.75 % of base) : 85.dasm - System.RuntimeTypeHandle:CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType):System.Object (FullOpts)
           3 (2.70 % of base) : 29387.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEmbeddedAttributeSymbolBase:GetMembers(System.String):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          33 (2.68 % of base) : 13920.dasm - System.Enum:TryParseByName[uint](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)

Top method improvements (percentages):
         -20 (-11.63 % of base) : 16231.dasm - Microsoft.CodeAnalysis.CommandLineParser:TryParseUInt16(System.String,byref):ubyte (FullOpts)
         -22 (-9.87 % of base) : 29827.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -25 (-8.04 % of base) : 21055.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteNamedTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -84 (-7.64 % of base) : 26490.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -18 (-6.90 % of base) : 797.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -27 (-6.84 % of base) : 12269.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor:.ctor(System.Numerics.Matrix3x2,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler,SixLabors.ImageSharp.Size):this (FullOpts)
         -62 (-6.60 % of base) : 25271.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableList`1+Builder[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],int,int,ubyte):this (FullOpts)
         -12 (-5.69 % of base) : 5961.dasm - FSharp.Compiler.Xml.XmlDocumentationInfo:TryCreateFromFile(System.String):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Xml.XmlDocumentationInfo] (FullOpts)
          -7 (-5.51 % of base) : 11350.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
         -22 (-5.35 % of base) : 21573.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -20 (-5.32 % of base) : 30392.dasm - System.Runtime.CompilerServices.RuleCache`1[System.__Canon]:MoveRule(System.__Canon,int):this (FullOpts)
         -14 (-5.26 % of base) : 162.dasm - System.String:Concat(System.String,System.String):System.String (FullOpts)
         -21 (-4.56 % of base) : 18495.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+UsingsFromOptionsAndDiagnostics:Complete(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Threading.CancellationToken):this (FullOpts)
         -18 (-4.51 % of base) : 21167.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
        -420 (-4.06 % of base) : 9020.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
        -306 (-3.98 % of base) : 15325.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
         -31 (-3.97 % of base) : 55.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (FullOpts)
         -19 (-3.86 % of base) : 23066.dasm - Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
         -12 (-3.67 % of base) : 799.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-3.60 % of base) : 22257.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)


smoke_tests.nativeaot.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4197516 (overridden on cmd)
Total bytes of diff: 4196747 (overridden on cmd)
Total bytes of delta: -769 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          58 : 1203.dasm (5.49 % of base)
          58 : 17637.dasm (5.48 % of base)
          58 : 20559.dasm (5.48 % of base)
          58 : 24023.dasm (5.48 % of base)
          33 : 5464.dasm (5.37 % of base)
          31 : 20720.dasm (2.27 % of base)
          31 : 17736.dasm (2.27 % of base)
          31 : 24206.dasm (2.27 % of base)
          28 : 8236.dasm (2.43 % of base)
          23 : 3776.dasm (5.12 % of base)
          18 : 23251.dasm (1.02 % of base)
          18 : 3585.dasm (1.03 % of base)
          17 : 17431.dasm (6.25 % of base)
          17 : 20416.dasm (6.25 % of base)
          17 : 23904.dasm (6.25 % of base)
          17 : 774.dasm (6.25 % of base)
          15 : 25596.dasm (0.85 % of base)
          15 : 19130.dasm (0.85 % of base)
          15 : 22115.dasm (0.85 % of base)
          15 : 7741.dasm (1.38 % of base)

Top file improvements (bytes):
        -105 : 8137.dasm (-3.74 % of base)
         -46 : 5756.dasm (-6.05 % of base)
         -41 : 4227.dasm (-2.97 % of base)
         -36 : 18868.dasm (-3.71 % of base)
         -36 : 4030.dasm (-3.75 % of base)
         -36 : 21851.dasm (-3.71 % of base)
         -36 : 25320.dasm (-3.71 % of base)
         -35 : 9029.dasm (-5.32 % of base)
         -35 : 6499.dasm (-5.99 % of base)
         -32 : 297.dasm (-3.11 % of base)
         -32 : 9158.dasm (-1.56 % of base)
         -31 : 1208.dasm (-2.73 % of base)
         -30 : 4356.dasm (-2.92 % of base)
         -27 : 17643.dasm (-2.38 % of base)
         -27 : 20595.dasm (-2.38 % of base)
         -27 : 24028.dasm (-2.38 % of base)
         -26 : 9018.dasm (-3.44 % of base)
         -24 : 8552.dasm (-2.90 % of base)
         -23 : 18104.dasm (-3.00 % of base)
         -23 : 21114.dasm (-3.00 % of base)

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

Top method regressions (bytes):
          58 (5.49 % of base) : 1203.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 17637.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 20559.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 24023.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          33 (5.37 % of base) : 5464.dasm - System.DefaultBinder:CreateParamOrder(int[],System.ReadOnlySpan`1[System.Reflection.ParameterInfo],System.String[]):ubyte (FullOpts)
          31 (2.27 % of base) : 20720.dasm - System.Text.UTF32Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          31 (2.27 % of base) : 17736.dasm - System.Text.UTF32Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          31 (2.27 % of base) : 24206.dasm - System.Text.UTF32Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          28 (2.43 % of base) : 8236.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          23 (5.12 % of base) : 3776.dasm - System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)
          18 (1.02 % of base) : 23251.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          18 (1.03 % of base) : 3585.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          17 (6.25 % of base) : 17431.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 20416.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 23904.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 774.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          15 (0.85 % of base) : 25596.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          15 (0.85 % of base) : 19130.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          15 (0.85 % of base) : 22115.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          15 (1.38 % of base) : 7741.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)

Top method improvements (bytes):
        -105 (-3.74 % of base) : 8137.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)
         -46 (-6.05 % of base) : 5756.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (FullOpts)
         -41 (-2.97 % of base) : 4227.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         -36 (-3.71 % of base) : 18868.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -36 (-3.75 % of base) : 4030.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -36 (-3.71 % of base) : 21851.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -36 (-3.71 % of base) : 25320.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -35 (-5.99 % of base) : 6499.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -35 (-5.32 % of base) : 9029.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -32 (-1.56 % of base) : 9158.dasm - System.Globalization.IdnMapping:PunycodeEncode(System.String):System.String (FullOpts)
         -32 (-3.11 % of base) : 297.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)
         -31 (-2.73 % of base) : 1208.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
         -30 (-2.92 % of base) : 4356.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this (FullOpts)
         -27 (-2.38 % of base) : 17643.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
         -27 (-2.38 % of base) : 20595.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
         -27 (-2.38 % of base) : 24028.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
         -26 (-3.44 % of base) : 9018.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
         -24 (-2.90 % of base) : 8552.dasm - System.SpanHelpers:LastIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,short,int):int (FullOpts)
         -23 (-3.00 % of base) : 18104.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (FullOpts)
         -23 (-3.00 % of base) : 21114.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (FullOpts)

Top method regressions (percentages):
          17 (6.25 % of base) : 17431.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 20416.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 23904.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          17 (6.25 % of base) : 774.dasm - System.Runtime.DispatchResolve:FindInterfaceMethodImplementationTarget(ulong,ulong,ushort,ulong):long (FullOpts)
          58 (5.49 % of base) : 1203.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 17637.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 20559.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          58 (5.48 % of base) : 24023.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          33 (5.37 % of base) : 5464.dasm - System.DefaultBinder:CreateParamOrder(int[],System.ReadOnlySpan`1[System.Reflection.ParameterInfo],System.String[]):ubyte (FullOpts)
          23 (5.12 % of base) : 3776.dasm - System.Dynamic.Utils.ExpressionUtils:ValidateArgumentTypes(System.Reflection.MethodBase,int,byref,System.String) (FullOpts)
          12 (4.21 % of base) : 9022.dasm - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts)
          11 (3.04 % of base) : 1698.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          11 (3.04 % of base) : 18547.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          11 (3.04 % of base) : 25008.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          11 (3.04 % of base) : 21536.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          11 (2.71 % of base) : 4461.dasm - Internal.Reflection.Execution.ConstraintValidator:EnsureSatisfiesClassConstraints(System.Type[],System.Type[],System.Object,Internal.Reflection.Execution.ConstraintValidator+SigTypeContext) (FullOpts)
          11 (2.67 % of base) : 23239.dasm - Internal.Reflection.Execution.ConstraintValidator:EnsureSatisfiesClassConstraints(System.Type[],System.Type[],System.Object,Internal.Reflection.Execution.ConstraintValidator+SigTypeContext) (FullOpts)
          28 (2.43 % of base) : 8236.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          13 (2.40 % of base) : 16973.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)
          13 (2.40 % of base) : 27353.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)

Top method improvements (percentages):
         -46 (-6.05 % of base) : 5756.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (FullOpts)
         -35 (-5.99 % of base) : 6499.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -35 (-5.32 % of base) : 9029.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -18 (-5.14 % of base) : 19648.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -18 (-5.14 % of base) : 22644.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -18 (-5.14 % of base) : 26123.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -18 (-5.14 % of base) : 4155.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -36 (-3.75 % of base) : 4030.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
        -105 (-3.74 % of base) : 8137.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         -36 (-3.71 % of base) : 18868.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -36 (-3.71 % of base) : 21851.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -36 (-3.71 % of base) : 25320.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -26 (-3.44 % of base) : 9018.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
          -8 (-3.21 % of base) : 18685.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-3.21 % of base) : 21670.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-3.21 % of base) : 1580.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-3.21 % of base) : 25136.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-3.20 % of base) : 22669.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-3.20 % of base) : 19666.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-3.20 % of base) : 26137.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)



osx arm64

Diffs are based on 2,263,021 contexts (930,876 MinOpts, 1,332,145 FullOpts).

MISSED contexts: base: 2,925 (0.13%), diff: 2,944 (0.13%)

Overall (-97,340 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,180,924 +420
benchmarks.run_pgo.osx.arm64.checked.mch 34,573,260 -1,928
benchmarks.run_tiered.osx.arm64.checked.mch 15,560,360 -236
coreclr_tests.run.osx.arm64.checked.mch 485,472,376 -37,636
libraries.crossgen2.osx.arm64.checked.mch 55,620,836 +20
libraries.pmi.osx.arm64.checked.mch 79,955,312 -916
libraries_tests.run.osx.arm64.Release.mch 312,683,360 -35,932
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 160,782,296 -21,116
realworld.run.osx.arm64.checked.mch 15,071,740 -16

FullOpts (-97,340 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,180,388 +420
benchmarks.run_pgo.osx.arm64.checked.mch 18,099,980 -1,928
benchmarks.run_tiered.osx.arm64.checked.mch 4,045,284 -236
coreclr_tests.run.osx.arm64.checked.mch 153,165,920 -37,636
libraries.crossgen2.osx.arm64.checked.mch 55,619,208 +20
libraries.pmi.osx.arm64.checked.mch 79,834,184 -916
libraries_tests.run.osx.arm64.Release.mch 108,742,856 -35,932
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 147,644,768 -21,116
realworld.run.osx.arm64.checked.mch 14,503,336 -16

Example diffs

benchmarks.run.osx.arm64.checked.mch

-8 (-6.45%) : 14448.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -59,10 +59,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -81,21 +79,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -114,13 +110,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 124, prolog size 8, PerfScore 16.50, instruction count 31, allocated bytes for code 124 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 15.50, instruction count 29, allocated bytes for code 116 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -131,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-6.06%) : 2768.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)

@@ -78,10 +78,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M49441_IG04
-            cbz     x1, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -92,31 +90,29 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M49441_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M49441_IG07
+            cbnz    w3, G_M49441_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x1]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
             add     x4, x1, #12
             ; byrRegs +[x4]
             mov     x5, x4
             ; byrRegs +[x5]
             sxtw    w6, w3
-            b       G_M49441_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1]
-            ; byrRegs -[x4-x5]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0030 {x4 x5}, gcvars, byref, isz
-            ; gcrRegs +[x1]
-            ; byrRegs +[x4-x5]
             cmp     w6, #0
             ble     G_M49441_IG09
             ldrh    w5, [x5]
             ; byrRegs -[x5]
             cmp     w5, #47
             beq     G_M49441_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M49441_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
             ; gcrRegs -[x1]
             add     x0, x0, #12
@@ -139,7 +135,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 18.50, instruction count 33, allocated bytes for code 132 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-5.00%) : 7953.dasm - System.Collections.Generic.SortedSet1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet1+Node[System.Canon],System.Collections.Generic.SortedSet`1+Node[System.Canon]):ubyte:this (FullOpts)

@@ -36,12 +36,8 @@ G_M938_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byr
             ldrb    w0, [x0, #0x20]
             ; gcrRegs -[x0]
             cmp     w0, #1
-            bne     G_M938_IG04
-            mov     w0, #2
-            cmp     w1, #0
-            cinc    w0, w0, ne
-            b       G_M938_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+            beq     G_M938_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M938_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             cmp     w1, #0
             cset    x0, eq
@@ -50,12 +46,17 @@ G_M938_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M938_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M938_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #2
+            cmp     w1, #0
+            cinc    w0, w0, ne
+                       ;; size=12 bbWeight=0.50 PerfScore 0.75
+G_M938_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -66,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 2845.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 20061.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.65%) : 14506.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)

@@ -16,7 +16,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M26551_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M26551_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -47,7 +47,7 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #15
             cmp     w0, #1
-            bls     G_M26551_IG05
+            bls     G_M26551_IG07
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -55,20 +55,9 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             blr     x1
             ; gcrRegs -[x0]
             cbnz    w0, G_M26551_IG03
-                       ;; size=32 bbWeight=4 PerfScore 42.00
+            b       G_M26551_IG09
+                       ;; size=36 bbWeight=4 PerfScore 46.00
 G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            ldr     x1, [x21, #0x28]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
-            br      x1
-                       ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -79,20 +68,36 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             ; gcrRegs +[x0]
             ldr     x1, [x21, #0x28]
                        ;; size=24 bbWeight=0.50 PerfScore 5.50
+G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x30
+            br      x1
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            ldr     x1, [x21, #0x28]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x1
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-RWD00      dd  G_M26551_IG05 - G_M26551_IG02
+G_M26551_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M26551_IG07
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+RWD00      dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG05 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
            dd  G_M26551_IG07 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
 
 
-; Total bytes of code 172, prolog size 16, PerfScore 163.25, instruction count 43, allocated bytes for code 172 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
+; Total bytes of code 180, prolog size 16, PerfScore 167.75, instruction count 45, allocated bytes for code 180 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_pgo.osx.arm64.checked.mch

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

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

-48 (-9.30%) : 64351.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T16] (  5,  3.00)    long  ->   x4         single-def
-;  V01 arg1         [V01,T10] (  7,  5.00)     int  ->  [fp+0x14]  single-def
+;  V01 arg1         [V01,T10] (  7,  5.00)     int  ->  [fp+0x1C]  single-def
 ;  V02 arg2         [V02,T14] (  4,  3   )     ref  ->   x2         class-hnd single-def <ubyte[]>
 ;  V03 arg3         [V03,T15] (  6,  3.00)     ref  ->   x3         class-hnd single-def <System.Reflection.Metadata.MetadataStringDecoder>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,14 +27,14 @@
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V16 tmp12        [V16,T01] (  3, 51.67)   ubyte  ->   x6         "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V18 tmp14        [V18,T19] (  3,  3.00)     ref  ->  x19         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V19 tmp15        [V19,T12] (  5,  5.01)     int  ->  x20         "Inline stloc first use temp"
-;  V20 tmp16        [V20,T11] (  7,  5.98)     ref  ->  x22         class-hnd "Inline stloc first use temp" <System.String>
-;  V21 tmp17        [V21,T13] (  5,  5.01)     int  ->  x21         "Inline stloc first use temp"
-;  V22 tmp18        [V22,T24] (  2,  1.51)     int  ->   x1         "Inline stloc first use temp"
+;  V18 tmp14        [V18,T19] (  3,  3.00)     ref  ->   x1         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V19 tmp15        [V19,T12] (  5,  5.01)     int  ->   x5         "Inline stloc first use temp"
+;  V20 tmp16        [V20,T11] (  7,  5.98)     ref  ->   x8         class-hnd "Inline stloc first use temp" <System.String>
+;  V21 tmp17        [V21,T13] (  5,  5.01)     int  ->   x6         "Inline stloc first use temp"
+;  V22 tmp18        [V22,T24] (  2,  1.51)     int  ->   x7         "Inline stloc first use temp"
 ;* V23 tmp19        [V23,T28] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp20        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V25 tmp21        [V25,T04] (  5, 34.56)     int  ->  x23         "Inline stloc first use temp"
+;  V25 tmp21        [V25,T04] (  5, 34.56)     int  ->   x7         "Inline stloc first use temp"
 ;  V26 tmp22        [V26,T22] (  2,  2.00)   byref  ->   x4         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;  V27 tmp23        [V27,T23] (  2,  2.00)     int  ->   x2         "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp24        [V28,T06] (  4, 27.73)   byref  ->   x4         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
@@ -42,22 +42,19 @@
 ;* V30 tmp26        [V30,T26] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp27        [V31,T27] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V32 tmp28        [V32,T29] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp29        [V33,T25] (  2,  1.01)     int  ->   x1         "field V24._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T18] (  3,  3.01)    long  ->   x1         "CSE - moderate"
+;  V33 tmp29        [V33,T25] (  2,  1.01)     int  ->   x7         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V34 cse0         [V34,T18] (  3,  3.01)    long  ->   x7         "CSE - moderate"
 ;  V35 cse1         [V35,T08] (  2, 18.17)     int  ->   x5         hoist "CSE - aggressive"
-;  V36 cse2         [V36,T09] (  2,  8.99)   byref  ->   x1         hoist "CSE - aggressive"
-;  V37 cse3         [V37,T07] (  3, 25.54)    long  ->   x5         "CSE - aggressive"
+;  V36 cse2         [V36,T09] (  2,  8.99)   byref  ->   x9         hoist "CSE - aggressive"
+;  V37 cse3         [V37,T07] (  3, 25.54)    long  ->  x10         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M33766_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
             mov     x4, x0
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=12 bbWeight=1 PerfScore 2.00
 G_M33766_IG02:        ; bbWeight=1, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2-x3]
             cbz     x2, G_M33766_IG05
@@ -73,15 +70,12 @@ G_M33766_IG03:        ; bbWeight=0, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M33766_IG04:        ; bbWeight=0, epilog, nogc, extend
-            ldr     x23, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 G_M33766_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x3]
-            cbnz    w1, G_M33766_IG16
+            cbnz    w1, G_M33766_IG15
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M33766_IG06:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x3]
@@ -90,12 +84,9 @@ G_M33766_IG06:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             movk    x0, #1 LSL #32
                        ;; size=12 bbWeight=0.00 PerfScore 0.00
 G_M33766_IG07:        ; bbWeight=0.00, epilog, nogc, extend
-            ldr     x23, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=20 bbWeight=0.00 PerfScore 0.01
+                       ;; size=8 bbWeight=0.00 PerfScore 0.00
 G_M33766_IG08:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             sxtw    w2, w1
             movz    w0, #0xD1FFAB1E
@@ -123,128 +114,119 @@ G_M33766_IG10:        ; bbWeight=17.22, gcrefRegs=0000 {}, byrefRegs=0010 {x4},
 G_M33766_IG11:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {x4}, byref, isz
             tst     w1, #128
             cset    x3, eq
-            cbz     w3, G_M33766_IG26
+            cbz     w3, G_M33766_IG24
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #2 LSL #32
-            ldr     x19, [x1]
-            ; gcrRegs +[x19]
-            eor     w1, w0, w0,  ASR #11
-            uxth    w20, w1
-            mov     w21, #1
+            ldr     x1, [x1]
+            ; gcrRegs +[x1]
+            eor     w5, w0, w0,  ASR #11
+            uxth    w5, w5
+            mov     w6, #1
                        ;; size=40 bbWeight=1.00 PerfScore 8.48
-G_M33766_IG12:        ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0010 {x4}, byref, isz
-            cmp     w20, #16, LSL #12
-            bhs     G_M33766_IG27
-            ubfiz   x1, x20, #4, #32
-            add     x1, x1, #16
-            ldr     x22, [x19, x1]
-            ; gcrRegs +[x22]
-            add     x1, x19, x1
-            ; byrRegs +[x1]
-            ldr     w1, [x1, #0x08]
-            ; byrRegs -[x1]
-            cbz     x22, G_M33766_IG25
+G_M33766_IG12:        ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz
+            cmp     w5, #16, LSL #12
+            bhs     G_M33766_IG25
+            ubfiz   x7, x5, #4, #32
+            add     x7, x7, #16
+            ldr     x8, [x1, x7]
+            ; gcrRegs +[x8]
+            add     x7, x1, x7
+            ; byrRegs +[x7]
+            ldr     w7, [x7, #0x08]
+            ; byrRegs -[x7]
+            cbz     x8, G_M33766_IG23
                        ;; size=32 bbWeight=1.00 PerfScore 10.52
-G_M33766_IG13:        ; bbWeight=0.51, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref, isz
-            cmp     w1, w0
-            bne     G_M33766_IG24
+G_M33766_IG13:        ; bbWeight=0.51, gcrefRegs=0102 {x1 x8}, byrefRegs=0010 {x4}, byref, isz
+            cmp     w7, w0
+            bne     G_M33766_IG22
                        ;; size=8 bbWeight=0.51 PerfScore 0.76
-G_M33766_IG14:        ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref, isz
-            sxtw    w1, w2
-            ldr     w5, [x22, #0x08]
-            cmp     w5, w1
-            bne     G_M33766_IG24
-            mov     w23, wzr
+G_M33766_IG14:        ; bbWeight=0.50, gcrefRegs=0102 {x1 x8}, byrefRegs=0010 {x4}, byref, isz
+            sxtw    w7, w2
+            ldr     w9, [x8, #0x08]
+            cmp     w9, w7
+            bne     G_M33766_IG22
+            mov     w7, wzr
             cmp     w2, #0
-            ble     G_M33766_IG25
-                       ;; size=28 bbWeight=0.50 PerfScore 3.52
-G_M33766_IG15:        ; bbWeight=0.47, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, byref
-            b       G_M33766_IG20
-                       ;; size=4 bbWeight=0.47 PerfScore 0.47
-G_M33766_IG16:        ; bbWeight=1.00, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x19 x22] +[x3]
+            ble     G_M33766_IG23
+            b       G_M33766_IG19
+                       ;; size=32 bbWeight=0.50 PerfScore 4.02
+G_M33766_IG15:        ; bbWeight=1.00, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x1 x8] +[x3]
             ; byrRegs -[x4]
             ldr     x2, [x3]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
             cmp     x2, x0
-            beq     G_M33766_IG23
+            beq     G_M33766_IG21
                        ;; size=24 bbWeight=1.00 PerfScore 5.99
-G_M33766_IG17:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref
-            str     w1, [fp, #0x14]    // [V01 arg1]
+G_M33766_IG16:        ; bbWeight=0, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, byref
+            str     w1, [fp, #0x1C]    // [V01 arg1]
             mov     x0, x3
             ; gcrRegs +[x0]
             mov     x1, x4
-            ldr     w2, [fp, #0x14]    // [V01 arg1]
+            ldr     w2, [fp, #0x1C]    // [V01 arg1]
             ldr     x3, [x3]
             ; gcrRegs -[x3]
             ldr     x3, [x3, #0x48]
             ldr     x3, [x3, #0x20]
             blr     x3
             ; gcr arg pop 0
-            mov     x22, x0
-            ; gcrRegs +[x22]
+            mov     x8, x0
+            ; gcrRegs +[x8]
                        ;; size=36 bbWeight=0 PerfScore 0.00
-G_M33766_IG18:        ; bbWeight=1.00, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M33766_IG17:        ; bbWeight=1.00, gcrefRegs=0100 {x8}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            mov     x0, x22
+            mov     x0, x8
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=1.00 PerfScore 0.50
-G_M33766_IG19:        ; bbWeight=1.00, epilog, nogc, extend
-            ldr     x23, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x40
+G_M33766_IG18:        ; bbWeight=1.00, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=20 bbWeight=1.00 PerfScore 5.99
-G_M33766_IG20:        ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0010 {x4}, gcvars, byref
-            ; gcrRegs -[x0] +[x19]
+                       ;; size=8 bbWeight=1.00 PerfScore 2.00
+G_M33766_IG19:        ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=0102 {x1 x8}, byrefRegs=0010 {x4}, gcvars, byref
+            ; gcrRegs -[x0] +[x1]
             ; byrRegs +[x4]
-            add     x1, x22, #12
-            ; byrRegs +[x1]
+            add     x9, x8, #12
+            ; byrRegs +[x9]
                        ;; size=4 bbWeight=0.47 PerfScore 0.24
-G_M33766_IG21:        ; bbWeight=8.51, gcrefRegs=480000 {x19 x22}, byrefRegs=0012 {x1 x4}, byref, isz
-            mov     w5, w23
-            ldrb    w6, [x4, x5]
-            lsl     x5, x5, #1
-            ldrh    w5, [x1, x5]
-            cmp     w6, w5
-            bne     G_M33766_IG24
-            add     w23, w23, #1
-            cmp     w23, w2
-            blt     G_M33766_IG21
-                       ;; size=36 bbWeight=8.51 PerfScore 93.65
-G_M33766_IG22:        ; bbWeight=0.47, gcrefRegs=400000 {x22}, byrefRegs=0010 {x4}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x1]
-            b       G_M33766_IG25
-                       ;; size=4 bbWeight=0.47 PerfScore 0.47
-G_M33766_IG23:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x22]
-            ; byrRegs -[x4]
-            tbnz    w1, #31, G_M33766_IG28
+G_M33766_IG20:        ; bbWeight=8.51, gcrefRegs=0102 {x1 x8}, byrefRegs=0210 {x4 x9}, byref, isz
+            mov     w10, w7
+            ldrb    w11, [x4, x10]
...

-16 (-7.02%) : 22190.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@
 ;
 ;  V00 arg0         [V00,T04] (  9,500.49)     ref  ->   x0         class-hnd single-def <int[,]>
 ;* V01 arg1         [V01    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V02 loc0         [V02,T17] (  6,100.52)     int  ->   x3        
+;  V02 loc0         [V02,T17] (  5,100.52)     int  ->   x3        
 ;  V03 loc1         [V03,T11] (  2,199.00)     int  ->  x10        
 ;  V04 loc2         [V04,T12] (  2,199.00)     int  ->  x11        
-;  V05 loc3         [V05,T20] (  8, 99.54)     int  ->   x4        
+;  V05 loc3         [V05,T20] (  5, 99.54)     int  ->   x4        
 ;  V06 loc4         [V06,T16] (  6,101.02)     int  ->   x2        
 ;  V07 loc5         [V07,T05] (  6,399.00)     int  ->   x1        
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -95,13 +95,12 @@ G_M57584_IG07:        ; bbWeight=99.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {},
 G_M57584_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             add     w2, w2, #1
             cmp     w2, w3
-            bgt     G_M57584_IG11
-            b       G_M57584_IG04
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
+            ble     G_M57584_IG04
+                       ;; size=12 bbWeight=0.50 PerfScore 1.00
 G_M57584_IG09:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             add     w4, w4, #1
             cmp     w4, w3
-            bgt     G_M57584_IG12
+            bgt     G_M57584_IG11
             b       G_M57584_IG03
                        ;; size=16 bbWeight=0.01 PerfScore 0.03
 G_M57584_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -109,20 +108,13 @@ G_M57584_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57584_IG11:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            add     w4, w4, #1
-            cmp     w4, w3
-            ble     G_M57584_IG03
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M57584_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x0]
+G_M57584_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             add     sp, sp, #64
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 24, PerfScore 3199.99, instruction count 57, allocated bytes for code 228 (MethodHash=862a1f0f) for method Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
+; Total bytes of code 212, prolog size 24, PerfScore 3199.49, instruction count 53, allocated bytes for code 212 (MethodHash=862a1f0f) for method Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -133,7 +125,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 53 (0x00035) Actual length = 212 (0x0000d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+4.76%) : 59208.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)

@@ -5,22 +5,22 @@
 ; optimized using Dynamic PGO
 ; fp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 1235
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 1235
 ; 5 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T06] (  6,  3   )     ref  ->  x24         this class-hnd single-def <System.Text.Encoding>
 ;  V01 arg1         [V01,T02] (  7,  5   )    long  ->  x21         single-def
-;  V02 arg2         [V02,T00] (  9,  6.00)     int  ->  x19         single-def
+;  V02 arg2         [V02,T00] ( 11,  6.00)     int  ->  x19         single-def
 ;  V03 arg3         [V03,T01] (  7,  5.00)    long  ->  x20         single-def
 ;  V04 arg4         [V04,T04] (  7,  4.00)     int  ->  x23         single-def
 ;  V05 arg5         [V05,T03] (  6,  5.00)     ref  ->  x22         class-hnd single-def <System.Text.DecoderNLS>
-;  V06 loc0         [V06,T08] (  3,  2.00)     int  ->   x6        
-;  V07 loc1         [V07    ] (  5,  3.00)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V06 loc0         [V06,T08] (  4,  2.00)     int  ->   x6        
+;  V07 loc1         [V07    ] (  6,  3.00)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T09] (  2,  0.00)     int  ->   x4        
 ;  V10 tmp2         [V10,T10] (  2,  0.00)     int  ->   x4        
-;  V11 tmp3         [V11,T07] (  4,  3   )     int  ->   x0         "guarded devirt return temp"
+;  V11 tmp3         [V11,T07] (  5,  3   )     int  ->   x0         "guarded devirt return temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;* V13 tmp5         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp6         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -54,139 +54,31 @@ G_M965_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
             ; gcrRegs +[x22]
                        ;; size=44 bbWeight=1 PerfScore 7.50
 G_M965_IG02:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            cbnz    x22, G_M965_IG04
+            cbz     x22, G_M965_IG17
+            tbnz    w19, #31, G_M965_IG18
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M965_IG03:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbz     x21, G_M965_IG11
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M965_IG03:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M965_IG04:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            tbz     w19, #31, G_M965_IG06
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M965_IG05:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M965_IG06:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            cbnz    x21, G_M965_IG08
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M965_IG07:        ; bbWeight=0.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            cmp     w19, #0
-            cset    x4, eq
-            tst     w4, #255
-            beq     G_M965_IG20
-                       ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M965_IG08:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            tbz     w23, #31, G_M965_IG10
+G_M965_IG04:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+            tbnz    w23, #31, G_M965_IG19
                        ;; size=4 bbWeight=1.00 PerfScore 1.00
-G_M965_IG09:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M965_IG10:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            cbnz    x20, G_M965_IG12
+G_M965_IG05:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+            cbz     x20, G_M965_IG10
                        ;; size=4 bbWeight=1.00 PerfScore 1.00
-G_M965_IG11:        ; bbWeight=0.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            cmp     w23, #0
-            cset    x4, eq
-            tst     w4, #255
-            beq     G_M965_IG21
-                       ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M965_IG12:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+G_M965_IG06:        ; bbWeight=1.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             mov     w6, wzr
             str     wzr, [fp, #0x28]   // [V07 loc1]
             ldr     w4, [x22, #0x28]
-            cbz     w4, G_M965_IG15
+            cbnz    w4, G_M965_IG15
                        ;; size=16 bbWeight=1.00 PerfScore 5.50
-G_M965_IG13:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
-            mov     x0, x24
-            ; gcrRegs +[x0]
-            mov     x1, x21
-            mov     w2, w19
-            mov     x3, x20
-            mov     w4, w23
-            ldr     w5, [fp, #0x28]    // [V07 loc1]
-            mov     x7, x22
-            ; gcrRegs +[x7]
-            movz    x8, #0xD1FFAB1E      // code for System.Text.Encoding:GetCharsWithFallback(ulong,int,ulong,int,int,int,System.Text.DecoderNLS):int:this
-            movk    x8, #0xD1FFAB1E LSL #16
-            movk    x8, #1 LSL #32
-            ldr     x8, [x8]
-            blr     x8
-            ; gcrRegs -[x0 x7 x22 x24]
-                       ;; size=48 bbWeight=0 PerfScore 0.00
-G_M965_IG14:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x50]
-            ldp     x21, x22, [sp, #0x40]
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M965_IG15:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x22 x24]
+G_M965_IG07:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
             ldr     x4, [x24]
             movz    x5, #0xD1FFAB1E
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #1 LSL #32
             cmp     x4, x5
-            beq     G_M965_IG19
-                       ;; size=24 bbWeight=1 PerfScore 6.00
-G_M965_IG16:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
-            add     x5, fp, #40    // [V07 loc1]
-            mov     x0, x24
-            ; gcrRegs +[x0]
-            mov     x1, x21
-            mov     w2, w19
-            mov     x3, x20
-            mov     w4, w23
-            ldr     x6, [x24]
-            ldr     x6, [x6, #0x80]
-            ldr     x6, [x6, #0x28]
-            blr     x6
-            ; gcrRegs -[x0]
-                       ;; size=40 bbWeight=0 PerfScore 0.00
-G_M965_IG17:        ; bbWeight=1, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
-            sxtw    w6, w0
-            ldr     w1, [fp, #0x28]    // [V07 loc1]
-            cmp     w1, w19
-            bne     G_M965_IG13
-            str     w19, [x22, #0x20]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
-G_M965_IG18:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x50]
-            ldp     x21, x22, [sp, #0x40]
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x60
-            ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 5.00
-G_M965_IG19:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, gcvars, byref
+            bne     G_M965_IG14
             add     x4, fp, #32    // [V23 tmp15]
             add     x5, fp, #24    // [V24 tmp16]
             mov     x0, x21
@@ -205,9 +97,37 @@ G_M965_IG19:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1400000
             sub     x0, x0, x20
             add     x0, x0, x0,  LSR #63
             asr     x0, x0, #1
-            b       G_M965_IG17
-                       ;; size=76 bbWeight=1 PerfScore 17.50
-G_M965_IG20:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
+            sxtw    w6, w0
+            ldr     w1, [fp, #0x28]    // [V07 loc1]
+            cmp     w1, w19
+            bne     G_M965_IG15
+                       ;; size=112 bbWeight=1 PerfScore 26.50
+G_M965_IG08:        ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x24]
+            str     w19, [x22, #0x20]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M965_IG09:        ; bbWeight=1, epilog, nogc, extend
+            ldp     x23, x24, [sp, #0x50]
+            ldp     x21, x22, [sp, #0x40]
+            ldp     x19, x20, [sp, #0x30]
+            ldp     fp, lr, [sp], #0x60
+            ret     lr
+                       ;; size=20 bbWeight=1 PerfScore 5.00
+G_M965_IG10:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x24]
+            cmp     w23, #0
+            cset    x4, eq
+            tst     w4, #255
+            bne     G_M965_IG06
+            b       G_M965_IG13
+                       ;; size=20 bbWeight=0.00 PerfScore 0.00
+G_M965_IG11:        ; bbWeight=0.00, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+            cmp     w19, #0
+            cset    x4, eq
+            tst     w4, #255
+            bne     G_M965_IG04
+                       ;; size=16 bbWeight=0.00 PerfScore 0.00
+G_M965_IG12:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -219,9 +139,9 @@ G_M965_IG20:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M965_IG08
+            b       G_M965_IG04
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M965_IG21:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
+G_M965_IG13:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -233,10 +153,95 @@ G_M965_IG21:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M965_IG12
+            b       G_M965_IG06
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M965_IG14:        ; bbWeight=0, gcrefRegs=1400000 {x22 x24}, byrefRegs=0000 {}, byref, isz
+            add     x5, fp, #40    // [V07 loc1]
+            mov     x0, x24
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            mov     w2, w19
+            mov     x3, x20
+            mov     w4, w23
+            ldr     x6, [x24]
...

+12 (+5.26%) : 60962.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)

@@ -41,7 +41,7 @@ G_M48356_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, by
             ; byrRegs +[x1]
             ldr     w3, [x0, #0x08]
             cmp     w3, #2
-            bls     G_M48356_IG18
+            bls     G_M48356_IG19
             ldrh    w4, [x0, #0x10]
             ldrh    w5, [x0, #0x0E]
             add     w6, w4, w5
@@ -49,96 +49,105 @@ G_M48356_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, by
             cmp     w3, w6
             cset    x6, gt
             cmp     w3, #3
-            ble     G_M48356_IG07
+            ble     G_M48356_IG04
                        ;; size=44 bbWeight=1 PerfScore 14.00
 G_M48356_IG03:        ; bbWeight=1.00, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
             cmp     w5, #0
-            ble     G_M48356_IG07
-            tbnz    w5, #0, G_M48356_IG07
-            cbnz    w4, G_M48356_IG07
+            ble     G_M48356_IG04
+            tbnz    w5, #0, G_M48356_IG04
+            cbz     w4, G_M48356_IG18
                        ;; size=16 bbWeight=1.00 PerfScore 3.50
-G_M48356_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
-            cbnz    w6, G_M48356_IG07
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M48356_IG05:        ; bbWeight=1.00, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
-            mov     w4, wzr
-            mov     w6, #3
-            add     w5, w5, #3
-            cmp     w5, #3
-            ble     G_M48356_IG14
-                       ;; size=20 bbWeight=1.00 PerfScore 2.99
-G_M48356_IG06:        ; bbWeight=0.69, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref
-            b       G_M48356_IG09
-                       ;; size=4 bbWeight=0.69 PerfScore 0.69
-G_M48356_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48356_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             mov     w0, wzr
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M48356_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M48356_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M48356_IG09:        ; bbWeight=0.69, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, gcvars, byref
+G_M48356_IG06:        ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, gcvars, byref, isz
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
+            mov     w4, wzr
+            mov     w6, #3
+            add     w5, w5, #3
+            cmp     w5, #3
+            ble     G_M48356_IG17
+                       ;; size=20 bbWeight=1.00 PerfScore 2.99
+G_M48356_IG07:        ; bbWeight=0.69, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref
             add     x0, x0, #12
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
                        ;; size=4 bbWeight=0.69 PerfScore 0.35
-G_M48356_IG10:        ; bbWeight=2.11, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M48356_IG08:        ; bbWeight=2.11, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
             add     w7, w6, #1
             cmp     w7, w3
-            bhs     G_M48356_IG18
+            bhs     G_M48356_IG19
             ldrh    w7, [x0, w7, UXTW #2]
             cmp     w6, w3
-            bhs     G_M48356_IG18
+            bhs     G_M48356_IG19
             ldrh    w8, [x0, w6, UXTW #2]
             cmp     w8, w7
-            bge     G_M48356_IG17
+            bge     G_M48356_IG16
                        ;; size=36 bbWeight=2.11 PerfScore 23.24
-G_M48356_IG11:        ; bbWeight=2.11, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M48356_IG09:        ; bbWeight=2.11, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
             cmp     w4, w2
-            bge     G_M48356_IG07
+            bge     G_M48356_IG04
                        ;; size=8 bbWeight=2.11 PerfScore 3.17
-G_M48356_IG12:        ; bbWeight=4.15, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M48356_IG10:        ; bbWeight=4.15, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
             add     w9, w4, #1
             strh    w8, [x1, w4, UXTW #2]
             add     w8, w8, #1
             cmp     w8, w7
-            blt     G_M48356_IG16
+            blt     G_M48356_IG15
                        ;; size=20 bbWeight=4.15 PerfScore 14.53
-G_M48356_IG13:        ; bbWeight=3.03, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M48356_IG11:        ; bbWeight=3.03, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
             add     w6, w6, #2
             cmp     w6, w5
-            mov     w4, w9
-            blt     G_M48356_IG10
-                       ;; size=16 bbWeight=3.03 PerfScore 7.59
-G_M48356_IG14:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            blt     G_M48356_IG14
+                       ;; size=12 bbWeight=3.03 PerfScore 6.07
+G_M48356_IG12:        ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x0-x1]
-            mov     w0, w4
+            mov     w0, w9
                        ;; size=4 bbWeight=0.92 PerfScore 0.46
-G_M48356_IG15:        ; bbWeight=0.92, epilog, nogc, extend
+G_M48356_IG13:        ; bbWeight=0.92, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.92 PerfScore 1.84
-G_M48356_IG16:        ; bbWeight=2.08, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, gcvars, byref
+G_M48356_IG14:        ; bbWeight=1.52, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, gcvars, byref
             ; byrRegs +[x0-x1]
             mov     w4, w9
-            b       G_M48356_IG11
+            b       G_M48356_IG08
+                       ;; size=8 bbWeight=1.52 PerfScore 2.28
+G_M48356_IG15:        ; bbWeight=2.08, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+            mov     w4, w9
+            b       G_M48356_IG09
                        ;; size=8 bbWeight=2.08 PerfScore 3.11
-G_M48356_IG17:        ; bbWeight=1.06, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+G_M48356_IG16:        ; bbWeight=1.06, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
             mov     w9, w4
-            b       G_M48356_IG13
+            b       G_M48356_IG11
                        ;; size=8 bbWeight=1.06 PerfScore 1.58
-G_M48356_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M48356_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x0-x1]
+            mov     w9, w4
+            b       G_M48356_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M48356_IG18:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
+            ; gcrRegs +[x0]
+            ; byrRegs +[x1]
+            cbz     w6, G_M48356_IG06
+            b       G_M48356_IG04
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M48356_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ; byrRegs -[x1]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 8, PerfScore 82.06, instruction count 57, allocated bytes for code 228 (MethodHash=a0de431b) for method System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
+; Total bytes of code 240, prolog size 8, PerfScore 83.88, instruction count 60, allocated bytes for code 240 (MethodHash=a0de431b) for method System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -149,7 +158,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+5.77%) : 81058.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)

@@ -5,19 +5,19 @@
 ; optimized using Dynamic PGO
 ; fp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 28164
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 28164
 ; 3 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  5.72)   byref  ->  [fp+0x58]  this single-def
+;  V00 this         [V00,T00] (  7,  5.72)   byref  ->  [fp+0x58]  this single-def
 ;  V01 arg1         [V01,T01] (  9,  5.63)     int  ->  x20         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
-;  V03 loc1         [V03,T03] (  6,  3.02)     int  ->   x0        
+;  V03 loc1         [V03,T03] (  7,  3.02)     int  ->   x0        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T10] (  2,  0.00)     int  ->   x0        
 ;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V07 tmp3         [V07    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V08 tmp4         [V08,T07] (  3,  2   )     int  ->  x22        
+;  V08 tmp4         [V08,T07] (  3,  2   )     int  ->  x23        
 ;  V09 tmp5         [V09,T11] (  3,  0.84)     int  ->   x0        
 ;* V10 tmp6         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp7         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -26,7 +26,7 @@
 ;  V14 FramesRoot   [V14,T05] (  6,  2.97)    long  ->  x21         "Pinvoke FrameListRoot"
 ;  V15 PInvokeFrame [V15    ] (  8,  4.97)  struct (72) [fp+0x10]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V16 cse0         [V16,T02] (  6,  3.63)     int  ->   x0         "CSE - aggressive"
-;  V17 cse1         [V17,T04] (  3,  3   )     int  ->   x0         "CSE - aggressive"
+;  V17 cse1         [V17,T04] (  5,  3   )     int  ->  x22         "CSE - aggressive"
 ;  V18 cse2         [V18,T06] (  4,  2.30)     int  ->   x1         "CSE - aggressive"
 ;  V19 rat0         [V19,T08] (  3,  1.68)     int  ->   x0         "ReplaceWithLclVar is creating a new local variable"
 ;  V20 rat1         [V20,T09] (  3,  1.68)     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
@@ -55,62 +55,34 @@ G_M55570_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             mov     x0, fp
             str     x0, [fp, #0x48]    // [V15 PInvokeFrame+0x38]
             cmn     w20, #1
-            bge     G_M55570_IG04
+            blt     G_M55570_IG29
                        ;; size=40 bbWeight=1 PerfScore 7.00
-G_M55570_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            movz    x0, #8
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            movz    x1, #8
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M55570_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            tbnz    w20, #31, G_M55570_IG06
+G_M55570_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            tbz     w20, #31, G_M55570_IG15
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M55570_IG05:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, #10
-            cset    x0, ge
-            tst     w0, #255
-            beq     G_M55570_IG30
-                       ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M55570_IG06:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M55570_IG04:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             str     x19, [fp, #0x58]   // [V00 this]
             ; GC ptr vars +{V00}
             ldr     w0, [x19]
             cmp     w0, #10
-            blt     G_M55570_IG13
+            blt     G_M55570_IG16
                        ;; size=16 bbWeight=1.00 PerfScore 5.51
-G_M55570_IG07:        ; bbWeight=0.53, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M55570_IG05:        ; bbWeight=0.53, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; byrRegs -[x19]
             cmp     w0, w20
             ccmp    w20, #0, nc, ge
-            bge     G_M55570_IG09
+            bge     G_M55570_IG07
             sub     w1, w0, #10
-            tbnz    w1, #0, G_M55570_IG13
+            tbnz    w1, #0, G_M55570_IG16
                        ;; size=20 bbWeight=0.53 PerfScore 1.86
-G_M55570_IG08:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55570_IG06:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w0, w20
-            blt     G_M55570_IG11
+            blt     G_M55570_IG08
                        ;; size=8 bbWeight=0.28 PerfScore 0.42
-G_M55570_IG09:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            tbnz    w20, #31, G_M55570_IG11
+G_M55570_IG07:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            tbz     w20, #31, G_M55570_IG30
                        ;; size=4 bbWeight=0.28 PerfScore 0.28
-G_M55570_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     w0, #1
-            movz    x1, #0xD1FFAB1E      // code for <unknown method>
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            ldr     x1, [x1]
-            blr     x1
-            b       G_M55570_IG18
-                       ;; size=28 bbWeight=0 PerfScore 0.00
-G_M55570_IG11:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55570_IG08:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #10
             add     w0, w0, w0,  LSR #31
             asr     w0, w0, #1
@@ -123,63 +95,115 @@ G_M55570_IG11:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             mov     w2, #5
             msub    w0, w1, w2, w0
             cmp     w0, #4
-            bne     G_M55570_IG25
+            beq     G_M55570_IG14
                        ;; size=52 bbWeight=0.28 PerfScore 3.51
-G_M55570_IG12:        ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55570_IG09:        ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
+            str     x0, [fp, #0x28]    // [V15 PInvokeFrame+0x18]
+            adr     x0, [G_M55570_IG12]
+            str     x0, [fp, #0x40]    // [V15 PInvokeFrame+0x30]
+            add     x0, fp, #24    // [V15 PInvokeFrame+0x08]
+            ; byrRegs +[x0]
+            str     x0, [x21, #0x10]
+            strb    wzr, [x21, #0x0C]
+                       ;; size=36 bbWeight=0.24 PerfScore 1.58
+G_M55570_IG10:        ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x0]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
+                       ;; size=12 bbWeight=0.24 PerfScore 0.37
+G_M55570_IG11:        ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            blr     x0
+                       ;; size=4 bbWeight=0.24 PerfScore 0.24
+G_M55570_IG12:        ; bbWeight=0.24, isz, extend
+            mov     w0, #1
+            strb    w0, [x21, #0x0C]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
+            ldr     w0, [x0]
+            cmp     w0, #0
+            beq     G_M55570_IG13
+            bl      CORINFO_HELP_STOP_FOR_GC
+                       ;; size=36 bbWeight=0.24 PerfScore 2.07
+G_M55570_IG13:        ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     x0, [fp, #0x20]    // [V15 PInvokeFrame+0x10]
+            ; byrRegs +[x0]
+            str     x0, [x21, #0x10]
+            b       G_M55570_IG21
+                       ;; size=12 bbWeight=0.24 PerfScore 0.97
+G_M55570_IG14:        ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x0]
             mov     w0, wzr
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             ldr     x1, [x1]
             blr     x1
-            b       G_M55570_IG18
+            b       G_M55570_IG21
                        ;; size=28 bbWeight=0.04 PerfScore 0.25
-G_M55570_IG13:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55570_IG15:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+            ; byrRegs +[x19]
+            ; GC ptr vars -{V00}
+            cmp     w20, #10
+            cset    x0, ge
+            tst     w0, #255
+            beq     G_M55570_IG31
+            b       G_M55570_IG04
+                       ;; size=20 bbWeight=0.00 PerfScore 0.00
+G_M55570_IG16:        ; bbWeight=0.72, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; byrRegs -[x19]
+            ; GC ptr vars +{V00}
             bl      <unknown method>
             ldr     x19, [fp, #0x58]   // [V00 this]
             ; byrRegs +[x19]
             ldr     w1, [x19]
             cmp     w1, #30
-            bgt     G_M55570_IG16
+            bgt     G_M55570_IG18
                        ;; size=20 bbWeight=0.72 PerfScore 5.41
-G_M55570_IG14:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55570_IG17:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x19]
             mov     w2, #1
             lsl     w2, w2, w1
             cmp     w2, w0
-            bge     G_M55570_IG16
+            blt     G_M55570_IG26
                        ;; size=16 bbWeight=0.72 PerfScore 1.79
-G_M55570_IG15:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            mov     w0, #1
-            lsl     w0, w0, w1
-                       ;; size=8 bbWeight=0.14 PerfScore 0.14
-G_M55570_IG16:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55570_IG18:        ; bbWeight=0.58, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w0, #0xD1FFAB1E
-            blt     G_M55570_IG23
-                       ;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M55570_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movz    x1, #0xD1FFAB1E      // code for <unknown method>
+            bge     G_M55570_IG27
+                       ;; size=8 bbWeight=0.58 PerfScore 0.87
+G_M55570_IG19:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            ldr     x1, [x1]
+                       ;; size=12 bbWeight=0.72 PerfScore 1.08
+G_M55570_IG20:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             blr     x1
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M55570_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
+            ldr     w0, [x0]
+            cbnz    w0, G_M55570_IG25
+                       ;; size=24 bbWeight=0.72 PerfScore 4.69
+G_M55570_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     x19, [fp, #0x58]   // [V00 this]
             ; byrRegs +[x19]
-            ldr     w0, [x19]
-            movn    w1, #0xD1FFAB1E LSL #16
-            cmp     w0, w1
-            bne     G_M55570_IG22
+            ldr     w22, [x19]
+            movn    w0, #0xD1FFAB1E LSL #16
+            cmp     w22, w0
+            beq     G_M55570_IG28
                        ;; size=20 bbWeight=1 PerfScore 7.00
-G_M55570_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
+G_M55570_IG22:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
             ; GC ptr vars -{V00}
-            mov     w22, #10
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55570_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            str     w22, [x19]
+            add     w23, w22, #1
+                       ;; size=4 bbWeight=1 PerfScore 0.50
+G_M55570_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+            str     w23, [x19]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M55570_IG21:        ; bbWeight=1, epilog, nogc, extend
...

benchmarks.run_tiered.osx.arm64.checked.mch

-8 (-6.06%) : 7428.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)

@@ -78,10 +78,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M49441_IG04
-            cbz     x1, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -92,31 +90,29 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M49441_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M49441_IG07
+            cbnz    w3, G_M49441_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x1]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
             add     x4, x1, #12
             ; byrRegs +[x4]
             mov     x5, x4
             ; byrRegs +[x5]
             sxtw    w6, w3
-            b       G_M49441_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1]
-            ; byrRegs -[x4-x5]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0030 {x4 x5}, gcvars, byref, isz
-            ; gcrRegs +[x1]
-            ; byrRegs +[x4-x5]
             cmp     w6, #0
             ble     G_M49441_IG09
             ldrh    w5, [x5]
             ; byrRegs -[x5]
             cmp     w5, #47
             beq     G_M49441_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M49441_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
             ; gcrRegs -[x1]
             add     x0, x0, #12
@@ -139,7 +135,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 18.50, instruction count 33, allocated bytes for code 132 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-3.45%) : 24897.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)

@@ -9,90 +9,84 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 12,  8.50)   byref  ->   x0         this single-def
-;  V01 loc0         [V01,T01] (  8,  5   )   ubyte  ->  x19        
+;  V01 loc0         [V01,T01] (  8,  5   )   ubyte  ->   x1        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T11] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V04 tmp2         [V04,T07] (  3,  1.50)     int  ->   x1        
 ;  V05 tmp3         [V05,T08] (  3,  1.50)     int  ->   x1        
 ;* V06 tmp4         [V06,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp5         [V07,T06] (  2,  2   )   byref  ->   x1         single-def "Inlining Arg"
+;  V07 tmp5         [V07,T06] (  2,  2   )   byref  ->   x3         single-def "Inlining Arg"
 ;* V08 tmp6         [V08,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp7         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V10 tmp8         [V10,T12] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V11 cse0         [V11,T05] (  5,  2.50)     int  ->   x1         "CSE - aggressive"
-;  V12 cse1         [V12,T02] (  8,  4   )     ref  ->  x21         multi-def "CSE - aggressive"
-;  V13 cse2         [V13,T04] (  5,  3.50)     ref  ->   x1         multi-def "CSE - aggressive"
-;  V14 cse3         [V14,T03] (  6,  4   )     ref  ->  x20         "CSE - aggressive"
+;  V11 cse0         [V11,T05] (  5,  2.50)     int  ->   x3         "CSE - aggressive"
+;  V12 cse1         [V12,T02] (  8,  4   )     ref  ->   x4         multi-def "CSE - aggressive"
+;  V13 cse2         [V13,T04] (  5,  3.50)     ref  ->   x3         multi-def "CSE - aggressive"
+;  V14 cse3         [V14,T03] (  6,  4   )     ref  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M35532_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M35532_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             ; byrRegs +[x0]
-            mov     w19, #1
-            ldr     x20, [x0]
-            ; gcrRegs +[x20]
-            cbz     x20, G_M35532_IG04
+            mov     w1, #1
+            ldr     x2, [x0]
+            ; gcrRegs +[x2]
+            cbz     x2, G_M35532_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M35532_IG03:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ldr     x1, [x0, #0x10]
-            ; gcrRegs +[x1]
-            cbnz    x1, G_M35532_IG04
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cmp     x21, #0
-            csel    w19, w19, wzr, ne
+G_M35532_IG03:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ldr     x3, [x0, #0x10]
+            ; gcrRegs +[x3]
+            cbnz    x3, G_M35532_IG04
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cmp     x4, #0
+            csel    w1, w1, wzr, ne
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M35532_IG04:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs -[x1 x21]
-            ldr     x1, [x0, #0x10]
-            ; gcrRegs +[x1]
-            cbz     x1, G_M35532_IG06
+G_M35532_IG04:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs -[x3-x4]
+            ldr     x3, [x0, #0x10]
+            ; gcrRegs +[x3]
+            cbz     x3, G_M35532_IG06
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M35532_IG05:        ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0001 {x0}, byref, isz
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cbz     x21, G_M35532_IG06
-            ldr     w1, [x1, #0x08]
-            ; gcrRegs -[x1]
-            ldr     w2, [x21, #0x08]
-            cmp     w1, w2
+G_M35532_IG05:        ; bbWeight=0.50, gcrefRegs=000C {x2 x3}, byrefRegs=0001 {x0}, byref, isz
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cbz     x4, G_M35532_IG06
+            ldr     w3, [x3, #0x08]
+            ; gcrRegs -[x3]
+            ldr     w4, [x4, #0x08]
+            ; gcrRegs -[x4]
+            cmp     w3, w4
             bne     G_M35532_IG06
-            mov     w19, wzr
+            mov     w1, wzr
             b       G_M35532_IG07
                        ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M35532_IG06:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs -[x21]
-            cbnz    w19, G_M35532_IG14
+G_M35532_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            cbnz    w1, G_M35532_IG14
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35532_IG07:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            add     x1, x0, #24
-            ; byrRegs +[x1]
-            ldr     w1, [x1, #0x40]
-            ; byrRegs -[x1]
-            cmp     w1, #1
+G_M35532_IG07:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            add     x3, x0, #24
+            ; byrRegs +[x3]
+            ldr     w3, [x3, #0x40]
+            ; byrRegs -[x3]
+            cmp     w3, #1
             beq     G_M35532_IG08
-            cmp     w1, #3
+            cmp     w3, #3
             beq     G_M35532_IG08
-            cmp     w1, #2
+            cmp     w3, #2
             beq     G_M35532_IG08
-            cmp     w1, #4
-            beq     G_M35532_IG08
-            ldr     w1, [x0, #0x58]
-            cmp     w1, #5
-            bne     G_M35532_IG14
-            b       G_M35532_IG11
-                       ;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            cbz     x20, G_M35532_IG09
-            ldr     w1, [x20, #0x08]
+            cmp     w3, #4
+            bne     G_M35532_IG11
+                       ;; size=40 bbWeight=0.50 PerfScore 4.75
+G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            cbz     x2, G_M35532_IG09
+            ldr     w1, [x2, #0x08]
             ldr     x2, [x0, #0x28]
-            ; gcrRegs +[x2]
             ldr     w2, [x2, #0x08]
             ; gcrRegs -[x2]
             cmp     w1, w2
@@ -100,34 +94,37 @@ G_M35532_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
             b       G_M35532_IG10
                        ;; size=28 bbWeight=0.50 PerfScore 6.00
 G_M35532_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x20]
             mov     w1, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            uxtb    w19, w1
+            uxtb    w1, w1
             b       G_M35532_IG14
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M35532_IG11:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0001 {x0}, byref, isz
-            ; gcrRegs +[x20]
-            ldr     x21, [x0, #0x08]
-            ; gcrRegs +[x21]
-            cbz     x21, G_M35532_IG14
-            cbz     x20, G_M35532_IG12
-            ldr     w1, [x20, #0x08]
-            ldr     w2, [x21, #0x08]
+G_M35532_IG11:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs +[x2]
+            ldr     w3, [x0, #0x58]
+            cmp     w3, #5
+            bne     G_M35532_IG14
+            ldr     x4, [x0, #0x08]
+            ; gcrRegs +[x4]
+            cbz     x4, G_M35532_IG14
+            cbz     x2, G_M35532_IG12
+            ldr     w1, [x2, #0x08]
+            ldr     w2, [x4, #0x08]
+            ; gcrRegs -[x2]
             cmp     w1, w2
             cset    x1, ne
             b       G_M35532_IG13
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
+                       ;; size=44 bbWeight=0.50 PerfScore 8.75
 G_M35532_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x20-x21]
+            ; gcrRegs -[x4]
             mov     w1, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            uxtb    w19, w1
+            uxtb    w1, w1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M35532_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
-            cbnz    w19, G_M35532_IG16
+            cbnz    w1, G_M35532_IG16
             add     x0, x0, #24
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -135,12 +132,11 @@ G_M35532_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             ldr     x1, [x1]
                        ;; size=24 bbWeight=1 PerfScore 6.00
 G_M35532_IG15:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x1
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=1 PerfScore 5.00
+                       ;; size=12 bbWeight=1 PerfScore 4.00
 G_M35532_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
             movz    x0, #0xD1FFAB1E
@@ -177,7 +173,7 @@ G_M35532_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=80 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 348, prolog size 16, PerfScore 55.50, instruction count 87, allocated bytes for code 348 (MethodHash=77317533) for method System.Security.Cryptography.ECParameters:Validate():this (Tier1)
+; Total bytes of code 336, prolog size 12, PerfScore 53.00, instruction count 84, allocated bytes for code 336 (MethodHash=77317533) for method System.Security.Cryptography.ECParameters:Validate():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -188,7 +184,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 87 (0x00057) Actual length = 348 (0x00015c)
+  Function Length   : 84 (0x00054) Actual length = 336 (0x000150)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -196,9 +192,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-16 (-3.36%) : 24719.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)

@@ -154,10 +154,8 @@ G_M53601_IG02:        ; bbWeight=1, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=00
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M53601_IG03:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ldr     w20, [x0, #0x08]
-            cbz     w20, G_M53601_IG04
-            cbz     x1, G_M53601_IG06
-            b       G_M53601_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w20, G_M53601_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M53601_IG04:        ; bbWeight=0.50, gcrefRegs=80006 {x1 x2 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -174,11 +172,10 @@ G_M53601_IG04:        ; bbWeight=0.50, gcrefRegs=80006 {x1 x2 x19}, byrefRegs=00
                        ;; size=36 bbWeight=0.50 PerfScore 4.00
 G_M53601_IG05:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x1, G_M53601_IG06
             ldr     w21, [x1, #0x08]
-            cbz     w21, G_M53601_IG06
-            cbz     x2, G_M53601_IG08
-            b       G_M53601_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w21, G_M53601_IG07
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG06:        ; bbWeight=0.50, gcrefRegs=80005 {x0 x2 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x2
@@ -194,11 +191,10 @@ G_M53601_IG06:        ; bbWeight=0.50, gcrefRegs=80005 {x0 x2 x19}, byrefRegs=00
                        ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M53601_IG07:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x2, G_M53601_IG08
             ldr     w22, [x2, #0x08]
-            cbz     w22, G_M53601_IG08
-            cbz     x19, G_M53601_IG10
-            b       G_M53601_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w22, G_M53601_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG08:        ; bbWeight=0.50, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             mov     x2, x19
@@ -213,16 +209,12 @@ G_M53601_IG08:        ; bbWeight=0.50, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=00
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M53601_IG09:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            cbz     x19, G_M53601_IG10
             ldr     w23, [x19, #0x08]
-            cbz     w23, G_M53601_IG10
-            add     x3, x19, #12
-            ; byrRegs +[x3]
-            sxtw    w4, w23
-            b       G_M53601_IG11
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+            cbnz    w23, G_M53601_IG11
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M53601_IG10:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
-            ; byrRegs -[x3]
             movz    x3, #0xD1FFAB1E      // code for System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -231,9 +223,11 @@ G_M53601_IG10:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000
             ; gcrRegs -[x1-x2]
             b       G_M53601_IG15
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz
+G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x19]
+            add     x3, x19, #12
             ; byrRegs +[x3]
+            sxtw    w4, w23
             cmp     w4, #0
             ble     G_M53601_IG12
             ldrh    w3, [x3]
@@ -242,7 +236,7 @@ G_M53601_IG11:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs
             bne     G_M53601_IG12
             mov     x0, x19
             b       G_M53601_IG15
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+                       ;; size=36 bbWeight=0.50 PerfScore 4.25
 G_M53601_IG12:        ; bbWeight=0.50, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0000 {}, byref, isz
             add     x24, x2, #12
             ; byrRegs +[x24]
@@ -331,7 +325,7 @@ G_M53601_IG15:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 476, prolog size 24, PerfScore 65.75, instruction count 119, allocated bytes for code 476 (MethodHash=75ef2e9e) for method System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
+; Total bytes of code 460, prolog size 24, PerfScore 63.75, instruction count 115, allocated bytes for code 460 (MethodHash=75ef2e9e) for method System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -342,7 +336,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 119 (0x00077) Actual length = 476 (0x0001dc)
+  Function Length   : 115 (0x00073) Actual length = 460 (0x0001cc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+2.74%) : 12194.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)

@@ -17,7 +17,7 @@
 ;  V06 loc4         [V06,T06] (  7, 11   )     int  ->  registers  
 ;  V07 loc5         [V07,T12] (  4,  2.50)    long  ->  registers  
 ;  V08 loc6         [V08,T13] (  4,  2.50)     int  ->  registers  
-;  V09 loc7         [V09,T14] (  3,  1.50)     int  ->   x0        
+;  V09 loc7         [V09,T14] (  3,  1.50)     int  ->   x1        
 ;  V10 loc8         [V10,T15] (  3,  1.50)    long  ->   x0        
 ;  V11 loc9         [V11,T16] (  2,  1   )    long  ->   x4        
 ;  V12 loc10        [V12,T17] (  2,  1   )     int  ->   x5        
@@ -75,7 +75,7 @@ G_M9821_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=4 PerfScore 6.00
 G_M9821_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w2, #10
-            bhs     G_M9821_IG16
+            bhs     G_M9821_IG17
             ubfiz   x1, x2, #2, #32
             movz    x7, #0xD1FFAB1E
             movk    x7, #0xD1FFAB1E LSL #16
@@ -110,17 +110,17 @@ G_M9821_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sxtw    w5, w4
             sub     w2, w2, #9
             cmp     w2, #0
-            bgt     G_M9821_IG13
+            bgt     G_M9821_IG10
                        ;; size=76 bbWeight=4 PerfScore 92.00
 G_M9821_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            sub     w0, w5, w0
-            cbz     w0, G_M9821_IG14
-            cmp     w0, w5
-            bls     G_M9821_IG11
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M9821_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            neg     w3, w3
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+            sub     w1, w5, w0
+            cbz     w1, G_M9821_IG15
+            b       G_M9821_IG13
+                       ;; size=12 bbWeight=0.50 PerfScore 1.25
+G_M9821_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     x4, x7
+            b       G_M9821_IG04
+                       ;; size=8 bbWeight=2 PerfScore 3.00
 G_M9821_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, w3
                        ;; size=4 bbWeight=1 PerfScore 0.50
@@ -128,28 +128,32 @@ G_M9821_IG12:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M9821_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     x4, x7
-            b       G_M9821_IG04
-                       ;; size=8 bbWeight=2 PerfScore 3.00
-G_M9821_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M9821_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            cmp     w1, w5
+            bls     G_M9821_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M9821_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            neg     w3, w3
+            b       G_M9821_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M9821_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             sub     x0, x7, x6
-            cbnz    x0, G_M9821_IG15
+            cbnz    x0, G_M9821_IG16
             mov     w3, wzr
             b       G_M9821_IG11
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M9821_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M9821_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     x0, x7
             bls     G_M9821_IG11
-            b       G_M9821_IG10
+            b       G_M9821_IG14
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M9821_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M9821_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 292, prolog size 8, PerfScore 149.25, instruction count 73, allocated bytes for code 292 (MethodHash=418ad9a2) for method System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
+; Total bytes of code 300, prolog size 8, PerfScore 150.25, instruction count 75, allocated bytes for code 300 (MethodHash=418ad9a2) for method System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -160,7 +164,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 73 (0x00049) Actual length = 292 (0x000124)
+  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 8074.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+8.60%) : 40104.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -13,59 +13,69 @@
 ;  V02 arg2         [V02,T07] ( 10, 91   )     ref  ->   x2         class-hnd single-def <int[,,]>
 ;* V03 loc0         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04,T10] (  7, 48   )     int  ->   x5        
-;  V05 loc2         [V05,T09] (  7, 60   )     int  ->  registers  
+;  V05 loc2         [V05,T09] (  7, 60   )     int  ->   x4        
 ;  V06 loc3         [V06,T08] (  7, 90   )     int  ->   x3        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->  x13         "MD array shared temp"
-;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->  x14         "MD array shared temp"
-;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x15         "MD array shared temp"
-;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->   x7         hoist "CSE - aggressive"
-;  V15 cse1         [V15,T20] (  3, 11   )     int  ->   x4         hoist "CSE - aggressive"
-;  V16 cse2         [V16,T19] (  3, 18   )     int  ->   x3         "CSE - aggressive"
-;  V17 cse3         [V17,T17] (  2, 20   )     int  ->  x10         hoist "CSE - aggressive"
-;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x7         hoist "CSE - aggressive"
-;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->   x6         hoist "CSE - aggressive"
-;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x10         hoist "CSE - aggressive"
-;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->   x9         hoist "CSE - moderate"
-;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->   x8         hoist "CSE - aggressive"
-;  V23 cse9         [V23,T18] (  2, 20   )     int  ->  x11         hoist "CSE - aggressive"
-;  V24 cse10        [V24,T11] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V25 cse11        [V25,T12] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x15         "CSE - aggressive"
-;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x12         "CSE - aggressive"
+;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->   x8         "MD array shared temp"
+;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->   x9         "MD array shared temp"
+;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x11         "MD array shared temp"
+;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->  x21         hoist "CSE - aggressive"
+;  V15 cse1         [V15,T20] (  3, 11   )     int  ->  x25         hoist "CSE - aggressive"
+;  V16 cse2         [V16,T19] (  3, 18   )     int  ->  x23         "CSE - aggressive"
+;  V17 cse3         [V17,T17] (  2, 20   )     int  ->   x6         hoist "CSE - aggressive"
+;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x6         hoist "CSE - aggressive"
+;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->  x19         hoist "CSE - aggressive"
+;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x24         hoist "CSE - aggressive"
+;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->  x22         hoist "CSE - moderate"
+;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->  x20         hoist "CSE - aggressive"
+;  V23 cse9         [V23,T18] (  2, 20   )     int  ->   x7         hoist "CSE - aggressive"
+;  V24 cse10        [V24,T11] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V25 cse11        [V25,T12] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x11         "CSE - aggressive"
+;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x10         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M4144_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x10]!
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            stp     x23, x24, [sp, #0x38]
+            str     x25, [sp, #0x48]
             mov     fp, sp
-            ldr     w0, [fp, #0x5C]
-            ldp     x2, x1, [fp, #0x48]
+            ldr     w0, [fp, #0x9C]
+            ldp     x2, x1, [fp, #0x88]
             ; gcrRegs +[x1-x2]
-            ldp     w4, w5, [fp, #0x3C]
-            ldr     w3, [fp, #0x38]
-                       ;; size=24 bbWeight=0.01 PerfScore 0.11
+            ldp     w4, w5, [fp, #0x7C]
+            ldr     w3, [fp, #0x78]
+                       ;; size=40 bbWeight=0.01 PerfScore 0.14
 G_M4144_IG02:        ; bbWeight=0.01, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w6, [x1, #0x24]
-            ldp     w8, w7, [x1, #0x14]
-            add     w7, w6, w7
-            sub     w7, w7, #1
-            ldr     w9, [x1, #0x10]
-            b       G_M4144_IG12
+            ldr     w19, [x1, #0x24]
+            ldp     w20, w6, [x1, #0x14]
+            add     w6, w19, w6
+            sub     w21, w6, #1
+            ldr     w22, [x1, #0x10]
+            b       G_M4144_IG11
                        ;; size=24 bbWeight=0.01 PerfScore 0.11
-G_M4144_IG03:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w5, w10
-            cmp     w4, w5
-            bge     G_M4144_IG07
+G_M4144_IG03:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w24, [x1, #0x1C]
+            add     w3, w24, w22
+            sub     w25, w3, #1
+            b       G_M4144_IG09
+                       ;; size=16 bbWeight=1 PerfScore 5.00
+G_M4144_IG04:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w5, w24
+            cmp     w25, w5
+            bge     G_M4144_IG08
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M4144_IG04:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG05:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #1
-            cbnz    w0, G_M4144_IG03
+            cbnz    w0, G_M4144_IG04
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG06:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             mov     x0, x1
             ; gcrRegs +[x0]
             mov     x1, x2
@@ -78,115 +88,109 @@ G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 6.50
-G_M4144_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+G_M4144_IG07:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x25, [sp, #0x48]
+            ldp     x23, x24, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x50
             add     sp, sp, #80
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M4144_IG07:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=28 bbWeight=1 PerfScore 7.50
+G_M4144_IG08:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
-            ldr     w11, [x1, #0x20]
-            cmp     w3, w11
+            ldr     w4, [x1, #0x20]
+            cmp     w23, w4
             bge     G_M4144_IG10
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M4144_IG08:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG09:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             add     w5, w5, #1
-            cmp     w4, w5
-            bge     G_M4144_IG07
-                       ;; size=12 bbWeight=8 PerfScore 16.00
-G_M4144_IG09:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            b       G_M4144_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M4144_IG10:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            mov     w4, w11
-                       ;; size=4 bbWeight=1 PerfScore 0.50
-G_M4144_IG11:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            sxtw    w3, w6
+            cmp     w25, w5
+            bge     G_M4144_IG08
+            b       G_M4144_IG05
+                       ;; size=16 bbWeight=8 PerfScore 24.00
+G_M4144_IG10:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            sxtw    w3, w19
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M4144_IG12:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            cmp     w7, w3
-            blt     G_M4144_IG15
+G_M4144_IG11:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            cmp     w21, w3
+            blt     G_M4144_IG14
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG13:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w10, [x2, #0x1C]
-            sub     w10, w5, w10
-            ldr     w11, [x2, #0x10]
+G_M4144_IG12:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w6, [x2, #0x1C]
+            sub     w6, w5, w6
+            ldr     w7, [x2, #0x10]
                        ;; size=12 bbWeight=4 PerfScore 26.00
-G_M4144_IG14:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w13, w10
-            cmp     w13, w11
-            bhs     G_M4144_IG17
-            ldr     w14, [x2, #0x14]
-            ldr     w12, [x2, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ldr     w14, [x2, #0x18]
-            ldr     w12, [x2, #0x24]
-            sub     w12, w3, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ubfiz   x13, x13, #2, #32
-            add     x13, x13, #40
-            ldr     w14, [x1, #0x1C]
-            sub     w14, w5, w14
-            ldp     w12, w15, [x1, #0x10]
-            cmp     w14, w12
-            bhs     G_M4144_IG17
-            ldr     w12, [x1, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w15
-            bhs     G_M4144_IG17
-            madd    w14, w14, w15, w12
-            ldr     w12, [x1, #0x18]
-            ldr     w15, [x1, #0x24]
-            sub     w15, w3, w15
-            cmp     w15, w12
-            bhs     G_M4144_IG17
-            madd    w14, w14, w12, w15
-            ubfiz   x14, x14, #2, #32
-            add     x14, x14, #40
-            ldr     w14, [x1, x14]
-            str     w14, [x2, x13]
+G_M4144_IG13:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w8, w6
+            cmp     w8, w7
+            bhs     G_M4144_IG15
+            ldr     w9, [x2, #0x14]
+            ldr     w10, [x2, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ldr     w9, [x2, #0x18]
+            ldr     w10, [x2, #0x24]
+            sub     w10, w3, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ubfiz   x8, x8, #2, #32
+            add     x8, x8, #40
+            ldr     w9, [x1, #0x1C]
+            sub     w9, w5, w9
+            ldp     w10, w11, [x1, #0x10]
+            cmp     w9, w10
+            bhs     G_M4144_IG15
+            ldr     w10, [x1, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w11
+            bhs     G_M4144_IG15
+            madd    w9, w9, w11, w10
+            ldr     w10, [x1, #0x18]
+            ldr     w11, [x1, #0x24]
+            sub     w11, w3, w11
+            cmp     w11, w10
+            bhs     G_M4144_IG15
+            madd    w9, w9, w10, w11
+            ubfiz   x9, x9, #2, #32
+            add     x9, x9, #40
+            ldr     w9, [x1, x9]
+            str     w9, [x2, x8]
             add     w3, w3, #1
...

coreclr_tests.run.osx.arm64.checked.mch

-28 (-14.00%) : 398774.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
@@ -21,72 +21,71 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V13 tmp4         [V13,T11] (  2,  2   )     int  ->   x1        
+;* V13 tmp4         [V13,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V16 tmp7         [V16,T30] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T12] (  2,  2   )     int  ->   x1         single-def
+;* V16 tmp7         [V16,T29] (  0,  0   )     int  ->  zero-ref   
+;* V17 tmp8         [V17,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V19 tmp10        [V19,T13] (  2,  2   )     int  ->   x2        
-;  V20 tmp11        [V20,T14] (  2,  2   )     int  ->   x1         single-def
+;* V19 tmp10        [V19,T12] (  0,  0   )     int  ->  zero-ref   
+;* V20 tmp11        [V20,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V22 tmp13        [V22,T15] (  2,  2   )     int  ->   x0        
-;  V23 tmp14        [V23,T16] (  2,  2   )     int  ->   x0         single-def
+;* V22 tmp13        [V22,T14] (  0,  0   )     int  ->  zero-ref   
+;* V23 tmp14        [V23,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V25 tmp16        [V25,T31] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T17] (  2,  2   )     int  ->   x0         single-def
+;* V25 tmp16        [V25,T30] (  0,  0   )     int  ->  zero-ref   
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V32 tmp23        [V32,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V34 tmp25        [V34,T33] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp25        [V34,T32] (  0,  0   )     int  ->  zero-ref   
+;* V35 tmp26        [V35,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V37 tmp28        [V37,T20] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp28        [V37,T18] (  0,  0   )     int  ->  zero-ref   
+;* V38 tmp29        [V38,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V40 tmp31        [V40,T34] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V40 tmp31        [V40,T33] (  0,  0   )     int  ->  zero-ref   
+;* V41 tmp32        [V41,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V43 tmp34        [V43,T23] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp34        [V43,T21] (  0,  0   )     int  ->  zero-ref   
+;* V44 tmp35        [V44,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V46 tmp37        [V46,T36] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T24] (  2,  2   )     int  ->   x0         single-def
+;* V46 tmp37        [V46,T35] (  0,  0   )     int  ->  zero-ref   
+;* V47 tmp38        [V47,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp40        [V49,T37] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T25] (  2,  2   )     int  ->   x0         single-def
+;* V49 tmp40        [V49,T36] (  0,  0   )     int  ->  zero-ref   
+;* V50 tmp41        [V50,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V53 tmp44        [V53,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V58 tmp49        [V58,T39] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref   
+;* V59 tmp50        [V59,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V61 tmp52        [V61,T28] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp52        [V61,T25] (  0,  0   )     int  ->  zero-ref   
+;* V62 tmp53        [V62,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V64 tmp55        [V64,T40] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V64 tmp55        [V64,T39] (  0,  0   )     int  ->  zero-ref   
+;* V65 tmp56        [V65,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V67 tmp58        [V67,T42] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V67 tmp58        [V67,T41] (  0,  0   )     int  ->  zero-ref   
+;  V68 tmp59        [V68,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V70 tmp61        [V70,T44] (  0,  0   )     int  ->  zero-ref   
-;* V71 cse0         [V71,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V72 cse1         [V72,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V73 cse2         [V73,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V70 tmp61        [V70,T28] (  2,  2   )     int  ->   x0        
+;* V71 cse0         [V71,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V72 cse1         [V72,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V73 cse2         [V73,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V75 cse4         [V75,T04] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V76 cse5         [V76,T05] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V77 cse6         [V77,T06] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V78 cse7         [V78,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -137,24 +136,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -165,7 +157,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-28 (-14.00%) : 399190.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,79 +10,78 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T03] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T03] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V09 tmp5         [V09,T11] (  2,  2   )     int  ->   x1        
+;* V09 tmp5         [V09,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V12 tmp8         [V12,T30] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp9         [V13,T12] (  2,  2   )     int  ->   x1         single-def
+;* V12 tmp8         [V12,T29] (  0,  0   )     int  ->  zero-ref   
+;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T13] (  2,  2   )     int  ->   x2        
-;  V16 tmp12        [V16,T14] (  2,  2   )     int  ->   x1         single-def
+;* V15 tmp11        [V15,T12] (  0,  0   )     int  ->  zero-ref   
+;* V16 tmp12        [V16,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V18 tmp14        [V18,T15] (  2,  2   )     int  ->   x0        
-;  V19 tmp15        [V19,T16] (  2,  2   )     int  ->   x0         single-def
+;* V18 tmp14        [V18,T14] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp15        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V21 tmp17        [V21,T31] (  0,  0   )     int  ->  zero-ref   
-;  V22 tmp18        [V22,T17] (  2,  2   )     int  ->   x0         single-def
+;* V21 tmp17        [V21,T30] (  0,  0   )     int  ->  zero-ref   
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V28 tmp24        [V28,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V30 tmp26        [V30,T33] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V30 tmp26        [V30,T32] (  0,  0   )     int  ->  zero-ref   
+;* V31 tmp27        [V31,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V33 tmp29        [V33,T20] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V33 tmp29        [V33,T18] (  0,  0   )     int  ->  zero-ref   
+;* V34 tmp30        [V34,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V36 tmp32        [V36,T34] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V36 tmp32        [V36,T33] (  0,  0   )     int  ->  zero-ref   
+;* V37 tmp33        [V37,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V39 tmp35        [V39,T23] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V39 tmp35        [V39,T21] (  0,  0   )     int  ->  zero-ref   
+;* V40 tmp36        [V40,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V42 tmp38        [V42,T36] (  0,  0   )     int  ->  zero-ref   
-;  V43 tmp39        [V43,T24] (  2,  2   )     int  ->   x0         single-def
+;* V42 tmp38        [V42,T35] (  0,  0   )     int  ->  zero-ref   
+;* V43 tmp39        [V43,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V45 tmp41        [V45,T37] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp42        [V46,T25] (  2,  2   )     int  ->   x0         single-def
+;* V45 tmp41        [V45,T36] (  0,  0   )     int  ->  zero-ref   
+;* V46 tmp42        [V46,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp45        [V49,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V54 tmp50        [V54,T39] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V54 tmp50        [V54,T38] (  0,  0   )     int  ->  zero-ref   
+;* V55 tmp51        [V55,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V57 tmp53        [V57,T28] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V57 tmp53        [V57,T25] (  0,  0   )     int  ->  zero-ref   
+;* V58 tmp54        [V58,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V60 tmp56        [V60,T40] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V60 tmp56        [V60,T39] (  0,  0   )     int  ->  zero-ref   
+;* V61 tmp57        [V61,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V63 tmp59        [V63,T42] (  0,  0   )     int  ->  zero-ref   
-;* V64 tmp60        [V64,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V63 tmp59        [V63,T41] (  0,  0   )     int  ->  zero-ref   
+;  V64 tmp60        [V64,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V66 tmp62        [V66,T44] (  0,  0   )     int  ->  zero-ref   
-;* V67 cse0         [V67,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V68 cse1         [V68,T04] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V69 cse2         [V69,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V71 cse4         [V71,T05] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V66 tmp62        [V66,T28] (  2,  2   )     int  ->   x0        
+;* V67 cse0         [V67,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V68 cse1         [V68,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V69 cse2         [V69,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V71 cse4         [V71,T05] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V72 cse5         [V72,T06] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V73 cse6         [V73,T07] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V74 cse7         [V74,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -133,24 +132,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -161,7 +153,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-32 (-10.81%) : 251161.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)

@@ -11,17 +11,15 @@
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T02] (  4,  3.50)     ref  ->  x21         class-hnd single-def <System.Type>
-;  V03 arg3         [V03,T01] (  7,  4.25)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V03 arg3         [V03,T01] (  6,  4   )     ref  ->  x20         class-hnd single-def <System.Object>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V07 tmp2         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V08 tmp3         [V08,T10] (  0,  0   )     int  ->  zero-ref   
-;  V09 tmp4         [V09,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V10 tmp5         [V10,T05] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V11 cse0         [V11,T04] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V12 cse1         [V12,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V13 cse2         [V13,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V07 tmp2         [V07,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V08 tmp3         [V08,T08] (  0,  0   )     int  ->  zero-ref   
+;  V09 tmp4         [V09,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V10 tmp5         [V10,T04] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V11 cse0         [V11,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -38,36 +36,34 @@ G_M32564_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M32564_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            cmp     x21, x1
-            bne     G_M32564_IG07
-                       ;; size=20 bbWeight=1 PerfScore 3.00
-G_M32564_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M32564_IG07
-            ldr     x1, [x20]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
-            cmp     x1, x0
-            bne     G_M32564_IG07
-            cmp     x1, x0
-            beq     G_M32564_IG05
-                       ;; size=36 bbWeight=0.50 PerfScore 4.25
-G_M32564_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19 x21]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
+            cmp     x21, x0
+            bne     G_M32564_IG04
+                       ;; size=20 bbWeight=1 PerfScore 3.00
+G_M32564_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            cbz     x20, G_M32564_IG04
+            ldr     x0, [x20]
+            movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M32564_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            cmp     x0, x2
+            beq     G_M32564_IG06
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M32564_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M32564_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M32564_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M32564_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19 x21]
             ldrb    w0, [x20, #0x08]
             movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
@@ -80,34 +76,23 @@ G_M32564_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
                        ;; size=40 bbWeight=0.50 PerfScore 6.25
-G_M32564_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M32564_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             br      x3
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M32564_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x2] +[x19 x21]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M32564_IG09
-                       ;; size=12 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M32564_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M32564_IG11
+            beq     G_M32564_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M32564_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M32564_IG09:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -119,7 +104,7 @@ G_M32564_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M32564_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M32564_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -137,7 +122,7 @@ G_M32564_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x4, [x4, #0x18]
             ; gcrRegs -[x4]
                        ;; size=36 bbWeight=0.50 PerfScore 6.00
-G_M32564_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M32564_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
@@ -145,7 +130,7 @@ G_M32564_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 296, prolog size 28, PerfScore 40.62, instruction count 74, allocated bytes for code 296 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
+; Total bytes of code 264, prolog size 28, PerfScore 38.38, instruction count 66, allocated bytes for code 264 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -156,7 +141,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 74 (0x0004a) Actual length = 296 (0x000128)
+  Function Length   : 66 (0x00042) Actual length = 264 (0x000108)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 397745.dasm - testout1:SubFunclet107():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 33 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M51184_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M51184_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 397857.dasm - testout1:SubFunclet223():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 29 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T05] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T09] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T10] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T11] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T12] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T16] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T17] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
 ;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T06] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T25] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T08] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T03] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T04] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37173_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37173_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 397783.dasm - testout1:SubFunclet145():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
 ;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37238_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37238_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.osx.arm64.checked.mch

-16 (-6.78%) : 31725.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)

@@ -96,10 +96,8 @@ G_M48965_IG02:        ; bbWeight=1, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M48965_IG03:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M48965_IG04
-            cbz     x1, G_M48965_IG06
-            b       G_M48965_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M48965_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -114,11 +112,10 @@ G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M48965_IG05:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x1, G_M48965_IG06
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M48965_IG06
-            cbz     x4, G_M48965_IG08
-            b       G_M48965_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M48965_IG07
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x4
@@ -132,11 +129,10 @@ G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M48965_IG07:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x4, G_M48965_IG08
             ldr     w5, [x4, #0x08]
-            cbz     w5, G_M48965_IG08
-            cbz     x2, G_M48965_IG10
-            b       G_M48965_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w5, G_M48965_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x4]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -148,16 +144,12 @@ G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M48965_IG09:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x2, G_M48965_IG10
             ldr     w7, [x2, #0x08]
-            cbz     w7, G_M48965_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M48965_IG11
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w7, G_M48965_IG11
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             mov     x2, x4
             ; gcrRegs +[x2]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -167,8 +159,10 @@ G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000
             ; gcrRegs -[x1-x2 x4]
             b       G_M48965_IG12
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x0] +[x1-x2 x4]
+G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x1-x2 x4]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x6, x1, #12
             ; byrRegs +[x6]
@@ -190,14 +184,14 @@ G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001
             blr     x8
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4 x6]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+                       ;; size=44 bbWeight=0.50 PerfScore 4.25
 G_M48965_IG12:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 236, prolog size 12, PerfScore 37.25, instruction count 59, allocated bytes for code 236 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 35.25, instruction count 55, allocated bytes for code 220 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -208,7 +202,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-6.67%) : 31723.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -60,10 +60,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -83,21 +81,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             sxtw    w11, w2
             add     x2, x1, #12
@@ -110,13 +106,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 18.75, instruction count 30, allocated bytes for code 120 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 17.75, instruction count 28, allocated bytes for code 112 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +123,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-6.34%) : 133570.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -12,20 +12,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->  [fp+0x14]  single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->  x11        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x4        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x4        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x5         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x6        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x7        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x8        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x6        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x4        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x5         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x5         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -33,199 +33,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x4         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x11         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x3         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w11, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w11, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            add     x3, x0, #12
+            ; byrRegs +[x3]
+            ldrh    w4, [x3, w2, UXTW #2]
+            sxtw    w5, w4
+            cmp     w5, #32
+            ccmp    w5, #9, z, ne
+            ccmp    w5, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w5, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x3]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            ; byrRegs +[x3]
+            sxtw    w5, w4
+            cmp     w5, #34
+            beq     G_M24207_IG08
+            cmp     w5, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            mov     w4, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w11, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w5, w2
+            sxtw    w6, w11
+            mov     w7, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w20, UXTW #2]
-            cmp     w4, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w11, w2
+            ble     G_M24207_IG16
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            ldrh    w8, [x3, w2, UXTW #2]
+            cmp     w8, #92
             bne     G_M24207_IG12
-            mov     w11, #1
-            add     w20, w20, #2
+            mov     w7, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w4, #61
-            beq     G_M24207_IG19
-            cmp     w4, #44
-            beq     G_M24207_IG19
-            cmp     w4, #34
-            beq     G_M24207_IG29
-            cmp     w4, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w4, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, #61
             beq     G_M24207_IG18
+            cmp     w8, #44
+            beq     G_M24207_IG18
+            cmp     w8, #34
+            beq     G_M24207_IG27
+            cmp     w8, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, w4
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w2, w11
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w6, w2
+            add     w2, w6, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG24
+            sub     w6, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sub     w6, w6, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w6, w5
+            blt     G_M24207_IG21
+            cmp     w6, w11
+            bhs     G_M24207_IG33
...

+8 (+5.71%) : 173287.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)

@@ -17,7 +17,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M58850_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M58850_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -30,7 +30,7 @@ G_M58850_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs +[x1]
             mov     x21, x1
             ; gcrRegs +[x21]
-            cbz     x21, G_M58850_IG04
+            cbz     x21, G_M58850_IG06
             adrp    x22, [HIGH RELOC #0xD1FFAB1E]
             add     x22, x22, [LOW RELOC #0xD1FFAB1E]
                        ;; size=16 bbWeight=1 PerfScore 2.50
@@ -44,9 +44,9 @@ G_M58850_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0-x1]
-            cbnz    w0, G_M58850_IG06
+            cbnz    w0, G_M58850_IG04
             tst     w20, #255
-            beq     G_M58850_IG04
+            beq     G_M58850_IG06
             mov     x0, x21
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -57,10 +57,11 @@ G_M58850_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
             mov     x21, x0
             ; gcrRegs +[x21]
             cbnz    x21, G_M58850_IG03
-                       ;; size=60 bbWeight=4 PerfScore 70.00
+            b       G_M58850_IG08
+                       ;; size=64 bbWeight=4 PerfScore 74.00
 G_M58850_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x19 x21]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M58850_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -69,7 +70,7 @@ G_M58850_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 G_M58850_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M58850_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -77,8 +78,11 @@ G_M58850_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M58850_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M58850_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 140, prolog size 16, PerfScore 81.50, instruction count 35, allocated bytes for code 140 (MethodHash=d4151a1d) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 148, prolog size 16, PerfScore 86.00, instruction count 37, allocated bytes for code 148 (MethodHash=d4151a1d) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +93,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+8.33%) : 50449.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)

@@ -17,20 +17,20 @@
 ;
 ; Lcl frame size = 0
 
-G_M12753_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M12753_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M12753_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M12753_IG04
+            cbz     x0, G_M12753_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldrb    w11, [x0, #0x12]
             cmp     w11, #117
-            beq     G_M12753_IG06
+            beq     G_M12753_IG04
             cmp     w11, #188
-            bne     G_M12753_IG04
+            bne     G_M12753_IG06
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -38,17 +38,9 @@ G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
             cbnz    x0, G_M12753_IG03
-                       ;; size=44 bbWeight=4 PerfScore 60.00
-G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, xzr
-            ; gcrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M12753_IG08
+                       ;; size=48 bbWeight=4 PerfScore 64.00
+G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -56,12 +48,25 @@ G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, xzr
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M12753_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M12753_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 96, prolog size 8, PerfScore 68.75, instruction count 24, allocated bytes for code 96 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 73.25, instruction count 26, allocated bytes for code 104 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+9.76%) : 20786.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)

@@ -9,52 +9,55 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )   byref  ->   x0         this single-def
+;  V00 this         [V00,T00] (  5,  2   )   byref  ->   x0         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T03] (  4,  3.50)     int  ->  x11        
+;  V02 loc0         [V02,T03] (  4,  0   )     int  ->  x11        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp2         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp3         [V06,T01] (  5,  5   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp4         [V07,T02] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V06 tmp3         [V06,T01] (  5,  1   )   byref  ->  [fp+0x18]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp4         [V07,T02] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp5         [V08,T05] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
-G_M34588_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+G_M34588_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            stp     fp, lr, [sp, #-0x30]!
+            str     x19, [sp, #0x28]
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M34588_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
-            ; byrRegs +[x0-x1]
+            str     x1, [fp, #0x18]    // [V06 tmp3]
+            ; GC ptr vars +{V06}
+            str     w2, [fp, #0x24]    // [V07 tmp4]
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M34588_IG02:        ; bbWeight=0, gcVars=0000000000000002 {V06}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            ldr     w2, [fp, #0x24]    // [V07 tmp4]
             cmp     w2, #4
-            bne     G_M34588_IG06
+            bne     G_M34588_IG04
+            ldr     x1, [fp, #0x18]    // [V06 tmp3]
+            ; byrRegs +[x1]
             ldr     w11, [x1, #0x0C]
             movn    w2, #0xD1FFAB1E LSL #16
             tst     w11, w2
-            bne     G_M34588_IG06
-                       ;; size=24 bbWeight=1 PerfScore 6.50
-G_M34588_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+            bne     G_M34588_IG04
             and     w2, w11, #0xD1FFAB1E
             cmp     w2, #0xD1FFAB1E, LSL #12
-            bhi     G_M34588_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+            bhi     G_M34588_IG04
             ldp     w2, w3, [x1]
             add     x2, x2, x3,  LSL #32
             str     x2, [x0, #0x08]
             ldr     w1, [x1, #0x08]
             ; byrRegs -[x1]
             stp     w11, w1, [x0]
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M34588_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=64 bbWeight=0 PerfScore 0.00
+G_M34588_IG03:        ; bbWeight=0, epilog, nogc, extend
+            ldr     x19, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M34588_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
+            ; GC ptr vars -{V06}
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
@@ -86,7 +89,7 @@ G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 12, PerfScore 23.00, instruction count 41, allocated bytes for code 164 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
+; Total bytes of code 180, prolog size 12, PerfScore 0.00, instruction count 45, allocated bytes for code 180 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +100,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -105,8 +108,8 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    D0 05       save_reg X#0 Z#5 (0x05); str x19, [sp, #40]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
     E4          end

libraries.pmi.osx.arm64.checked.mch

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

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

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

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

-8 (-6.06%) : 341.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)

@@ -78,10 +78,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M49441_IG04
-            cbz     x1, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -92,31 +90,29 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M49441_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M49441_IG07
+            cbnz    w3, G_M49441_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x1]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
             add     x4, x1, #12
             ; byrRegs +[x4]
             mov     x5, x4
             ; byrRegs +[x5]
             sxtw    w6, w3
-            b       G_M49441_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1]
-            ; byrRegs -[x4-x5]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M49441_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0030 {x4 x5}, gcvars, byref, isz
-            ; gcrRegs +[x1]
-            ; byrRegs +[x4-x5]
             cmp     w6, #0
             ble     G_M49441_IG09
             ldrh    w5, [x5]
             ; byrRegs -[x5]
             cmp     w5, #47
             beq     G_M49441_IG04
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M49441_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
             ; gcrRegs -[x1]
             add     x0, x0, #12
@@ -139,7 +135,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 18.50, instruction count 33, allocated bytes for code 132 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 124, prolog size 8, PerfScore 17.50, instruction count 31, allocated bytes for code 124 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +146,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+10.00%) : 154671.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNullsubyte:System.Collections.Generic.List`1ubyte

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8, 24   )     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
-;  V01 loc0         [V01,T03] (  9, 21   )     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
+;  V00 arg0         [V00,T02] (  8, 20.50)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
+;  V01 loc0         [V01,T03] (  9, 17.50)     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ubyte]>
 ;  V03 loc2         [V03,T11] (  3,  6   )   ubyte  ->   x1        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,14 +21,14 @@
 ;* V10 tmp6         [V10,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ubyte]>
 ;* V12 tmp8         [V12,T15] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp9         [V13,T01] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
+;  V13 tmp9         [V13,T00] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
 ;  V14 tmp10        [V14,T06] (  2,  9   )     int  ->  x21         single-def "field V02._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T05] (  2,  6   )   ubyte  ->   x0         "field V02._current (fldOffset=0x10)" P-INDEP
 ;  V16 tmp12        [V16,T13] (  2,  2   )     ref  ->   x0         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V07._index (fldOffset=0x8)" P-INDEP
 ;  V18 tmp14        [V18,T14] (  2,  2   )     int  ->  x21         single-def "field V07._version (fldOffset=0xc)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07._current (fldOffset=0x10)" P-INDEP
-;  V20 tmp16        [V20,T02] (  3, 24   )     ref  ->   x0         "arr expr"
+;  V20 tmp16        [V20,T01] (  3, 24   )     ref  ->   x0         "arr expr"
 ;  V21 cse0         [V21,T04] (  3, 12   )     int  ->  x23         "CSE - aggressive"
 ;  V22 cse1         [V22,T12] (  2,  4   )     int  ->   x3         "CSE - aggressive"
 ;
@@ -101,7 +101,7 @@ G_M37290_IG04:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 G_M37290_IG05:        ; bbWeight=8, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0x14]
             cmp     w21, w0
-            bne     G_M37290_IG10
+            bne     G_M37290_IG13
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M37290_IG06:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w23, [x19, #0x10]
@@ -111,7 +111,7 @@ G_M37290_IG06:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
             cmp     w22, w1
-            bhs     G_M37290_IG09
+            bhs     G_M37290_IG12
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
@@ -120,25 +120,41 @@ G_M37290_IG06:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             add     w22, w22, #1
             b       G_M37290_IG03
                        ;; size=44 bbWeight=4 PerfScore 68.00
-G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x20, #0x10]
             cmp     w0, w23
-            csel    x0, x19, x20, eq
+            beq     G_M37290_IG10
+                       ;; size=12 bbWeight=4 PerfScore 18.00
+G_M37290_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
+            mov     x0, x20
             ; gcrRegs +[x0]
-                       ;; size=12 bbWeight=4 PerfScore 16.00
-G_M37290_IG08:        ; bbWeight=4, epilog, nogc, extend
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M37290_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19-x20]
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x20] +[x19]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x19]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M37290_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37290_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -148,22 +164,25 @@ G_M37290_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 280, prolog size 24, PerfScore 211.00, instruction count 70, allocated bytes for code 280 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
+; Total bytes of code 308, prolog size 24, PerfScore 195.50, instruction count 77, allocated bytes for code 308 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 2
-  Epilog Count      : 1
+  Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 70 (0x00046) Actual length = 280 (0x000118)
+  Function Length   : 77 (0x0004d) Actual length = 308 (0x000134)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Epilog Start Index         : 1 (0x01)
+  ---- Scope 1
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Epilog Start Index         : 1 (0x01)
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----

+16 (+10.00%) : 2396.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)

@@ -8,52 +8,55 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )   byref  ->   x0         this single-def
+;  V00 this         [V00,T00] (  5,  2   )   byref  ->   x0         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T03] (  4,  3.50)     int  ->   x2        
+;  V02 loc0         [V02,T03] (  4,  0   )     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp2         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp3         [V06,T01] (  5,  5   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp4         [V07,T02] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V06 tmp3         [V06,T01] (  5,  1   )   byref  ->  [fp+0x18]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp4         [V07,T02] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp5         [V08,T05] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
-G_M34588_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+G_M34588_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            stp     fp, lr, [sp, #-0x30]!
+            str     x19, [sp, #0x28]
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M34588_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
-            ; byrRegs +[x0-x1]
+            str     x1, [fp, #0x18]    // [V06 tmp3]
+            ; GC ptr vars +{V06}
+            str     w2, [fp, #0x24]    // [V07 tmp4]
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M34588_IG02:        ; bbWeight=0, gcVars=0000000000000002 {V06}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            ldr     w2, [fp, #0x24]    // [V07 tmp4]
             cmp     w2, #4
-            bne     G_M34588_IG06
+            bne     G_M34588_IG04
+            ldr     x1, [fp, #0x18]    // [V06 tmp3]
+            ; byrRegs +[x1]
             ldr     w2, [x1, #0x0C]
             movn    w3, #0xD1FFAB1E LSL #16
             tst     w2, w3
-            bne     G_M34588_IG06
-                       ;; size=24 bbWeight=1 PerfScore 6.50
-G_M34588_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+            bne     G_M34588_IG04
             and     w3, w2, #0xD1FFAB1E
             cmp     w3, #0xD1FFAB1E, LSL #12
-            bhi     G_M34588_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+            bhi     G_M34588_IG04
             ldp     w3, w4, [x1]
             add     x3, x3, x4,  LSL #32
             str     x3, [x0, #0x08]
             ldr     w1, [x1, #0x08]
             ; byrRegs -[x1]
             stp     w2, w1, [x0]
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M34588_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=64 bbWeight=0 PerfScore 0.00
+G_M34588_IG03:        ; bbWeight=0, epilog, nogc, extend
+            ldr     x19, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M34588_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
+            ; GC ptr vars -{V06}
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -84,7 +87,7 @@ G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=80 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 160, prolog size 12, PerfScore 23.00, instruction count 40, allocated bytes for code 160 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
+; Total bytes of code 176, prolog size 12, PerfScore 0.00, instruction count 44, allocated bytes for code 176 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +98,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
+  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -103,8 +106,8 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    D0 05       save_reg X#0 Z#5 (0x05); str x19, [sp, #40]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
     E4          end

+12 (+10.00%) : 76144.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:g_makeConjunct|410(System.String,System.String):System.String (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->   x0         class-hnd <System.String>
+;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->  registers   class-hnd <System.String>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V08 tmp2         [V08,T03] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
@@ -28,43 +28,43 @@ G_M24419_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M24419_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x0, G_M24419_IG06
+            cbz     x0, G_M24419_IG05
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M24419_IG03:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bne     G_M24419_IG06
+            bne     G_M24419_IG05
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
 G_M24419_IG04:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x0, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG06
+            beq     G_M24419_IG08
                        ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, x1
-            ; gcrRegs +[x0]
-            b       G_M24419_IG11
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24419_IG06:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             cbz     x1, G_M24419_IG10
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG07:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG06:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x1, #0x08]
             cmp     w2, #1
             bne     G_M24419_IG10
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
-G_M24419_IG08:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG07:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x1, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG10
-                       ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
+            beq     G_M24419_IG09
+            b       G_M24419_IG10
+                       ;; size=16 bbWeight=0.12 PerfScore 0.69
+G_M24419_IG08:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
             b       G_M24419_IG11
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
+G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
+            mov     x1, x0
             ; gcrRegs +[x1]
+            b       G_M24419_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
             mov     x2, x1
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
@@ -77,13 +77,20 @@ G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            mov     x1, x0
+            ; gcrRegs +[x1]
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            mov     x0, x1
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=1 PerfScore 0.50
+G_M24419_IG12:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.38, instruction count 30, allocated bytes for code 120 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 14.25, instruction count 33, allocated bytes for code 132 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -94,7 +101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.osx.arm64.Release.mch

-44 (-17.46%) : 98503.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     w1, [x20, #0x08]
             str     w1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -107,7 +90,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -123,15 +106,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 252, prolog size 24, PerfScore 34.25, instruction count 63, allocated bytes for code 252 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 208, prolog size 20, PerfScore 28.38, instruction count 52, allocated bytes for code 208 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,9 +138,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-17.46%) : 97700.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1System.DateTime

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M27952_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M27952_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M27952_IG07
+            cbz     x20, G_M27952_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M27952_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
-            cmp     x1, x21
-            bne     G_M27952_IG07
-            cmp     x1, x21
-            beq     G_M27952_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M27952_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M27952_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M27952_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M27952_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M27952_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     x1, [x20, #0x08]
             str     x1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M27952_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M27952_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M27952_IG11
+            beq     G_M27952_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -107,7 +90,7 @@ G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -123,15 +106,14 @@ G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M27952_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M27952_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 252, prolog size 24, PerfScore 34.25, instruction count 63, allocated bytes for code 252 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
+; Total bytes of code 208, prolog size 20, PerfScore 28.38, instruction count 52, allocated bytes for code 208 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,7 +124,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 63 (0x0003f) Actual length = 252 (0x0000fc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,9 +138,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-17.19%) : 99825.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,93 +10,76 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldrb    w1, [x20, #0x08]
             mvn     w1, w1
             strb    w1, [x0, #0x08]
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -108,7 +91,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -124,15 +107,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 256, prolog size 24, PerfScore 34.50, instruction count 64, allocated bytes for code 256 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 212, prolog size 20, PerfScore 28.62, instruction count 53, allocated bytes for code 212 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -143,7 +125,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 53 (0x00035) Actual length = 212 (0x0000d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -157,9 +139,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+44 (+9.02%) : 186768.dasm - System.Collections.Frozen.FrozenSetInternalBase2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet1+GSW[System.Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.Canon]):ubyte:this (Tier1-OSR)

@@ -10,45 +10,49 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T12] (  4,   2.39)     ref  ->  [fp+0x118]  this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]>
-;  V01 arg1         [V01,T11] (  3, 101.89)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.IReadOnlySet`1[System.__Canon]>
+;  V00 this         [V00,T15] (  5, 102.27)     ref  ->  [fp+0x118]  this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]>
+;  V01 arg1         [V01,T16] (  3, 101.89)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.IReadOnlySet`1[System.__Canon]>
 ;  V02 loc0         [V02    ] ( 10,1001.05)  struct (16) [fp+0x100]  do-not-enreg[XSFR] multireg-ret addr-exposed ld-addr-op tier0-frame <System.Collections.Frozen.FrozenSet`1+Enumerator[System.__Canon]>
 ;  V03 loc1         [V03    ] (  1,   1   )  struct ( 8) [fp+0xF8]  do-not-enreg[XS] addr-exposed ld-addr-op tier0-frame <System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]>
-;  V04 loc2         [V04,T09] (  2, 199.77)     ref  ->  x21         class-hnd <System.__Canon>
-;* V05 loc3         [V05,T25] (  0,   0   )   ubyte  ->  zero-ref   
+;  V04 loc2         [V04,T14] (  2, 199.77)     ref  ->  x21         class-hnd <System.__Canon>
+;* V05 loc3         [V05,T29] (  0,   0   )   ubyte  ->  zero-ref   
 ;# V06 OutArgs      [V06    ] (  1,   1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp2         [V08    ] (  0,   0   )    long  ->  zero-ref    "Indirect call through function pointer"
 ;* V09 tmp3         [V09    ] (  0,   0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Frozen.FrozenSet`1+Enumerator[System.__Canon]>
 ;* V10 tmp4         [V10    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp5         [V11,T17] (  6,   1.09)    long  ->   x2         "Indirect call through function pointer"
+;  V11 tmp5         [V11,T22] (  6,   1.09)    long  ->   x2         "Indirect call through function pointer"
 ;* V12 tmp6         [V12    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V13 tmp7         [V13    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V14 tmp8         [V14    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V15 tmp9         [V15,T02] (  4, 599.32)    long  ->  x11         "VirtualCall with runtime lookup"
 ;* V16 tmp10        [V16    ] (  0,   0   )     int  ->  zero-ref    "OSR entry state var"
-;* V17 tmp11        [V17,T00] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V17 tmp11        [V17,T00] (  2, 800   )   ubyte  ->   x1         "Inline return value spill temp"
 ;* V18 tmp12        [V18    ] (  0,   0   )     ref  ->  zero-ref    "field V09._entries (fldOffset=0x0)" P-DEP
 ;* V19 tmp13        [V19    ] (  0,   0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-DEP
 ;  V20 tmp14        [V20,T03] (  3, 599.32)     ref  ->   x2         "arr expr"
 ;  V21 tmp15        [V21,T04] (  3, 599.32)     int  ->   x1         "index expr"
-;  V22 PSPSym       [V22,T18] (  1,   1   )    long  ->  [fp+0x10]  do-not-enreg[V] "PSPSym"
-;* V23 cse0         [V23,T24] (  0,   0   )    long  ->  zero-ref    hoist "CSE - aggressive"
-;  V24 cse1         [V24,T01] (  3, 600   )     ref  ->  x21         "CSE - aggressive"
-;  V25 cse2         [V25,T10] (  8, 136.85)    long  ->  x20         hoist multi-def "CSE - aggressive"
-;  V26 cse3         [V26,T07] (  3, 299.66)     ref  ->   x2         "CSE - aggressive"
-;  V27 cse4         [V27,T08] (  3, 299.66)     int  ->   x1         "CSE - aggressive"
-;  V28 rat0         [V28,T14] (  2,   1.13)    long  ->   x1         "Spilling to split statement for tree"
-;* V29 rat1         [V29,T16] (  0,   0   )    long  ->  zero-ref    "runtime lookup"
-;  V30 rat2         [V30,T13] (  2,   1.13)    long  ->   x1         "spilling expr"
-;* V31 rat3         [V31,T15] (  0,   0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V32 rat4         [V32,T05] (  3, 559.37)    long  ->   x1         "spilling expr"
-;  V33 rat5         [V33,T06] (  3, 447.49)    long  ->  x11         "fgMakeTemp is creating a new local variable"
-;  V34 rat6         [V34,T19] (  3,   0.95)    long  ->   x1         "spilling expr"
-;  V35 rat7         [V35,T20] (  3,   0.76)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V36 rat8         [V36,T22] (  3,   0.49)    long  ->  x20         "Spilling to split statement for tree"
-;  V37 rat9         [V37,T21] (  3,   0.58)    long  ->   x1         "spilling expr"
-;  V38 rat10        [V38,T23] (  3,   0.46)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V22 PSPSym       [V22,T23] (  1,   1   )    long  ->  [fp+0x10]  do-not-enreg[V] "PSPSym"
+;* V23 cse0         [V23,T17] (  0,   0   )    long  ->  zero-ref    hoist multi-def "CSE - aggressive"
+;  V24 cse1         [V24,T01] (  3, 600   )     ref  ->   x2         "CSE - aggressive"
+;  V25 cse2         [V25,T11] ( 10, 336.62)    long  ->  x20         hoist multi-def "CSE - aggressive"
+;  V26 cse3         [V26,T12] (  3, 299.66)     ref  ->   x2         "CSE - aggressive"
+;  V27 cse4         [V27,T13] (  3, 299.66)     int  ->   x1         "CSE - aggressive"
+;  V28 rat0         [V28,T19] (  2,   1.13)    long  ->  x20         "Spilling to split statement for tree"
+;* V29 rat1         [V29,T21] (  0,   0   )    long  ->  zero-ref    "runtime lookup"
+;  V30 rat2         [V30,T18] (  2,   1.13)    long  ->   x1         "spilling expr"
+;* V31 rat3         [V31,T20] (  0,   0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V32 rat4         [V32,T07] (  2, 399.55)    long  ->   x1         "Spilling to split statement for tree"
+;* V33 rat5         [V33,T10] (  0,   0   )    long  ->  zero-ref    "runtime lookup"
+;  V34 rat6         [V34,T05] (  2, 399.55)    long  ->   x1         "spilling expr"
+;* V35 rat7         [V35,T08] (  0,   0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V36 rat8         [V36,T06] (  3, 559.37)    long  ->   x1         "spilling expr"
+;  V37 rat9         [V37,T09] (  3, 447.49)    long  ->  x11         "fgMakeTemp is creating a new local variable"
+;  V38 rat10        [V38,T24] (  3,   0.95)    long  ->   x1         "spilling expr"
+;  V39 rat11        [V39,T25] (  3,   0.76)    long  ->   x2         "fgMakeTemp is creating a new local variable"
+;  V40 rat12        [V40,T27] (  3,   0.49)    long  ->   x1         "Spilling to split statement for tree"
+;  V41 rat13        [V41,T26] (  3,   0.58)    long  ->   x2         "spilling expr"
+;  V42 rat14        [V42,T28] (  3,   0.46)    long  ->   x2         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -62,22 +66,20 @@ G_M30499_IG01:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     x19, x0, [fp, #0xD1FFAB1E]
             ; gcrRegs +[x0 x19]
                        ;; size=28 bbWeight=0.28 PerfScore 2.26
-G_M30499_IG02:        ; bbWeight=0.28, gcVars=0000000000001000 {V00}, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V00}
+G_M30499_IG02:        ; bbWeight=0.28, gcVars=0000000000008000 {V00}, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V00 V15}
             ldr     x20, [x0]
-            mov     x1, x20
-            ldr     x1, [x1, #0x38]
+            ldr     x1, [x20, #0x38]
             ldr     x1, [x1, #0x08]
             ldr     x1, [x1, #0x10]
             cmp     x1, #128
-            ble     G_M30499_IG10
-                       ;; size=28 bbWeight=0.28 PerfScore 3.95
-G_M30499_IG03:        ; bbWeight=0.23, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            b       G_M30499_IG10
+            ble     G_M30499_IG11
+                       ;; size=24 bbWeight=0.28 PerfScore 3.81
+G_M30499_IG03:        ; bbWeight=0.23, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+            b       G_M30499_IG11
                        ;; size=4 bbWeight=0.23 PerfScore 0.23
 G_M30499_IG04:        ; bbWeight=35.96, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x21]
+            ; gcrRegs -[x0] +[x21]
             mov     x0, x20
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -85,7 +87,7 @@ G_M30499_IG04:        ; bbWeight=35.96, gcrefRegs=280000 {x19 x21}, byrefRegs=00
             bl      CORINFO_HELP_RUNTIMEHANDLE_CLASS
             ; gcr arg pop 0
             mov     x11, x0
-            b       G_M30499_IG09
+            b       G_M30499_IG10
                        ;; size=28 bbWeight=35.96 PerfScore 161.82
 G_M30499_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19 x21]
@@ -101,8 +103,18 @@ G_M30499_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M30499_IG07:        ; bbWeight=99.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x19]
+G_M30499_IG07:        ; bbWeight=99.89, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0 x19]
+            ldr     x20, [x0]
+            mov     x1, x20
+            ldr     x1, [x1, #0x38]
+            ldr     x1, [x1, #0x08]
+            ldr     x1, [x1, #0x10]
+            cmp     x1, #128
+            ble     G_M30499_IG08
+                       ;; size=28 bbWeight=99.89 PerfScore 1398.42
+G_M30499_IG08:        ; bbWeight=99.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0]
             ldr     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
             ldr     x2, [fp, #0xD1FFAB1E]  // [V02 loc0]
             ; gcrRegs +[x2]
@@ -124,11 +136,11 @@ G_M30499_IG07:        ; bbWeight=99.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}
             cmp     x2, #136
             ble     G_M30499_IG04
                        ;; size=60 bbWeight=99.89 PerfScore 2696.95
-G_M30499_IG08:        ; bbWeight=79.91, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG09:        ; bbWeight=79.91, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x11, [x1, #0x88]
             cbz     x11, G_M30499_IG04
                        ;; size=8 bbWeight=79.91 PerfScore 319.64
-G_M30499_IG09:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG10:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
             mov     x0, x19
             ; gcrRegs +[x0]
             mov     x1, x21
@@ -137,68 +149,76 @@ G_M30499_IG09:        ; bbWeight=99.89, gcrefRegs=280000 {x19 x21}, byrefRegs=00
             blr     x2
             ; gcrRegs -[x0-x1 x21]
             ; gcr arg pop 0
-            cbz     w0, G_M30499_IG12
+            cbz     w0, G_M30499_IG13
                        ;; size=20 bbWeight=99.89 PerfScore 599.32
-G_M30499_IG10:        ; bbWeight=100, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M30499_IG11:        ; bbWeight=100, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x0, [fp, #0xD1FFAB1E]  // [V00 this]
+            ; gcrRegs +[x0]
             ldr     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
             add     w1, w1, #1
             str     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
             ldr     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
-            ldr     x21, [fp, #0xD1FFAB1E] // [V02 loc0]
-            ; gcrRegs +[x21]
-            ldr     w2, [x21, #0x08]
-            cmp     w1, w2
+            ldr     x2, [fp, #0xD1FFAB1E]  // [V02 loc0]
+            ; gcrRegs +[x2]
+            ldr     w3, [x2, #0x08]
+            cmp     w1, w3
             blo     G_M30499_IG07
-                       ;; size=32 bbWeight=100 PerfScore 1200.00
-G_M30499_IG11:        ; bbWeight=400, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ldr     w1, [x21, #0x08]
+                       ;; size=36 bbWeight=100 PerfScore 1400.00
+G_M30499_IG12:        ; bbWeight=400, gcrefRegs=80005 {x0 x2 x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w1, [x2, #0x08]
             str     w1, [fp, #0xD1FFAB1E]  // [V02 loc0+0x08]
-            b       G_M30499_IG16
-                       ;; size=12 bbWeight=400 PerfScore 2000.00
-G_M30499_IG12:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x21]
+            mov     w1, wzr
+            cbz     w1, G_M30499_IG17
+            b       G_M30499_IG07
+                       ;; size=20 bbWeight=400 PerfScore 2600.00
+G_M30499_IG13:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x0 x2 x19]
+            ldr     x0, [fp, #0xD1FFAB1E]  // [V00 this]
+            ; gcrRegs +[x0]
             ldr     x1, [x20, #0x38]
             ldr     x1, [x1, #0x08]
             ldr     x2, [x1, #0x10]
             cmp     x2, #144
-            ble     G_M30499_IG20
-                       ;; size=20 bbWeight=0.17 PerfScore 1.78
-G_M30499_IG13:        ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ble     G_M30499_IG21
+                       ;; size=24 bbWeight=0.17 PerfScore 2.12
+G_M30499_IG14:        ; bbWeight=0.14, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x1, #0x90]
-            cbz     x2, G_M30499_IG20
+            cbz     x2, G_M30499_IG21
                        ;; size=8 bbWeight=0.14 PerfScore 0.54
-G_M30499_IG14:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30499_IG15:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
             add     x0, fp, #0xD1FFAB1E    // [V02 loc0]
             blr     x2
             ; gcr arg pop 0
             mov     w0, wzr
                        ;; size=12 bbWeight=0.17 PerfScore 0.34
-G_M30499_IG15:        ; bbWeight=0.17, epilog, nogc, extend
+G_M30499_IG16:        ; bbWeight=0.17, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             add     sp, sp, #0xD1FFAB1E
             ret     lr
                        ;; size=20 bbWeight=0.17 PerfScore 0.93
-G_M30499_IG16:        ; bbWeight=0.10, gcVars=0000000000001000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M30499_IG17:        ; bbWeight=0.10, gcVars=0000000000008000 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0]
             ldr     x0, [fp, #0x10]    // [V22 PSPSym]
-            bl      G_M30499_IG21
+            ; gcrRegs -[x0]
+            bl      G_M30499_IG22
                        ;; size=8 bbWeight=0.10 PerfScore 0.31
-G_M30499_IG17:        ; bbWeight=0.10, nogc, extend
+G_M30499_IG18:        ; bbWeight=0.10, nogc, extend
             nop     
                        ;; size=4 bbWeight=0.10 PerfScore 0.05
-G_M30499_IG18:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30499_IG19:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #1
                        ;; size=4 bbWeight=0.10 PerfScore 0.05
-G_M30499_IG19:        ; bbWeight=0.10, epilog, nogc, extend
+G_M30499_IG20:        ; bbWeight=0.10, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             add     sp, sp, #0xD1FFAB1E
             ret     lr
                        ;; size=20 bbWeight=0.10 PerfScore 0.57
-G_M30499_IG20:        ; bbWeight=0.06, gcVars=0000000000001000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M30499_IG21:        ; bbWeight=0.06, gcVars=0000000000008000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             mov     x0, x20
             movz    x1, #0xD1FFAB1E
...

+8 (+9.52%) : 159283.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.89)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.67)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.33)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.11 PerfScore 1.11
-G_M207_IG03:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.22, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #2 LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.22 PerfScore 1.33
-G_M207_IG04:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.22 PerfScore 1.56
+G_M207_IG05:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.22 PerfScore 0.44
-G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.11 PerfScore 0.44
+G_M207_IG06:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.11 PerfScore 1.50
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.11 PerfScore 1.17
 
-; Total bytes of code 84, prolog size 8, PerfScore 5.89, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 5.78, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+9.52%) : 51804.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.24)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.18)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.10)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.03 PerfScore 1.03
-G_M207_IG03:        ; bbWeight=0.06, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #2 LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.06 PerfScore 0.34
-G_M207_IG04:        ; bbWeight=0.06, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.06 PerfScore 0.39
+G_M207_IG05:        ; bbWeight=0.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.06 PerfScore 0.11
-G_M207_IG05:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.03 PerfScore 0.13
+G_M207_IG06:        ; bbWeight=0.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.03 PerfScore 0.43
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.03 PerfScore 0.34
 
-; Total bytes of code 84, prolog size 8, PerfScore 3.41, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 3.39, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-44 (-18.64%) : 24939.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1System.DateTime

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M27952_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M27952_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M27952_IG07
+            cbz     x20, G_M27952_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M27952_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
-            cmp     x1, x21
-            bne     G_M27952_IG07
-            cmp     x1, x21
-            beq     G_M27952_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M27952_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M27952_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M27952_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M27952_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M27952_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     x1, [x20, #0x08]
             str     x1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M27952_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M27952_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M27952_IG11
+            beq     G_M27952_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -103,7 +86,7 @@ G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -119,15 +102,14 @@ G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M27952_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M27952_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 236, prolog size 24, PerfScore 33.12, instruction count 59, allocated bytes for code 236 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 27.25, instruction count 48, allocated bytes for code 192 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -138,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -152,9 +134,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-32 (-15.69%) : 25383.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)

@@ -10,16 +10,14 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T07] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T02] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V07 tmp4         [V07,T07] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V09 cse0         [V09,T03] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V10 cse1         [V10,T05] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V11 cse2         [V11,T08] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V06 tmp3         [V06,T04] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V07 tmp4         [V07,T05] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T03] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V09 cse0         [V09,T06] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -33,59 +31,46 @@ G_M44930_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M44930_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M44930_IG07
+            cbz     x20, G_M44930_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M44930_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            cmp     x1, x0
-            bne     G_M44930_IG07
-            cmp     x1, x0
-            beq     G_M44930_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M44930_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M44930_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ldr     w0, [x20, #0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M44930_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M44930_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x19, #0x10]
             strb    wzr, [x19, #0x10]
-            cbz     w0, G_M44930_IG09
+            cbz     w0, G_M44930_IG08
             mov     w0, wzr
                        ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M44930_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M44930_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19]
+            ldr     w0, [x20, #0x08]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19]
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M44930_IG11
+            beq     G_M44930_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -93,7 +78,7 @@ G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -109,14 +94,14 @@ G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M44930_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 204, prolog size 20, PerfScore 27.75, instruction count 51, allocated bytes for code 204 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
+; Total bytes of code 172, prolog size 20, PerfScore 25.50, instruction count 43, allocated bytes for code 172 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-14.75%) : 102413.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2):System.Object (FullOpts)

@@ -10,105 +10,91 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 4) zero-ref    HFA(float)  single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct ( 8) zero-ref    HFA(float)  <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06,T10] (  0,  0   )     int  ->  zero-ref   
+;* V06 tmp1         [V06,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V07 tmp2         [V07,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V08 tmp3         [V08,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V08 tmp3         [V08,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V09 tmp4         [V09,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2>
-;  V10 tmp5         [V10,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V11 tmp6         [V11,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V12 tmp7         [V12,T11] (  4,  2.50)   float  ->  [fp+0x14]  single-def "field V03.Foo (fldOffset=0x0)" P-INDEP
+;  V10 tmp5         [V10,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V11 tmp6         [V11,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V12 tmp7         [V12,T09] (  4,  2.50)   float  ->  [fp+0x1C]  single-def "field V03.Foo (fldOffset=0x0)" P-INDEP
 ;* V13 tmp8         [V13    ] (  0,  0   )   float  ->  zero-ref    single-def "field V04.Foo (fldOffset=0x0)" P-INDEP
-;  V14 cse0         [V14,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V15 cse1         [V15,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V16 cse2         [V16,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V14 cse0         [V14,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M46944_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     x19, x20, [sp, #0x20]
             mov     fp, sp
-            str     s0, [fp, #0x14]    // [V12 tmp7]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=28 bbWeight=1 PerfScore 5.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M46944_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M46944_IG07
+            cbz     x20, G_M46944_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M46944_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
-            add     x0, x21, #0xD1FFAB1E
-            cmp     x1, x0
-            bne     G_M46944_IG07
-            add     x0, x21, #0xD1FFAB1E
-            cmp     x1, x0
-            beq     G_M46944_IG05
-                       ;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M46944_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            cmp     x0, x1
+            beq     G_M46944_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M46944_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M46944_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M46944_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M46944_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            add     x0, x21, #0xD1FFAB1E
-            bl      CORINFO_HELP_UNBOX
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M46944_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ldr     s0, [fp, #0x14]    // [V12 tmp7]
+            str     s0, [fp, #0x1C]    // [V12 tmp7]
             str     s0, [x20, #0x0C]
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs -[x20] +[x0]
             ; gcr arg pop 0
-            ldr     s0, [fp, #0x14]    // [V12 tmp7]
+            ldr     s0, [fp, #0x1C]    // [V12 tmp7]
             str     s0, [x0, #0x08]
-                       ;; size=24 bbWeight=0.50 PerfScore 3.75
-G_M46944_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
+G_M46944_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x20]
             ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46944_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M46944_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19-x20]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M46944_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M46944_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M46944_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             cmp     x0, x1
-            beq     G_M46944_IG11
+            beq     G_M46944_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M46944_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M46944_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+            str     s0, [fp, #0x1C]    // [V12 tmp7]
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_CHKCASTCLASS_SPECIAL
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M46944_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+            ldr     s0, [fp, #0x1C]    // [V12 tmp7]
+                       ;; size=20 bbWeight=0.25 PerfScore 1.25
+G_M46944_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -119,21 +105,19 @@ G_M46944_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs +[x1]
             mov     x2, x20
             ; gcrRegs +[x2]
-            ldr     s0, [fp, #0x14]    // [V12 tmp7]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
-                       ;; size=36 bbWeight=0.50 PerfScore 6.75
-G_M46944_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
+                       ;; size=32 bbWeight=0.50 PerfScore 5.75
+G_M46944_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x20]
             ldp     fp, lr, [sp], #0x30
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 244, prolog size 28, PerfScore 35.50, instruction count 61, allocated bytes for code 244 (MethodHash=4c56489f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2):System.Object (FullOpts)
+; Total bytes of code 208, prolog size 20, PerfScore 28.50, instruction count 52, allocated bytes for code 208 (MethodHash=4c56489f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -144,7 +128,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -158,9 +142,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
     85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

+8 (+6.67%) : 125050.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)

@@ -56,12 +56,11 @@ G_M4885_IG05:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {},
             ldr     w4, [x2, #0x08]
             cmp     w4, w3
             blo     G_M4885_IG04
-            add     x2, x2, #16
+            b       G_M4885_IG08
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             ; gcrRegs -[x2]
             ; byrRegs +[x2]
-            sxtw    w4, w3
-                       ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             mov     w3, w4
             add     x0, x0, #28
             ; gcrRegs -[x0]
@@ -77,8 +76,16 @@ G_M4885_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M4885_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0 x2]
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+            sxtw    w4, w3
+            b       G_M4885_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 20.75, instruction count 30, allocated bytes for code 120 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
+; Total bytes of code 128, prolog size 8, PerfScore 21.75, instruction count 32, allocated bytes for code 128 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +96,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+11.48%) : 70041.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M22620_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M22620_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M22620_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M22620_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M22620_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M22620_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M22620_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M22620_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M22620_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M22620_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22620_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M22620_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M22620_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M22620_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M22620_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22620_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M22620_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M22620_IG07
+            b       G_M22620_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M22620_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M22620_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M22620_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M22620_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M22620_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M22620_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M22620_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M22620_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M22620_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

+28 (+11.48%) : 66890.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M57052_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M57052_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M57052_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M57052_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M57052_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M57052_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M57052_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M57052_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M57052_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M57052_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M57052_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M57052_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M57052_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M57052_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M57052_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57052_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #1 LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M57052_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M57052_IG07
+            b       G_M57052_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M57052_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M57052_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_unix #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M57052_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M57052_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M57052_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M57052_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M57052_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M57052_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M57052_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

realworld.run.osx.arm64.checked.mch

-32 (-5.84%) : 16603.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -11,20 +11,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x3         single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x4        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x5        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x5        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x6         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x7        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x8        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x9        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x7        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x5        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x6         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x6         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -32,199 +32,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x5         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->   x3         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w3, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w3, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            add     x4, x0, #12
+            ; byrRegs +[x4]
+            ldrh    w5, [x4, w2, UXTW #2]
+            sxtw    w6, w5
+            cmp     w6, #32
+            ccmp    w6, #9, z, ne
+            ccmp    w6, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w6, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x4]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            ; byrRegs +[x4]
+            sxtw    w6, w5
+            cmp     w6, #34
+            beq     G_M24207_IG08
+            cmp     w6, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            mov     w5, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w4, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w6, w2
+            sxtw    w7, w3
+            mov     w8, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w20, UXTW #2]
-            cmp     w5, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w3, w2
+            ble     G_M24207_IG16
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            ldrh    w9, [x4, w2, UXTW #2]
+            cmp     w9, #92
             bne     G_M24207_IG12
-            mov     w4, #1
-            add     w20, w20, #2
+            mov     w8, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w5, #61
-            beq     G_M24207_IG19
-            cmp     w5, #44
-            beq     G_M24207_IG19
-            cmp     w5, #34
-            beq     G_M24207_IG29
-            cmp     w5, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w5, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, #61
             beq     G_M24207_IG18
+            cmp     w9, #44
+            beq     G_M24207_IG18
+            cmp     w9, #34
+            beq     G_M24207_IG27
+            cmp     w9, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, w5
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w2, w3
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w7, w2
+            add     w2, w7, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG24
+            sub     w7, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sub     w7, w7, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w7, w6
+            blt     G_M24207_IG21
+            cmp     w7, w3
+            bhs     G_M24207_IG33
...

-16 (-5.26%) : 28664.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)

@@ -11,25 +11,24 @@
 ;  V00 arg0         [V00,T02] (  7,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T03] (  4,  3.50)   byref  ->  x20         single-def
 ;  V02 arg2         [V02,T04] (  4,  3.50)   byref  ->  x21         single-def
-;  V03 loc0         [V03,T08] (  5,  4   )     int  ->  x23        
+;  V03 loc0         [V03,T08] (  5,  2.50)     int  ->  x22        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
-;  V05 loc2         [V05,T01] (  6, 18.50)     int  ->  x24        
+;  V05 loc2         [V05,T01] (  6, 17   )     int  ->   x0        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V08 tmp2         [V08,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp3         [V09,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x1         "Inlining Arg"
-;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  x22         "CSE - aggressive"
-;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x0         hoist "CSE - aggressive"
+;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x3         "Inlining Arg"
+;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->   x2         "CSE - aggressive"
+;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x1         hoist "CSE - aggressive"
 ;  V13 cse2         [V13,T07] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -37,7 +36,7 @@ G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs +[x20]
             mov     x21, x2
             ; byrRegs +[x21]
-                       ;; size=32 bbWeight=1 PerfScore 6.00
+                       ;; size=28 bbWeight=1 PerfScore 5.00
 G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -59,64 +58,60 @@ G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20
             cbz     x19, G_M22854_IG04
                        ;; size=40 bbWeight=1 PerfScore 6.50
 G_M22854_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            ldr     w22, [x19, #0x08]
-            cbz     w22, G_M22854_IG04
-            mov     w23, wzr
-            mov     w24, wzr
-            cmp     w22, #0
-            ble     G_M22854_IG12
-            b       G_M22854_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+            ldr     w2, [x19, #0x08]
+            cbnz    w2, G_M22854_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M22854_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20-x21]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M22854_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref, isz
             ; gcrRegs +[x19]
             ; byrRegs +[x20-x21]
-            add     x0, x19, #12
-            ; byrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            ldrh    w1, [x0, w24, UXTW #2]
-            mov     w2, #0xD1FFAB1E
-            mov     w3, #0xD1FFAB1E
-            cmp     w1, #45
-            ccmp    w1, w2, z, ne
-            ccmp    w1, w3, z, ne
-            beq     G_M22854_IG11
+            mov     w22, wzr
+            mov     w0, wzr
+            cmp     w2, #0
+            ble     G_M22854_IG11
+            add     x1, x19, #12
+            ; byrRegs +[x1]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            ldrh    w3, [x1, w0, UXTW #2]
+            mov     w4, #0xD1FFAB1E
+            mov     w5, #0xD1FFAB1E
+            cmp     w3, #45
+            ccmp    w3, w4, z, ne
+            ccmp    w3, w5, z, ne
+            beq     G_M22854_IG10
                        ;; size=28 bbWeight=4 PerfScore 26.00
-G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            mov     w2, #0xD1FFAB1E
-            cmp     w1, w2
-            beq     G_M22854_IG11
+G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            mov     w4, #0xD1FFAB1E
+            cmp     w3, w4
+            beq     G_M22854_IG10
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            add     w24, w24, #1
-            cmp     w22, w24
+G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            add     w0, w0, #1
+            cmp     w2, w0
             bgt     G_M22854_IG07
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+            b       G_M22854_IG11
+                       ;; size=16 bbWeight=4 PerfScore 12.00
 G_M22854_IG10:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            ; byrRegs -[x0]
-            b       G_M22854_IG12
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22854_IG11:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            sxtw    w23, w24
-                       ;; size=4 bbWeight=2 PerfScore 1.00
-G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            cmp     w23, #0
+            ; byrRegs -[x1]
+            sxtw    w22, w0
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
+            cmp     w22, #0
             ble     G_M22854_IG04
             mov     x0, x19
             ; gcrRegs +[x0]
-            mov     w2, w23
+            mov     w2, w22
             mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.String:Substring(int,int):System.String:this
             movk    x3, #0xD1FFAB1E LSL #16
@@ -131,7 +126,7 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14 x20]
-            add     w1, w23, #1
+            add     w1, w22, #1
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.String:Substring(int):System.String:this
@@ -150,15 +145,14 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             ; byrRegs -[x14 x21]
             mov     w0, #1
                        ;; size=96 bbWeight=0.50 PerfScore 9.75
-G_M22854_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
+G_M22854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 304, prolog size 32, PerfScore 71.00, instruction count 76, allocated bytes for code 304 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
+; Total bytes of code 288, prolog size 28, PerfScore 71.25, instruction count 72, allocated bytes for code 288 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -169,7 +163,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 76 (0x0004c) Actual length = 304 (0x000130)
+  Function Length   : 72 (0x00048) Actual length = 288 (0x000120)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -181,9 +175,9 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    E6          save_next
     C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    E4          end
     E4          end
     E4          end
 

-12 (-5.17%) : 11088.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)

@@ -11,7 +11,7 @@
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T00] (  5, 44   )     ref  ->  x19         class-hnd exact "impAppendStmt" <System.String>
-;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
+;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.String>
 ;  V04 tmp3         [V04,T01] (  5, 32   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.String>
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -81,10 +81,8 @@ G_M26077_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=68 bbWeight=8 PerfScore 144.00
 G_M26077_IG03:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x19, #0x08]
-            cbz     w1, G_M26077_IG04
-            cbz     x0, G_M26077_IG07
-            b       G_M26077_IG06
-                       ;; size=16 bbWeight=2 PerfScore 12.00
+            cbnz    w1, G_M26077_IG06
+                       ;; size=8 bbWeight=2 PerfScore 8.00
 G_M26077_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19]
             mov     x20, x0
@@ -101,21 +99,19 @@ G_M26077_IG05:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M26077_IG06:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x20] +[x0 x19]
+            cbz     x0, G_M26077_IG07
             ldr     w3, [x0, #0x08]
-            cbz     w3, G_M26077_IG07
-            add     x2, x19, #12
-            ; byrRegs +[x2]
-            b       G_M26077_IG08
-                       ;; size=16 bbWeight=2 PerfScore 11.00
+            cbnz    w3, G_M26077_IG08
+                       ;; size=12 bbWeight=2 PerfScore 10.00
 G_M26077_IG07:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ; byrRegs -[x2]
             mov     x20, x19
             ; gcrRegs +[x20]
             b       G_M26077_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
-            ; gcrRegs -[x19-x20] +[x0]
+G_M26077_IG08:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x20] +[x0]
+            add     x2, x19, #12
             ; byrRegs +[x2]
             add     x0, x0, #12
             ; gcrRegs -[x0]
@@ -130,15 +126,13 @@ G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, by
             movk    x4, #1 LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs +[x0]
+            ; gcrRegs -[x19] +[x0]
             ; byrRegs -[x0 x2]
-            mov     x19, x0
-            ; gcrRegs +[x19]
-            mov     x20, x19
+            mov     x20, x0
             ; gcrRegs +[x20]
                        ;; size=44 bbWeight=2 PerfScore 17.00
 G_M26077_IG09:        ; bbWeight=8, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -159,7 +153,7 @@ G_M26077_IG11:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 232, prolog size 12, PerfScore 274.50, instruction count 58, allocated bytes for code 232 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 269.50, instruction count 55, allocated bytes for code 220 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -170,7 +164,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 24202.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 27312.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+5.41%) : 15714.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)

@@ -19,7 +19,7 @@
 ;
 ; Lcl frame size = 8
 
-G_M5512_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M5512_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
@@ -47,7 +47,7 @@ G_M5512_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    w0, G_M5512_IG09
+            cbnz    w0, G_M5512_IG07
                        ;; size=44 bbWeight=2 PerfScore 35.00
 G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x10]
@@ -56,11 +56,11 @@ G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             mov     w1, #0xD1FFAB1E
             ; gcrRegs -[x1]
             cmp     w0, w1
-            beq     G_M5512_IG07
+            beq     G_M5512_IG09
             ldr     x19, [x19, #0x08]
                        ;; size=24 bbWeight=2 PerfScore 22.00
 G_M5512_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cbz     x19, G_M5512_IG07
+            cbz     x19, G_M5512_IG09
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x1, #0xD1FFAB1E
@@ -70,10 +70,11 @@ G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x1]
             cmp     x19, x1
             bne     G_M5512_IG03
-                       ;; size=24 bbWeight=4 PerfScore 24.00
+            b       G_M5512_IG11
+                       ;; size=28 bbWeight=4 PerfScore 28.00
 G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1 x19]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
@@ -81,15 +82,18 @@ G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M5512_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M5512_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M5512_IG09
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 148, prolog size 12, PerfScore 100.00, instruction count 37, allocated bytes for code 148 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 104.50, instruction count 39, allocated bytes for code 156 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -100,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.osx.arm64.checked.mch 1,402 270 196 936 -1,484 +1,904
benchmarks.run_pgo.osx.arm64.checked.mch 5,597 1,580 875 3,142 -11,064 +9,136
benchmarks.run_tiered.osx.arm64.checked.mch 523 82 64 377 -1,080 +844
coreclr_tests.run.osx.arm64.checked.mch 19,309 10,025 962 8,322 -45,608 +7,972
libraries.crossgen2.osx.arm64.checked.mch 4,687 519 390 3,778 -3,200 +3,220
libraries.pmi.osx.arm64.checked.mch 10,019 1,932 1,416 6,671 -10,988 +10,072
libraries_tests.run.osx.arm64.Release.mch 26,979 8,636 4,387 13,956 -75,856 +39,924
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 18,043 3,606 1,367 13,070 -31,596 +10,480
realworld.run.osx.arm64.checked.mch 1,583 225 196 1,162 -1,496 +1,480
88,142 26,875 9,853 51,414 -182,372 +85,032

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,855 4 24,851 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,590 48,412 36,178 84 (0.10%) 84 (0.10%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,261 37,318 10,943 0 (0.00%) 0 (0.00%)
coreclr_tests.run.osx.arm64.checked.mch 585,894 357,177 228,717 326 (0.06%) 327 (0.06%)
libraries.crossgen2.osx.arm64.checked.mch 233,353 15 233,338 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 314,707 18 314,689 0 (0.00%) 9 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 637,356 466,371 170,985 2,509 (0.39%) 2,510 (0.39%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,461 21,558 280,903 6 (0.00%) 14 (0.00%)
realworld.run.osx.arm64.checked.mch 31,544 3 31,541 0 (0.00%) 0 (0.00%)
2,263,021 930,876 1,332,145 2,925 (0.13%) 2,944 (0.13%)

jit-analyze output

benchmarks.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11180924 (overridden on cmd)
Total bytes of diff: 11181344 (overridden on cmd)
Total bytes of delta: 420 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 23078.dasm (0.52 % of base)
         100 : 22670.dasm (0.49 % of base)
          60 : 20635.dasm (3.14 % of base)
          44 : 511.dasm (2.29 % of base)
          40 : 21477.dasm (0.42 % of base)
          36 : 17132.dasm (0.61 % of base)
          36 : 17182.dasm (1.04 % of base)
          36 : 21952.dasm (0.46 % of base)
          32 : 23910.dasm (0.23 % of base)
          32 : 12380.dasm (0.22 % of base)
          32 : 6226.dasm (0.84 % of base)
          32 : 23246.dasm (0.86 % of base)
          32 : 23704.dasm (2.35 % of base)
          32 : 7319.dasm (2.04 % of base)
          28 : 23908.dasm (0.47 % of base)
          28 : 1737.dasm (0.27 % of base)
          28 : 18993.dasm (0.60 % of base)
          24 : 12375.dasm (0.30 % of base)
          24 : 13616.dasm (0.25 % of base)
          24 : 24276.dasm (0.23 % of base)

Top file improvements (bytes):
         -32 : 13626.dasm (-0.31 % of base)
         -32 : 12388.dasm (-0.31 % of base)
         -28 : 5196.dasm (-0.52 % of base)
         -24 : 3712.dasm (-0.68 % of base)
         -20 : 5349.dasm (-2.65 % of base)
         -16 : 13829.dasm (-1.24 % of base)
         -16 : 1251.dasm (-1.20 % of base)
         -16 : 4172.dasm (-3.36 % of base)
         -16 : 7344.dasm (-4.04 % of base)
         -12 : 23081.dasm (-0.21 % of base)
         -12 : 12838.dasm (-0.56 % of base)
         -12 : 13017.dasm (-3.45 % of base)
         -12 : 1602.dasm (-3.33 % of base)
         -12 : 18201.dasm (-1.21 % of base)
         -12 : 18605.dasm (-0.43 % of base)
         -12 : 10301.dasm (-1.10 % of base)
         -12 : 2894.dasm (-0.36 % of base)
         -12 : 4033.dasm (-0.17 % of base)
         -12 : 697.dasm (-1.92 % of base)
         -12 : 7311.dasm (-4.62 % of base)

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

Top method regressions (bytes):
         100 (0.49 % of base) : 22670.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 23078.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          60 (3.14 % of base) : 20635.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          44 (2.29 % of base) : 511.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.42 % of base) : 21477.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 21952.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (1.04 % of base) : 17182.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 17132.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (0.22 % of base) : 12380.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 23910.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.35 % of base) : 23704.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          32 (0.84 % of base) : 6226.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
          32 (0.86 % of base) : 23246.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
          32 (2.04 % of base) : 7319.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.47 % of base) : 23908.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          28 (0.60 % of base) : 18993.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          28 (0.27 % of base) : 1737.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          24 (0.23 % of base) : 24276.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.25 % of base) : 13616.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 12375.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)

Top method improvements (bytes):
         -32 (-0.31 % of base) : 13626.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.31 % of base) : 12388.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -28 (-0.52 % of base) : 5196.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         -24 (-0.68 % of base) : 3712.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -20 (-2.65 % of base) : 5349.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:GetCertsArray(System.Collections.Generic.IList`1[System.Runtime.InteropServices.SafeHandle]):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
         -16 (-3.36 % of base) : 4172.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.20 % of base) : 1251.dasm - System.Text.Json.JsonHelpers:TryParseDateTimeOffset(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
         -16 (-4.04 % of base) : 7344.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -16 (-1.24 % of base) : 13829.dasm - System.Xml.XmlBinaryReader:ReadElementContentAsInt():int:this (FullOpts)
         -12 (-0.21 % of base) : 23081.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
         -12 (-0.43 % of base) : 18605.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckAbstractClassImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-1.21 % of base) : 18201.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
         -12 (-1.10 % of base) : 10301.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBlocks():this (FullOpts)
         -12 (-3.33 % of base) : 1602.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.56 % of base) : 12838.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
         -12 (-4.62 % of base) : 7311.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.45 % of base) : 13017.dasm - System.Security.Cryptography.ECParameters:Validate():this (FullOpts)
         -12 (-1.92 % of base) : 697.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-0.36 % of base) : 2894.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
         -12 (-0.17 % of base) : 4033.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WritePrimitive(System.Xml.Serialization.TypeMapping,System.String):this (FullOpts)

Top method regressions (percentages):
           8 (4.65 % of base) : 14506.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 20061.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 2845.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
          60 (3.14 % of base) : 20635.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
           8 (2.74 % of base) : 6192.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          12 (2.73 % of base) : 23793.dasm - System.Linq.Tests.Perf_Enumerable:EmptyTakeSelectToArray():this (FullOpts)
          32 (2.35 % of base) : 23704.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          44 (2.29 % of base) : 511.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.22 % of base) : 4706.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           4 (2.22 % of base) : 16822.dasm - System.Xml.XmlTextReaderImpl:MoveToNextContentNode(ubyte):ubyte:this (FullOpts)
           8 (2.13 % of base) : 18793.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.04 % of base) : 7319.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (2.00 % of base) : 16069.dasm - System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle (FullOpts)
          12 (1.92 % of base) : 15176.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[int](System.Collections.Generic.IEnumerable`1[int],int):int[] (FullOpts)
          20 (1.88 % of base) : 14481.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterIndexViewModel:Write3_CampaignSummaryViewModel(System.String,System.String,MicroBenchmarks.Serializers.CampaignSummaryViewModel,ubyte,ubyte):this (FullOpts)
          16 (1.85 % of base) : 24064.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
           4 (1.75 % of base) : 19711.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
           4 (1.61 % of base) : 18443.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          12 (1.36 % of base) : 15205.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
           4 (1.27 % of base) : 165.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)

Top method improvements (percentages):
          -8 (-6.45 % of base) : 14448.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
          -8 (-6.06 % of base) : 2768.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 7953.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
         -12 (-4.62 % of base) : 7311.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -16 (-4.04 % of base) : 7344.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
          -4 (-3.57 % of base) : 15678.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
         -12 (-3.45 % of base) : 13017.dasm - System.Security.Cryptography.ECParameters:Validate():this (FullOpts)
         -16 (-3.36 % of base) : 4172.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.33 % of base) : 1602.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -4 (-3.23 % of base) : 18929.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          -8 (-2.78 % of base) : 13072.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectInternal(int,System.Threading.CancellationToken,int):this (FullOpts)
         -20 (-2.65 % of base) : 5349.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:GetCertsArray(System.Collections.Generic.IList`1[System.Runtime.InteropServices.SafeHandle]):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
          -8 (-2.41 % of base) : 15068.dasm - System.Collections.IterateForEach`1[int]:Stack():int:this (FullOpts)
          -4 (-2.27 % of base) : 20527.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 1236.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5608.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 5821.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 20514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4499.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 7439.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)


benchmarks.run_pgo.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34573260 (overridden on cmd)
Total bytes of diff: 34571332 (overridden on cmd)
Total bytes of delta: -1928 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         284 : 19842.dasm (11.11 % of base)
         100 : 71742.dasm (0.49 % of base)
         100 : 75500.dasm (0.52 % of base)
          60 : 71283.dasm (4.67 % of base)
          60 : 73904.dasm (4.67 % of base)
          60 : 70032.dasm (4.67 % of base)
          60 : 74668.dasm (4.67 % of base)
          52 : 75409.dasm (3.67 % of base)
          52 : 83677.dasm (1.83 % of base)
          48 : 44400.dasm (0.42 % of base)
          40 : 83261.dasm (2.77 % of base)
          40 : 45411.dasm (0.34 % of base)
          40 : 65944.dasm (0.42 % of base)
          40 : 67231.dasm (2.77 % of base)
          36 : 66790.dasm (0.46 % of base)
          36 : 81058.dasm (5.77 % of base)
          32 : 81206.dasm (2.19 % of base)
          32 : 78876.dasm (0.23 % of base)
          32 : 67412.dasm (2.20 % of base)
          32 : 74307.dasm (2.18 % of base)

Top file improvements (bytes):
        -520 : 83694.dasm (-35.23 % of base)
        -460 : 83704.dasm (-33.43 % of base)
        -156 : 45524.dasm (-21.55 % of base)
        -156 : 45548.dasm (-21.55 % of base)
         -60 : 63714.dasm (-1.69 % of base)
         -56 : 45549.dasm (-0.90 % of base)
         -56 : 66688.dasm (-6.70 % of base)
         -48 : 64351.dasm (-9.30 % of base)
         -48 : 75195.dasm (-3.37 % of base)
         -44 : 19415.dasm (-3.01 % of base)
         -44 : 37385.dasm (-0.50 % of base)
         -40 : 61939.dasm (-0.95 % of base)
         -36 : 59778.dasm (-0.50 % of base)
         -36 : 59781.dasm (-1.27 % of base)
         -36 : 64883.dasm (-0.50 % of base)
         -36 : 66776.dasm (-0.50 % of base)
         -36 : 44923.dasm (-0.50 % of base)
         -36 : 63667.dasm (-2.79 % of base)
         -36 : 66589.dasm (-0.50 % of base)
         -36 : 68731.dasm (-0.50 % of base)

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

Top method regressions (bytes):
         284 (11.11 % of base) : 19842.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         100 (0.49 % of base) : 71742.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 75500.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          60 (4.67 % of base) : 71283.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 73904.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 70032.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 74668.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          52 (1.83 % of base) : 83677.dasm - StringSort:Run():double:this (Tier1)
          52 (3.67 % of base) : 75409.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
          48 (0.42 % of base) : 44400.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (Tier1)
          40 (0.42 % of base) : 65944.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          40 (2.77 % of base) : 83261.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          40 (0.34 % of base) : 45411.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (Tier1)
          40 (2.77 % of base) : 67231.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier1)
          36 (0.46 % of base) : 66790.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (5.77 % of base) : 81058.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          32 (0.23 % of base) : 78876.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.19 % of base) : 81206.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 67412.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 74307.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)

Top method improvements (bytes):
        -520 (-35.23 % of base) : 83694.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -460 (-33.43 % of base) : 83704.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 45524.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 45548.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -60 (-1.69 % of base) : 63714.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Free():this (Tier1)
         -56 (-6.70 % of base) : 66688.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -56 (-0.90 % of base) : 45549.dasm - LUDecomp:Run():double:this (Tier1)
         -48 (-9.30 % of base) : 64351.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -48 (-3.37 % of base) : 75195.dasm - System.Text.RegularExpressions.RegexCharClass:MayOverlap(System.String,System.String):ubyte (Tier1)
         -44 (-0.50 % of base) : 37385.dasm - System.Security.Cryptography.X509Certificates.Asn1.TbsCertificateAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (Tier1)
         -44 (-3.01 % of base) : 19415.dasm - System.Text.RegularExpressions.RegexCharClass:MayOverlap(System.String,System.String):ubyte (Tier1)
         -40 (-0.95 % of base) : 61939.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -36 (-2.79 % of base) : 63667.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:SetSlotAssigned(int,byref):this (Tier1)
         -36 (-0.50 % of base) : 59778.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-0.50 % of base) : 64883.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-0.50 % of base) : 66776.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-0.50 % of base) : 44923.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-0.50 % of base) : 66589.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-0.50 % of base) : 68731.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
         -36 (-1.27 % of base) : 59781.dasm - System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]:InvokeCore(System.Threading.Tasks.Task):this (Tier1)

Top method regressions (percentages):
         284 (11.11 % of base) : 19842.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          36 (5.77 % of base) : 81058.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          12 (5.26 % of base) : 60962.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          28 (4.76 % of base) : 39135.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 41689.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          28 (4.76 % of base) : 59208.dasm - System.Text.Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (Tier1)
          60 (4.67 % of base) : 71283.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 73904.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 70032.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          60 (4.67 % of base) : 74668.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          12 (4.62 % of base) : 15812.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          12 (4.62 % of base) : 25847.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          12 (4.62 % of base) : 60637.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          28 (4.55 % of base) : 80247.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          28 (4.40 % of base) : 79378.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          16 (4.40 % of base) : 61367.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           8 (4.08 % of base) : 39572.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
           8 (4.08 % of base) : 39577.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
          28 (3.93 % of base) : 79375.dasm - System.Threading.SpinWait:SpinOnce(int):this (Tier1)
          12 (3.90 % of base) : 70976.dasm - Benchstone.MDBenchF.MDInProd:Test():ubyte:this (Tier1-OSR)

Top method improvements (percentages):
        -520 (-35.23 % of base) : 83694.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -460 (-33.43 % of base) : 83704.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 45524.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 45548.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          -8 (-11.11 % of base) : 15703.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
         -48 (-9.30 % of base) : 64351.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -16 (-7.02 % of base) : 22190.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 22188.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -56 (-6.70 % of base) : 66688.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -4 (-6.67 % of base) : 81169.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 78433.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-6.25 % of base) : 59181.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 66465.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -8 (-5.88 % of base) : 58606.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
         -12 (-5.17 % of base) : 13901.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
          -4 (-4.76 % of base) : 80358.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-4.76 % of base) : 82383.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-4.76 % of base) : 17771.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-4.76 % of base) : 79171.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-4.76 % of base) : 24322.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)


benchmarks.run_tiered.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15560360 (overridden on cmd)
Total bytes of diff: 15560124 (overridden on cmd)
Total bytes of delta: -236 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 45571.dasm (0.52 % of base)
         100 : 44991.dasm (0.49 % of base)
          44 : 42048.dasm (2.29 % of base)
          40 : 43185.dasm (0.42 % of base)
          36 : 43456.dasm (0.46 % of base)
          32 : 22600.dasm (0.22 % of base)
          32 : 40104.dasm (8.60 % of base)
          32 : 46817.dasm (0.23 % of base)
          32 : 6474.dasm (0.85 % of base)
          28 : 46815.dasm (0.47 % of base)
          24 : 27425.dasm (0.25 % of base)
          24 : 22590.dasm (0.30 % of base)
          24 : 47217.dasm (0.23 % of base)
          16 : 45826.dasm (0.43 % of base)
          12 : 45256.dasm (0.54 % of base)
          12 : 31729.dasm (0.20 % of base)
          12 : 31698.dasm (0.28 % of base)
           8 : 12194.dasm (2.74 % of base)
           8 : 24263.dasm (0.82 % of base)
           8 : 30296.dasm (0.30 % of base)

Top file improvements (bytes):
        -436 : 47934.dasm (-31.87 % of base)
        -152 : 32862.dasm (-14.13 % of base)
         -56 : 43722.dasm (-6.97 % of base)
         -28 : 25112.dasm (-0.52 % of base)
         -20 : 14738.dasm (-2.65 % of base)
         -16 : 24719.dasm (-3.36 % of base)
         -12 : 8147.dasm (-0.57 % of base)
         -12 : 45131.dasm (-0.36 % of base)
         -12 : 43604.dasm (-1.92 % of base)
         -12 : 24897.dasm (-3.45 % of base)
          -8 : 7428.dasm (-6.06 % of base)
          -8 : 24538.dasm (-0.46 % of base)
          -8 : 28818.dasm (-0.89 % of base)
          -8 : 41935.dasm (-1.87 % of base)
          -8 : 43296.dasm (-0.51 % of base)
          -8 : 24901.dasm (-0.84 % of base)
          -8 : 45683.dasm (-0.52 % of base)
          -8 : 26577.dasm (-0.42 % of base)
          -8 : 6953.dasm (-1.67 % of base)
          -4 : 8110.dasm (-1.92 % of base)

67 total files with Code Size differences (30 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (0.49 % of base) : 44991.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 45571.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          44 (2.29 % of base) : 42048.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
          40 (0.42 % of base) : 43185.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 43456.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          32 (0.22 % of base) : 22600.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 46817.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (8.60 % of base) : 40104.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
          32 (0.85 % of base) : 6474.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier1)
          28 (0.47 % of base) : 46815.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          24 (0.23 % of base) : 47217.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.25 % of base) : 27425.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 22590.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          16 (0.43 % of base) : 45826.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier1)
          12 (0.20 % of base) : 31729.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.28 % of base) : 31698.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.54 % of base) : 45256.dasm - System.IO.StreamWriter+<WriteAsyncInternal>d__68:MoveNext():this (Tier1)
           8 (2.35 % of base) : 32301.dasm - Neural:DoNNetIteration(long):long (Tier1-OSR)
           8 (2.35 % of base) : 31873.dasm - NeuralJagged:DoNNetIteration(long):long (Tier1-OSR)
           8 (0.46 % of base) : 46823.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)

Top method improvements (bytes):
        -436 (-31.87 % of base) : 47934.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32862.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43722.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -28 (-0.52 % of base) : 25112.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
         -20 (-2.65 % of base) : 14738.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:GetCertsArray(System.Collections.Generic.IList`1[System.Runtime.InteropServices.SafeHandle]):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (Tier0-FullOpts)
         -16 (-3.36 % of base) : 24719.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
         -12 (-0.57 % of base) : 8147.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
         -12 (-3.45 % of base) : 24897.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)
         -12 (-1.92 % of base) : 43604.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
         -12 (-0.36 % of base) : 45131.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
          -8 (-0.52 % of base) : 45683.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier1-OSR)
          -8 (-1.87 % of base) : 41935.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-0.89 % of base) : 28818.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)
          -8 (-0.51 % of base) : 43296.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)
          -8 (-6.06 % of base) : 7428.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
          -8 (-0.42 % of base) : 26577.dasm - System.IO.Tests.Perf_FileStream+<WriteAsync>d__37:MoveNext():this (Tier1)
          -8 (-0.84 % of base) : 24901.dasm - System.Security.Cryptography.ECCurve:Validate():this (Tier1)
          -8 (-0.46 % of base) : 24538.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:ProcessSafeContents(byref,byref,byref,byref,byref,byref) (Tier1)
          -8 (-1.67 % of base) : 6953.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
          -4 (-1.27 % of base) : 23647.dasm - Benchstone.MDBenchI.MDArray2:Bench(int):ubyte (Tier1-OSR)

Top method regressions (percentages):
          32 (8.60 % of base) : 40104.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (3.57 % of base) : 8074.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
           8 (2.74 % of base) : 12194.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
           8 (2.35 % of base) : 32301.dasm - Neural:DoNNetIteration(long):long (Tier1-OSR)
           8 (2.35 % of base) : 31873.dasm - NeuralJagged:DoNNetIteration(long):long (Tier1-OSR)
          44 (2.29 % of base) : 42048.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier1)
           4 (2.22 % of base) : 19997.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (Tier1)
           4 (1.75 % of base) : 39961.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (Tier1)
           4 (1.61 % of base) : 41340.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (Tier1)
           4 (1.39 % of base) : 22839.dasm - System.IO.Stream:ReadAtLeastCore(System.Span`1[ubyte],int,ubyte):int:this (Tier1)
           4 (1.37 % of base) : 46924.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
           8 (1.28 % of base) : 24413.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopyUtf16BE(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (Tier1)
           4 (1.27 % of base) : 3322.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
           4 (1.16 % of base) : 41290.dasm - Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
           4 (1.08 % of base) : 24145.dasm - System.Formats.Asn1.AsnDecoder:DecodeLength(System.ReadOnlySpan`1[ubyte],int,byref,byref):int (Tier1)
           4 (1.02 % of base) : 28304.dasm - System.IO.Tests.Perf_FileStream:Write(int,long,int,int,int):this (Tier1-OSR)
           4 (1.02 % of base) : 32136.dasm - System.IO.Tests.Perf_FileStream:Write_NoBuffering_PreallocationSize(long,int,int):this (Tier1-OSR)
           4 (0.91 % of base) : 4246.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          32 (0.85 % of base) : 6474.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier1)
           8 (0.82 % of base) : 24263.dasm - System.Security.Cryptography.X509Certificates.Asn1.TimeAsn:DecodeCore(byref,byref) (Tier1)

Top method improvements (percentages):
        -436 (-31.87 % of base) : 47934.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32862.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43722.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -8 (-6.06 % of base) : 7428.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
         -12 (-3.45 % of base) : 24897.dasm - System.Security.Cryptography.ECParameters:Validate():this (Tier1)
         -16 (-3.36 % of base) : 24719.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
         -20 (-2.65 % of base) : 14738.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:GetCertsArray(System.Collections.Generic.IList`1[System.Runtime.InteropServices.SafeHandle]):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (Tier0-FullOpts)
          -4 (-2.27 % of base) : 24260.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier1)
          -4 (-2.08 % of base) : 19592.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 3163.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 42256.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 8110.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-1.92 % of base) : 43604.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-1.87 % of base) : 41935.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-1.67 % of base) : 6953.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
          -4 (-1.64 % of base) : 24647.dasm - System.Security.Cryptography.X509Certificates.X509Extension:.ctor(System.Security.Cryptography.Oid,System.ReadOnlySpan`1[ubyte],ubyte):this (Tier1)
          -4 (-1.37 % of base) : 24702.dasm - System.Security.Cryptography.SymmetricPadding:GetCiphertextLength(int,int,int):int (Tier1)
          -4 (-1.37 % of base) : 24646.dasm - System.Security.Cryptography.X509Certificates.X509Extension:.ctor(System.String,System.ReadOnlySpan`1[ubyte],ubyte):this (Tier1)
          -4 (-1.27 % of base) : 23647.dasm - Benchstone.MDBenchI.MDArray2:Bench(int):ubyte (Tier1-OSR)
          -4 (-1.05 % of base) : 3376.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)


coreclr_tests.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 485472376 (overridden on cmd)
Total bytes of diff: 485434740 (overridden on cmd)
Total bytes of delta: -37636 (-0.01 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         140 : 377684.dasm (3.91 % of base)
         136 : 383849.dasm (5.23 % of base)
         128 : 378439.dasm (4.94 % of base)
         116 : 383476.dasm (3.19 % of base)
          96 : 519391.dasm (4.33 % of base)
          88 : 583287.dasm (1.85 % of base)
          72 : 377822.dasm (3.46 % of base)
          60 : 397855.dasm (34.88 % of base)
          56 : 398272.dasm (32.56 % of base)
          52 : 306287.dasm (24.07 % of base)
          52 : 306289.dasm (24.07 % of base)
          48 : 383572.dasm (2.30 % of base)
          44 : 283914.dasm (8.87 % of base)
          44 : 383419.dasm (1.91 % of base)
          44 : 490936.dasm (2.29 % of base)
          40 : 377254.dasm (1.73 % of base)
          40 : 583153.dasm (0.46 % of base)
          40 : 384153.dasm (1.51 % of base)
          36 : 264943.dasm (0.66 % of base)
          36 : 490408.dasm (0.61 % of base)

Top file improvements (bytes):
        -504 : 246199.dasm (-34.90 % of base)
        -168 : 299167.dasm (-31.82 % of base)
        -156 : 249525.dasm (-21.55 % of base)
        -156 : 349978.dasm (-2.88 % of base)
        -156 : 249509.dasm (-21.55 % of base)
        -156 : 349184.dasm (-2.88 % of base)
        -156 : 572039.dasm (-2.91 % of base)
        -156 : 571965.dasm (-2.91 % of base)
        -128 : 517942.dasm (-4.14 % of base)
         -56 : 296344.dasm (-7.87 % of base)
         -56 : 525738.dasm (-8.05 % of base)
         -52 : 249532.dasm (-0.83 % of base)
         -48 : 507022.dasm (-5.66 % of base)
         -48 : 384488.dasm (-0.55 % of base)
         -44 : 381822.dasm (-0.67 % of base)
         -36 : 384172.dasm (-0.99 % of base)
         -32 : 251115.dasm (-10.26 % of base)
         -32 : 251161.dasm (-10.81 % of base)
         -32 : 264655.dasm (-1.75 % of base)
         -32 : 489002.dasm (-4.82 % of base)

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

Top method regressions (bytes):
         140 (3.91 % of base) : 377684.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         136 (5.23 % of base) : 383849.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,byref):ubyte:this (Tier1)
         128 (4.94 % of base) : 378439.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,byref):ubyte:this (Tier1)
         116 (3.19 % of base) : 383476.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
          96 (4.33 % of base) : 519391.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          88 (1.85 % of base) : 583287.dasm - Internal.IL.Stubs.UnsafeIntrinsics:EmitIL(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
          72 (3.46 % of base) : 377822.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          60 (34.88 % of base) : 397855.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 398272.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (24.07 % of base) : 306287.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 306289.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (2.30 % of base) : 383572.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          44 (1.91 % of base) : 383419.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm+<EnumAllVirtualSlots>d__29:MoveNext():ubyte:this (Tier1)
          44 (8.87 % of base) : 283914.dasm - RetBufferBug:Main():int (Tier1-OSR)
          44 (2.29 % of base) : 490936.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (1.51 % of base) : 384153.dasm - Internal.JitInterface.CorInfoImpl:GetJitInstantiation(Internal.TypeSystem.Instantiation):ulong:this (Tier1)
          40 (0.46 % of base) : 583153.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          40 (1.73 % of base) : 377254.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm+<EnumAllVirtualSlots>d__29:MoveNext():ubyte:this (Tier1)
          36 (0.61 % of base) : 490408.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (0.66 % of base) : 264943.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)

Top method improvements (bytes):
        -504 (-34.90 % of base) : 246199.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 299167.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 249525.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 249509.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-2.91 % of base) : 572039.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.91 % of base) : 571965.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.88 % of base) : 349978.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -156 (-2.88 % of base) : 349184.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -128 (-4.14 % of base) : 517942.dasm - Test_baduwinfo1:bar(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String):int (FullOpts)
         -56 (-8.05 % of base) : 525738.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-7.87 % of base) : 296344.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -52 (-0.83 % of base) : 249532.dasm - LUDecomp:Run():double:this (Tier1)
         -48 (-5.66 % of base) : 507022.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (FullOpts)
         -48 (-0.55 % of base) : 384488.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon]) (Tier1)
         -44 (-0.67 % of base) : 381822.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AllMethodsOnTypeNode:GetStaticDependencies(ILCompiler.DependencyAnalysis.NodeFactory):System.Collections.Generic.IEnumerable`1[ILCompiler.DependencyAnalysisFramework.DependencyNodeCore`1+DependencyListEntry[ILCompiler.DependencyAnalysis.NodeFactory]]:this (Tier1)
         -36 (-0.99 % of base) : 384172.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
         -32 (-10.81 % of base) : 251161.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 251115.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -32 (-4.82 % of base) : 489002.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTime():System.Nullable`1[System.DateTime]:this (FullOpts)
         -32 (-1.75 % of base) : 264655.dasm - System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long) (Tier1)

Top method regressions (percentages):
          60 (34.88 % of base) : 397855.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 398272.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (24.07 % of base) : 306287.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 306289.dasm - testout1:Test2(int):int (Tier1-OSR)
          32 (16.00 % of base) : 397745.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          32 (16.00 % of base) : 397783.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          32 (16.00 % of base) : 397857.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          28 (14.00 % of base) : 398162.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          28 (14.00 % of base) : 398200.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          28 (14.00 % of base) : 398274.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          24 (12.77 % of base) : 398199.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          24 (12.77 % of base) : 397782.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          16 (10.81 % of base) : 384045.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          20 (10.42 % of base) : 397784.dasm - testout1:Sub_Funclet_146():int (FullOpts)
          20 (10.42 % of base) : 398201.dasm - testout1:Sub_Funclet_146():int (FullOpts)
          20 (10.42 % of base) : 398238.dasm - testout1:Sub_Funclet_184():int (FullOpts)
          20 (10.42 % of base) : 397852.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          20 (10.42 % of base) : 398269.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          20 (10.42 % of base) : 398273.dasm - testout1:Sub_Funclet_222():int (FullOpts)
          20 (10.42 % of base) : 397856.dasm - testout1:Sub_Funclet_222():int (FullOpts)

Top method improvements (percentages):
        -504 (-34.90 % of base) : 246199.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 299167.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 249525.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 249509.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -28 (-14.00 % of base) : 398774.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -28 (-14.00 % of base) : 399190.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -32 (-10.81 % of base) : 251161.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 251115.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -28 (-8.33 % of base) : 251181.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -56 (-8.05 % of base) : 525738.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-7.87 % of base) : 296344.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -16 (-7.02 % of base) : 245565.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -28 (-6.93 % of base) : 506279.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 245563.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
          -4 (-6.25 % of base) : 369841.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-6.25 % of base) : 371238.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -4 (-5.88 % of base) : 228310.dasm - Tests_len1_2:Test_tst_31(System.String):ubyte (FullOpts)
          -4 (-5.88 % of base) : 229041.dasm - Tests_len31_11:Test_tst_31(System.String):ubyte (FullOpts)
          -4 (-5.88 % of base) : 229166.dasm - Tests_len34_13:Test_tst_31(System.String):ubyte (FullOpts)
          -4 (-5.88 % of base) : 228786.dasm - Tests_len4_7:Test_tst_31(System.String):ubyte (FullOpts)


libraries.crossgen2.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55620836 (overridden on cmd)
Total bytes of diff: 55620856 (overridden on cmd)
Total bytes of delta: 20 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         132 : 96010.dasm (0.35 % of base)
          84 : 48051.dasm (0.27 % of base)
          52 : 120162.dasm (1.33 % of base)
          44 : 129146.dasm (2.28 % of base)
          40 : 183362.dasm (1.89 % of base)
          40 : 52713.dasm (1.39 % of base)
          40 : 124599.dasm (1.85 % of base)
          32 : 113763.dasm (2.35 % of base)
          32 : 129719.dasm (2.24 % of base)
          32 : 27687.dasm (2.12 % of base)
          32 : 129720.dasm (2.18 % of base)
          32 : 22808.dasm (0.30 % of base)
          32 : 52709.dasm (2.13 % of base)
          28 : 130414.dasm (1.73 % of base)
          28 : 164875.dasm (4.22 % of base)
          28 : 163504.dasm (1.45 % of base)
          24 : 156924.dasm (1.11 % of base)
          24 : 177655.dasm (1.82 % of base)
          24 : 197285.dasm (0.49 % of base)
          24 : 52706.dasm (0.51 % of base)

Top file improvements (bytes):
         -84 : 130411.dasm (-7.81 % of base)
         -52 : 196597.dasm (-2.19 % of base)
         -44 : 116889.dasm (-1.75 % of base)
         -36 : 133570.dasm (-6.34 % of base)
         -36 : 168800.dasm (-6.34 % of base)
         -32 : 177656.dasm (-0.86 % of base)
         -32 : 164535.dasm (-3.98 % of base)
         -28 : 109675.dasm (-1.51 % of base)
         -28 : 44699.dasm (-1.62 % of base)
         -28 : 112586.dasm (-0.66 % of base)
         -24 : 197571.dasm (-0.84 % of base)
         -24 : 89459.dasm (-0.74 % of base)
         -20 : 43932.dasm (-0.46 % of base)
         -20 : 135953.dasm (-2.38 % of base)
         -16 : 37723.dasm (-3.77 % of base)
         -16 : 42457.dasm (-2.65 % of base)
         -16 : 115905.dasm (-0.30 % of base)
         -16 : 194710.dasm (-3.25 % of base)
         -16 : 22602.dasm (-2.26 % of base)
         -16 : 40286.dasm (-0.56 % of base)

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

Top method regressions (bytes):
         132 (0.35 % of base) : 96010.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          84 (0.27 % of base) : 48051.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          52 (1.33 % of base) : 120162.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (2.28 % of base) : 129146.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (1.39 % of base) : 52713.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          40 (1.89 % of base) : 183362.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (1.85 % of base) : 124599.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          32 (2.13 % of base) : 52709.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          32 (2.35 % of base) : 113763.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)
          32 (2.24 % of base) : 129719.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:SystemTypeName(System.String):System.String (FullOpts)
          32 (2.18 % of base) : 129720.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:VbTypeName(System.String):System.String (FullOpts)
          32 (0.30 % of base) : 22808.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          32 (2.12 % of base) : 27687.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (1.73 % of base) : 130414.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:CreateParamOrder(ubyte,int[],System.Reflection.ParameterInfo[],System.Object[],System.String[]):System.Exception:this (FullOpts)
          28 (4.22 % of base) : 164875.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
          28 (1.45 % of base) : 163504.dasm - System.Data.Common.DbColumn:get_Item(System.String):System.Object:this (FullOpts)
          24 (1.82 % of base) : 177655.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):ubyte:this (FullOpts)
          24 (0.51 % of base) : 52706.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          24 (1.11 % of base) : 156924.dasm - Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this (FullOpts)
          24 (0.49 % of base) : 197285.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)

Top method improvements (bytes):
         -84 (-7.81 % of base) : 130411.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -52 (-2.19 % of base) : 196597.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
         -44 (-1.75 % of base) : 116889.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -36 (-6.34 % of base) : 133570.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 168800.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.86 % of base) : 177656.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
         -32 (-3.98 % of base) : 164535.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -28 (-1.62 % of base) : 44699.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTupleBinaryOperatorNestedInfo(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.TupleBinaryOperatorInfo+Multiple:this (FullOpts)
         -28 (-0.66 % of base) : 112586.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+IntoClauseBinder:BindIntoSelector(Microsoft.CodeAnalysis.VisualBasic.Syntax.QueryClauseSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],System.Collections.Generic.HashSet`1[System.String],Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregationRangeVariableSyntax],ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -28 (-1.51 % of base) : 109675.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -24 (-0.74 % of base) : 89459.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindUserDefinedShortCircuitingOperator(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundUserDefinedShortCircuitingOperator:this (FullOpts)
         -24 (-0.84 % of base) : 197571.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WritePrimitive(System.Xml.Serialization.TypeMapping,System.Func`2[System.Object,System.String],System.Object):System.Object:this (FullOpts)
         -20 (-0.46 % of base) : 43932.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
         -20 (-2.38 % of base) : 135953.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -16 (-0.56 % of base) : 40286.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -16 (-0.30 % of base) : 115905.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ImplementsHelper:FindExplicitlyImplementedMember[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.QualifiedNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],byref):System.__Canon (FullOpts)
         -16 (-0.28 % of base) : 165125.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
         -16 (-2.26 % of base) : 22602.dasm - System.DateTime:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
         -16 (-2.65 % of base) : 42457.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
         -16 (-3.77 % of base) : 37723.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)

Top method regressions (percentages):
          16 (9.76 % of base) : 20786.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
           8 (8.33 % of base) : 50449.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
           8 (5.71 % of base) : 138131.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 173287.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (4.55 % of base) : 39460.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
          28 (4.22 % of base) : 164875.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
           8 (4.08 % of base) : 188121.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 126544.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (4.00 % of base) : 230483.dasm - System.Threading.ReaderWriterLock+ThreadLocalLockEntry:GetCurrent(long):System.Threading.ReaderWriterLock+ThreadLocalLockEntry (FullOpts)
           8 (3.77 % of base) : 165501.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
           8 (3.64 % of base) : 60545.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (3.57 % of base) : 181116.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.08 % of base) : 76051.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
          12 (2.78 % of base) : 130703.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
           8 (2.78 % of base) : 42082.dasm - System.DateTimeParse:ProcessDateTimeSuffix(byref,byref,byref):ubyte (FullOpts)
           8 (2.70 % of base) : 40383.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          32 (2.35 % of base) : 113763.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)
           4 (2.33 % of base) : 157466.dasm - CommandLine.Core.ValueMapper:CountOfMaxNumberOfValues(CommandLine.Core.Specification):CSharpx.Maybe`1[int] (FullOpts)
          44 (2.28 % of base) : 129146.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.27 % of base) : 199966.dasm - System.Net.Sockets.SocketAsyncContext+AsyncOperation:TryCancel():ubyte:this (FullOpts)

Top method improvements (percentages):
         -84 (-7.81 % of base) : 130411.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -16 (-6.78 % of base) : 31725.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-6.67 % of base) : 31723.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -36 (-6.34 % of base) : 133570.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 168800.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.77 % of base) : 31724.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 232096.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
          -8 (-4.65 % of base) : 37721.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -12 (-4.17 % of base) : 37722.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-3.98 % of base) : 164535.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -16 (-3.77 % of base) : 37723.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-3.70 % of base) : 31742.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
          -4 (-3.33 % of base) : 207141.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-3.33 % of base) : 194729.dasm - System.Xml.XPath.XPathNavigator:IsValidChildType(int):ubyte:this (FullOpts)
         -16 (-3.25 % of base) : 194710.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CachesResult(System.Xml.Xsl.Qil.QilNode):ubyte (FullOpts)
          -4 (-3.23 % of base) : 44352.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
         -16 (-2.65 % of base) : 42457.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
          -4 (-2.56 % of base) : 122523.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.56 % of base) : 192303.dasm - System.Xml.Serialization.XmlSerializationReader:IsXmlnsAttribute(System.String):ubyte:this (FullOpts)
          -4 (-2.50 % of base) : 170677.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:get_ParametersCount():int:this (FullOpts)


libraries.pmi.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79955312 (overridden on cmd)
Total bytes of diff: 79954396 (overridden on cmd)
Total bytes of delta: -916 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         104 : 122030.dasm (0.26 % of base)
          64 : 233669.dasm (0.24 % of base)
          60 : 1264.dasm (3.14 % of base)
          52 : 74650.dasm (1.62 % of base)
          52 : 78875.dasm (0.15 % of base)
          48 : 175503.dasm (1.19 % of base)
          44 : 75490.dasm (0.66 % of base)
          44 : 210121.dasm (2.29 % of base)
          40 : 114779.dasm (0.17 % of base)
          40 : 144757.dasm (2.01 % of base)
          40 : 151286.dasm (1.65 % of base)
          40 : 200927.dasm (2.06 % of base)
          40 : 71070.dasm (0.45 % of base)
          40 : 223746.dasm (0.62 % of base)
          36 : 114774.dasm (0.44 % of base)
          36 : 221828.dasm (0.56 % of base)
          36 : 227013.dasm (7.38 % of base)
          36 : 83620.dasm (0.61 % of base)
          36 : 83627.dasm (1.04 % of base)
          32 : 163179.dasm (5.76 % of base)

Top file improvements (bytes):
         -92 : 307003.dasm (-2.94 % of base)
         -80 : 196770.dasm (-2.51 % of base)
         -72 : 233673.dasm (-7.32 % of base)
         -64 : 112399.dasm (-0.58 % of base)
         -56 : 69946.dasm (-7.41 % of base)
         -44 : 173410.dasm (-3.94 % of base)
         -40 : 173421.dasm (-4.76 % of base)
         -40 : 176705.dasm (-2.84 % of base)
         -40 : 222231.dasm (-4.13 % of base)
         -36 : 311977.dasm (-0.62 % of base)
         -36 : 176452.dasm (-2.41 % of base)
         -32 : 173419.dasm (-4.82 % of base)
         -32 : 206164.dasm (-4.55 % of base)
         -32 : 238761.dasm (-5.84 % of base)
         -32 : 250131.dasm (-3.85 % of base)
         -32 : 258651.dasm (-5.84 % of base)
         -32 : 269595.dasm (-3.85 % of base)
         -32 : 81256.dasm (-0.56 % of base)
         -32 : 196323.dasm (-3.27 % of base)
         -28 : 284365.dasm (-2.58 % of base)

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

Top method regressions (bytes):
         104 (0.26 % of base) : 122030.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          64 (0.24 % of base) : 233669.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          60 (3.14 % of base) : 1264.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          52 (1.62 % of base) : 74650.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          52 (0.15 % of base) : 78875.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (1.19 % of base) : 175503.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (0.66 % of base) : 75490.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindElementOrIndexerAccess>g__bindInlineArrayElementAccess|499_1(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          44 (2.29 % of base) : 210121.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.45 % of base) : 71070.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          40 (1.65 % of base) : 151286.dasm - Microsoft.Build.Evaluation.ExpressionShredder:GetReferencedItemExpressions(System.String,int,int):System.Collections.Generic.List`1[Microsoft.Build.Evaluation.ExpressionShredder+ItemExpressionCapture] (FullOpts)
          40 (0.17 % of base) : 114779.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
          40 (2.01 % of base) : 144757.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.06 % of base) : 200927.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (0.62 % of base) : 223746.dasm - System.Xml.DtdParser+<ParseAttlistTypeAsync>d__161:MoveNext():this (FullOpts)
          36 (1.04 % of base) : 83627.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 83620.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (0.44 % of base) : 114774.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          36 (0.56 % of base) : 221828.dasm - System.Xml.XmlTextReaderImpl+<SkipDtdAsync>d__568:MoveNext():this (FullOpts)
          36 (7.38 % of base) : 227013.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          32 (2.29 % of base) : 233692.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:SystemTypeName(System.String):System.String (FullOpts)

Top method improvements (bytes):
         -92 (-2.94 % of base) : 307003.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
         -80 (-2.51 % of base) : 196770.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -72 (-7.32 % of base) : 233673.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -64 (-0.58 % of base) : 112399.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts)
         -56 (-7.41 % of base) : 69946.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -44 (-3.94 % of base) : 173410.dasm - Newtonsoft.Json.JsonReader:ReadAsBytes():ubyte[]:this (FullOpts)
         -40 (-4.76 % of base) : 173421.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTimeOffset():System.Nullable`1[System.DateTimeOffset]:this (FullOpts)
         -40 (-2.84 % of base) : 176705.dasm - Newtonsoft.Json.JsonTextWriter+<WriteIndentAsync>d__13:MoveNext():this (FullOpts)
         -40 (-4.13 % of base) : 222231.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache:WriteEntityRef(System.String):this (FullOpts)
         -36 (-2.41 % of base) : 176452.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadElement(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Converters.IXmlDocument,Newtonsoft.Json.Converters.IXmlNode,System.String,System.Xml.XmlNamespaceManager):this (FullOpts)
         -36 (-0.62 % of base) : 311977.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
         -32 (-5.84 % of base) : 238761.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-5.84 % of base) : 258651.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.56 % of base) : 81256.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -32 (-3.85 % of base) : 250131.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -32 (-3.85 % of base) : 269595.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -32 (-3.27 % of base) : 196323.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.SymbolLoader:HasImplicitReferenceConversion(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType):ubyte (FullOpts)
         -32 (-4.82 % of base) : 173419.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTime():System.Nullable`1[System.DateTime]:this (FullOpts)
         -32 (-4.55 % of base) : 206164.dasm - System.Runtime.Serialization.SchemaHelper:GetSchemaWithType(System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.Runtime.Serialization.SchemaObjectInfo],System.Xml.Schema.XmlSchemaSet,System.Xml.XmlQualifiedName):System.Xml.Schema.XmlSchema (FullOpts)
         -28 (-4.35 % of base) : 293824.dasm - Microsoft.NET.StringTools.InternableString:ReferenceEquals(System.String):ubyte:this (FullOpts)

Top method regressions (percentages):
          28 (10.00 % of base) : 154671.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
          12 (10.00 % of base) : 76144.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
          16 (10.00 % of base) : 2396.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
          16 (8.70 % of base) : 163177.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          16 (8.70 % of base) : 164253.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          36 (7.38 % of base) : 227013.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          32 (5.76 % of base) : 163179.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:Insert(int,System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts)
           8 (5.71 % of base) : 265089.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 245551.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           8 (4.76 % of base) : 93217.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (4.65 % of base) : 220854.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 208724.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 299299.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.51 % of base) : 173372.dasm - Newtonsoft.Json.JsonReader:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[ubyte]:this (FullOpts)
           8 (3.45 % of base) : 111517.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
          16 (3.39 % of base) : 281641.dasm - System.IO.Pipelines.Pipe:ReaderCancellationRequested():this (FullOpts)
          16 (3.39 % of base) : 281642.dasm - System.IO.Pipelines.Pipe:WriterCancellationRequested():this (FullOpts)
           8 (3.39 % of base) : 180748.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
          16 (3.36 % of base) : 53031.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfPropertyBag:GetBoolean(System.String):ubyte:this (FullOpts)
           8 (3.33 % of base) : 173731.dasm - Newtonsoft.Json.JsonTextWriter:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

Top method improvements (percentages):
         -16 (-10.81 % of base) : 179969.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
          -8 (-9.09 % of base) : 3905.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -56 (-7.41 % of base) : 69946.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -72 (-7.32 % of base) : 233673.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
          -8 (-6.06 % of base) : 341.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -24 (-6.00 % of base) : 195962.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -32 (-5.84 % of base) : 238761.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-5.84 % of base) : 258651.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
          -8 (-5.41 % of base) : 234784.dasm - Roslyn.Utilities.PathUtilities:CombinePaths(System.String,System.String):System.String (FullOpts)
          -8 (-5.41 % of base) : 254879.dasm - Roslyn.Utilities.PathUtilities:CombinePaths(System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 302749.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
          -4 (-5.00 % of base) : 302778.dasm - System.Collections.Generic.SortedSet`1+Node[ubyte]:GetRotation(System.Collections.Generic.SortedSet`1+Node[ubyte],System.Collections.Generic.SortedSet`1+Node[ubyte]):ubyte:this (FullOpts)
         -32 (-4.82 % of base) : 173419.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTime():System.Nullable`1[System.DateTime]:this (FullOpts)
         -40 (-4.76 % of base) : 173421.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTimeOffset():System.Nullable`1[System.DateTimeOffset]:this (FullOpts)
         -12 (-4.62 % of base) : 179982.dasm - System.Net.Http.Headers.StringWithQualityHeaderValue:.ctor(System.String,double):this (FullOpts)
         -32 (-4.55 % of base) : 206164.dasm - System.Runtime.Serialization.SchemaHelper:GetSchemaWithType(System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.Runtime.Serialization.SchemaObjectInfo],System.Xml.Schema.XmlSchemaSet,System.Xml.XmlQualifiedName):System.Xml.Schema.XmlSchema (FullOpts)
         -28 (-4.35 % of base) : 293824.dasm - Microsoft.NET.StringTools.InternableString:ReferenceEquals(System.String):ubyte:this (FullOpts)
          -4 (-4.17 % of base) : 112152.dasm - System.Configuration.BaseConfigurationRecord:CombineConfigKey(System.String,System.String):System.String (FullOpts)
          -4 (-4.17 % of base) : 186732.dasm - System.Configuration.BaseConfigurationRecord:CombineConfigKey(System.String,System.String):System.String (FullOpts)
          -4 (-4.17 % of base) : 202900.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)


libraries_tests.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 312683360 (overridden on cmd)
Total bytes of diff: 312647428 (overridden on cmd)
Total bytes of delta: -35932 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         300 : 593579.dasm (3.59 % of base)
         160 : 565846.dasm (4.00 % of base)
         140 : 162295.dasm (3.27 % of base)
         140 : 58843.dasm (4.19 % of base)
         136 : 89337.dasm (4.27 % of base)
         116 : 607439.dasm (3.67 % of base)
         116 : 182342.dasm (0.91 % of base)
         116 : 318000.dasm (0.90 % of base)
         116 : 588778.dasm (16.20 % of base)
         112 : 63028.dasm (2.32 % of base)
         112 : 69727.dasm (2.19 % of base)
         108 : 87693.dasm (1.99 % of base)
         100 : 171913.dasm (0.89 % of base)
          88 : 54107.dasm (0.47 % of base)
          88 : 91885.dasm (1.85 % of base)
          80 : 241645.dasm (0.57 % of base)
          76 : 161665.dasm (1.47 % of base)
          68 : 590202.dasm (1.27 % of base)
          68 : 497415.dasm (1.69 % of base)
          68 : 64139.dasm (0.62 % of base)

Top file improvements (bytes):
        -708 : 161826.dasm (-31.49 % of base)
        -664 : 162361.dasm (-5.70 % of base)
        -368 : 80153.dasm (-2.39 % of base)
        -152 : 123847.dasm (-1.14 % of base)
        -132 : 601516.dasm (-1.90 % of base)
        -120 : 274343.dasm (-1.83 % of base)
        -120 : 637517.dasm (-0.94 % of base)
        -116 : 499956.dasm (-0.94 % of base)
        -108 : 422049.dasm (-0.89 % of base)
        -108 : 632990.dasm (-0.89 % of base)
        -108 : 370834.dasm (-0.88 % of base)
        -104 : 603348.dasm (-0.53 % of base)
        -104 : 606922.dasm (-0.98 % of base)
        -100 : 67127.dasm (-1.92 % of base)
         -96 : 537521.dasm (-1.04 % of base)
         -96 : 539012.dasm (-0.70 % of base)
         -96 : 16150.dasm (-0.79 % of base)
         -88 : 270293.dasm (-2.31 % of base)
         -88 : 203529.dasm (-1.11 % of base)
         -84 : 182485.dasm (-1.06 % of base)

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

Top method regressions (bytes):
         300 (3.59 % of base) : 593579.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
         160 (4.00 % of base) : 565846.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:WriteEscapedJavaScriptString(System.IO.TextWriter,System.String,ushort,ubyte,ubyte[],int,Newtonsoft.Json.IArrayPool`1[ushort],byref) (Tier1)
         140 (3.27 % of base) : 162295.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         140 (4.19 % of base) : 58843.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         136 (4.27 % of base) : 89337.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         116 (3.67 % of base) : 607439.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         116 (16.20 % of base) : 588778.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
         116 (0.91 % of base) : 182342.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         116 (0.90 % of base) : 318000.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
         112 (2.32 % of base) : 63028.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
         112 (2.19 % of base) : 69727.dasm - Microsoft.CodeAnalysis.CombineNode`2[Microsoft.CodeAnalysis.GeneratorAttributeSyntaxContext,ubyte]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.GeneratorAttributeSyntaxContext,ubyte]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.GeneratorAttributeSyntaxContext,ubyte]]:this (Tier1)
         108 (1.99 % of base) : 87693.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         100 (0.89 % of base) : 171913.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
          88 (1.85 % of base) : 91885.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
          88 (0.47 % of base) : 54107.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
          80 (0.57 % of base) : 241645.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1)
          76 (1.47 % of base) : 161665.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
          68 (1.27 % of base) : 590202.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
          68 (0.62 % of base) : 64139.dasm - Microsoft.Interop.VariableDeclarations:GenerateDeclarationsForManagedToUnmanaged(Microsoft.Interop.BoundGenerators,Microsoft.Interop.StubCodeContext,ubyte):Microsoft.Interop.VariableDeclarations (Tier1)
          68 (1.69 % of base) : 497415.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)

Top method improvements (bytes):
        -708 (-31.49 % of base) : 161826.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
        -664 (-5.70 % of base) : 162361.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (Tier1)
        -368 (-2.39 % of base) : 80153.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -152 (-1.14 % of base) : 123847.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -132 (-1.90 % of base) : 601516.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
        -120 (-0.94 % of base) : 637517.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -120 (-1.83 % of base) : 274343.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -116 (-0.94 % of base) : 499956.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -108 (-0.89 % of base) : 422049.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -108 (-0.89 % of base) : 632990.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -108 (-0.88 % of base) : 370834.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -104 (-0.53 % of base) : 603348.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
        -104 (-0.98 % of base) : 606922.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:BindAttributes(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],Microsoft.CodeAnalysis.CSharp.Binder):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]]:this (Tier1)
        -100 (-1.92 % of base) : 67127.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveCallingConventionMismatches[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],byref):this (Tier1)
         -96 (-0.79 % of base) : 16150.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
         -96 (-1.04 % of base) : 537521.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
         -96 (-0.70 % of base) : 539012.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[int,int]]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
         -88 (-2.31 % of base) : 270293.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)
         -88 (-1.11 % of base) : 203529.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 182485.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
         116 (16.20 % of base) : 588778.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
           8 (9.52 % of base) : 159283.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
           8 (9.52 % of base) : 51804.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
          44 (9.02 % of base) : 186768.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.__Canon]):ubyte:this (Tier1-OSR)
          16 (7.14 % of base) : 171605.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          16 (7.14 % of base) : 587257.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          16 (7.14 % of base) : 594231.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          32 (6.78 % of base) : 161869.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 240736.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 335694.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 337778.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 124842.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 634951.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 83728.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 94512.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 95434.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 349712.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 427098.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 48231.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.72 % of base) : 372343.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

Top method improvements (percentages):
        -708 (-31.49 % of base) : 161826.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
         -44 (-17.46 % of base) : 97700.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -44 (-17.46 % of base) : 98503.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 98583.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 99391.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 99452.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 99825.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-16.18 % of base) : 99396.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-16.18 % of base) : 99567.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-14.55 % of base) : 99837.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-14.55 % of base) : 98192.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-14.55 % of base) : 98730.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-14.55 % of base) : 99063.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-14.55 % of base) : 98635.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):short (FullOpts)
         -32 (-14.55 % of base) : 98352.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
         -32 (-14.55 % of base) : 99040.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):uint (FullOpts)
         -32 (-14.55 % of base) : 99144.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ulong (FullOpts)
         -32 (-14.55 % of base) : 98945.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -32 (-14.55 % of base) : 99244.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -36 (-14.52 % of base) : 99209.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Collections.Generic.KeyValuePair`2[int,System.String] (FullOpts)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 160782296 (overridden on cmd)
Total bytes of diff: 160761180 (overridden on cmd)
Total bytes of delta: -21116 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         184 : 266388.dasm (4.22 % of base)
         128 : 42694.dasm (1.67 % of base)
         128 : 48326.dasm (1.67 % of base)
         100 : 42823.dasm (3.22 % of base)
          84 : 126664.dasm (2.77 % of base)
          72 : 127428.dasm (2.48 % of base)
          64 : 42722.dasm (1.55 % of base)
          64 : 48358.dasm (1.58 % of base)
          52 : 4826.dasm (0.16 % of base)
          48 : 172500.dasm (0.83 % of base)
          48 : 118198.dasm (1.62 % of base)
          44 : 264891.dasm (0.70 % of base)
          44 : 5256.dasm (2.29 % of base)
          40 : 177151.dasm (2.06 % of base)
          40 : 148255.dasm (2.87 % of base)
          40 : 300595.dasm (2.50 % of base)
          36 : 50891.dasm (1.50 % of base)
          36 : 264997.dasm (0.43 % of base)
          36 : 3901.dasm (1.04 % of base)
          36 : 45367.dasm (1.50 % of base)

Top file improvements (bytes):
        -452 : 172498.dasm (-2.52 % of base)
        -156 : 163565.dasm (-8.23 % of base)
        -156 : 163761.dasm (-8.21 % of base)
        -116 : 44309.dasm (-1.98 % of base)
        -116 : 195852.dasm (-3.15 % of base)
         -88 : 274410.dasm (-1.64 % of base)
         -88 : 175093.dasm (-1.97 % of base)
         -80 : 24857.dasm (-2.48 % of base)
         -76 : 59146.dasm (-0.26 % of base)
         -72 : 7384.dasm (-1.46 % of base)
         -64 : 277162.dasm (-1.60 % of base)
         -56 : 115019.dasm (-8.24 % of base)
         -48 : 163506.dasm (-1.77 % of base)
         -48 : 162818.dasm (-1.61 % of base)
         -44 : 24939.dasm (-18.64 % of base)
         -44 : 153877.dasm (-1.71 % of base)
         -44 : 169696.dasm (-1.32 % of base)
         -40 : 14865.dasm (-1.26 % of base)
         -40 : 5610.dasm (-0.82 % of base)
         -40 : 215601.dasm (-0.68 % of base)

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

Top method regressions (bytes):
         184 (4.22 % of base) : 266388.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         128 (1.67 % of base) : 42694.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         128 (1.67 % of base) : 48326.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         100 (3.22 % of base) : 42823.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          84 (2.77 % of base) : 126664.dasm - System.IO.Pipelines.Tests.SchedulerFacts+<DefaultWriterSchedulerRunsOnSynchronizationContext>d__7:MoveNext():this (FullOpts)
          72 (2.48 % of base) : 127428.dasm - System.IO.Pipelines.Tests.SchedulerFacts+<UseSynchronizationContextFalseIgnoresSyncContextForWriterScheduler>d__6:MoveNext():this (FullOpts)
          64 (1.55 % of base) : 42722.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          64 (1.58 % of base) : 48358.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          52 (0.16 % of base) : 4826.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (1.62 % of base) : 118198.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectoryAsync_File_Tests+<LinkBeforeTargetAsync>d__13:MoveNext():this (FullOpts)
          48 (0.83 % of base) : 172500.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestInvalid(System.String[],System.String,System.String[]):int:this (FullOpts)
          44 (2.29 % of base) : 5256.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          44 (0.70 % of base) : 264891.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitIndexOfAnyCustomHelper(System.String,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte):System.String (FullOpts)
          40 (2.06 % of base) : 177151.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.87 % of base) : 148255.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          40 (2.50 % of base) : 300595.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          36 (0.43 % of base) : 264997.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (FullOpts)
          36 (1.04 % of base) : 3901.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (1.50 % of base) : 50891.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          36 (1.50 % of base) : 45367.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)

Top method improvements (bytes):
        -452 (-2.52 % of base) : 172498.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
        -156 (-8.23 % of base) : 163565.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write2_wrapper(System.Object[]):this (FullOpts)
        -156 (-8.21 % of base) : 163761.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterTypeWithArrayPropertyHavingChoice:Write3_Item(System.String,System.String,SerializationTypes.TypeWithArrayPropertyHavingChoice,ubyte,ubyte):this (FullOpts)
        -116 (-1.98 % of base) : 44309.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -116 (-3.15 % of base) : 195852.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -88 (-1.64 % of base) : 274410.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5401_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -88 (-1.97 % of base) : 175093.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue+TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this (FullOpts)
         -80 (-2.48 % of base) : 24857.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -76 (-0.26 % of base) : 59146.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -72 (-1.46 % of base) : 7384.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -64 (-1.60 % of base) : 277162.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5670_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-8.24 % of base) : 115019.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -48 (-1.77 % of base) : 163506.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterXmlSerializerAttributes:Write3_XmlSerializerAttributes(System.String,System.String,SerializationTypes.XmlSerializerAttributes,ubyte,ubyte):this (FullOpts)
         -48 (-1.61 % of base) : 162818.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterXmlSerializerAttributes:Write3_XmlSerializerAttributes(System.String,System.String,SerializationTypes.XmlSerializerAttributes,ubyte,ubyte):this (FullOpts)
         -44 (-18.64 % of base) : 24939.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -44 (-1.71 % of base) : 153877.dasm - System.Net.Security.EndpointChannelBindingToken:GetHashForChannelBinding(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte[] (FullOpts)
         -44 (-1.32 % of base) : 169696.dasm - System.Xml.XmlSchemaTests.TestData:.cctor() (FullOpts)
         -40 (-0.82 % of base) : 5610.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)
         -40 (-1.26 % of base) : 14865.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.ElasticTriviaFormattingRule:LineBreaksAfter(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken):int (FullOpts)
         -40 (-0.68 % of base) : 215601.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)

Top method regressions (percentages):
          28 (11.48 % of base) : 70041.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
          28 (11.48 % of base) : 66890.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
           8 (6.67 % of base) : 125050.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
           8 (6.45 % of base) : 125023.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          20 (5.49 % of base) : 38161.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
          20 (5.49 % of base) : 38227.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
           8 (5.41 % of base) : 23426.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (5.41 % of base) : 33865.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (5.41 % of base) : 215483.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
          16 (4.76 % of base) : 67338.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct],System.Collections.Frozen.SmallValueTypeDefaultComparerFrozenSet`1+GSW[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]]:OverlapsCore(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]):ubyte:this (FullOpts)
           8 (4.65 % of base) : 42262.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
         184 (4.22 % of base) : 266388.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
           8 (4.00 % of base) : 47082.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
          16 (3.88 % of base) : 97656.dasm - System.Diagnostics.Tests.FileVersionInfoTest:FileVersionInfo_EmptyFVI():this (FullOpts)
           4 (3.57 % of base) : 18515.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 30774.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
         100 (3.22 % of base) : 42823.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
           8 (2.94 % of base) : 104969.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms10b.prms10b.Parent,System.Object):System.Object (FullOpts)
          40 (2.87 % of base) : 148255.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          12 (2.86 % of base) : 57632.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)

Top method improvements (percentages):
         -44 (-18.64 % of base) : 24939.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -32 (-15.69 % of base) : 25383.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -36 (-14.75 % of base) : 102413.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.strcts.strct003.strct003.S+S2):System.Object (FullOpts)
         -36 (-13.64 % of base) : 113399.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,double):System.Object (FullOpts)
         -36 (-13.64 % of base) : 112361.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -36 (-13.43 % of base) : 113405.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -28 (-12.73 % of base) : 25595.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 104759.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 104737.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 104813.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25677.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25707.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 25794.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 26159.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104694.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104706.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104746.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104726.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104781.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.28 % of base) : 104785.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)


realworld.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15071740 (overridden on cmd)
Total bytes of diff: 15071724 (overridden on cmd)
Total bytes of delta: -16 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          52 : 14159.dasm (0.16 % of base)
          44 : 511.dasm (2.29 % of base)
          36 : 14584.dasm (0.61 % of base)
          36 : 14626.dasm (1.04 % of base)
          32 : 1941.dasm (2.12 % of base)
          28 : 14610.dasm (1.41 % of base)
          28 : 19676.dasm (0.59 % of base)
          28 : 30128.dasm (0.27 % of base)
          24 : 23896.dasm (0.89 % of base)
          24 : 25700.dasm (0.45 % of base)
          24 : 8633.dasm (0.26 % of base)
          24 : 22055.dasm (0.69 % of base)
          20 : 28441.dasm (2.33 % of base)
          16 : 13443.dasm (0.18 % of base)
          16 : 20757.dasm (1.19 % of base)
          16 : 22686.dasm (0.38 % of base)
          16 : 25748.dasm (0.18 % of base)
          16 : 5757.dasm (1.66 % of base)
          16 : 14017.dasm (1.56 % of base)
          16 : 26284.dasm (0.44 % of base)

Top file improvements (bytes):
         -80 : 9002.dasm (-0.75 % of base)
         -56 : 2417.dasm (-7.41 % of base)
         -32 : 16603.dasm (-5.84 % of base)
         -32 : 17801.dasm (-0.57 % of base)
         -32 : 13740.dasm (-2.68 % of base)
         -32 : 13894.dasm (-2.48 % of base)
         -20 : 2557.dasm (-1.68 % of base)
         -16 : 30038.dasm (-1.24 % of base)
         -16 : 29811.dasm (-0.11 % of base)
         -16 : 13395.dasm (-1.69 % of base)
         -16 : 1793.dasm (-4.04 % of base)
         -16 : 2450.dasm (-0.68 % of base)
         -16 : 27945.dasm (-2.48 % of base)
         -16 : 28664.dasm (-5.26 % of base)
         -12 : 17269.dasm (-1.21 % of base)
         -12 : 21301.dasm (-0.40 % of base)
         -12 : 12937.dasm (-0.91 % of base)
         -12 : 2890.dasm (-2.68 % of base)
         -12 : 698.dasm (-1.92 % of base)
         -12 : 11088.dasm (-5.17 % of base)

67 total files with Code Size differences (32 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
          52 (0.16 % of base) : 14159.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          44 (2.29 % of base) : 511.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          36 (1.04 % of base) : 14626.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 14584.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (2.12 % of base) : 1941.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.59 % of base) : 19676.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          28 (1.41 % of base) : 14610.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          28 (0.27 % of base) : 30128.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          24 (0.26 % of base) : 8633.dasm - FSharp.Compiler.TypedTreeOps:mkExprAddrOfExprAux(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.TypedTreeOps+Mutates,FSharp.Compiler.TypedTree+Expr,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+ValRef],FSharp.Compiler.Text.Range):System.Tuple`4[Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.TypedTree+Expr,ubyte,ubyte] (FullOpts)
          24 (0.69 % of base) : 22055.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
          24 (0.89 % of base) : 23896.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
          24 (0.45 % of base) : 25700.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          20 (2.33 % of base) : 28441.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          16 (1.66 % of base) : 5757.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          16 (0.38 % of base) : 22686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertToArrayIndex(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (1.19 % of base) : 20757.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetParamArrayArgument(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],System.Collections.Immutable.ImmutableArray`1[System.String],int,int,Microsoft.CodeAnalysis.CSharp.Conversions,byref):Microsoft.CodeAnalysis.TypedConstant (FullOpts)
          16 (0.44 % of base) : 26284.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitStringSwitchJumpTable(System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.ConstantValue,System.Object][],Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CodeGen.LocalOrParameter,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
          16 (0.18 % of base) : 25748.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          16 (1.56 % of base) : 14017.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)
          16 (0.18 % of base) : 13443.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)

Top method improvements (bytes):
         -80 (-0.75 % of base) : 9002.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
         -56 (-7.41 % of base) : 2417.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -32 (-5.84 % of base) : 16603.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.57 % of base) : 17801.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -32 (-2.68 % of base) : 13740.dasm - Microsoft.ML.Data.BufferBuilder`1[uint]:GetResult(byref):this (FullOpts)
         -32 (-2.48 % of base) : 13894.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[float]:Get(byref):this (FullOpts)
         -20 (-1.68 % of base) : 2557.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
         -16 (-0.68 % of base) : 2450.dasm - Interop:GetExceptionForIoErrno(Interop+ErrorInfo,System.String,ubyte):System.Exception (FullOpts)
         -16 (-1.69 % of base) : 13395.dasm - Microsoft.ML.Data.VBuffer`1[double]:Copy(double[],int,byref,int) (FullOpts)
         -16 (-2.48 % of base) : 27945.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.24 % of base) : 30038.dasm - System.Linq.Expressions.Expression:ValidateTryAndCatchHaveSameType(System.Type,System.Linq.Expressions.Expression,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.CatchBlock]) (FullOpts)
         -16 (-5.26 % of base) : 28664.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -16 (-0.11 % of base) : 29811.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
         -16 (-4.04 % of base) : 1793.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -12 (-5.17 % of base) : 11088.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
         -12 (-0.40 % of base) : 21301.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:Populate(Microsoft.CodeAnalysis.CSharp.NullableWalker+VariablesSnapshot):this (FullOpts)
         -12 (-1.21 % of base) : 17269.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
         -12 (-0.91 % of base) : 12937.dasm - Microsoft.ML.Data.VBuffer`1[float]:CopyTo(byref):this (FullOpts)
         -12 (-0.21 % of base) : 13001.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
         -12 (-2.68 % of base) : 2890.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)

Top method regressions (percentages):
           8 (5.41 % of base) : 15714.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (4.00 % of base) : 27312.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 24202.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 22270.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
           8 (2.74 % of base) : 2507.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.63 % of base) : 19965.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
          20 (2.33 % of base) : 28441.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          44 (2.29 % of base) : 511.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           8 (2.13 % of base) : 20950.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.12 % of base) : 1941.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (2.00 % of base) : 21453.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:HasInitializer(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          12 (1.92 % of base) : 13412.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[double](System.Collections.Generic.IEnumerable`1[double],int):double[] (FullOpts)
          12 (1.91 % of base) : 14055.dasm - Microsoft.ML.Trainers.LbfgsTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainModelCore(Microsoft.ML.TrainContext):System.__Canon:this (FullOpts)
           4 (1.85 % of base) : 28898.dasm - System.Management.Automation.LogProvider:GetPSLevelFromSeverity(System.String):ubyte (FullOpts)
           4 (1.75 % of base) : 26857.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
          16 (1.66 % of base) : 5757.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
           4 (1.61 % of base) : 17757.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          16 (1.56 % of base) : 14017.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)
           8 (1.52 % of base) : 30337.dasm - System.Management.Automation.Language.TypeResolver:ResolveTypeNameWorker(System.Management.Automation.Language.TypeName,System.Management.Automation.SessionStateScope,System.Collections.Generic.IEnumerable`1[System.Reflection.Assembly],System.Collections.Generic.HashSet`1[System.Reflection.Assembly],System.Management.Automation.Language.TypeResolutionState,ubyte,ubyte,byref):System.Type (FullOpts)
           4 (1.49 % of base) : 26289.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis:CheckNestedFunctions(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,System.Func`3[Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+NestedFunction,ubyte]):ubyte (FullOpts)

Top method improvements (percentages):
         -56 (-7.41 % of base) : 2417.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -32 (-5.84 % of base) : 16603.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -16 (-5.26 % of base) : 28664.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.17 % of base) : 11088.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
         -16 (-4.04 % of base) : 1793.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
          -4 (-3.23 % of base) : 19541.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          -8 (-2.90 % of base) : 2136.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-2.86 % of base) : 30759.dasm - System.Management.Automation.WildcardPattern:ContainsWildcardCharacters(System.String):ubyte (FullOpts)
          -4 (-2.78 % of base) : 29231.dasm - System.IO.Path:GetPathRoot(System.String):System.String (FullOpts)
         -32 (-2.68 % of base) : 13740.dasm - Microsoft.ML.Data.BufferBuilder`1[uint]:GetResult(byref):this (FullOpts)
         -12 (-2.68 % of base) : 2890.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-2.48 % of base) : 13894.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[float]:Get(byref):this (FullOpts)
         -16 (-2.48 % of base) : 27945.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.33 % of base) : 27539.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEmbeddedAttributeSymbolBase:GetMembers(System.String):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          -4 (-2.13 % of base) : 12868.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4626.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 28603.dasm - System.Management.Automation.ExecutionContext:TryGetFromAssemblyCache(System.String,System.String,byref):ubyte:this (FullOpts)
          -4 (-2.08 % of base) : 16235.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.04 % of base) : 3169.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)



windows arm64

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

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

Overall (-117,288 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,964,120 +384
benchmarks.run_pgo.windows.arm64.checked.mch 47,218,960 -7,024
benchmarks.run_tiered.windows.arm64.checked.mch 15,346,624 -268
coreclr_tests.run.windows.arm64.checked.mch 495,323,188 -40,444
libraries.crossgen2.windows.arm64.checked.mch 58,963,476 +48
libraries.pmi.windows.arm64.checked.mch 79,565,936 -3,548
libraries_tests.run.windows.arm64.Release.mch 309,738,560 -44,932
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 168,998,868 -21,232
realworld.run.windows.arm64.checked.mch 15,891,292 -192
smoke_tests.nativeaot.windows.arm64.checked.mch 3,972,452 -80

FullOpts (-117,288 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,963,584 +384
benchmarks.run_pgo.windows.arm64.checked.mch 30,968,576 -7,024
benchmarks.run_tiered.windows.arm64.checked.mch 4,157,248 -268
coreclr_tests.run.windows.arm64.checked.mch 156,231,660 -40,444
libraries.crossgen2.windows.arm64.checked.mch 58,961,840 +48
libraries.pmi.windows.arm64.checked.mch 79,445,952 -3,548
libraries_tests.run.windows.arm64.Release.mch 108,157,056 -44,932
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 155,861,404 -21,232
realworld.run.windows.arm64.checked.mch 15,322,868 -192
smoke_tests.nativeaot.windows.arm64.checked.mch 3,971,480 -80

Example diffs

benchmarks.run.windows.arm64.checked.mch

-8 (-6.45%) : 14087.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -59,10 +59,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -81,21 +79,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -114,13 +110,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 124, prolog size 8, PerfScore 16.50, instruction count 31, allocated bytes for code 124 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 15.50, instruction count 29, allocated bytes for code 116 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -131,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-5.17%) : 3257.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)

@@ -74,10 +74,8 @@ G_M4343_IG02:        ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {},
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M4343_IG03:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M4343_IG04
-            cbz     x1, G_M4343_IG07
-            b       G_M4343_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M4343_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG04:        ; bbWeight=0.50, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -98,11 +96,10 @@ G_M4343_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x1, G_M4343_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M4343_IG07
-            cbz     x2, G_M4343_IG10
-            b       G_M4343_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M4343_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG07:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x2
@@ -122,16 +119,12 @@ G_M4343_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x2, G_M4343_IG10
             ldr     w5, [x2, #0x08]
-            cbz     w5, G_M4343_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M4343_IG12
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w5, G_M4343_IG12
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             movz    x2, #0xD1FFAB1E      // code for System.IO.Path:Join(System.String,System.String):System.String
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -144,8 +137,10 @@ G_M4343_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1-x2]
+G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1-x2]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -169,14 +164,14 @@ G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006
             blr     x6
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4]
-                       ;; size=48 bbWeight=0.50 PerfScore 4.50
+                       ;; size=52 bbWeight=0.50 PerfScore 4.75
 G_M4343_IG13:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 232, prolog size 12, PerfScore 33.75, instruction count 58, allocated bytes for code 232 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 32.25, instruction count 55, allocated bytes for code 220 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -187,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-5.00%) : 7771.dasm - System.Collections.Generic.SortedSet1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet1+Node[System.Canon],System.Collections.Generic.SortedSet`1+Node[System.Canon]):ubyte:this (FullOpts)

@@ -36,12 +36,8 @@ G_M938_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byr
             ldrb    w0, [x0, #0x20]
             ; gcrRegs -[x0]
             cmp     w0, #1
-            bne     G_M938_IG04
-            mov     w0, #2
-            cmp     w1, #0
-            cinc    w0, w0, ne
-            b       G_M938_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+            beq     G_M938_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M938_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             cmp     w1, #0
             cset    x0, eq
@@ -50,12 +46,17 @@ G_M938_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M938_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M938_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #2
+            cmp     w1, #0
+            cinc    w0, w0, ne
+                       ;; size=12 bbWeight=0.50 PerfScore 0.75
+G_M938_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 15.00, instruction count 19, allocated bytes for code 76 (MethodHash=eeeffc55) for method System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -66,7 +67,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 4574.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 19858.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.65%) : 14260.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)

@@ -16,7 +16,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M26551_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M26551_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -47,7 +47,7 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #15
             cmp     w0, #1
-            bls     G_M26551_IG05
+            bls     G_M26551_IG07
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -55,20 +55,9 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             blr     x1
             ; gcrRegs -[x0]
             cbnz    w0, G_M26551_IG03
-                       ;; size=32 bbWeight=4 PerfScore 42.00
+            b       G_M26551_IG09
+                       ;; size=36 bbWeight=4 PerfScore 46.00
 G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            ldr     x1, [x21, #0x28]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x30
-            br      x1
-                       ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
             mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x20, #0x88]
@@ -79,20 +68,36 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             ; gcrRegs +[x0]
             ldr     x1, [x21, #0x28]
                        ;; size=24 bbWeight=0.50 PerfScore 5.50
+G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x30
+            br      x1
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            ldr     x1, [x21, #0x28]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
 G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x30
             br      x1
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-RWD00      dd  G_M26551_IG05 - G_M26551_IG02
+G_M26551_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M26551_IG07
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+RWD00      dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG05 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
            dd  G_M26551_IG07 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
 
 
-; Total bytes of code 172, prolog size 16, PerfScore 163.25, instruction count 43, allocated bytes for code 172 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
+; Total bytes of code 180, prolog size 16, PerfScore 167.75, instruction count 45, allocated bytes for code 180 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_pgo.windows.arm64.checked.mch

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

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

-24 (-7.41%) : 80742.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,12 +10,12 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T06] (  5,  4   )     ref  ->  x20         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T03] (  9, 23.04)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T03] (  8, 19.71)     ref  ->  x19         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T07] (  3,  2.05)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V03 loc1         [V03,T09] (  4,  0.95)     ref  ->  x21         class-hnd single-def <System.__Canon[]>
 ;  V04 loc2         [V04,T08] (  5,  1.76)     int  ->  x22        
-;  V05 loc3         [V05,T02] (  6, 27.33)     ref  ->  x23         class-hnd <System.__Canon>
-;  V06 loc4         [V06,T01] (  9, 35.98)     int  ->  x24        
+;  V05 loc3         [V05,T02] (  6, 24.00)     ref  ->  x23         class-hnd <System.__Canon>
+;  V06 loc4         [V06,T01] (  6, 32.65)     int  ->  x24        
 ;  V07 loc5         [V07,T00] (  5, 39.31)     ref  ->   x0         class-hnd <System.__Canon>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T05] (  2, 15.95)     int  ->   x0         "guarded devirt return temp"
@@ -40,7 +40,7 @@ G_M50755_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M50755_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x21, [x20, #0x08]
             ; gcrRegs +[x21]
-            cbnz    x21, G_M50755_IG07
+            cbnz    x21, G_M50755_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M50755_IG03:        ; bbWeight=0.95, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
@@ -59,39 +59,28 @@ G_M50755_IG04:        ; bbWeight=0.95, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.95 PerfScore 4.73
-G_M50755_IG05:        ; bbWeight=7.42, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x0 x19-x21 x23]
-            ldr     x1, [x23, #0x50]
-            ldr     x0, [x0, #0x50]
-            ; gcrRegs -[x0]
-            cmp     x1, x0
-            bne     G_M50755_IG14
-                       ;; size=16 bbWeight=7.42 PerfScore 55.61
-G_M50755_IG06:        ; bbWeight=59.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
-            b       G_M50755_IG15
-                       ;; size=4 bbWeight=59.32 PerfScore 59.32
-G_M50755_IG07:        ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x23]
+G_M50755_IG05:        ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19-x21]
             mov     w22, wzr
             ldr     w0, [x21, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG17
+            ble     G_M50755_IG14
                        ;; size=16 bbWeight=0.05 PerfScore 0.27
-G_M50755_IG08:        ; bbWeight=0.41, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06:        ; bbWeight=0.41, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     x0, x21, #16
             ; byrRegs +[x0]
             ldr     x23, [x0, w22, UXTW #3]
             ; gcrRegs +[x23]
-            cbz     x23, G_M50755_IG17
+            cbz     x23, G_M50755_IG14
                        ;; size=12 bbWeight=0.41 PerfScore 1.83
-G_M50755_IG09:        ; bbWeight=0.38, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07:        ; bbWeight=0.38, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             mov     w24, wzr
             ldr     w0, [x19, #0x08]
             cmp     w0, #0
-            ble     G_M50755_IG16
+            ble     G_M50755_IG13
                        ;; size=16 bbWeight=0.38 PerfScore 1.90
-G_M50755_IG10:        ; bbWeight=7.97, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08:        ; bbWeight=7.97, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     x0, x19, #16
             ; byrRegs +[x0]
             ldr     x0, [x0, w24, UXTW #3]
@@ -102,9 +91,9 @@ G_M50755_IG10:        ; bbWeight=7.97, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            bne     G_M50755_IG13
+            bne     G_M50755_IG10
                        ;; size=32 bbWeight=7.97 PerfScore 75.75
-G_M50755_IG11:        ; bbWeight=7.42, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09:        ; bbWeight=7.42, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             mov     x1, x23
             ; gcrRegs +[x1]
             ldr     x1, [x1]
@@ -113,13 +102,15 @@ G_M50755_IG11:        ; bbWeight=7.42, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
-            beq     G_M50755_IG05
-                       ;; size=28 bbWeight=7.42 PerfScore 48.20
-G_M50755_IG12:        ; bbWeight=1.85, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+            bne     G_M50755_IG11
+            ldr     x1, [x23, #0x50]
+            ldr     x0, [x0, #0x50]
             ; gcrRegs -[x0]
-            b       G_M50755_IG19
-                       ;; size=4 bbWeight=1.85 PerfScore 1.85
-G_M50755_IG13:        ; bbWeight=7.97, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+            cmp     x1, x0
+            bne     G_M50755_IG11
+            b       G_M50755_IG12
+                       ;; size=48 bbWeight=7.42 PerfScore 111.23
+G_M50755_IG10:        ; bbWeight=7.97, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             mov     x1, x23
             ; gcrRegs +[x1]
@@ -129,16 +120,16 @@ G_M50755_IG13:        ; bbWeight=7.97, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by
             blr     x2
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbnz    w0, G_M50755_IG15
+            cbnz    w0, G_M50755_IG12
                        ;; size=24 bbWeight=7.97 PerfScore 91.69
-G_M50755_IG14:        ; bbWeight=7.97, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11:        ; bbWeight=7.97, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     w24, w24, #1
             ldr     w1, [x19, #0x08]
             cmp     w1, w24
-            ble     G_M50755_IG16
-            b       G_M50755_IG10
+            bgt     G_M50755_IG08
+            b       G_M50755_IG13
                        ;; size=20 bbWeight=7.97 PerfScore 47.84
-G_M50755_IG15:        ; bbWeight=3.71, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+G_M50755_IG12:        ; bbWeight=0.38, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
             sxtw    x1, w24
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -147,14 +138,14 @@ G_M50755_IG15:        ; bbWeight=3.71, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2 x23]
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=3.71 PerfScore 9.27
-G_M50755_IG16:        ; bbWeight=0.43, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+                       ;; size=16 bbWeight=0.38 PerfScore 0.95
+G_M50755_IG13:        ; bbWeight=0.43, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             add     w22, w22, #1
             ldr     w14, [x21, #0x08]
             cmp     w14, w22
-            bgt     G_M50755_IG08
+            bgt     G_M50755_IG06
                        ;; size=16 bbWeight=0.43 PerfScore 2.17
-G_M50755_IG17:        ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG14:        ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21]
             add     x14, x20, #8
             ; byrRegs +[x14]
@@ -164,23 +155,15 @@ G_M50755_IG17:        ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x15 x19-x20]
             ; byrRegs -[x14]
                        ;; size=12 bbWeight=0.05 PerfScore 0.11
-G_M50755_IG18:        ; bbWeight=0.05, epilog, nogc, extend
+G_M50755_IG15:        ; bbWeight=0.05, epilog, nogc, extend
             ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0.05 PerfScore 0.27
-G_M50755_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19-x21 x23]
-            add     w24, w24, #1
-            ldr     w0, [x19, #0x08]
-            cmp     w0, w24
-            bgt     G_M50755_IG10
-            b       G_M50755_IG16
-                       ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 28, PerfScore 412.21, instruction count 81, allocated bytes for code 324 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
+; Total bytes of code 300, prolog size 28, PerfScore 350.13, instruction count 75, allocated bytes for code 300 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -191,7 +174,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 324 (0x000144)
+  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-7.02%) : 10102.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@
 ;
 ;  V00 arg0         [V00,T04] (  9,500.49)     ref  ->   x0         class-hnd single-def <int[,]>
 ;* V01 arg1         [V01    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V02 loc0         [V02,T17] (  6,100.52)     int  ->   x3        
+;  V02 loc0         [V02,T17] (  5,100.52)     int  ->   x3        
 ;  V03 loc1         [V03,T11] (  2,199.00)     int  ->  x10        
 ;  V04 loc2         [V04,T12] (  2,199.00)     int  ->  x11        
-;  V05 loc3         [V05,T20] (  8, 99.54)     int  ->   x4        
+;  V05 loc3         [V05,T20] (  5, 99.54)     int  ->   x4        
 ;  V06 loc4         [V06,T16] (  6,101.02)     int  ->   x2        
 ;  V07 loc5         [V07,T05] (  6,399.00)     int  ->   x1        
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -95,13 +95,12 @@ G_M57584_IG07:        ; bbWeight=99.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {},
 G_M57584_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             add     w2, w2, #1
             cmp     w2, w3
-            bgt     G_M57584_IG11
-            b       G_M57584_IG04
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
+            ble     G_M57584_IG04
+                       ;; size=12 bbWeight=0.50 PerfScore 1.00
 G_M57584_IG09:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             add     w4, w4, #1
             cmp     w4, w3
-            bgt     G_M57584_IG12
+            bgt     G_M57584_IG11
             b       G_M57584_IG03
                        ;; size=16 bbWeight=0.01 PerfScore 0.03
 G_M57584_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -109,20 +108,13 @@ G_M57584_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57584_IG11:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            add     w4, w4, #1
-            cmp     w4, w3
-            ble     G_M57584_IG03
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M57584_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x0]
+G_M57584_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             add     sp, sp, #64
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 24, PerfScore 3200.02, instruction count 57, allocated bytes for code 228 (MethodHash=862a1f0f) for method Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
+; Total bytes of code 212, prolog size 24, PerfScore 3199.52, instruction count 53, allocated bytes for code 212 (MethodHash=862a1f0f) for method Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -133,7 +125,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 53 (0x00035) Actual length = 212 (0x0000d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 18597.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.57)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.57)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.71)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.71)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.29 PerfScore 6.29
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.29 PerfScore 6.57
+G_M7781_IG04:        ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.29 PerfScore 1.57
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 22.36, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 22.64, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 13830.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.40)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.40)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.20)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.20)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.20 PerfScore 4.40
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.20 PerfScore 4.60
+G_M7781_IG04:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.20 PerfScore 1.10
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 20.00, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 20.20, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 39803.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,7 +9,7 @@
 ; 5 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8,  4.40)   byref  ->  x19         this single-def
+;  V00 this         [V00,T00] ( 10,  4.40)   byref  ->  x19         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T03] (  3,  1.20)     int  ->   x0         "Span.get_Item index"
 ;  V03 tmp2         [V03,T02] (  3,  1.20)   byref  ->   x1         "Span.get_Item ptrToSpan"
@@ -60,7 +60,7 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             ldrh    w0, [x1, w0, UXTW #2]
             cmp     w0, #0xD1FFAB1E
-            blo     G_M7781_IG05
+            blo     G_M7781_IG04
             movz    x1, #0xD1FFAB1E      // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
             ; byrRegs -[x1]
             movk    x1, #0xD1FFAB1E LSL #16
@@ -68,21 +68,25 @@ G_M7781_IG03:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            cbz     w0, G_M7781_IG06
-                       ;; size=60 bbWeight=0.20 PerfScore 4.40
-G_M7781_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ldr     w0, [x19, #0x20]
-            add     w0, w0, #1
-            str     w0, [x19, #0x20]
-            b       G_M7781_IG02
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M7781_IG05:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            cbnz    w0, G_M7781_IG05
+            b       G_M7781_IG06
+                       ;; size=64 bbWeight=0.20 PerfScore 4.60
+G_M7781_IG04:        ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldrb    w0, [x1, w0, UXTW #2]
-            tbnz    w0, #7, G_M7781_IG04
+            tbz     w0, #7, G_M7781_IG06
                        ;; size=20 bbWeight=0.20 PerfScore 1.10
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+            ldr     w0, [x19, #0x20]
+            add     w0, w0, #1
+            str     w0, [x19, #0x20]
+            ldr     w0, [x19, #0x20]
+            ldr     w1, [x19, #0x38]
+            cmp     w0, w1
+            blt     G_M7781_IG03
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldr     x19, [sp, #0x18]
@@ -95,7 +99,7 @@ G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 16, PerfScore 20.00, instruction count 37, allocated bytes for code 148 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 164, prolog size 16, PerfScore 20.20, instruction count 41, allocated bytes for code 164 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,7 +110,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.windows.arm64.checked.mch

-12 (-5.17%) : 16705.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)

@@ -74,10 +74,8 @@ G_M4343_IG02:        ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {},
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M4343_IG03:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M4343_IG04
-            cbz     x1, G_M4343_IG07
-            b       G_M4343_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M4343_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG04:        ; bbWeight=0.50, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -98,11 +96,10 @@ G_M4343_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x1, G_M4343_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M4343_IG07
-            cbz     x2, G_M4343_IG10
-            b       G_M4343_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M4343_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG07:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x2
@@ -122,16 +119,12 @@ G_M4343_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x2, G_M4343_IG10
             ldr     w5, [x2, #0x08]
-            cbz     w5, G_M4343_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M4343_IG12
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w5, G_M4343_IG12
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             movz    x2, #0xD1FFAB1E      // code for System.IO.Path:Join(System.String,System.String):System.String
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -144,8 +137,10 @@ G_M4343_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1-x2]
+G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1-x2]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -169,14 +164,14 @@ G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006
             blr     x6
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4]
-                       ;; size=48 bbWeight=0.50 PerfScore 4.50
+                       ;; size=52 bbWeight=0.50 PerfScore 4.75
 G_M4343_IG13:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 232, prolog size 12, PerfScore 33.75, instruction count 58, allocated bytes for code 232 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
+; Total bytes of code 220, prolog size 12, PerfScore 32.25, instruction count 55, allocated bytes for code 220 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -187,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-4.76%) : 5850.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (Tier1)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->   x0         class-hnd single-def <System.String>
-;  V01 loc0         [V01,T01] (  3,  1.50)  ushort  ->   x1        
+;  V01 loc0         [V01,T01] (  3,  1.50)  ushort  ->   x0        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V04 cse0         [V04,T03] (  2,  1   )     int  ->   x1         "CSE - moderate"
@@ -27,28 +27,29 @@ G_M53713_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M53713_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x0, #0x08]
-            cbz     w1, G_M53713_IG04
-            sub     w1, w1, #1
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            ldrh    w1, [x0, w1, UXTW #2]
-            cmp     w1, #32
-            beq     G_M53713_IG08
-            b       G_M53713_IG06
-                       ;; size=32 bbWeight=0.50 PerfScore 5.25
+            cbnz    w1, G_M53713_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M53713_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x0]
+            ; gcrRegs -[x0]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M53713_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M53713_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            cmp     w1, #46
+G_M53713_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x0]
+            sub     w1, w1, #1
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
+            ; byrRegs +[x0]
+            ldrh    w0, [x0, w1, UXTW #2]
+            ; byrRegs -[x0]
+            cmp     w0, #32
+            beq     G_M53713_IG08
+            cmp     w0, #46
             cset    x0, eq
-                       ;; size=8 bbWeight=0.50 PerfScore 0.50
+                       ;; size=28 bbWeight=0.50 PerfScore 3.25
 G_M53713_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
@@ -61,7 +62,7 @@ G_M53713_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 11.75, instruction count 21, allocated bytes for code 84 (MethodHash=dc8a2e2e) for method System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (Tier1)
+; Total bytes of code 80, prolog size 8, PerfScore 11.25, instruction count 20, allocated bytes for code 80 (MethodHash=dc8a2e2e) for method System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +73,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-4.44%) : 5904.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)

@@ -77,10 +77,8 @@ G_M49441_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M49441_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0x08]
-            cbz     w0, G_M49441_IG04
-            cbz     x20, G_M49441_IG07
-            b       G_M49441_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w0, G_M49441_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M49441_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     x0, x20
@@ -94,16 +92,12 @@ G_M49441_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M49441_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
+            cbz     x20, G_M49441_IG07
             ldr     w21, [x20, #0x08]
-            cbz     w21, G_M49441_IG07
-            add     x0, x20, #12
-            ; byrRegs +[x0]
-            sxtw    w1, w21
-            b       G_M49441_IG09
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+            cbnz    w21, G_M49441_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M49441_IG07:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
-            ; byrRegs -[x0]
             mov     x0, x19
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -113,9 +107,11 @@ G_M49441_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0001 {x0}, gcvars, byref, isz
+G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x20]
+            add     x0, x20, #12
             ; byrRegs +[x0]
+            sxtw    w1, w21
             movz    x2, #0xD1FFAB1E      // code for System.IO.Path:IsPathRooted(System.ReadOnlySpan`1[ushort]):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -136,7 +132,7 @@ G_M49441_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             blr     x4
             ; gcrRegs -[x19-x20] +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=60 bbWeight=0.50 PerfScore 8.25
+                       ;; size=68 bbWeight=0.50 PerfScore 8.75
 G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
@@ -144,7 +140,7 @@ G_M49441_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 180, prolog size 16, PerfScore 27.75, instruction count 45, allocated bytes for code 180 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
+; Total bytes of code 172, prolog size 16, PerfScore 26.75, instruction count 43, allocated bytes for code 172 (MethodHash=f73b3ede) for method System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -155,7 +151,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 4353.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+4.35%) : 47089.dasm - System.Threading.DeferredDisposableLifetime`1[System.Canon]:Dispose(System.Canon):this (Tier1)

@@ -24,7 +24,7 @@ G_M55294_IG02:        ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             ; gcrRegs +[x2]
             ; byrRegs +[x0]
             ldapr   w11, [x0]
-            tbnz    w11, #31, G_M55294_IG06
+            tbnz    w11, #31, G_M55294_IG04
                        ;; size=8 bbWeight=8 PerfScore 32.00
 G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
             neg     w1, w11
@@ -33,11 +33,18 @@ G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             casal   w3, w1, [x0]
             cmp     w3, w11
             bne     G_M55294_IG02
-                       ;; size=24 bbWeight=4 PerfScore 24.00
-G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+            b       G_M55294_IG05
+                       ;; size=28 bbWeight=4 PerfScore 28.00
+G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x2]
             ; byrRegs -[x0]
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M55294_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x2]
             cmn     w1, #1
-            bne     G_M55294_IG06
+            bne     G_M55294_IG04
             mov     x0, x2
             ; gcrRegs +[x0]
             movz    x11, #0xD1FFAB1E      // code for <unknown method>
@@ -48,18 +55,13 @@ G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             ldr     x2, [x11]
             ; gcrRegs -[x2]
                        ;; size=36 bbWeight=0.50 PerfScore 5.00
-G_M55294_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55294_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x2
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M55294_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x0]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 92, prolog size 8, PerfScore 75.00, instruction count 23, allocated bytes for code 92 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 79.00, instruction count 24, allocated bytes for code 96 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +72,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+8.60%) : 40324.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -13,59 +13,69 @@
 ;  V02 arg2         [V02,T07] ( 10, 91   )     ref  ->   x2         class-hnd single-def <int[,,]>
 ;* V03 loc0         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04,T10] (  7, 48   )     int  ->   x5        
-;  V05 loc2         [V05,T09] (  7, 60   )     int  ->  registers  
+;  V05 loc2         [V05,T09] (  7, 60   )     int  ->   x4        
 ;  V06 loc3         [V06,T08] (  7, 90   )     int  ->   x3        
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->  x13         "MD array shared temp"
-;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->  x14         "MD array shared temp"
-;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x12         "MD array shared temp"
-;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x15         "MD array shared temp"
-;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->   x7         hoist "CSE - aggressive"
-;  V15 cse1         [V15,T20] (  3, 11   )     int  ->   x4         hoist "CSE - aggressive"
-;  V16 cse2         [V16,T19] (  3, 18   )     int  ->   x3         "CSE - aggressive"
-;  V17 cse3         [V17,T17] (  2, 20   )     int  ->  x10         hoist "CSE - aggressive"
-;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x7         hoist "CSE - aggressive"
-;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->   x6         hoist "CSE - aggressive"
-;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x10         hoist "CSE - aggressive"
-;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->   x9         hoist "CSE - moderate"
-;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->   x8         hoist "CSE - aggressive"
-;  V23 cse9         [V23,T18] (  2, 20   )     int  ->  x11         hoist "CSE - aggressive"
-;  V24 cse10        [V24,T11] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V25 cse11        [V25,T12] (  3, 48   )     int  ->  x14         "CSE - aggressive"
-;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x15         "CSE - aggressive"
-;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x12         "CSE - aggressive"
+;  V08 tmp1         [V08,T01] (  3, 96   )     int  ->   x8         "MD array shared temp"
+;  V09 tmp2         [V09,T02] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V10 tmp3         [V10,T03] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V11 tmp4         [V11,T04] (  3, 96   )     int  ->   x9         "MD array shared temp"
+;  V12 tmp5         [V12,T05] (  3, 96   )     int  ->  x10         "MD array shared temp"
+;  V13 tmp6         [V13,T06] (  3, 96   )     int  ->  x11         "MD array shared temp"
+;  V14 cse0         [V14,T16] (  3, 24.01)     int  ->  x21         hoist "CSE - aggressive"
+;  V15 cse1         [V15,T20] (  3, 11   )     int  ->  x25         hoist "CSE - aggressive"
+;  V16 cse2         [V16,T19] (  3, 18   )     int  ->  x23         "CSE - aggressive"
+;  V17 cse3         [V17,T17] (  2, 20   )     int  ->   x6         hoist "CSE - aggressive"
+;  V18 cse4         [V18,T25] (  2,  0.02)     int  ->   x6         hoist "CSE - aggressive"
+;  V19 cse5         [V19,T23] (  3,  2.02)     int  ->  x19         hoist "CSE - aggressive"
+;  V20 cse6         [V20,T22] (  3,  4   )     int  ->  x24         hoist "CSE - aggressive"
+;  V21 cse7         [V21,T24] (  2,  1.01)     int  ->  x22         hoist "CSE - moderate"
+;  V22 cse8         [V22,T21] (  2,  8.01)     int  ->  x20         hoist "CSE - aggressive"
+;  V23 cse9         [V23,T18] (  2, 20   )     int  ->   x7         hoist "CSE - aggressive"
+;  V24 cse10        [V24,T11] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V25 cse11        [V25,T12] (  3, 48   )     int  ->   x9         "CSE - aggressive"
+;  V26 cse12        [V26,T13] (  3, 48   )     int  ->  x11         "CSE - aggressive"
+;  V27 cse13        [V27,T14] (  3, 48   )     int  ->  x10         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M4144_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x10]!
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            stp     x23, x24, [sp, #0x38]
+            str     x25, [sp, #0x48]
             mov     fp, sp
-            ldr     w0, [fp, #0x5C]
-            ldp     x2, x1, [fp, #0x48]
+            ldr     w0, [fp, #0x9C]
+            ldp     x2, x1, [fp, #0x88]
             ; gcrRegs +[x1-x2]
-            ldp     w4, w5, [fp, #0x3C]
-            ldr     w3, [fp, #0x38]
-                       ;; size=24 bbWeight=0.01 PerfScore 0.11
+            ldp     w4, w5, [fp, #0x7C]
+            ldr     w3, [fp, #0x78]
+                       ;; size=40 bbWeight=0.01 PerfScore 0.14
 G_M4144_IG02:        ; bbWeight=0.01, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w6, [x1, #0x24]
-            ldp     w8, w7, [x1, #0x14]
-            add     w7, w6, w7
-            sub     w7, w7, #1
-            ldr     w9, [x1, #0x10]
-            b       G_M4144_IG12
+            ldr     w19, [x1, #0x24]
+            ldp     w20, w6, [x1, #0x14]
+            add     w6, w19, w6
+            sub     w21, w6, #1
+            ldr     w22, [x1, #0x10]
+            b       G_M4144_IG11
                        ;; size=24 bbWeight=0.01 PerfScore 0.11
-G_M4144_IG03:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w5, w10
-            cmp     w4, w5
-            bge     G_M4144_IG07
+G_M4144_IG03:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w24, [x1, #0x1C]
+            add     w3, w24, w22
+            sub     w25, w3, #1
+            b       G_M4144_IG09
+                       ;; size=16 bbWeight=1 PerfScore 5.00
+G_M4144_IG04:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w5, w24
+            cmp     w25, w5
+            bge     G_M4144_IG08
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M4144_IG04:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG05:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             sub     w0, w0, #1
-            cbnz    w0, G_M4144_IG03
+            cbnz    w0, G_M4144_IG04
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG06:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             mov     x0, x1
             ; gcrRegs +[x0]
             mov     x1, x2
@@ -78,115 +88,109 @@ G_M4144_IG05:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 6.50
-G_M4144_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+G_M4144_IG07:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x25, [sp, #0x48]
+            ldp     x23, x24, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x50
             add     sp, sp, #80
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M4144_IG07:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=28 bbWeight=1 PerfScore 7.50
+G_M4144_IG08:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
-            ldr     w11, [x1, #0x20]
-            cmp     w3, w11
+            ldr     w4, [x1, #0x20]
+            cmp     w23, w4
             bge     G_M4144_IG10
                        ;; size=12 bbWeight=2 PerfScore 9.00
-G_M4144_IG08:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG09:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
             add     w5, w5, #1
-            cmp     w4, w5
-            bge     G_M4144_IG07
-                       ;; size=12 bbWeight=8 PerfScore 16.00
-G_M4144_IG09:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            b       G_M4144_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M4144_IG10:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            mov     w4, w11
-                       ;; size=4 bbWeight=1 PerfScore 0.50
-G_M4144_IG11:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            sxtw    w3, w6
+            cmp     w25, w5
+            bge     G_M4144_IG08
+            b       G_M4144_IG05
+                       ;; size=16 bbWeight=8 PerfScore 24.00
+G_M4144_IG10:        ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            sxtw    w3, w19
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M4144_IG12:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            cmp     w7, w3
-            blt     G_M4144_IG15
+G_M4144_IG11:        ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            cmp     w21, w3
+            blt     G_M4144_IG14
                        ;; size=8 bbWeight=8 PerfScore 12.00
-G_M4144_IG13:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
-            ldr     w10, [x2, #0x1C]
-            sub     w10, w5, w10
-            ldr     w11, [x2, #0x10]
+G_M4144_IG12:        ; bbWeight=4, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+            ldr     w6, [x2, #0x1C]
+            sub     w6, w5, w6
+            ldr     w7, [x2, #0x10]
                        ;; size=12 bbWeight=4 PerfScore 26.00
-G_M4144_IG14:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
-            sxtw    w13, w10
-            cmp     w13, w11
-            bhs     G_M4144_IG17
-            ldr     w14, [x2, #0x14]
-            ldr     w12, [x2, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ldr     w14, [x2, #0x18]
-            ldr     w12, [x2, #0x24]
-            sub     w12, w3, w12
-            cmp     w12, w14
-            bhs     G_M4144_IG17
-            madd    w13, w13, w14, w12
-            ubfiz   x13, x13, #2, #32
-            add     x13, x13, #40
-            ldr     w14, [x1, #0x1C]
-            sub     w14, w5, w14
-            ldp     w12, w15, [x1, #0x10]
-            cmp     w14, w12
-            bhs     G_M4144_IG17
-            ldr     w12, [x1, #0x20]
-            sub     w12, w4, w12
-            cmp     w12, w15
-            bhs     G_M4144_IG17
-            madd    w14, w14, w15, w12
-            ldr     w12, [x1, #0x18]
-            ldr     w15, [x1, #0x24]
-            sub     w15, w3, w15
-            cmp     w15, w12
-            bhs     G_M4144_IG17
-            madd    w14, w14, w12, w15
-            ubfiz   x14, x14, #2, #32
-            add     x14, x14, #40
-            ldr     w14, [x1, x14]
-            str     w14, [x2, x13]
+G_M4144_IG13:        ; bbWeight=16, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+            sxtw    w8, w6
+            cmp     w8, w7
+            bhs     G_M4144_IG15
+            ldr     w9, [x2, #0x14]
+            ldr     w10, [x2, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ldr     w9, [x2, #0x18]
+            ldr     w10, [x2, #0x24]
+            sub     w10, w3, w10
+            cmp     w10, w9
+            bhs     G_M4144_IG15
+            madd    w8, w8, w9, w10
+            ubfiz   x8, x8, #2, #32
+            add     x8, x8, #40
+            ldr     w9, [x1, #0x1C]
+            sub     w9, w5, w9
+            ldp     w10, w11, [x1, #0x10]
+            cmp     w9, w10
+            bhs     G_M4144_IG15
+            ldr     w10, [x1, #0x20]
+            sub     w10, w4, w10
+            cmp     w10, w11
+            bhs     G_M4144_IG15
+            madd    w9, w9, w11, w10
+            ldr     w10, [x1, #0x18]
+            ldr     w11, [x1, #0x24]
+            sub     w11, w3, w11
+            cmp     w11, w10
+            bhs     G_M4144_IG15
+            madd    w9, w9, w10, w11
+            ubfiz   x9, x9, #2, #32
+            add     x9, x9, #40
+            ldr     w9, [x1, x9]
+            str     w9, [x2, x8]
             add     w3, w3, #1
...

coreclr_tests.run.windows.arm64.checked.mch

-28 (-14.00%) : 406283.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
@@ -21,72 +21,71 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V13 tmp4         [V13,T11] (  2,  2   )     int  ->   x1        
+;* V13 tmp4         [V13,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V16 tmp7         [V16,T30] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T12] (  2,  2   )     int  ->   x1         single-def
+;* V16 tmp7         [V16,T29] (  0,  0   )     int  ->  zero-ref   
+;* V17 tmp8         [V17,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V19 tmp10        [V19,T13] (  2,  2   )     int  ->   x2        
-;  V20 tmp11        [V20,T14] (  2,  2   )     int  ->   x1         single-def
+;* V19 tmp10        [V19,T12] (  0,  0   )     int  ->  zero-ref   
+;* V20 tmp11        [V20,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V22 tmp13        [V22,T15] (  2,  2   )     int  ->   x0        
-;  V23 tmp14        [V23,T16] (  2,  2   )     int  ->   x0         single-def
+;* V22 tmp13        [V22,T14] (  0,  0   )     int  ->  zero-ref   
+;* V23 tmp14        [V23,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V25 tmp16        [V25,T31] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T17] (  2,  2   )     int  ->   x0         single-def
+;* V25 tmp16        [V25,T30] (  0,  0   )     int  ->  zero-ref   
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V32 tmp23        [V32,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V34 tmp25        [V34,T33] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp25        [V34,T32] (  0,  0   )     int  ->  zero-ref   
+;* V35 tmp26        [V35,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V37 tmp28        [V37,T20] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp28        [V37,T18] (  0,  0   )     int  ->  zero-ref   
+;* V38 tmp29        [V38,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V40 tmp31        [V40,T34] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V40 tmp31        [V40,T33] (  0,  0   )     int  ->  zero-ref   
+;* V41 tmp32        [V41,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V43 tmp34        [V43,T23] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp34        [V43,T21] (  0,  0   )     int  ->  zero-ref   
+;* V44 tmp35        [V44,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V46 tmp37        [V46,T36] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T24] (  2,  2   )     int  ->   x0         single-def
+;* V46 tmp37        [V46,T35] (  0,  0   )     int  ->  zero-ref   
+;* V47 tmp38        [V47,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp40        [V49,T37] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T25] (  2,  2   )     int  ->   x0         single-def
+;* V49 tmp40        [V49,T36] (  0,  0   )     int  ->  zero-ref   
+;* V50 tmp41        [V50,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V53 tmp44        [V53,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V58 tmp49        [V58,T39] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref   
+;* V59 tmp50        [V59,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V61 tmp52        [V61,T28] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp52        [V61,T25] (  0,  0   )     int  ->  zero-ref   
+;* V62 tmp53        [V62,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V64 tmp55        [V64,T40] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V64 tmp55        [V64,T39] (  0,  0   )     int  ->  zero-ref   
+;* V65 tmp56        [V65,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V67 tmp58        [V67,T42] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V67 tmp58        [V67,T41] (  0,  0   )     int  ->  zero-ref   
+;  V68 tmp59        [V68,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V70 tmp61        [V70,T44] (  0,  0   )     int  ->  zero-ref   
-;* V71 cse0         [V71,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V72 cse1         [V72,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V73 cse2         [V73,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V70 tmp61        [V70,T28] (  2,  2   )     int  ->   x0        
+;* V71 cse0         [V71,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V72 cse1         [V72,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V73 cse2         [V73,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V74 cse3         [V74,T01] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V75 cse4         [V75,T04] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V76 cse5         [V76,T05] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V77 cse6         [V77,T06] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V78 cse7         [V78,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -137,24 +136,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -165,7 +157,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-28 (-14.00%) : 406699.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,79 +10,78 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T03] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T03] (  3,  3   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V09 tmp5         [V09,T11] (  2,  2   )     int  ->   x1        
+;* V09 tmp5         [V09,T10] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V12 tmp8         [V12,T30] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp9         [V13,T12] (  2,  2   )     int  ->   x1         single-def
+;* V12 tmp8         [V12,T29] (  0,  0   )     int  ->  zero-ref   
+;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T13] (  2,  2   )     int  ->   x2        
-;  V16 tmp12        [V16,T14] (  2,  2   )     int  ->   x1         single-def
+;* V15 tmp11        [V15,T12] (  0,  0   )     int  ->  zero-ref   
+;* V16 tmp12        [V16,T13] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V18 tmp14        [V18,T15] (  2,  2   )     int  ->   x0        
-;  V19 tmp15        [V19,T16] (  2,  2   )     int  ->   x0         single-def
+;* V18 tmp14        [V18,T14] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp15        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V21 tmp17        [V21,T31] (  0,  0   )     int  ->  zero-ref   
-;  V22 tmp18        [V22,T17] (  2,  2   )     int  ->   x0         single-def
+;* V21 tmp17        [V21,T30] (  0,  0   )     int  ->  zero-ref   
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V28 tmp24        [V28,T32] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28,T31] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V30 tmp26        [V30,T33] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V30 tmp26        [V30,T32] (  0,  0   )     int  ->  zero-ref   
+;* V31 tmp27        [V31,T17] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V33 tmp29        [V33,T20] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V33 tmp29        [V33,T18] (  0,  0   )     int  ->  zero-ref   
+;* V34 tmp30        [V34,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V36 tmp32        [V36,T34] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V36 tmp32        [V36,T33] (  0,  0   )     int  ->  zero-ref   
+;* V37 tmp33        [V37,T20] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V39 tmp35        [V39,T23] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T35] (  0,  0   )     int  ->  zero-ref    single-def
+;* V39 tmp35        [V39,T21] (  0,  0   )     int  ->  zero-ref   
+;* V40 tmp36        [V40,T34] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V42 tmp38        [V42,T36] (  0,  0   )     int  ->  zero-ref   
-;  V43 tmp39        [V43,T24] (  2,  2   )     int  ->   x0         single-def
+;* V42 tmp38        [V42,T35] (  0,  0   )     int  ->  zero-ref   
+;* V43 tmp39        [V43,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V45 tmp41        [V45,T37] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp42        [V46,T25] (  2,  2   )     int  ->   x0         single-def
+;* V45 tmp41        [V45,T36] (  0,  0   )     int  ->  zero-ref   
+;* V46 tmp42        [V46,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp45        [V49,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T38] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52,T37] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V54 tmp50        [V54,T39] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T27] (  0,  0   )     int  ->  zero-ref    single-def
+;* V54 tmp50        [V54,T38] (  0,  0   )     int  ->  zero-ref   
+;* V55 tmp51        [V55,T24] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V57 tmp53        [V57,T28] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T29] (  0,  0   )     int  ->  zero-ref    single-def
+;* V57 tmp53        [V57,T25] (  0,  0   )     int  ->  zero-ref   
+;* V58 tmp54        [V58,T26] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V60 tmp56        [V60,T40] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T41] (  0,  0   )     int  ->  zero-ref    single-def
+;* V60 tmp56        [V60,T39] (  0,  0   )     int  ->  zero-ref   
+;* V61 tmp57        [V61,T40] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V63 tmp59        [V63,T42] (  0,  0   )     int  ->  zero-ref   
-;* V64 tmp60        [V64,T43] (  0,  0   )     int  ->  zero-ref    single-def
+;* V63 tmp59        [V63,T41] (  0,  0   )     int  ->  zero-ref   
+;  V64 tmp60        [V64,T27] (  2,  2   )     int  ->   x1         single-def
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V66 tmp62        [V66,T44] (  0,  0   )     int  ->  zero-ref   
-;* V67 cse0         [V67,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V68 cse1         [V68,T04] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V69 cse2         [V69,T09] (  2,  2   )     int  ->   x0         "CSE - moderate"
-;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x2         "CSE - moderate"
-;  V71 cse4         [V71,T05] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;  V66 tmp62        [V66,T28] (  2,  2   )     int  ->   x0        
+;* V67 cse0         [V67,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V68 cse1         [V68,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V69 cse2         [V69,T09] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;  V70 cse3         [V70,T02] (  2,  2   )     int  ->   x1         "CSE - moderate"
+;* V71 cse4         [V71,T05] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V72 cse5         [V72,T06] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;  V73 cse6         [V73,T07] (  3,  3   )    long  ->   x1         "CSE - aggressive"
-;  V74 cse7         [V74,T10] (  2,  2   )     int  ->   x0         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -133,24 +132,17 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movn    w1, #12
             str     w1, [x19, #0x08]
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldp     w0, w1, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+                       ;; size=148 bbWeight=1 PerfScore 26.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 172, prolog size 12, PerfScore 33.00, instruction count 43, allocated bytes for code 172 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -161,7 +153,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-32 (-11.59%) : 217746.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Action`1[ubyte],System.Object) (FullOpts)

@@ -11,17 +11,15 @@
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T01] (  7,  4.25)     ref  ->  x20         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T00] (  7,  5   )     ref  ->  x19         class-hnd single-def <System.Action`1[ubyte]>
-;  V03 arg3         [V03,T02] (  7,  4.25)     ref  ->  x21         class-hnd single-def <System.Object>
+;  V03 arg3         [V03,T02] (  6,  4   )     ref  ->  x21         class-hnd single-def <System.Object>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T10] (  0,  0   )     int  ->  zero-ref   
+;* V05 tmp1         [V05,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V06 tmp2         [V06,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V07 tmp3         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V08 tmp4         [V08,T11] (  0,  0   )     int  ->  zero-ref   
-;  V09 tmp5         [V09,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V10 tmp6         [V10,T05] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V11 cse0         [V11,T04] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V12 cse1         [V12,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V13 cse2         [V13,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V07 tmp3         [V07,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V08 tmp4         [V08,T09] (  0,  0   )     int  ->  zero-ref   
+;  V09 tmp5         [V09,T06] (  2,  1   )   ubyte  ->   x1         single-def "Inline stloc first use temp"
+;  V10 tmp6         [V10,T04] (  3,  1.50)     ref  ->   x4         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V11 cse0         [V11,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -38,7 +36,7 @@ G_M19162_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x21]
                        ;; size=28 bbWeight=1 PerfScore 5.00
 G_M19162_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
-            cbz     x19, G_M19162_IG07
+            cbz     x19, G_M19162_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M19162_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19]
@@ -46,63 +44,50 @@ G_M19162_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             cmp     x1, x0
-            bne     G_M19162_IG07
-            cbz     x21, G_M19162_IG07
+            bne     G_M19162_IG04
+            cbz     x21, G_M19162_IG04
             ldr     x1, [x21]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             cmp     x1, x0
-            bne     G_M19162_IG07
-            cmp     x1, x0
-            beq     G_M19162_IG05
-                       ;; size=60 bbWeight=0.50 PerfScore 7.25
-G_M19162_IG04:        ; bbWeight=0.25, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+            beq     G_M19162_IG06
+                       ;; size=52 bbWeight=0.50 PerfScore 6.50
+G_M19162_IG04:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+            ldrb    w1, [x20, #0x10]
+            strb    wzr, [x20, #0x10]
+            cbz     w1, G_M19162_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
+G_M19162_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
+            ret     lr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M19162_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M19162_IG05:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
             ldrb    w1, [x21, #0x08]
             ldr     x0, [x19, #0x08]
             ; gcrRegs +[x0]
             ldr     x2, [x19, #0x18]
                        ;; size=12 bbWeight=0.50 PerfScore 4.50
-G_M19162_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M19162_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             br      x2
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M19162_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M19162_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x20]
-            ldrb    w0, [x20, #0x10]
-            strb    wzr, [x20, #0x10]
-            cbz     w0, G_M19162_IG09
-                       ;; size=12 bbWeight=0.50 PerfScore 2.50
-G_M19162_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M19162_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x20]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M19162_IG11
+            beq     G_M19162_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M19162_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M19162_IG09:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x20
             ; gcrRegs +[x1]
@@ -114,7 +99,7 @@ G_M19162_IG10:        ; bbWeight=0.25, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M19162_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M19162_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -132,7 +117,7 @@ G_M19162_IG11:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ldr     x4, [x4, #0x18]
             ; gcrRegs -[x4]
                        ;; size=36 bbWeight=0.50 PerfScore 6.00
-G_M19162_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M19162_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
@@ -140,7 +125,7 @@ G_M19162_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 
-; Total bytes of code 276, prolog size 28, PerfScore 39.88, instruction count 69, allocated bytes for code 276 (MethodHash=f3a5b525) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Action`1[ubyte],System.Object) (FullOpts)
+; Total bytes of code 244, prolog size 28, PerfScore 37.62, instruction count 61, allocated bytes for code 244 (MethodHash=f3a5b525) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Action`1[ubyte],System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -151,7 +136,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 69 (0x00045) Actual length = 276 (0x000114)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 405254.dasm - testout1:SubFunclet107():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 33 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M51184_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M51184_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=0d8a380f) for method testout1:Sub_Funclet_107():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 405366.dasm - testout1:SubFunclet223():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 29 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T05] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T09] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T10] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T11] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T12] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T16] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T17] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
 ;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T06] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T25] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T08] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T03] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T04] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37173_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37173_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=49726eca) for method testout1:Sub_Funclet_223():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+16.00%) : 405292.dasm - testout1:SubFunclet145():int (FullOpts)

@@ -8,84 +8,83 @@
 ; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->   x4        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  x19         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T07] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->   x0         class-hnd exact single-def <<unknown class>>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T09] (  2,  2   )     int  ->   x1         single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T10] (  2,  2   )     int  ->   x1         single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T11] (  2,  2   )     int  ->   x1         single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T12] (  2,  2   )     int  ->   x0         single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T13] (  2,  2   )     int  ->   x0         single-def
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T17] (  2,  2   )     int  ->   x0         single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T18] (  2,  2   )     int  ->   x0         single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
-;* V53 tmp44        [V53,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
 ;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T07] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;* V72 cse1         [V72,T26] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T02] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V74 cse3         [V74,T08] (  2,  2   )     int  ->   x0         "CSE - aggressive"
-;  V75 cse4         [V75,T03] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V76 cse5         [V76,T04] (  2,  2   )     int  ->   x1         "CSE - aggressive"
-;  V77 cse6         [V77,T05] (  3,  3   )    long  ->   x1         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->   x1         "CSE - aggressive"
+;  V72 cse1         [V72,T09] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V73 cse2         [V73,T03] (  4,  4   )     int  ->   x2         "CSE - aggressive"
+;  V74 cse3         [V74,T04] (  4,  4   )     int  ->   x3         "CSE - aggressive"
+;  V75 cse4         [V75,T05] (  4,  4   )     int  ->   x0         "CSE - aggressive"
+;  V76 cse5         [V76,T06] (  4,  4   )    long  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -133,27 +132,35 @@ G_M37238_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     w2, [x1]
             mov     w2, #0xD1FFAB1E
             strh    w2, [x1, #0x04]
-            movn    w1, #12
-            str     w1, [x19, #0x08]
+            movn    w2, #12
+            str     w2, [x19, #0x08]
+            mov     w2, #0xD1FFAB1E
             strh    w2, [x19, #0x0C]
-            ldr     w1, [x19, #0x08]
-            add     w1, w1, #17
-            ldp     w0, w2, [x0, #0x10]
+            ldr     w2, [x19, #0x08]
+            ldp     w0, w3, [x0, #0x10]
             ; gcrRegs -[x0]
-            add     w1, w1, w2
+            add     w4, w2, w3
+            add     w4, w4, w0
+            add     w4, w4, #17
+            ldr     w1, [x1]
+            add     w4, w4, w1
+            add     w1, w4, w2
+            add     w1, w1, w3
+            add     w4, w1, #10
+            add     w4, w4, w0
+            add     w4, w4, w2
+            add     w1, w4, w3
             add     w0, w1, w0
-            add     w0, w0, #3
-            sub     w0, w0, #5
-            add     w0, w0, #3
-            sub     w0, w0, #5
-                       ;; size=176 bbWeight=1 PerfScore 32.50
+            add     w4, w0, #17
+            mov     w0, w4
+                       ;; size=208 bbWeight=1 PerfScore 39.00
 G_M37238_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 200, prolog size 12, PerfScore 39.00, instruction count 50, allocated bytes for code 200 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
+; Total bytes of code 232, prolog size 12, PerfScore 45.50, instruction count 58, allocated bytes for code 232 (MethodHash=bccd6e89) for method testout1:Sub_Funclet_145():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +171,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.windows.arm64.checked.mch

-16 (-6.78%) : 14429.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)

@@ -96,10 +96,8 @@ G_M48965_IG02:        ; bbWeight=1, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M48965_IG03:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M48965_IG04
-            cbz     x1, G_M48965_IG06
-            b       G_M48965_IG05
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M48965_IG05
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -114,11 +112,10 @@ G_M48965_IG04:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0000
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M48965_IG05:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x1, G_M48965_IG06
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M48965_IG06
-            cbz     x4, G_M48965_IG08
-            b       G_M48965_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M48965_IG07
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x4
@@ -132,11 +129,10 @@ G_M48965_IG06:        ; bbWeight=0.50, gcrefRegs=0015 {x0 x2 x4}, byrefRegs=0000
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M48965_IG07:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x4, G_M48965_IG08
             ldr     w5, [x4, #0x08]
-            cbz     w5, G_M48965_IG08
-            cbz     x2, G_M48965_IG10
-            b       G_M48965_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w5, G_M48965_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x4]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -148,16 +144,12 @@ G_M48965_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M48965_IG09:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x1-x2 x4]
+            cbz     x2, G_M48965_IG10
             ldr     w7, [x2, #0x08]
-            cbz     w7, G_M48965_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M48965_IG11
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w7, G_M48965_IG11
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             mov     x2, x4
             ; gcrRegs +[x2]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -167,8 +159,10 @@ G_M48965_IG10:        ; bbWeight=0.50, gcrefRegs=0013 {x0 x1 x4}, byrefRegs=0000
             ; gcrRegs -[x1-x2 x4]
             b       G_M48965_IG12
                        ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs -[x0] +[x1-x2 x4]
+G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0017 {x0 x1 x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x1-x2 x4]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x6, x1, #12
             ; byrRegs +[x6]
@@ -190,14 +184,14 @@ G_M48965_IG11:        ; bbWeight=0.50, gcrefRegs=0016 {x1 x2 x4}, byrefRegs=0001
             blr     x8
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4 x6]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+                       ;; size=44 bbWeight=0.50 PerfScore 4.25
 G_M48965_IG12:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 236, prolog size 12, PerfScore 37.25, instruction count 59, allocated bytes for code 236 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 35.25, instruction count 55, allocated bytes for code 220 (MethodHash=a8d740ba) for method System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -208,7 +202,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-6.67%) : 14427.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -60,10 +60,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -83,21 +81,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             sxtw    w11, w2
             add     x2, x1, #12
@@ -110,13 +106,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             blr     x4
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 18.75, instruction count 30, allocated bytes for code 120 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 17.75, instruction count 28, allocated bytes for code 112 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +123,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-6.34%) : 144297.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -12,20 +12,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->  [fp+0x14]  single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->  x11        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x4        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x4        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x5         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x6        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x7        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x8        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x6        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x4        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x5         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x5         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -33,199 +33,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x4         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x11         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x3         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w11, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w11, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            add     x3, x0, #12
+            ; byrRegs +[x3]
+            ldrh    w4, [x3, w2, UXTW #2]
+            sxtw    w5, w4
+            cmp     w5, #32
+            ccmp    w5, #9, z, ne
+            ccmp    w5, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w5, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x3]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            ; byrRegs +[x3]
+            sxtw    w5, w4
+            cmp     w5, #34
+            beq     G_M24207_IG08
+            cmp     w5, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            mov     w4, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w11, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w5, w2
+            sxtw    w6, w11
+            mov     w7, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w20, UXTW #2]
-            cmp     w4, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w11, w2
+            ble     G_M24207_IG16
+            cmp     w2, w11
+            bhs     G_M24207_IG33
+            ldrh    w8, [x3, w2, UXTW #2]
+            cmp     w8, #92
             bne     G_M24207_IG12
-            mov     w11, #1
-            add     w20, w20, #2
+            mov     w7, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w4, #61
-            beq     G_M24207_IG19
-            cmp     w4, #44
-            beq     G_M24207_IG19
-            cmp     w4, #34
-            beq     G_M24207_IG29
-            cmp     w4, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w4, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, #61
             beq     G_M24207_IG18
+            cmp     w8, #44
+            beq     G_M24207_IG18
+            cmp     w8, #34
+            beq     G_M24207_IG27
+            cmp     w8, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w8, w4
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w2, w11
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sxtw    w6, w2
+            add     w2, w6, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cbnz    w4, G_M24207_IG24
+            sub     w6, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref
+            sub     w6, w6, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w4, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=8000A {x1 x3 x19}, byref, isz
+            cmp     w6, w5
+            blt     G_M24207_IG21
+            cmp     w6, w11
+            bhs     G_M24207_IG33
...

+8 (+5.71%) : 148860.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)

@@ -17,7 +17,7 @@
 ;
 ; Lcl frame size = 0
 
-G_M5214_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M5214_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
@@ -30,7 +30,7 @@ G_M5214_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
             ; gcrRegs +[x1]
             mov     x21, x1
             ; gcrRegs +[x21]
-            cbz     x21, G_M5214_IG04
+            cbz     x21, G_M5214_IG06
             adrp    x22, [HIGH RELOC #0xD1FFAB1E]
             add     x22, x22, [LOW RELOC #0xD1FFAB1E]
                        ;; size=16 bbWeight=1 PerfScore 2.50
@@ -44,9 +44,9 @@ G_M5214_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0-x1]
-            cbnz    w0, G_M5214_IG06
+            cbnz    w0, G_M5214_IG04
             tst     w20, #255
-            beq     G_M5214_IG04
+            beq     G_M5214_IG06
             mov     x0, x21
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -57,10 +57,11 @@ G_M5214_IG03:        ; bbWeight=4, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}
             mov     x21, x0
             ; gcrRegs +[x21]
             cbnz    x21, G_M5214_IG03
-                       ;; size=60 bbWeight=4 PerfScore 70.00
+            b       G_M5214_IG08
+                       ;; size=64 bbWeight=4 PerfScore 74.00
 G_M5214_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x19 x21]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5214_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -69,7 +70,7 @@ G_M5214_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 G_M5214_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5214_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
@@ -77,8 +78,11 @@ G_M5214_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M5214_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M5214_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 140, prolog size 16, PerfScore 81.50, instruction count 35, allocated bytes for code 140 (MethodHash=6d0eeba1) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 148, prolog size 16, PerfScore 86.00, instruction count 37, allocated bytes for code 148 (MethodHash=6d0eeba1) for method Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +93,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+8.33%) : 54282.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)

@@ -17,20 +17,20 @@
 ;
 ; Lcl frame size = 0
 
-G_M12753_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M12753_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M12753_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M12753_IG04
+            cbz     x0, G_M12753_IG06
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldrb    w11, [x0, #0x12]
             cmp     w11, #117
-            beq     G_M12753_IG06
+            beq     G_M12753_IG04
             cmp     w11, #188
-            bne     G_M12753_IG04
+            bne     G_M12753_IG06
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -38,17 +38,9 @@ G_M12753_IG03:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
             cbnz    x0, G_M12753_IG03
-                       ;; size=44 bbWeight=4 PerfScore 60.00
-G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, xzr
-            ; gcrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M12753_IG08
+                       ;; size=48 bbWeight=4 PerfScore 64.00
+G_M12753_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
@@ -56,12 +48,25 @@ G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ; gcr arg pop 0
             ldr     x0, [x0, #0x20]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M12753_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            mov     x0, xzr
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M12753_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M12753_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            b       G_M12753_IG06
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 96, prolog size 8, PerfScore 68.75, instruction count 24, allocated bytes for code 96 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 73.25, instruction count 26, allocated bytes for code 104 (MethodHash=9540ce2e) for method Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+9.76%) : 3327.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)

@@ -9,52 +9,55 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )   byref  ->   x0         this single-def
+;  V00 this         [V00,T00] (  5,  2   )   byref  ->   x0         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T03] (  4,  3.50)     int  ->  x11        
+;  V02 loc0         [V02,T03] (  4,  0   )     int  ->  x11        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp2         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp3         [V06,T01] (  5,  5   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp4         [V07,T02] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V06 tmp3         [V06,T01] (  5,  1   )   byref  ->  [fp+0x18]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp4         [V07,T02] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp5         [V08,T05] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
-G_M34588_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            str     x19, [sp, #0x18]
+G_M34588_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            stp     fp, lr, [sp, #-0x30]!
+            str     x19, [sp, #0x28]
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
-G_M34588_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
-            ; byrRegs +[x0-x1]
+            str     x1, [fp, #0x18]    // [V06 tmp3]
+            ; GC ptr vars +{V06}
+            str     w2, [fp, #0x24]    // [V07 tmp4]
+                       ;; size=20 bbWeight=0 PerfScore 0.00
+G_M34588_IG02:        ; bbWeight=0, gcVars=0000000000000002 {V06}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
+            ; byrRegs +[x0]
+            ldr     w2, [fp, #0x24]    // [V07 tmp4]
             cmp     w2, #4
-            bne     G_M34588_IG06
+            bne     G_M34588_IG04
+            ldr     x1, [fp, #0x18]    // [V06 tmp3]
+            ; byrRegs +[x1]
             ldr     w11, [x1, #0x0C]
             movn    w2, #0xD1FFAB1E LSL #16
             tst     w11, w2
-            bne     G_M34588_IG06
-                       ;; size=24 bbWeight=1 PerfScore 6.50
-G_M34588_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref, isz
+            bne     G_M34588_IG04
             and     w2, w11, #0xD1FFAB1E
             cmp     w2, #0xD1FFAB1E, LSL #12
-            bhi     G_M34588_IG06
-                       ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M34588_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {x0 x1}, byref
+            bhi     G_M34588_IG04
             ldp     w2, w3, [x1]
             add     x2, x2, x3,  LSL #32
             str     x2, [x0, #0x08]
             ldr     w1, [x1, #0x08]
             ; byrRegs -[x1]
             stp     w11, w1, [x0]
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M34588_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=64 bbWeight=0 PerfScore 0.00
+G_M34588_IG03:        ; bbWeight=0, epilog, nogc, extend
+            ldr     x19, [sp, #0x28]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M34588_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; byrRegs -[x0]
+            ; GC ptr vars -{V06}
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x11]
@@ -86,7 +89,7 @@ G_M34588_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 12, PerfScore 23.00, instruction count 41, allocated bytes for code 164 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
+; Total bytes of code 180, prolog size 12, PerfScore 0.00, instruction count 45, allocated bytes for code 180 (MethodHash=290178e3) for method System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,7 +100,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -105,8 +108,8 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    D0 05       save_reg X#0 Z#5 (0x05); str x19, [sp, #40]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
     E4          end

libraries.pmi.windows.arm64.checked.mch

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

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

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

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

-28 (-6.93%) : 126336.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)

@@ -12,23 +12,22 @@
 ;  V01 arg1         [V01,T00] (  9, 12.50)     ref  ->  x19         class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator>
 ;  V02 loc0         [V02,T11] (  3,  1.50)     ref  ->  x15         class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp1         [V04,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V05 tmp2         [V05,T03] (  3,  3   )     ref  ->  x12         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V06 tmp3         [V06,T06] (  2,  2   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V07 tmp4         [V07,T07] (  2,  2   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V08 tmp5         [V08,T08] (  2,  2   )     ref  ->  x14         class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;  V09 tmp6         [V09,T09] (  2,  2   )     ref  ->  x14         class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V11 tmp8         [V11,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp8         [V11,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V12 tmp9         [V12,T05] (  3,  2.96)     ref  ->   x1         class-hnd "Inlining Arg" <<unknown class>>
 ;  V13 tmp10        [V13,T10] (  2,  1.96)     ref  ->   x2         class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
 ;  V14 tmp11        [V14,T04] (  3,  3   )     ref  ->  x14         single-def "arr expr"
 ;  V15 cse0         [V15,T02] (  4, 10.50)     ref  ->  x21         "CSE - aggressive"
 ;  V16 cse1         [V16,T12] (  3,  1.50)     ref  ->  x14         "CSE - moderate"
 ;  V17 cse2         [V17,T13] (  3,  1.50)     ref  ->  x14         "CSE - moderate"
-;  V18 cse3         [V18,T15] (  3,  1.50)     int  ->  x12         "CSE - moderate"
-;  V19 cse4         [V19,T14] (  3,  1.50)     ref  ->   x0         "CSE - moderate"
-;  V20 cse5         [V20,T16] (  3,  1.48)     int  ->   x4         "CSE - moderate"
+;  V18 cse3         [V18,T14] (  3,  1.50)     ref  ->   x0         "CSE - moderate"
+;  V19 cse4         [V19,T15] (  3,  1.48)     int  ->   x4         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -79,33 +78,19 @@ G_M54730_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
             ldr     x14, [x20, #0x20]
             ; gcrRegs +[x14]
             cmp     x14, x15
-            beq     G_M54730_IG08
-            cbz     x14, G_M54730_IG08
+            beq     G_M54730_IG06
+            cbz     x14, G_M54730_IG06
             ldr     x14, [x20, #0x48]
             mov     x12, x14
             ; gcrRegs +[x12]
-            cbz     x12, G_M54730_IG08
+            cbz     x12, G_M54730_IG06
             ldr     w12, [x12, #0x10]
             ; gcrRegs -[x12]
-            cbz     w12, G_M54730_IG08
-            cbnz    w12, G_M54730_IG07
-                       ;; size=56 bbWeight=0.50 PerfScore 11.25
-G_M54730_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x14-x15 x19-x20]
-            movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; gcr arg pop 0
-            brk_windows #0
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M54730_IG07:        ; bbWeight=0.50, gcrefRegs=18C000 {x14 x15 x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x14-x15 x19-x20]
+            cbz     w12, G_M54730_IG06
             ldr     x14, [x14, #0x08]
             ldr     w12, [x14, #0x08]
             cmp     w12, #0
-            bls     G_M54730_IG17
+            bls     G_M54730_IG15
             ldr     x14, [x14, #0x10]
             ldr     x14, [x14, #0x08]
             ldr     x14, [x14, #0x08]
@@ -114,18 +99,18 @@ G_M54730_IG07:        ; bbWeight=0.50, gcrefRegs=18C000 {x14 x15 x19 x20}, byref
             ; gcrRegs -[x14]
             cmp     w14, #3
             bne     G_M54730_IG03
-                       ;; size=44 bbWeight=0.50 PerfScore 12.00
-G_M54730_IG08:        ; bbWeight=0.50, gcrefRegs=188000 {x15 x19 x20}, byrefRegs=0000 {}, byref
+                       ;; size=96 bbWeight=0.50 PerfScore 22.75
+G_M54730_IG06:        ; bbWeight=0.50, gcrefRegs=188000 {x15 x19 x20}, byrefRegs=0000 {}, byref
             add     x14, x20, #32
             ; byrRegs +[x14]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            b       G_M54730_IG13
+            b       G_M54730_IG11
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M54730_IG09:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG07:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x21]
-            cbnz    x21, G_M54730_IG10
+            cbnz    x21, G_M54730_IG08
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator:FindNextTypeForInstanceMethods():ubyte:this
@@ -135,9 +120,9 @@ G_M54730_IG09:        ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
             blr     x1
             ; gcrRegs -[x0 x21]
             ; gcr arg pop 0
-            cbz     w0, G_M54730_IG11
+            cbz     w0, G_M54730_IG09
                        ;; size=32 bbWeight=2 PerfScore 16.00
-G_M54730_IG10:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M54730_IG08:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator:FindNextMethod():ubyte:this
@@ -148,15 +133,15 @@ G_M54730_IG10:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x0]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 12.00
-G_M54730_IG11:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG09:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x21, [x19, #0x38]
             ; gcrRegs +[x21]
             ldr     x0, [x20, #0x20]
             ; gcrRegs +[x0]
             cmp     x21, x0
-            beq     G_M54730_IG09
+            beq     G_M54730_IG07
                        ;; size=16 bbWeight=4 PerfScore 30.00
-G_M54730_IG12:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG10:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x19, #0x30]
             ; gcrRegs +[x0]
@@ -176,16 +161,16 @@ G_M54730_IG12:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
             ; byrRegs -[x14]
             cbz     x0, G_M54730_IG03
                        ;; size=32 bbWeight=0.50 PerfScore 4.00
-G_M54730_IG13:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x1, [x20, #0x90]
             ; gcrRegs +[x1]
             ldr     x2, [x20, #0x20]
             ; gcrRegs +[x2]
             ldr     w4, [x1, #0x10]
-            cbz     w4, G_M54730_IG15
+            cbz     w4, G_M54730_IG13
                        ;; size=16 bbWeight=0.50 PerfScore 5.00
-G_M54730_IG14:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M54730_IG12:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x1, #0x08]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -198,25 +183,25 @@ G_M54730_IG14:        ; bbWeight=0.48, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRe
             blr     x5
             ; gcrRegs -[x1-x2]
             ; gcr arg pop 0
-            tbz     w0, #31, G_M54730_IG11
+            tbz     w0, #31, G_M54730_IG09
                        ;; size=44 bbWeight=0.48 PerfScore 5.52
-G_M54730_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M54730_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19-x20]
             mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M54730_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M54730_IG14:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M54730_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54730_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 404, prolog size 24, PerfScore 117.02, instruction count 101, allocated bytes for code 404 (MethodHash=ad392a35) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
+; Total bytes of code 376, prolog size 24, PerfScore 116.52, instruction count 94, allocated bytes for code 376 (MethodHash=ad392a35) for method Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -227,7 +212,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
+  Function Length   : 94 (0x0005e) Actual length = 376 (0x000178)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+8.70%) : 254956.dasm - System.Collections.Immutable.ImmutableList1+Node[System.Numerics.Vector1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)

@@ -14,15 +14,16 @@
 ;  V03 tmp1         [V03,T04] (  2,  1   )     int  ->   x2        
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V05 tmp3         [V05,T05] (  2,  0   )     ref  ->   x0         "argument with side effect"
-;  V06 cse0         [V06,T02] (  4,  3   )     int  ->   x3         "CSE - aggressive"
+;  V06 cse0         [V06,T02] (  4,  3   )     int  ->  x19         "CSE - aggressive"
 ;  V07 cse1         [V07,T03] (  3,  2.50)     ref  ->   x2         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M44792_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x10]!
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M44792_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             tbnz    w1, #31, G_M44792_IG11
@@ -37,8 +38,8 @@ G_M44792_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
 G_M44792_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x0, #0x08]
             ; gcrRegs +[x2]
-            ldr     w3, [x2, #0x18]
-            cmp     w1, w3
+            ldr     w19, [x2, #0x18]
+            cmp     w1, w19
             bge     G_M44792_IG07
                        ;; size=16 bbWeight=1 PerfScore 7.50
 G_M44792_IG05:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
@@ -52,14 +53,15 @@ G_M44792_IG05:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             ldr     x2, [x2]
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
 G_M44792_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M44792_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            cmp     w1, w3
+            cmp     w1, w19
             ble     G_M44792_IG09
-            sub     w1, w1, w3
+            sub     w1, w1, w19
             sub     w1, w1, #1
             ldr     x0, [x0, #0x10]
             movz    x2, #0xD1FFAB1E      // code for System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
@@ -69,17 +71,19 @@ G_M44792_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     wzr, [x0]
                        ;; size=40 bbWeight=0.50 PerfScore 6.50
 G_M44792_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             br      x2
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M44792_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ldr     q0, [x0, #0x20]
                        ;; size=4 bbWeight=0.50 PerfScore 1.50
 G_M44792_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M44792_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             mov     w0, #0xD1FFAB1E
@@ -100,18 +104,18 @@ G_M44792_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 8, PerfScore 26.25, instruction count 46, allocated bytes for code 184 (MethodHash=57dd5107) for method System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
+; Total bytes of code 200, prolog size 12, PerfScore 30.25, instruction count 50, allocated bytes for code 200 (MethodHash=57dd5107) for method System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 3
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 46 (0x0002e) Actual length = 184 (0x0000b8)
+  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -125,7 +129,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
+    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+12 (+10.00%) : 54713.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:g_makeConjunct|410(System.String,System.String):System.String (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->   x0         class-hnd <System.String>
+;  V05 loc3         [V05,T02] (  4,  2.50)     ref  ->  registers   class-hnd <System.String>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V08 tmp2         [V08,T03] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
@@ -28,43 +28,43 @@ G_M24419_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M24419_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            cbz     x0, G_M24419_IG06
+            cbz     x0, G_M24419_IG05
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M24419_IG03:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
             cmp     w2, #1
-            bne     G_M24419_IG06
+            bne     G_M24419_IG05
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
 G_M24419_IG04:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x0, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG06
+            beq     G_M24419_IG08
                        ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x0, x1
-            ; gcrRegs +[x0]
-            b       G_M24419_IG11
-                       ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24419_IG06:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG05:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             cbz     x1, G_M24419_IG10
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG07:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG06:        ; bbWeight=0.25, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x1, #0x08]
             cmp     w2, #1
             bne     G_M24419_IG10
                        ;; size=12 bbWeight=0.25 PerfScore 1.12
-G_M24419_IG08:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
+G_M24419_IG07:        ; bbWeight=0.12, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldrh    w2, [x1, #0x0C]
             cmp     w2, #95
-            bne     G_M24419_IG10
-                       ;; size=12 bbWeight=0.12 PerfScore 0.56
-G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
+            beq     G_M24419_IG09
+            b       G_M24419_IG10
+                       ;; size=16 bbWeight=0.12 PerfScore 0.69
+G_M24419_IG08:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
             b       G_M24419_IG11
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
+G_M24419_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x1] +[x0]
+            mov     x1, x0
             ; gcrRegs +[x1]
+            b       G_M24419_IG11
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
             mov     x2, x1
             ; gcrRegs +[x2]
             movz    x1, #0xD1FFAB1E
@@ -77,13 +77,20 @@ G_M24419_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-                       ;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            mov     x1, x0
+            ; gcrRegs +[x1]
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M24419_IG11:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            mov     x0, x1
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=1 PerfScore 0.50
+G_M24419_IG12:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 13.38, instruction count 30, allocated bytes for code 120 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 14.25, instruction count 33, allocated bytes for code 132 (MethodHash=b70da09c) for method Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -94,7 +101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+10.00%) : 158376.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNullsubyte:System.Collections.Generic.List`1ubyte

@@ -8,8 +8,8 @@
 ; 1 inlinees with PGO data; 7 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8, 24   )     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
-;  V01 loc0         [V01,T03] (  9, 19   )     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
+;  V00 arg0         [V00,T02] (  8, 20.50)     ref  ->  x19         class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
+;  V01 loc0         [V01,T04] (  9, 15.50)     ref  ->  x20         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ubyte]>
 ;  V03 loc2         [V03,T11] (  3,  4.00)   ubyte  ->   x1        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,15 +21,15 @@
 ;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ubyte]>
 ;* V12 tmp8         [V12,T15] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp9         [V13,T01] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
+;  V13 tmp9         [V13,T00] (  6, 21   )     int  ->  x22         "field V02._index (fldOffset=0x8)" P-INDEP
 ;  V14 tmp10        [V14,T06] (  2,  9   )     int  ->  x21         single-def "field V02._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T05] (  2,  6   )   ubyte  ->   x0         "field V02._current (fldOffset=0x10)" P-INDEP
 ;  V16 tmp12        [V16,T13] (  2,  2   )     ref  ->   x0         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V07._index (fldOffset=0x8)" P-INDEP
 ;  V18 tmp14        [V18,T14] (  2,  2   )     int  ->  x21         single-def "field V07._version (fldOffset=0xc)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07._current (fldOffset=0x10)" P-INDEP
-;  V20 tmp16        [V20,T02] (  3, 24   )     ref  ->   x0         "arr expr"
-;  V21 cse0         [V21,T04] (  3, 12   )     int  ->  x23         "CSE - aggressive"
+;  V20 tmp16        [V20,T01] (  3, 24   )     ref  ->   x0         "arr expr"
+;  V21 cse0         [V21,T03] (  3, 12   )     int  ->  x23         "CSE - aggressive"
 ;  V22 cse1         [V22,T12] (  2,  4   )     int  ->   x3         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
@@ -103,7 +103,7 @@ G_M37290_IG05:        ; bbWeight=0.30, gcrefRegs=180000 {x19 x20}, byrefRegs=000
 G_M37290_IG06:        ; bbWeight=8, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0x14]
             cmp     w21, w0
-            bne     G_M37290_IG11
+            bne     G_M37290_IG14
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w23, [x19, #0x10]
@@ -113,7 +113,7 @@ G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x08]
             cmp     w22, w1
-            bhs     G_M37290_IG10
+            bhs     G_M37290_IG13
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
@@ -122,25 +122,41 @@ G_M37290_IG07:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             add     w22, w22, #1
             b       G_M37290_IG03
                        ;; size=44 bbWeight=4 PerfScore 68.00
-G_M37290_IG08:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M37290_IG08:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x20, #0x10]
             cmp     w0, w23
-            csel    x0, x19, x20, eq
+            beq     G_M37290_IG11
+                       ;; size=12 bbWeight=4 PerfScore 18.00
+G_M37290_IG09:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
+            mov     x0, x20
             ; gcrRegs +[x0]
-                       ;; size=12 bbWeight=4 PerfScore 16.00
-G_M37290_IG09:        ; bbWeight=4, epilog, nogc, extend
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=4 PerfScore 24.00
-G_M37290_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x19-x20]
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x20] +[x19]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37290_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M37290_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0 x19]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M37290_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37290_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -150,22 +166,25 @@ G_M37290_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 280, prolog size 24, PerfScore 199.60, instruction count 70, allocated bytes for code 280 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
+; Total bytes of code 308, prolog size 24, PerfScore 184.10, instruction count 77, allocated bytes for code 308 (MethodHash=4e806e55) for method Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 2
-  Epilog Count      : 1
+  Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 70 (0x00046) Actual length = 280 (0x000118)
+  Function Length   : 77 (0x0004d) Actual length = 308 (0x000134)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Epilog Start Index         : 1 (0x01)
+  ---- Scope 1
+  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+  Epilog Start Index         : 1 (0x01)
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----

libraries_tests.run.windows.arm64.Release.mch

-44 (-18.64%) : 95926.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1System.DateTime

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M27952_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M27952_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M27952_IG07
+            cbz     x20, G_M27952_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M27952_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M27952_IG07
-            cmp     x1, x21
-            beq     G_M27952_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M27952_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M27952_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M27952_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M27952_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M27952_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M27952_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     x1, [x20, #0x08]
             str     x1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M27952_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M27952_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M27952_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M27952_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27952_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M27952_IG11
+            beq     G_M27952_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -103,7 +86,7 @@ G_M27952_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M27952_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -119,15 +102,14 @@ G_M27952_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M27952_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M27952_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 236, prolog size 24, PerfScore 33.12, instruction count 59, allocated bytes for code 236 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 27.25, instruction count 48, allocated bytes for code 192 (MethodHash=edd892cf) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -138,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -152,9 +134,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-18.64%) : 96020.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,92 +10,75 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     w1, [x20, #0x08]
             str     w1, [x0, #0x08]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=24 bbWeight=0.50 PerfScore 3.25
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -103,7 +86,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -119,15 +102,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 236, prolog size 24, PerfScore 33.12, instruction count 59, allocated bytes for code 236 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 192, prolog size 20, PerfScore 27.25, instruction count 48, allocated bytes for code 192 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -138,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -152,9 +134,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-18.33%) : 97305.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,93 +10,76 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
             ldr     w1, [x20, #0x08]
             neg     w1, w1
             str     w1, [x0, #0x08]
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -104,7 +87,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -120,15 +103,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 240, prolog size 24, PerfScore 33.38, instruction count 60, allocated bytes for code 240 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 196, prolog size 20, PerfScore 27.50, instruction count 49, allocated bytes for code 196 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -139,7 +121,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -153,9 +135,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

+8 (+9.09%) : 278888.dasm - System.IO.FileSystemInfo:get_NormalizedPath():System.String:this (Tier1)

@@ -16,12 +16,12 @@
 ;  V04 tmp3         [V04,T03] (  3,  3   )  ushort  ->   x1         "Inline stloc first use temp"
 ;* V05 tmp4         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 cse0         [V06,T05] (  2,  2   )     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T02] (  4,  3.08)     ref  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T02] (  4,  3   )     ref  ->   x0         "CSE - aggressive"
 ;  V08 cse2         [V08,T04] (  3,  2.99)     int  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
-G_M52690_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M52690_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
@@ -35,23 +35,17 @@ G_M52690_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
 G_M52690_IG03:        ; bbWeight=1.00, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x1, #0x08]
             cbz     w2, G_M52690_IG05
-                       ;; size=8 bbWeight=1.00 PerfScore 3.99
-G_M52690_IG04:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            sub     w2, w2, #1
-            add     x1, x1, #12
+            b       G_M52690_IG08
+                       ;; size=12 bbWeight=1.00 PerfScore 4.98
+G_M52690_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldrh    w1, [x1, w2, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #32
-            beq     G_M52690_IG06
             cmp     w1, #46
             beq     G_M52690_IG06
-                       ;; size=28 bbWeight=1 PerfScore 7.00
-G_M52690_IG05:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M52690_IG05:        ; bbWeight=0.92, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
             ldp     fp, lr, [sp], #0x10
             ret     lr
-                       ;; size=8 bbWeight=1 PerfScore 2.00
+                       ;; size=8 bbWeight=0.92 PerfScore 1.84
 G_M52690_IG06:        ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             movz    x1, #0xD1FFAB1E      // code for System.IO.PathInternal:EnsureExtendedPrefix(System.String):System.String
             movk    x1, #0xD1FFAB1E LSL #16
@@ -63,8 +57,20 @@ G_M52690_IG07:        ; bbWeight=0.08, epilog, nogc, extend
             br      x1
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0.08 PerfScore 0.16
+G_M52690_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x1]
+            sub     w2, w2, #1
+            add     x1, x1, #12
+            ; gcrRegs -[x1]
+            ; byrRegs +[x1]
+            ldrh    w1, [x1, w2, UXTW #2]
+            ; byrRegs -[x1]
+            cmp     w1, #32
+            beq     G_M52690_IG06
+            b       G_M52690_IG04
+                       ;; size=24 bbWeight=1 PerfScore 6.50
 
-; Total bytes of code 88, prolog size 8, PerfScore 19.49, instruction count 22, allocated bytes for code 88 (MethodHash=eaa1322d) for method System.IO.FileSystemInfo:get_NormalizedPath():System.String:this (Tier1)
+; Total bytes of code 96, prolog size 8, PerfScore 21.33, instruction count 24, allocated bytes for code 96 (MethodHash=eaa1322d) for method System.IO.FileSystemInfo:get_NormalizedPath():System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -75,7 +81,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+9.52%) : 54925.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.25)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.19)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.10)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.03 PerfScore 1.03
-G_M207_IG03:        ; bbWeight=0.06, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.06 PerfScore 0.35
-G_M207_IG04:        ; bbWeight=0.06, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.06 PerfScore 0.41
+G_M207_IG05:        ; bbWeight=0.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.06 PerfScore 0.12
-G_M207_IG05:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.03 PerfScore 0.13
+G_M207_IG06:        ; bbWeight=0.03, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.03 PerfScore 0.44
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.03 PerfScore 0.35
 
-; Total bytes of code 84, prolog size 8, PerfScore 3.44, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 3.42, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+9.52%) : 152571.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T01] (  7,  2.89)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V01 loc0         [V01,T01] (  7,  2.67)     ref  ->   x0         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
 ;  V02 loc1         [V02,T02] (  3,  0.33)  ushort  ->   x1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -25,23 +25,28 @@ G_M207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M207_IG02:        ; bbWeight=1.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            cbz     x0, G_M207_IG04
+            cbnz    x0, G_M207_IG04
                        ;; size=4 bbWeight=1.11 PerfScore 1.11
-G_M207_IG03:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M207_IG03:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M207_IG04:        ; bbWeight=0.22, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             ; gcrRegs +[x1]
             cmp     x0, x1
-            bne     G_M207_IG05
-                       ;; size=24 bbWeight=0.22 PerfScore 1.33
-G_M207_IG04:        ; bbWeight=0.22, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            beq     G_M207_IG03
+            b       G_M207_IG06
+                       ;; size=28 bbWeight=0.22 PerfScore 1.56
+G_M207_IG05:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.22 PerfScore 0.44
-G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [x0, #0x08]
+            b       G_M207_IG02
+                       ;; size=8 bbWeight=0.11 PerfScore 0.44
+G_M207_IG06:        ; bbWeight=0.11, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x0, #0x10]
             ; gcrRegs +[x1]
             ldrh    w1, [x1, #0x0C]
@@ -51,12 +56,11 @@ G_M207_IG05:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0001
             mov     w3, #0xD1FFAB1E
             cmp     w2, #2
             ccmp    w1, w3, z, hi
-            beq     G_M207_IG04
-            ldr     x0, [x0, #0x08]
-            b       G_M207_IG02
-                       ;; size=40 bbWeight=0.11 PerfScore 1.50
+            beq     G_M207_IG03
+            b       G_M207_IG05
+                       ;; size=36 bbWeight=0.11 PerfScore 1.17
 
-; Total bytes of code 84, prolog size 8, PerfScore 5.89, instruction count 21, allocated bytes for code 84 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
+; Total bytes of code 92, prolog size 8, PerfScore 5.78, instruction count 23, allocated bytes for code 92 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-44 (-18.33%) : 104861.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,95 +10,78 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
-;  V03 loc0         [V03,T08] (  2,  1   )     int  ->  x19         single-def
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V03 loc0         [V03,T06] (  2,  1   )     int  ->  x19         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T11] (  0,  0   )     int  ->  zero-ref   
+;* V05 tmp1         [V05,T09] (  0,  0   )     int  ->  zero-ref   
 ;  V06 tmp2         [V06,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V07 tmp3         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V07 tmp3         [V07,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V08 tmp4         [V08,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <<unknown class>>
-;  V10 tmp6         [V10,T09] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V11 tmp7         [V11,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V12 cse0         [V12,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V13 cse1         [V13,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V14 cse2         [V14,T10] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V10 tmp6         [V10,T07] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V11 tmp7         [V11,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V12 cse0         [V12,T08] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
             ldr     w0, [x20, #0x08]
             sub     w19, w0, #1
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs -[x20] +[x0]
             ; gcr arg pop 0
             str     w19, [x0, #0x08]
-                       ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19-x20]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -106,7 +89,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -122,15 +105,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 240, prolog size 24, PerfScore 33.38, instruction count 60, allocated bytes for code 240 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 196, prolog size 20, PerfScore 27.50, instruction count 49, allocated bytes for code 196 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -141,7 +123,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -155,9 +137,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-44 (-18.03%) : 104657.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)

@@ -10,58 +10,54 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T10] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T08] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T03] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V06 tmp3         [V06,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;  V07 tmp4         [V07,T02] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V08 tmp5         [V08,T08] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V09 tmp6         [V09,T05] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V10 cse0         [V10,T04] (  5,  2.25)    long  ->  x21         "CSE - aggressive"
-;  V11 cse1         [V11,T06] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V12 cse2         [V12,T09] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;  V08 tmp5         [V08,T06] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V09 tmp6         [V09,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V10 cse0         [V10,T07] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M16591_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x18]
-            str     x21, [sp, #0x28]
+            stp     fp, lr, [sp, #-0x20]!
+            stp     x19, x20, [sp, #0x10]
             mov     fp, sp
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M16591_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M16591_IG07
+            cbz     x20, G_M16591_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M16591_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x1, x21
-            bne     G_M16591_IG07
-            cmp     x1, x21
-            beq     G_M16591_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M16591_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M16591_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M16591_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldrb    w0, [x19, #0x10]
+            strb    wzr, [x19, #0x10]
+            cbz     w0, G_M16591_IG08
+            mov     x0, xzr
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M16591_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            mov     x0, x21
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=28 bbWeight=0.25 PerfScore 1.62
-G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            mov     x0, x21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -69,35 +65,22 @@ G_M16591_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             cmp     w1, #0
             cset    x1, eq
             strb    w1, [x0, #0x08]
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M16591_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+                       ;; size=32 bbWeight=0.50 PerfScore 3.75
+G_M16591_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M16591_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x19]
-            ldrb    w0, [x19, #0x10]
-            strb    wzr, [x19, #0x10]
-            cbz     w0, G_M16591_IG09
-            mov     x0, xzr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M16591_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
-            ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M16591_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M16591_IG11
+            beq     G_M16591_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -105,7 +88,7 @@ G_M16591_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M16591_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -121,15 +104,14 @@ G_M16591_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M16591_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x30
+G_M16591_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 244, prolog size 24, PerfScore 33.62, instruction count 61, allocated bytes for code 244 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
+; Total bytes of code 200, prolog size 20, PerfScore 27.75, instruction count 50, allocated bytes for code 200 (MethodHash=319bbf30) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -140,7 +122,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
+  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -154,9 +136,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
-    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    E4          end
+    E4          end
     E4          end
     E4          end
 

-32 (-15.69%) : 25371.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)

@@ -10,16 +10,14 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Runtime.CompilerServices.Closure>
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  x19         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
-;  V02 arg2         [V02,T01] (  7,  4.75)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  x20         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T09] (  0,  0   )     int  ->  zero-ref   
+;* V04 tmp1         [V04,T07] (  0,  0   )     int  ->  zero-ref   
 ;  V05 tmp2         [V05,T02] (  3,  2.50)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;* V06 tmp3         [V06,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V07 tmp4         [V07,T07] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
-;  V08 tmp5         [V08,T04] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V09 cse0         [V09,T03] (  4,  1.75)    long  ->   x0         "CSE - moderate"
-;  V10 cse1         [V10,T05] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V11 cse2         [V11,T08] (  2,  1   )    long  ->   x1         "CSE - moderate"
+;* V06 tmp3         [V06,T04] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V07 tmp4         [V07,T05] (  2,  1   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
+;  V08 tmp5         [V08,T03] (  3,  1.50)     ref  ->   x3         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V09 cse0         [V09,T06] (  2,  1   )    long  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -33,59 +31,46 @@ G_M44930_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x20]
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M44930_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            cbz     x20, G_M44930_IG07
+            cbz     x20, G_M44930_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M44930_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x1, x0
-            bne     G_M44930_IG07
-            cmp     x1, x0
-            beq     G_M44930_IG05
-                       ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M44930_IG04:        ; bbWeight=0.25, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            mov     x1, x20
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for CORINFO_HELP_UNBOX
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-                       ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M44930_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ldr     w0, [x20, #0x08]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+            ldr     x0, [x20]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
+            beq     G_M44930_IG06
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M44930_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x19, #0x10]
             strb    wzr, [x19, #0x10]
-            cbz     w0, G_M44930_IG09
+            cbz     w0, G_M44930_IG08
             mov     w0, wzr
                        ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M44930_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44930_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M44930_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x19]
+            ldr     w0, [x20, #0x08]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M44930_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x19]
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
-            beq     G_M44930_IG11
+            beq     G_M44930_IG10
                        ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG09:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x1
             mov     x1, x19
             ; gcrRegs +[x1]
@@ -93,7 +78,7 @@ G_M44930_IG10:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.25 PerfScore 0.50
-G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M44930_IG10:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -109,14 +94,14 @@ G_M44930_IG11:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
                        ;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M44930_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M44930_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             br      x3
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 204, prolog size 20, PerfScore 27.75, instruction count 51, allocated bytes for code 204 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
+; Total bytes of code 172, prolog size 20, PerfScore 25.50, instruction count 43, allocated bytes for code 172 (MethodHash=a680507d) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +112,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+6.67%) : 129992.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)

@@ -56,12 +56,11 @@ G_M4885_IG05:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {},
             ldr     w4, [x2, #0x08]
             cmp     w4, w3
             blo     G_M4885_IG04
-            add     x2, x2, #16
+            b       G_M4885_IG08
+                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             ; gcrRegs -[x2]
             ; byrRegs +[x2]
-            sxtw    w4, w3
-                       ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M4885_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
             mov     w3, w4
             add     x0, x0, #28
             ; gcrRegs -[x0]
@@ -77,8 +76,16 @@ G_M4885_IG07:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
+G_M4885_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x0 x2]
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+            sxtw    w4, w3
+            b       G_M4885_IG06
+                       ;; size=12 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 120, prolog size 8, PerfScore 20.75, instruction count 30, allocated bytes for code 120 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
+; Total bytes of code 128, prolog size 8, PerfScore 21.75, instruction count 32, allocated bytes for code 128 (MethodHash=8f5cecea) for method System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +96,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+11.48%) : 69734.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsAction`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M57052_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M57052_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M57052_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M57052_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M57052_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M57052_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M57052_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M57052_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M57052_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M57052_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M57052_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M57052_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M57052_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M57052_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M57052_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M57052_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M57052_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M57052_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M57052_IG07
+            b       G_M57052_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M57052_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M57052_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M57052_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M57052_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M57052_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M57052_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M57052_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M57052_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M57052_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M57052_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M57052_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

+28 (+11.48%) : 71176.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (FullOpts)

@@ -8,114 +8,95 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T01] (  5,  4   )    long  ->  [fp+0x18]  EH-live single-def
+;  V00 TypeCtx      [V00,T00] (  8,  3   )    long  ->  [fp+0x28]  EH-live single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[int]>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-;  V03 loc0         [V03,T07] (  5,  3   )     ref  ->  [fp+0x10]  do-not-enreg[M] class-hnd EH-live <System.Exception>
+;  V02 arg1         [V02,T01] (  4,  2   )     ref  ->   x3         class-hnd single-def <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+;  V03 loc0         [V03,T06] (  5,  0   )     ref  ->  [fp+0x18]  do-not-enreg[M] class-hnd EH-live <System.Exception>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  3,  4.50)     ref  ->   x1         single-def "CASTCLASS eval op1"
-;  V09 tmp2         [V09,T08] (  3,  2.50)    long  ->   x2         "fgMakeTemp is creating a new local variable"
-;  V10 tmp3         [V10,T00] (  5,  7.50)     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
-;  V11 tmp4         [V11,T11] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V12 tmp5         [V12,T04] (  2,  2   )   byref  ->   x1         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T05] (  2,  2   )     int  ->   x2         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp7         [V14,T12] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V15 PSPSym       [V15,T10] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V16 cse0         [V16,T06] (  7,  3.50)    long  ->  x19         multi-def "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3,  2   )    long  ->  x20         "CSE - moderate"
+;  V08 tmp1         [V08,T07] (  3,  0   )     ref  ->   x1         single-def "CASTCLASS eval op1"
+;  V09 tmp2         [V09,T08] (  3,  0   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
+;  V10 tmp3         [V10,T05] (  6,  0   )     ref  ->   x0         class-hnd "spilling QMark2" <System.__Canon>
+;  V11 tmp4         [V11,T09] (  2,  0   )     ref  ->   x0         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp5         [V12,T02] (  2,  1   )   byref  ->  [fp+0x10]  single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T03] (  2,  1   )     int  ->  [fp+0x24]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp7         [V14,T10] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V15 PSPSym       [V15,T04] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
-G_M22620_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M22620_IG01:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
             mov     fp, sp
             add     x4, sp, #64
-            stp     x0, x4, [fp, #0x20]    // [V15 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 TypeCtx]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M22620_IG02:        ; bbWeight=1, gcrefRegs=0008 {x3}, byrefRegs=0002 {x1}, byref
+            stp     x0, x4, [fp, #0x30]    // [V15 PSPSym]
+            str     x0, [fp, #0x28]    // [V00 TypeCtx]
+            str     x1, [fp, #0x10]    // [V12 tmp5]
+            ; GC ptr vars +{V12}
+            str     w2, [fp, #0x24]    // [V13 tmp6]
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG02:        ; bbWeight=0, gcVars=0000000000000004 {V12}, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x3]
+            ldr     x1, [fp, #0x10]    // [V12 tmp5]
             ; byrRegs +[x1]
+            ldr     w2, [fp, #0x24]    // [V13 tmp6]
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
+            ; GC ptr vars -{V12}
             blr     x3
             ; gcrRegs -[x0]
             ; byrRegs -[x1]
             ; gcr arg pop 0
-            str     xzr, [fp, #0x10]   // [V03 loc0]
+            str     xzr, [fp, #0x18]   // [V03 loc0]
             ; GC ptr vars +{V03}
-                       ;; size=16 bbWeight=1 PerfScore 8.00
-G_M22620_IG03:        ; bbWeight=1, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
+G_M22620_IG03:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     x0, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x0]
-            cbz     x0, G_M22620_IG09
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
+            cbz     x0, G_M22620_IG05
+            ldr     x0, [fp, #0x28]    // [V00 TypeCtx]
             ; gcrRegs -[x0]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
+            ldr     x1, [x0, #0x38]
+            ldr     x0, [x1]
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
             ; gcrRegs +[x1]
             bl      CORINFO_HELP_ISINSTANCEOFANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
             mov     x1, x0
             ; gcrRegs +[x1]
-            cbz     x0, G_M22620_IG08
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M22620_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
-            ldr     x20, [x0]
-            mov     x2, x19
-            cmp     x20, x2
-            beq     G_M22620_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22620_IG05:        ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+            cbz     x0, G_M22620_IG07
+            ldr     x2, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x4, [x3, #0x38]
+            ldr     x4, [x4]
+            cmp     x2, x4
+            beq     G_M22620_IG04
+            mov     x0, x4
             ; gcrRegs -[x0]
-            mov     x0, x2
             bl      CORINFO_HELP_CHKCASTANY
             ; gcrRegs -[x1] +[x0]
             ; gcr arg pop 0
-                       ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M22620_IG06:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            cmp     x20, x19
-            bne     G_M22620_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22620_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
-            ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M22620_IG08:        ; bbWeight=0, gcVars=0000000000000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0]
-            mov     x0, x19
-            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
-            ; gcrRegs +[x0]
-            ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V03 loc0]
-            ; gcrRegs +[x1]
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
+                       ;; size=68 bbWeight=0 PerfScore 0.00
+G_M22620_IG04:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x0]
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x2, [x3, #0x38]
             ldr     x2, [x2]
-            ; GC ptr vars -{V03}
-            blr     x2
-            ; gcrRegs -[x1]
-            ; gcr arg pop 0
-            bl      CORINFO_HELP_THROW
+            cmp     x1, x2
+            bne     G_M22620_IG07
+            b       G_M22620_IG06
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M22620_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
-            ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x18]    // [V00 TypeCtx]
-            ldr     x0, [x0, #0x38]
-            ldr     x19, [x0]
-            mov     x0, x19
+            ; GC ptr vars -{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
             bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -127,40 +108,66 @@ G_M22620_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0]
+            ; gcr arg pop 0
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M22620_IG06:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs +[x0]
+            ldp     fp, lr, [sp], #0x40
+            ret     lr
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M22620_IG07:        ; bbWeight=0, gcVars=0000000000000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[x0]
+            ; GC ptr vars +{V03}
+            ldr     x3, [fp, #0x28]    // [V00 TypeCtx]
+            ldr     x0, [x3, #0x38]
+            ldr     x0, [x0]
+            bl      CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
+            ; gcrRegs +[x0]
+            ; gcr arg pop 0
+            ldr     x1, [fp, #0x18]    // [V03 loc0]
+            ; gcrRegs +[x1]
+            movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            ; GC ptr vars -{V03}
+            blr     x2
+            ; gcrRegs -[x1]
+            ; gcr arg pop 0
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
             brk_windows #0
                        ;; size=48 bbWeight=0 PerfScore 0.00
-G_M22620_IG10:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M22620_IG08:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[x0]
-            stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x20]
+            stp     fp, lr, [sp, #-0x20]!
             add     x3, fp, #64
             str     x3, [sp, #0x18]
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M22620_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x0, [fp, #0x10]    // [V03 loc0]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M22620_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x0, [fp, #0x18]    // [V03 loc0]
             ; GC ptr vars +{V03}
             adr     x0, [G_M22620_IG03]
             ; gcrRegs -[x0]
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M22620_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x20]
-            ldp     fp, lr, [sp], #0x30
+G_M22620_IG10:        ; bbWeight=0, funclet epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 244, prolog size 24, PerfScore 36.38, instruction count 61, allocated bytes for code 244 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
+; Total bytes of code 272, prolog size 28, PerfScore 0.00, instruction count 68, allocated bytes for code 272 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 1
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,12 +175,9 @@ Unwind Info:
...

realworld.run.windows.arm64.checked.mch

-32 (-5.84%) : 17639.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

@@ -11,20 +11,20 @@
 ;  V00 arg0         [V00,T08] (  6,  8   )     ref  ->   x0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T13] (  4,  3.50)   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->  x19         single-def
-;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->  x20        
-;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->  x23        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x3         single-def
-;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x4        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x5        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x2        
+;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   x2        
+;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   x5        
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   x6         single-def
+;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   x7        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   x8        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   x9        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   x7        
 ;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   x5        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->  x20         "impSpillLclRefs"
+;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   x2         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x2         "Inlining Arg"
+;  V14 tmp3         [V14,T02] (  5, 36   )  ushort  ->   x6         "Inlining Arg"
 ;* V15 tmp4         [V15,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x3         "Inlining Arg"
+;  V16 tmp5         [V16,T17] (  3,  3   )  ushort  ->   x6         "Inlining Arg"
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -32,199 +32,186 @@
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V24 cse0         [V24,T09] (  4,  9   )     int  ->  x23         "CSE - aggressive"
-;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->  x21         hoist "CSE - aggressive"
-;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->  x22         "CSE - aggressive"
+;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   x5         "CSE - aggressive"
+;  V25 cse1         [V25,T03] ( 10, 32   )     int  ->   x3         hoist "CSE - aggressive"
+;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   x4         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            str     x23, [sp, #0x38]
+            stp     fp, lr, [sp, #-0x20]!
+            str     x19, [sp, #0x18]
             mov     fp, sp
             mov     x19, x2
             ; byrRegs +[x19]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x1]
-            ldr     w20, [x1]
-            ldr     w21, [x0, #0x08]
+            ldr     w2, [x1]
+            ldr     w3, [x0, #0x08]
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w21, w20
-            beq     G_M24207_IG29
+            cmp     w3, w2
+            beq     G_M24207_IG27
                        ;; size=8 bbWeight=8 PerfScore 12.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            add     x22, x0, #12
-            ; byrRegs +[x22]
-            ldrh    w23, [x22, w20, UXTW #2]
-            sxtw    w2, w23
-            cmp     w2, #32
-            ccmp    w2, #9, z, ne
-            ccmp    w2, #13, z, ne
-            beq     G_M24207_IG07
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            add     x4, x0, #12
+            ; byrRegs +[x4]
+            ldrh    w5, [x4, w2, UXTW #2]
+            sxtw    w6, w5
+            cmp     w6, #32
+            ccmp    w6, #9, z, ne
+            ccmp    w6, #13, z, ne
+            beq     G_M24207_IG06
                        ;; size=36 bbWeight=4 PerfScore 32.00
-G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, #10
-            beq     G_M24207_IG07
+G_M24207_IG05:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w6, #10
+            bne     G_M24207_IG07
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            sxtw    w3, w23
-            cmp     w3, #34
-            beq     G_M24207_IG09
-            b       G_M24207_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG07:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
-            ; byrRegs -[x22]
-            add     w20, w20, #1
+G_M24207_IG06:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
+            ; byrRegs -[x4]
+            add     w2, w2, #1
             b       G_M24207_IG03
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; byrRegs +[x22]
-            cmp     w3, #39
-            beq     G_M24207_IG09
-            mov     w23, wzr
+G_M24207_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            ; byrRegs +[x4]
+            sxtw    w6, w5
+            cmp     w6, #34
+            beq     G_M24207_IG08
+            cmp     w6, #39
+            bne     G_M24207_IG09
+                       ;; size=20 bbWeight=0.50 PerfScore 1.75
+G_M24207_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG10
-                       ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            mov     w5, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w3, w20
-            sxtw    w2, w21
-            mov     w4, wzr
+G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w6, w2
+            sxtw    w7, w3
+            mov     w8, wzr
                        ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w21, w20
-            ble     G_M24207_IG17
-            cmp     w20, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w20, UXTW #2]
-            cmp     w5, #92
+G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w3, w2
+            ble     G_M24207_IG16
+            cmp     w2, w3
+            bhs     G_M24207_IG33
+            ldrh    w9, [x4, w2, UXTW #2]
+            cmp     w9, #92
             bne     G_M24207_IG12
-            mov     w4, #1
-            add     w20, w20, #2
+            mov     w8, #1
+            add     w2, w2, #2
             b       G_M24207_IG11
                        ;; size=40 bbWeight=4 PerfScore 38.00
-G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG15
+G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG14
                        ;; size=4 bbWeight=4 PerfScore 4.00
-G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w5, #61
-            beq     G_M24207_IG19
-            cmp     w5, #44
-            beq     G_M24207_IG19
-            cmp     w5, #34
-            beq     G_M24207_IG29
-            cmp     w5, #39
-            bne     G_M24207_IG16
-                       ;; size=32 bbWeight=2 PerfScore 12.00
-G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            b       G_M24207_IG29
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            ; gcrRegs +[x0]
-            ; byrRegs +[x1 x22]
-            cmp     w5, w23
+G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, #61
             beq     G_M24207_IG18
+            cmp     w9, #44
+            beq     G_M24207_IG18
+            cmp     w9, #34
+            beq     G_M24207_IG27
+            cmp     w9, #39
+            bne     G_M24207_IG15
+            b       G_M24207_IG27
+                       ;; size=36 bbWeight=2 PerfScore 14.00
+G_M24207_IG14:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w9, w5
+            beq     G_M24207_IG17
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            add     w20, w20, #1
+G_M24207_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            add     w2, w2, #1
             b       G_M24207_IG11
                        ;; size=8 bbWeight=4 PerfScore 6.00
-G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w20, w21
-            b       G_M24207_IG19
+G_M24207_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w2, w3
+            b       G_M24207_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sxtw    w2, w20
-            add     w20, w2, #1
+G_M24207_IG17:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sxtw    w7, w2
+            add     w2, w7, #1
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cbnz    w23, G_M24207_IG25
-            sub     w2, w20, #1
-            b       G_M24207_IG21
+G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cbnz    w5, G_M24207_IG24
+            sub     w7, w2, #1
+            b       G_M24207_IG20
                        ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref
-            sub     w2, w2, #1
+G_M24207_IG19:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref
+            sub     w7, w7, #1
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=480002 {x1 x19 x22}, byref, isz
-            cmp     w2, w3
-            blt     G_M24207_IG22
-            cmp     w2, w21
-            bhs     G_M24207_IG35
-            ldrh    w5, [x22, w2, UXTW #2]
+G_M24207_IG20:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80012 {x1 x4 x19}, byref, isz
+            cmp     w7, w6
+            blt     G_M24207_IG21
+            cmp     w7, w3
+            bhs     G_M24207_IG33
...

-16 (-5.26%) : 29572.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)

@@ -11,25 +11,24 @@
 ;  V00 arg0         [V00,T02] (  7,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T03] (  4,  3.50)   byref  ->  x20         single-def
 ;  V02 arg2         [V02,T04] (  4,  3.50)   byref  ->  x21         single-def
-;  V03 loc0         [V03,T08] (  5,  4   )     int  ->  x23        
+;  V03 loc0         [V03,T08] (  5,  2.50)     int  ->  x22        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
-;  V05 loc2         [V05,T01] (  6, 18.50)     int  ->  x24        
+;  V05 loc2         [V05,T01] (  6, 17   )     int  ->   x0        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V08 tmp2         [V08,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp3         [V09,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x1         "Inlining Arg"
-;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  x22         "CSE - aggressive"
-;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x0         hoist "CSE - aggressive"
+;  V10 tmp4         [V10,T00] (  5, 36   )  ushort  ->   x3         "Inlining Arg"
+;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->   x2         "CSE - aggressive"
+;  V12 cse1         [V12,T06] (  2,  4.50)   byref  ->   x1         hoist "CSE - aggressive"
 ;  V13 cse2         [V13,T07] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x10]
             stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -37,7 +36,7 @@ G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs +[x20]
             mov     x21, x2
             ; byrRegs +[x21]
-                       ;; size=32 bbWeight=1 PerfScore 6.00
+                       ;; size=28 bbWeight=1 PerfScore 5.00
 G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
             movz    x0, #8
             movk    x0, #0xD1FFAB1E LSL #16
@@ -59,64 +58,60 @@ G_M22854_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20
             cbz     x19, G_M22854_IG04
                        ;; size=40 bbWeight=1 PerfScore 6.50
 G_M22854_IG03:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            ldr     w22, [x19, #0x08]
-            cbz     w22, G_M22854_IG04
-            mov     w23, wzr
-            mov     w24, wzr
-            cmp     w22, #0
-            ble     G_M22854_IG12
-            b       G_M22854_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 3.75
+            ldr     w2, [x19, #0x08]
+            cbnz    w2, G_M22854_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M22854_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20-x21]
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M22854_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
+G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, gcvars, byref, isz
             ; gcrRegs +[x19]
             ; byrRegs +[x20-x21]
-            add     x0, x19, #12
-            ; byrRegs +[x0]
-                       ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            ldrh    w1, [x0, w24, UXTW #2]
-            mov     w2, #0xD1FFAB1E
-            mov     w3, #0xD1FFAB1E
-            cmp     w1, #45
-            ccmp    w1, w2, z, ne
-            ccmp    w1, w3, z, ne
-            beq     G_M22854_IG11
+            mov     w22, wzr
+            mov     w0, wzr
+            cmp     w2, #0
+            ble     G_M22854_IG11
+            add     x1, x19, #12
+            ; byrRegs +[x1]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M22854_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            ldrh    w3, [x1, w0, UXTW #2]
+            mov     w4, #0xD1FFAB1E
+            mov     w5, #0xD1FFAB1E
+            cmp     w3, #45
+            ccmp    w3, w4, z, ne
+            ccmp    w3, w5, z, ne
+            beq     G_M22854_IG10
                        ;; size=28 bbWeight=4 PerfScore 26.00
-G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            mov     w2, #0xD1FFAB1E
-            cmp     w1, w2
-            beq     G_M22854_IG11
+G_M22854_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            mov     w4, #0xD1FFAB1E
+            cmp     w3, w4
+            beq     G_M22854_IG10
                        ;; size=12 bbWeight=2 PerfScore 4.00
-G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300001 {x0 x20 x21}, byref, isz
-            add     w24, w24, #1
-            cmp     w22, w24
+G_M22854_IG09:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=300002 {x1 x20 x21}, byref, isz
+            add     w0, w0, #1
+            cmp     w2, w0
             bgt     G_M22854_IG07
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+            b       G_M22854_IG11
+                       ;; size=16 bbWeight=4 PerfScore 12.00
 G_M22854_IG10:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            ; byrRegs -[x0]
-            b       G_M22854_IG12
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22854_IG11:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref
-            sxtw    w23, w24
-                       ;; size=4 bbWeight=2 PerfScore 1.00
-G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
-            cmp     w23, #0
+            ; byrRegs -[x1]
+            sxtw    w22, w0
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {x20 x21}, byref, isz
+            cmp     w22, #0
             ble     G_M22854_IG04
             mov     x0, x19
             ; gcrRegs +[x0]
-            mov     w2, w23
+            mov     w2, w22
             mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.String:Substring(int,int):System.String:this
             movk    x3, #0xD1FFAB1E LSL #16
@@ -131,7 +126,7 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14 x20]
-            add     w1, w23, #1
+            add     w1, w22, #1
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.String:Substring(int):System.String:this
@@ -150,15 +145,14 @@ G_M22854_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=300000 {
             ; byrRegs -[x14 x21]
             mov     w0, #1
                        ;; size=96 bbWeight=0.50 PerfScore 9.75
-G_M22854_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
+G_M22854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x20]
             ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
+                       ;; size=16 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 304, prolog size 32, PerfScore 71.00, instruction count 76, allocated bytes for code 304 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
+; Total bytes of code 288, prolog size 28, PerfScore 71.25, instruction count 72, allocated bytes for code 288 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -169,7 +163,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 76 (0x0004c) Actual length = 304 (0x000130)
+  Function Length   : 72 (0x00048) Actual length = 288 (0x000120)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -181,9 +175,9 @@ Unwind Info:
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
     E6          save_next
-    E6          save_next
     C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    E4          end
     E4          end
     E4          end
 

-12 (-5.17%) : 10965.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)

@@ -11,7 +11,7 @@
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T00] (  5, 44   )     ref  ->  x19         class-hnd exact "impAppendStmt" <System.String>
-;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
+;  V03 tmp2         [V03,T02] (  5, 15   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.String>
 ;  V04 tmp3         [V04,T01] (  5, 32   )     ref  ->   x0         class-hnd exact "Inlining Arg" <System.String>
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -81,10 +81,8 @@ G_M26077_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=68 bbWeight=8 PerfScore 144.00
 G_M26077_IG03:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ldr     w1, [x19, #0x08]
-            cbz     w1, G_M26077_IG04
-            cbz     x0, G_M26077_IG07
-            b       G_M26077_IG06
-                       ;; size=16 bbWeight=2 PerfScore 12.00
+            cbnz    w1, G_M26077_IG06
+                       ;; size=8 bbWeight=2 PerfScore 8.00
 G_M26077_IG04:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19]
             mov     x20, x0
@@ -101,21 +99,19 @@ G_M26077_IG05:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M26077_IG06:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x20] +[x0 x19]
+            cbz     x0, G_M26077_IG07
             ldr     w3, [x0, #0x08]
-            cbz     w3, G_M26077_IG07
-            add     x2, x19, #12
-            ; byrRegs +[x2]
-            b       G_M26077_IG08
-                       ;; size=16 bbWeight=2 PerfScore 11.00
+            cbnz    w3, G_M26077_IG08
+                       ;; size=12 bbWeight=2 PerfScore 10.00
 G_M26077_IG07:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ; byrRegs -[x2]
             mov     x20, x19
             ; gcrRegs +[x20]
             b       G_M26077_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
-            ; gcrRegs -[x19-x20] +[x0]
+G_M26077_IG08:        ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x20] +[x0]
+            add     x2, x19, #12
             ; byrRegs +[x2]
             add     x0, x0, #12
             ; gcrRegs -[x0]
@@ -130,15 +126,13 @@ G_M26077_IG08:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, by
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs +[x0]
+            ; gcrRegs -[x19] +[x0]
             ; byrRegs -[x0 x2]
-            mov     x19, x0
-            ; gcrRegs +[x19]
-            mov     x20, x19
+            mov     x20, x0
             ; gcrRegs +[x20]
                        ;; size=44 bbWeight=2 PerfScore 17.00
 G_M26077_IG09:        ; bbWeight=8, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
@@ -159,7 +153,7 @@ G_M26077_IG11:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 232, prolog size 12, PerfScore 274.50, instruction count 58, allocated bytes for code 232 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
+; Total bytes of code 220, prolog size 12, PerfScore 269.50, instruction count 55, allocated bytes for code 220 (MethodHash=15049a22) for method ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -170,7 +164,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.57%) : 25307.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -22,26 +22,20 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs +[x0]
             ldr     w1, [x0, #0x0C]
             cmp     w1, #1
-            beq     G_M65033_IG05
+            beq     G_M65033_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             cmp     w1, #2
-            bne     G_M65033_IG07
+            bne     G_M65033_IG08
             ldr     w1, [x0, #0x10]
             add     w1, w1, #1
             str     w1, [x0, #0x10]
             ldr     w2, [x0, #0x18]
             cmp     w1, w2
-            beq     G_M65033_IG07
-            mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x10
-            ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
+            beq     G_M65033_IG08
+            b       G_M65033_IG06
+                       ;; size=36 bbWeight=0.50 PerfScore 5.75
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w1, [x0, #0x14]
             str     w1, [x0, #0x10]
             mov     w1, #2
@@ -49,23 +43,30 @@ G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     w0, #1
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            mov     w0, #1
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            ldp     fp, lr, [sp], #0x10
+            ret     lr
+                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x0]
             movn    w1, #0
             str     w1, [x0, #0x0C]
             mov     w0, wzr
             ; gcrRegs -[x0]
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 18.50, instruction count 28, allocated bytes for code 112 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 116, prolog size 8, PerfScore 19.00, instruction count 29, allocated bytes for code 116 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -76,7 +77,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+4.00%) : 28325.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)

@@ -37,73 +37,77 @@ G_M3894_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             add     x1, x0, x1
             mov     w4, wzr
             cmp     x0, x1
-            bhs     G_M3894_IG11
+            bhs     G_M3894_IG05
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M3894_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     x5, x0, #2
             ldrh    w0, [x0]
             cmp     w0, #128
-            bge     G_M3894_IG05
+            bge     G_M3894_IG06
                        ;; size=16 bbWeight=4 PerfScore 20.00
 G_M3894_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #1
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=8 bbWeight=2 PerfScore 3.00
-G_M3894_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
-            cmp     w0, #0xD1FFAB1E
-            bge     G_M3894_IG06
-            mov     w6, #2
-            b       G_M3894_IG08
-                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            mov     x5, x0
+            b       G_M3894_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M3894_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+            cmp     w0, #0xD1FFAB1E
+            bge     G_M3894_IG07
+            mov     w6, #2
+            b       G_M3894_IG09
+                       ;; size=16 bbWeight=2 PerfScore 6.00
+G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             mov     w6, #0xD1FFAB1E
             cmp     x5, x1
             ccmp    w0, w6, c, lo
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             ldrh    w0, [x5]
             movn    w6, #0xD1FFAB1E
             add     w0, w0, w6
             cmp     w0, #0xD1FFAB1E
-            bhi     G_M3894_IG07
+            bhi     G_M3894_IG08
             mov     w6, #4
             add     x5, x5, #2
-            b       G_M3894_IG08
+            b       G_M3894_IG09
                        ;; size=56 bbWeight=2 PerfScore 22.00
-G_M3894_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+G_M3894_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w6, #3
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3894_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M3894_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
             add     w0, w4, w6
             cmp     w0, w2
-            bgt     G_M3894_IG10
+            bgt     G_M3894_IG11
             sxtw    w4, w0
             cmp     x5, x1
+            blo     G_M3894_IG10
+            b       G_M3894_IG12
+                       ;; size=28 bbWeight=4 PerfScore 20.00
+G_M3894_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     x0, x5
-            blo     G_M3894_IG03
-                       ;; size=28 bbWeight=4 PerfScore 18.00
-G_M3894_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            b       G_M3894_IG11
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3894_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            b       G_M3894_IG03
+                       ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3894_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
             mov     w0, #1
             cmp     w6, #4
             cinc    w0, w0, ge
             sbfiz   x0, x0, #1, #32
             sub     x5, x5, x0
-            mov     x0, x5
-                       ;; size=24 bbWeight=0.50 PerfScore 1.75
-G_M3894_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            str     x0, [x3]
+                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+G_M3894_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
+            str     x5, [x3]
             mov     w0, w4
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M3894_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M3894_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 200, prolog size 8, PerfScore 80.75, instruction count 50, allocated bytes for code 200 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
+; Total bytes of code 208, prolog size 8, PerfScore 85.75, instruction count 52, allocated bytes for code 208 (MethodHash=7438f0c9) for method System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -114,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 50 (0x00032) Actual length = 200 (0x0000c8)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+5.41%) : 16993.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)

@@ -19,7 +19,7 @@
 ;
 ; Lcl frame size = 8
 
-G_M5512_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M5512_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
@@ -47,7 +47,7 @@ G_M5512_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            cbnz    w0, G_M5512_IG09
+            cbnz    w0, G_M5512_IG07
                        ;; size=44 bbWeight=2 PerfScore 35.00
 G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ldr     x1, [x19, #0x10]
@@ -56,11 +56,11 @@ G_M5512_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             mov     w1, #0xD1FFAB1E
             ; gcrRegs -[x1]
             cmp     w0, w1
-            beq     G_M5512_IG07
+            beq     G_M5512_IG09
             ldr     x19, [x19, #0x08]
                        ;; size=24 bbWeight=2 PerfScore 22.00
 G_M5512_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cbz     x19, G_M5512_IG07
+            cbz     x19, G_M5512_IG09
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x1, #0xD1FFAB1E
@@ -70,10 +70,11 @@ G_M5512_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
             ; gcrRegs +[x1]
             cmp     x19, x1
             bne     G_M5512_IG03
-                       ;; size=24 bbWeight=4 PerfScore 24.00
+            b       G_M5512_IG11
+                       ;; size=28 bbWeight=4 PerfScore 28.00
 G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1 x19]
-            mov     w0, wzr
+            mov     w0, #1
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
@@ -81,15 +82,18 @@ G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M5512_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            mov     w0, #1
+            mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M5512_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M5512_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            b       G_M5512_IG09
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 148, prolog size 12, PerfScore 100.00, instruction count 37, allocated bytes for code 148 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 104.50, instruction count 39, allocated bytes for code 156 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -100,7 +104,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

smoke_tests.nativeaot.windows.arm64.checked.mch

-8 (-7.69%) : 6362.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -59,10 +59,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -80,21 +78,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -108,13 +104,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             bl      <unknown method>
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4]
-                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+                       ;; size=24 bbWeight=0.50 PerfScore 1.75
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 104, prolog size 8, PerfScore 14.00, instruction count 26, allocated bytes for code 104 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 13.00, instruction count 24, allocated bytes for code 96 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -125,7 +121,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-7.69%) : 11747.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)

@@ -58,10 +58,8 @@ G_M65029_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M65029_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x0, #0x08]
-            cbz     w2, G_M65029_IG04
-            cbz     x1, G_M65029_IG08
-            b       G_M65029_IG07
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w2, G_M65029_IG07
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M65029_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbnz    x1, G_M65029_IG05
@@ -79,21 +77,19 @@ G_M65029_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M65029_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
+            cbz     x1, G_M65029_IG08
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M65029_IG08
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M65029_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w3, G_M65029_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M65029_IG08:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x1] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x1]
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1]
+G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -107,13 +103,13 @@ G_M65029_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             bl      <unknown method>
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4]
-                       ;; size=20 bbWeight=0.50 PerfScore 1.50
+                       ;; size=24 bbWeight=0.50 PerfScore 1.75
 G_M65029_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 104, prolog size 8, PerfScore 14.00, instruction count 26, allocated bytes for code 104 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 13.00, instruction count 24, allocated bytes for code 96 (MethodHash=9b9401fa) for method System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,7 +120,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-7.14%) : 5970.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)

@@ -74,10 +74,8 @@ G_M4343_IG02:        ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {},
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M4343_IG03:        ; bbWeight=0.50, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, byref, isz
             ldr     w19, [x0, #0x08]
-            cbz     w19, G_M4343_IG04
-            cbz     x1, G_M4343_IG07
-            b       G_M4343_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w19, G_M4343_IG06
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG04:        ; bbWeight=0.50, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
             mov     x0, x1
@@ -93,11 +91,10 @@ G_M4343_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x1, G_M4343_IG07
             ldr     w3, [x1, #0x08]
-            cbz     w3, G_M4343_IG07
-            cbz     x2, G_M4343_IG10
-            b       G_M4343_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+            cbnz    w3, G_M4343_IG09
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG07:        ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             mov     x1, x2
@@ -112,16 +109,12 @@ G_M4343_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M4343_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1-x2]
+            cbz     x2, G_M4343_IG10
             ldr     w5, [x2, #0x08]
-            cbz     w5, G_M4343_IG10
-            add     x0, x0, #12
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            b       G_M4343_IG12
-                       ;; size=16 bbWeight=0.50 PerfScore 2.75
+            cbnz    w5, G_M4343_IG12
+                       ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG10:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x2] +[x0]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x2]
             bl      System.IO.Path:Join(System.String,System.String):System.String
             ; gcrRegs -[x1]
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -130,8 +123,10 @@ G_M4343_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006 {x1 x2}, byrefRegs=0001 {x0}, gcvars, byref
-            ; gcrRegs -[x0] +[x1-x2]
+G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x1-x2]
+            add     x0, x0, #12
+            ; gcrRegs -[x0]
             ; byrRegs +[x0]
             add     x1, x1, #12
             ; gcrRegs -[x1]
@@ -150,14 +145,14 @@ G_M4343_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0006
             bl      <unknown method>
             ; gcrRegs +[x0]
             ; byrRegs -[x0 x2 x4 x6]
-                       ;; size=32 bbWeight=0.50 PerfScore 2.25
+                       ;; size=36 bbWeight=0.50 PerfScore 2.50
 G_M4343_IG13:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 168, prolog size 12, PerfScore 24.75, instruction count 42, allocated bytes for code 168 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 23.25, instruction count 39, allocated bytes for code 156 (MethodHash=bb15ef08) for method System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -168,7 +163,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+3.06%) : 1380.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)

@@ -82,58 +82,64 @@ G_M25962_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ldrsb   wzr, [x20]
                        ;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M25962_IG09:        ; bbWeight=4, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            str     x20, [fp, #0x18]   // [V06 loc3]
+            stp     x20, x20, [fp, #0x10]  // [V00 arg0], [V06 loc3]
+            ; GC ptr vars +{V00}
             ldr     x0, [fp, #0x18]    // [V06 loc3]
             ; byrRegs +[x0]
             sub     x1, x0, #4
                        ;; size=12 bbWeight=4 PerfScore 14.00
-G_M25962_IG10:        ; bbWeight=32, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG10:        ; bbWeight=32, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[x20]
             ; byrRegs -[x0]
             ldr     w0, [x1]
             and     w2, w0, #0xD1FFAB1E
-            cbnz    w2, G_M25962_IG13
+            cbnz    w2, G_M25962_IG12
                        ;; size=12 bbWeight=32 PerfScore 144.00
-G_M25962_IG11:        ; bbWeight=16, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG11:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             orr     w2, w0, w19
             mov     w3, w0
             casal   w3, w2, [x1]
             cmp     w3, w0
             bne     G_M25962_IG10
-                       ;; size=20 bbWeight=16 PerfScore 88.00
-G_M25962_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20]
             b       G_M25962_IG26
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M25962_IG13:        ; bbWeight=32, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x20]
+                       ;; size=24 bbWeight=16 PerfScore 104.00
+G_M25962_IG12:        ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             and     w3, w0, #0xD1FFAB1E
             mov     w4, #0xD1FFAB1E
             cmp     w3, w4
             beq     G_M25962_IG23
-            tbnz    w0, #27, G_M25962_IG24
+            tbnz    w0, #27, G_M25962_IG15
             uxth    w2, w0
             cmp     w2, w19
             bne     G_M25962_IG16
                        ;; size=32 bbWeight=32 PerfScore 176.00
-G_M25962_IG14:        ; bbWeight=16, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG13:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             add     w2, w0, #16, LSL #12
             tst     w2, #0xD1FFAB1E
-            beq     G_M25962_IG24
+            beq     G_M25962_IG14
             mov     w3, w0
             casal   w3, w2, [x1]
             cmp     w3, w0
             bne     G_M25962_IG10
-                       ;; size=28 bbWeight=16 PerfScore 112.00
-G_M25962_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20]
             b       G_M25962_IG26
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M25962_IG16:        ; bbWeight=4, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+                       ;; size=32 bbWeight=16 PerfScore 128.00
+G_M25962_IG14:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
             ; gcrRegs +[x20]
+            b       G_M25962_IG24
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M25962_IG15:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x20]
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
+            ; gcrRegs +[x20]
+            b       G_M25962_IG24
+                       ;; size=8 bbWeight=16 PerfScore 48.00
+G_M25962_IG16:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x20]
             str     xzr, [fp, #0x18]   // [V06 loc3]
             cbz     w21, G_M25962_IG20
                        ;; size=8 bbWeight=4 PerfScore 8.00
-G_M25962_IG17:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w22, #0xD1FFAB1E
             ble     G_M25962_IG18
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]
@@ -145,32 +151,29 @@ G_M25962_IG17:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 8.00
-G_M25962_IG18:        ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25962_IG18:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             cmp     w22, #0
             ble     G_M25962_IG20
-            str     x20, [fp, #0x10]   // [V00 arg0]
-            ; GC ptr vars +{V00}
             mov     w0, w22
-                       ;; size=16 bbWeight=2 PerfScore 6.00
-G_M25962_IG19:        ; bbWeight=2, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[x20]
+                       ;; size=12 bbWeight=2 PerfScore 4.00
+G_M25962_IG19:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
             ldr     w0, [x0]
-            ldr     x20, [fp, #0x10]   // [V00 arg0]
-            ; gcrRegs +[x20]
             cbnz    w0, G_M25962_IG28
-                       ;; size=24 bbWeight=2 PerfScore 16.00
-G_M25962_IG20:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars -{V00}
+                       ;; size=20 bbWeight=2 PerfScore 12.00
+G_M25962_IG20:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             add     w22, w22, #1
             cmp     w22, w21
+            ldr     x20, [fp, #0x10]   // [V00 arg0]
+            ; gcrRegs +[x20]
             ble     G_M25962_IG09
-                       ;; size=12 bbWeight=4 PerfScore 8.00
-G_M25962_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=16 bbWeight=4 PerfScore 16.00
+G_M25962_IG21:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x20]
+            ; GC ptr vars -{V00}
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M25962_IG22:        ; bbWeight=0.50, epilog, nogc, extend
@@ -206,14 +209,14 @@ G_M25962_IG27:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M25962_IG28:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x20]
+G_M25962_IG28:        ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; GC ptr vars +{V00 V08}
             bl      CORINFO_HELP_POLL_GC
             ; gcr arg pop 0
             b       G_M25962_IG20
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 392, prolog size 32, PerfScore 606.50, instruction count 98, allocated bytes for code 392 (MethodHash=c3c79a95) for method System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
+; Total bytes of code 404, prolog size 32, PerfScore 711.50, instruction count 101, allocated bytes for code 404 (MethodHash=c3c79a95) for method System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -224,7 +227,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.23%) : 8590.dasm - System.Threading.DeferredDisposableLifetime`1[System.Canon]:Dispose(System.Canon):this (FullOpts)

@@ -29,7 +29,7 @@ G_M55294_IG02:        ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             ; gcrRegs +[x2]
             ; byrRegs +[x0]
             ldar    w15, [x0]
-            tbnz    w15, #31, G_M55294_IG06
+            tbnz    w15, #31, G_M55294_IG04
                        ;; size=8 bbWeight=8 PerfScore 32.00
 G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
             neg     w9, w15
@@ -38,11 +38,19 @@ G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             casal   w10, w9, [x0]
             cmp     w10, w15
             bne     G_M55294_IG02
-                       ;; size=24 bbWeight=4 PerfScore 24.00
-G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+            b       G_M55294_IG05
+                       ;; size=28 bbWeight=4 PerfScore 28.00
+G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x2]
             ; byrRegs -[x0]
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M55294_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x2]
             cmn     w9, #1
-            bne     G_M55294_IG06
+            bne     G_M55294_IG04
             ldr     x19, [x2, #0x10]
             ; gcrRegs +[x19]
             ldr     x15, [x19]
@@ -62,20 +70,14 @@ G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             mov     x0, x19
             ; gcrRegs +[x0]
                        ;; size=56 bbWeight=0.50 PerfScore 9.25
-G_M55294_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55294_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             b       System.GC:SuppressFinalize(System.Object)
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M55294_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x0 x19]
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 124, prolog size 12, PerfScore 89.25, instruction count 31, allocated bytes for code 124 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
+; Total bytes of code 128, prolog size 12, PerfScore 93.25, instruction count 32, allocated bytes for code 128 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -86,7 +88,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.85%) : 14035.dasm - System.Threading.DeferredDisposableLifetime`1[System.Canon]:Dispose(System.Canon):this (FullOpts)

@@ -27,7 +27,7 @@ G_M55294_IG02:        ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             ; gcrRegs +[x2]
             ; byrRegs +[x0]
             ldar    w1, [x0]
-            tbnz    w1, #31, G_M55294_IG06
+            tbnz    w1, #31, G_M55294_IG04
                        ;; size=8 bbWeight=8 PerfScore 32.00
 G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
             neg     w3, w1
@@ -36,11 +36,19 @@ G_M55294_IG03:        ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by
             casal   w4, w3, [x0]
             cmp     w4, w1
             bne     G_M55294_IG02
-                       ;; size=24 bbWeight=4 PerfScore 24.00
-G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+            b       G_M55294_IG05
+                       ;; size=28 bbWeight=4 PerfScore 28.00
+G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[x2]
             ; byrRegs -[x0]
+            ldr     x19, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x20
+            ret     lr
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M55294_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[x2]
             cmn     w3, #1
-            bne     G_M55294_IG06
+            bne     G_M55294_IG04
             ldr     x19, [x2, #0x10]
             ; gcrRegs +[x19]
             mov     x0, x19
@@ -55,20 +63,14 @@ G_M55294_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             mov     x0, x19
             ; gcrRegs +[x0]
                        ;; size=36 bbWeight=0.50 PerfScore 6.50
-G_M55294_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55294_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             b       System.GC:SuppressFinalize(System.Object)
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M55294_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x0 x19]
-            ldr     x19, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x20
-            ret     lr
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 104, prolog size 12, PerfScore 86.50, instruction count 26, allocated bytes for code 104 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 90.50, instruction count 27, allocated bytes for code 108 (MethodHash=bad32801) for method System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -79,7 +81,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 1,370 275 185 910 -1,496 +1,880
benchmarks.run_pgo.windows.arm64.checked.mch 8,082 3,710 1,487 2,885 -19,096 +12,072
benchmarks.run_tiered.windows.arm64.checked.mch 543 83 64 396 -1,084 +816
coreclr_tests.run.windows.arm64.checked.mch 19,861 10,229 1,028 8,604 -48,356 +7,912
libraries.crossgen2.windows.arm64.checked.mch 4,946 566 418 3,962 -3,496 +3,544
libraries.pmi.windows.arm64.checked.mch 10,969 2,328 1,496 7,145 -14,316 +10,768
libraries_tests.run.windows.arm64.Release.mch 27,230 9,110 4,365 13,755 -82,732 +37,800
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 19,253 3,602 1,488 14,163 -32,488 +11,256
realworld.run.windows.arm64.checked.mch 1,696 266 207 1,223 -1,780 +1,588
smoke_tests.nativeaot.windows.arm64.checked.mch 685 91 43 551 -460 +380
94,635 30,260 10,781 53,594 -205,304 +88,016

Context information

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

jit-analyze output

benchmarks.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 10964120 (overridden on cmd)
Total bytes of diff: 10964504 (overridden on cmd)
Total bytes of delta: 384 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 22719.dasm (0.52 % of base)
         100 : 22299.dasm (0.49 % of base)
          68 : 1841.dasm (0.61 % of base)
          60 : 14850.dasm (3.14 % of base)
          44 : 4185.dasm (2.29 % of base)
          40 : 21152.dasm (0.42 % of base)
          36 : 16948.dasm (1.04 % of base)
          36 : 21527.dasm (0.46 % of base)
          36 : 16898.dasm (0.61 % of base)
          32 : 2301.dasm (2.04 % of base)
          32 : 23266.dasm (2.35 % of base)
          32 : 23371.dasm (0.23 % of base)
          32 : 13925.dasm (0.81 % of base)
          32 : 8792.dasm (0.22 % of base)
          32 : 10516.dasm (0.83 % of base)
          28 : 23369.dasm (0.47 % of base)
          28 : 18786.dasm (0.60 % of base)
          24 : 11205.dasm (0.25 % of base)
          24 : 8787.dasm (0.30 % of base)
          24 : 23714.dasm (0.23 % of base)

Top file improvements (bytes):
         -32 : 8800.dasm (-0.31 % of base)
         -32 : 11216.dasm (-0.31 % of base)
         -28 : 3051.dasm (-0.51 % of base)
         -24 : 6892.dasm (-0.68 % of base)
         -20 : 10306.dasm (-1.18 % of base)
         -16 : 11298.dasm (-4.04 % of base)
         -16 : 11708.dasm (-1.24 % of base)
         -16 : 3174.dasm (-3.17 % of base)
         -16 : 4719.dasm (-1.20 % of base)
         -12 : 18399.dasm (-0.43 % of base)
         -12 : 2287.dasm (-3.85 % of base)
         -12 : 4619.dasm (-3.33 % of base)
         -12 : 4887.dasm (-0.36 % of base)
         -12 : 548.dasm (-1.92 % of base)
         -12 : 17987.dasm (-1.21 % of base)
         -12 : 22722.dasm (-0.21 % of base)
         -12 : 3257.dasm (-5.17 % of base)
         -12 : 7089.dasm (-0.17 % of base)
         -12 : 10237.dasm (-0.56 % of base)
         -12 : 8474.dasm (-1.10 % of base)

71 total files with Code Size differences (35 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (0.49 % of base) : 22299.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 22719.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          68 (0.61 % of base) : 1841.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          60 (3.14 % of base) : 14850.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          44 (2.29 % of base) : 4185.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.42 % of base) : 21152.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 21527.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (1.04 % of base) : 16948.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 16898.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (0.22 % of base) : 8792.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 23371.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.35 % of base) : 23266.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          32 (0.81 % of base) : 13925.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
          32 (0.83 % of base) : 10516.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
          32 (2.04 % of base) : 2301.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.47 % of base) : 23369.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          28 (0.60 % of base) : 18786.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          24 (0.23 % of base) : 23714.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.25 % of base) : 11205.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 8787.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)

Top method improvements (bytes):
         -32 (-0.31 % of base) : 11216.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -32 (-0.31 % of base) : 8800.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
         -28 (-0.51 % of base) : 3051.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         -24 (-0.68 % of base) : 6892.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -20 (-1.18 % of base) : 10306.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,ubyte) (FullOpts)
         -16 (-3.17 % of base) : 3174.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.20 % of base) : 4719.dasm - System.Text.Json.JsonHelpers:TryParseDateTimeOffset(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts)
         -16 (-4.04 % of base) : 11298.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -16 (-1.24 % of base) : 11708.dasm - System.Xml.XmlBinaryReader:ReadElementContentAsInt():int:this (FullOpts)
         -12 (-0.21 % of base) : 22722.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
         -12 (-0.43 % of base) : 18399.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckAbstractClassImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-1.21 % of base) : 17987.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
         -12 (-1.10 % of base) : 8474.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBlocks():this (FullOpts)
         -12 (-3.33 % of base) : 4619.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
         -12 (-0.56 % of base) : 10237.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
         -12 (-3.85 % of base) : 2287.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-5.17 % of base) : 3257.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-1.92 % of base) : 548.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-0.36 % of base) : 4887.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
         -12 (-0.17 % of base) : 7089.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WritePrimitive(System.Xml.Serialization.TypeMapping,System.String):this (FullOpts)

Top method regressions (percentages):
           8 (4.65 % of base) : 14260.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 19858.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 4574.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
          60 (3.14 % of base) : 14850.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
           8 (2.74 % of base) : 5494.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          12 (2.73 % of base) : 14366.dasm - System.Linq.Tests.Perf_Enumerable:EmptyTakeSelectToArray():this (FullOpts)
          32 (2.35 % of base) : 23266.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLocation:Write2_Location(System.String,System.String,MicroBenchmarks.Serializers.Location,ubyte,ubyte):this (FullOpts)
          44 (2.29 % of base) : 4185.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.22 % of base) : 3003.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           4 (2.22 % of base) : 16516.dasm - System.Xml.XmlTextReaderImpl:MoveToNextContentNode(ubyte):ubyte:this (FullOpts)
           8 (2.13 % of base) : 18586.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.04 % of base) : 2301.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          12 (1.92 % of base) : 14839.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[int](System.Collections.Generic.IEnumerable`1[int],int):int[] (FullOpts)
          20 (1.88 % of base) : 14235.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterIndexViewModel:Write3_CampaignSummaryViewModel(System.String,System.String,MicroBenchmarks.Serializers.CampaignSummaryViewModel,ubyte,ubyte):this (FullOpts)
          16 (1.85 % of base) : 16019.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
           4 (1.75 % of base) : 19504.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
           4 (1.61 % of base) : 18237.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          12 (1.36 % of base) : 14595.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
           4 (1.27 % of base) : 171.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
           8 (1.20 % of base) : 7164.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterLoginViewModel:Write2_LoginViewModel(System.String,System.String,MicroBenchmarks.Serializers.LoginViewModel,ubyte,ubyte):this (FullOpts)

Top method improvements (percentages):
          -8 (-6.45 % of base) : 14087.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -12 (-5.17 % of base) : 3257.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 7771.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
          -4 (-4.76 % of base) : 408.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (FullOpts)
          -8 (-4.44 % of base) : 1089.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -16 (-4.04 % of base) : 11298.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -12 (-3.85 % of base) : 2287.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.33 % of base) : 4619.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
          -4 (-3.23 % of base) : 18722.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
         -16 (-3.17 % of base) : 3174.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-2.78 % of base) : 3457.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectInternal(int,System.Threading.CancellationToken,int):this (FullOpts)
          -8 (-2.41 % of base) : 14885.dasm - System.Collections.IterateForEach`1[int]:Stack():int:this (FullOpts)
          -4 (-2.27 % of base) : 14461.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 2276.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 13752.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15775.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15342.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 15738.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4024.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -4 (-2.27 % of base) : 4797.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)


benchmarks.run_pgo.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 47218960 (overridden on cmd)
Total bytes of diff: 47211936 (overridden on cmd)
Total bytes of delta: -7024 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         284 : 34565.dasm (11.11 % of base)
         100 : 83600.dasm (0.52 % of base)
         100 : 79977.dasm (0.49 % of base)
          64 : 89165.dasm (4.52 % of base)
          40 : 72371.dasm (6.80 % of base)
          40 : 72507.dasm (0.42 % of base)
          36 : 74106.dasm (0.46 % of base)
          32 : 16438.dasm (2.20 % of base)
          32 : 22856.dasm (0.22 % of base)
          32 : 43259.dasm (2.18 % of base)
          32 : 67229.dasm (2.18 % of base)
          32 : 83430.dasm (2.18 % of base)
          32 : 73932.dasm (2.18 % of base)
          32 : 91887.dasm (2.20 % of base)
          32 : 96354.dasm (2.18 % of base)
          32 : 79486.dasm (0.87 % of base)
          32 : 88830.dasm (0.23 % of base)
          28 : 90223.dasm (4.55 % of base)
          28 : 97260.dasm (0.86 % of base)
          28 : 96968.dasm (4.02 % of base)

Top file improvements (bytes):
        -504 : 95518.dasm (-34.90 % of base)
        -456 : 95523.dasm (-33.14 % of base)
        -156 : 50393.dasm (-21.55 % of base)
        -156 : 50359.dasm (-21.55 % of base)
         -76 : 79302.dasm (-3.23 % of base)
         -60 : 80903.dasm (-2.23 % of base)
         -56 : 50395.dasm (-0.90 % of base)
         -56 : 71462.dasm (-2.41 % of base)
         -56 : 74344.dasm (-6.70 % of base)
         -52 : 79304.dasm (-2.04 % of base)
         -52 : 80908.dasm (-1.81 % of base)
         -48 : 67413.dasm (-1.05 % of base)
         -48 : 70487.dasm (-9.30 % of base)
         -44 : 34316.dasm (-3.10 % of base)
         -40 : 972.dasm (-1.25 % of base)
         -40 : 54338.dasm (-2.89 % of base)
         -36 : 77363.dasm (-4.43 % of base)
         -32 : 79471.dasm (-1.54 % of base)
         -28 : 64397.dasm (-1.15 % of base)
         -28 : 14209.dasm (-0.84 % of base)

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

Top method regressions (bytes):
         284 (11.11 % of base) : 34565.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         100 (0.49 % of base) : 79977.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 83600.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          64 (4.52 % of base) : 89165.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier1)
          40 (0.42 % of base) : 72507.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          40 (6.80 % of base) : 72371.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          36 (0.46 % of base) : 74106.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          32 (0.22 % of base) : 22856.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 88830.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (2.20 % of base) : 16438.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 43259.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 67229.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 83430.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 73932.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.20 % of base) : 91887.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.18 % of base) : 96354.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (0.87 % of base) : 79486.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
          28 (0.47 % of base) : 88808.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          28 (4.02 % of base) : 96968.dasm - System.Threading.SpinWait:SpinOnce(int):this (Tier1)
          28 (4.55 % of base) : 90223.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)

Top method improvements (bytes):
        -504 (-34.90 % of base) : 95518.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -456 (-33.14 % of base) : 95523.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 50393.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 50359.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -76 (-3.23 % of base) : 79302.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass38_0+<<ConcurrentReadWrite>b__0>d:MoveNext():this (Tier1-OSR)
         -60 (-2.23 % of base) : 80903.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1-OSR)
         -56 (-6.70 % of base) : 74344.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -56 (-0.90 % of base) : 50395.dasm - LUDecomp:Run():double:this (Tier1)
         -56 (-2.41 % of base) : 71462.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
         -52 (-2.04 % of base) : 79304.dasm - System.Net.Security.Tests.SslStreamTests+<ConcurrentReadWrite>d__38:MoveNext():this (Tier1-OSR)
         -52 (-1.81 % of base) : 80908.dasm - System.Net.Security.Tests.SslStreamTests+<ConcurrentReadWriteLargeBuffer>d__40:MoveNext():this (Tier1-OSR)
         -48 (-1.05 % of base) : 67413.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -48 (-9.30 % of base) : 70487.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -44 (-3.10 % of base) : 34316.dasm - System.Text.RegularExpressions.RegexCharClass:MayOverlap(System.String,System.String):ubyte (Tier1)
         -40 (-2.89 % of base) : 54338.dasm - System.Reflection.TypeNameParser:Parse():System.Type:this (Tier1)
         -40 (-1.25 % of base) : 972.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier0-FullOpts)
         -36 (-4.43 % of base) : 77363.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
         -32 (-1.54 % of base) : 79471.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
         -28 (-1.15 % of base) : 64397.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.Optimizer:FilterValidStackLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo]) (Tier1)
         -28 (-0.84 % of base) : 14209.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (Tier0-FullOpts)

Top method regressions (percentages):
         284 (11.11 % of base) : 34565.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          16 (10.81 % of base) : 13830.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 18597.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 3549.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (10.81 % of base) : 39803.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (7.27 % of base) : 30917.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 13831.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 18598.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          16 (7.14 % of base) : 39804.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          40 (6.80 % of base) : 72371.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          16 (5.48 % of base) : 45158.dasm - System.Reflection.TypeNameParser:GetNextToken():int:this (Tier1)
          12 (5.26 % of base) : 34102.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          12 (4.62 % of base) : 13935.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          12 (4.62 % of base) : 20939.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          12 (4.62 % of base) : 66149.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          28 (4.55 % of base) : 90223.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          28 (4.55 % of base) : 96970.dasm - System.Threading.SpinWait:SpinOnceCore(int):this (Tier1)
          64 (4.52 % of base) : 89165.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier1)
          16 (4.40 % of base) : 65696.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
          24 (4.11 % of base) : 97492.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)

Top method improvements (percentages):
        -504 (-34.90 % of base) : 95518.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -456 (-33.14 % of base) : 95523.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.55 % of base) : 50393.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 50359.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -48 (-9.30 % of base) : 70487.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(ulong,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
         -24 (-7.41 % of base) : 80742.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -16 (-7.02 % of base) : 10102.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 10100.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -56 (-6.70 % of base) : 74344.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -4 (-6.67 % of base) : 82502.dasm - System.Math:Max(double,double):double (Tier1)
          -4 (-5.56 % of base) : 92681.dasm - System.Text.RegularExpressions.RegexNode:get_IsSetFamily():ubyte:this (Tier1)
         -12 (-5.17 % of base) : 84586.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.00 % of base) : 3550.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)
          -4 (-5.00 % of base) : 12247.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-5.00 % of base) : 90291.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -4 (-5.00 % of base) : 26607.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
          -8 (-4.88 % of base) : 74868.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          -4 (-4.76 % of base) : 88171.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier1)
         -20 (-4.72 % of base) : 54629.dasm - System.Reflection.TypeNameParser:GetNextToken():int:this (Tier1)
         -24 (-4.69 % of base) : 79635.dasm - Benchstone.MDBenchF.MDInvMt:Inner(double[,],byref,byref) (Tier1-OSR)


benchmarks.run_tiered.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15346624 (overridden on cmd)
Total bytes of diff: 15346356 (overridden on cmd)
Total bytes of delta: -268 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 45776.dasm (0.52 % of base)
         100 : 44829.dasm (0.49 % of base)
          40 : 43025.dasm (0.42 % of base)
          36 : 43178.dasm (0.46 % of base)
          32 : 46510.dasm (0.23 % of base)
          32 : 21243.dasm (0.22 % of base)
          32 : 27114.dasm (0.82 % of base)
          32 : 40324.dasm (8.60 % of base)
          28 : 46508.dasm (0.47 % of base)
          24 : 21236.dasm (0.30 % of base)
          24 : 23627.dasm (0.25 % of base)
          24 : 47366.dasm (0.23 % of base)
          16 : 22810.dasm (0.42 % of base)
          12 : 23696.dasm (0.74 % of base)
          12 : 30595.dasm (0.20 % of base)
          12 : 29075.dasm (0.32 % of base)
          12 : 30600.dasm (0.28 % of base)
          12 : 40181.dasm (0.61 % of base)
           8 : 31224.dasm (2.35 % of base)
           8 : 39266.dasm (1.32 % of base)

Top file improvements (bytes):
        -420 : 47960.dasm (-31.44 % of base)
        -152 : 32014.dasm (-14.13 % of base)
         -56 : 43220.dasm (-6.97 % of base)
         -28 : 42852.dasm (-0.52 % of base)
         -20 : 44428.dasm (-1.36 % of base)
         -16 : 30792.dasm (-4.08 % of base)
         -16 : 31773.dasm (-3.17 % of base)
         -12 : 30192.dasm (-0.56 % of base)
         -12 : 16705.dasm (-5.17 % of base)
         -12 : 38980.dasm (-1.23 % of base)
         -12 : 4207.dasm (-0.57 % of base)
         -12 : 8604.dasm (-1.92 % of base)
          -8 : 23987.dasm (-0.40 % of base)
          -8 : 45696.dasm (-0.52 % of base)
          -8 : 5904.dasm (-4.44 % of base)
          -8 : 39331.dasm (-0.20 % of base)
          -8 : 42112.dasm (-1.87 % of base)
          -8 : 42858.dasm (-0.75 % of base)
          -8 : 43613.dasm (-0.50 % of base)
          -8 : 4483.dasm (-1.67 % of base)

66 total files with Code Size differences (29 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (0.49 % of base) : 44829.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         100 (0.52 % of base) : 45776.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          40 (0.42 % of base) : 43025.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
          36 (0.46 % of base) : 43178.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.Location (FullOpts)
          32 (0.22 % of base) : 21243.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (0.23 % of base) : 46510.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
          32 (8.60 % of base) : 40324.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
          32 (0.82 % of base) : 27114.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier1)
          28 (0.47 % of base) : 46508.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          24 (0.23 % of base) : 47366.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.25 % of base) : 23627.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives (FullOpts)
          24 (0.30 % of base) : 21236.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          16 (0.42 % of base) : 22810.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier1)
          12 (0.20 % of base) : 30595.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.28 % of base) : 30600.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          12 (0.32 % of base) : 29075.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (Tier1)
          12 (0.61 % of base) : 40181.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          12 (0.74 % of base) : 23696.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Tier1-OSR)
           8 (1.32 % of base) : 39266.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetWellKnownTypeMember(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)
           8 (2.35 % of base) : 31224.dasm - Neural:DoNNetIteration(long):long (Tier1-OSR)

Top method improvements (bytes):
        -420 (-31.44 % of base) : 47960.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32014.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43220.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -28 (-0.52 % of base) : 42852.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
         -20 (-1.36 % of base) : 44428.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,ubyte) (Tier1-OSR)
         -16 (-3.17 % of base) : 31773.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
         -16 (-4.08 % of base) : 30792.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
         -12 (-1.23 % of base) : 38980.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
         -12 (-0.57 % of base) : 4207.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
         -12 (-0.56 % of base) : 30192.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier1)
         -12 (-5.17 % of base) : 16705.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
         -12 (-1.92 % of base) : 8604.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-0.52 % of base) : 45696.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier1-OSR)
          -8 (-1.87 % of base) : 42112.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-0.20 % of base) : 39331.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:LoadMembers():this (Tier1)
          -8 (-0.50 % of base) : 43613.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)
          -8 (-4.44 % of base) : 5904.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
          -8 (-0.40 % of base) : 23987.dasm - System.IO.Tests.Perf_FileStream+<WriteAsync>d__37:MoveNext():this (Tier1)
          -8 (-0.75 % of base) : 42858.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
          -8 (-1.67 % of base) : 4483.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)

Top method regressions (percentages):
          32 (8.60 % of base) : 40324.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (4.35 % of base) : 47089.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (Tier1)
           4 (3.57 % of base) : 4353.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
           8 (2.74 % of base) : 40282.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
           8 (2.35 % of base) : 31224.dasm - Neural:DoNNetIteration(long):long (Tier1-OSR)
           8 (2.35 % of base) : 30706.dasm - NeuralJagged:DoNNetIteration(long):long (Tier1-OSR)
           4 (2.22 % of base) : 16398.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (Tier1)
           4 (1.61 % of base) : 38870.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (Tier1)
           4 (1.39 % of base) : 18991.dasm - System.IO.Stream:ReadAtLeastCore(System.Span`1[ubyte],int,ubyte):int:this (Tier1)
           4 (1.37 % of base) : 46907.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
           8 (1.32 % of base) : 39266.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetWellKnownTypeMember(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)
           4 (1.27 % of base) : 875.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
           4 (1.19 % of base) : 20905.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
           4 (1.16 % of base) : 41562.dasm - Microsoft.CodeAnalysis.SyntaxNode+ChildSyntaxListEnumeratorStack:TryGetNextAsNodeInSpan(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
           4 (1.02 % of base) : 24581.dasm - System.IO.Tests.Perf_FileStream:Write(int,long,int,int,int):this (Tier1-OSR)
           4 (1.02 % of base) : 31638.dasm - System.IO.Tests.Perf_FileStream:Write_NoBuffering_PreallocationSize(long,int,int):this (Tier1-OSR)
           4 (0.91 % of base) : 4341.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
          32 (0.82 % of base) : 27114.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier1)
           4 (0.75 % of base) : 12688.dasm - System.Threading.LowLevelLifoSemaphore:WaitForSignal(int):ubyte:this (Tier1)
          12 (0.74 % of base) : 23696.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Tier1-OSR)

Top method improvements (percentages):
        -420 (-31.44 % of base) : 47960.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32014.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43220.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -12 (-5.17 % of base) : 16705.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
          -4 (-4.76 % of base) : 5850.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (Tier1)
          -8 (-4.44 % of base) : 5904.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
         -16 (-4.08 % of base) : 30792.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
         -16 (-3.17 % of base) : 31773.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (Tier1)
          -4 (-2.17 % of base) : 5834.dasm - System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[ushort]):ubyte (Tier1)
          -4 (-2.08 % of base) : 38684.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:MoveNext():ubyte:this (Tier1)
          -4 (-2.08 % of base) : 20959.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -4 (-2.04 % of base) : 918.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -4 (-1.92 % of base) : 4306.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
         -12 (-1.92 % of base) : 8604.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-1.87 % of base) : 42112.dasm - Microsoft.CodeAnalysis.Compilation:SyntaxTreeCommonFeatures(System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String] (Tier1)
          -8 (-1.67 % of base) : 4483.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
          -4 (-1.41 % of base) : 27488.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier1)
          -4 (-1.41 % of base) : 47064.dasm - System.Net.Sockets.SocketAsyncEventArgs:StartOperationAccept():this (Tier1)
         -20 (-1.36 % of base) : 44428.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,ubyte) (Tier1-OSR)
          -4 (-1.27 % of base) : 19602.dasm - Benchstone.MDBenchI.MDArray2:Bench(int):ubyte (Tier1-OSR)


coreclr_tests.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 495323188 (overridden on cmd)
Total bytes of diff: 495282744 (overridden on cmd)
Total bytes of delta: -40444 (-0.01 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         144 : 391641.dasm (5.56 % of base)
         128 : 387536.dasm (4.91 % of base)
          88 : 593870.dasm (1.85 % of base)
          80 : 528182.dasm (3.60 % of base)
          76 : 391438.dasm (1.79 % of base)
          72 : 391405.dasm (3.44 % of base)
          60 : 405364.dasm (34.88 % of base)
          56 : 405781.dasm (32.56 % of base)
          52 : 310710.dasm (24.07 % of base)
          52 : 310708.dasm (24.07 % of base)
          52 : 386833.dasm (1.43 % of base)
          44 : 287976.dasm (8.87 % of base)
          44 : 498107.dasm (2.29 % of base)
          40 : 593673.dasm (0.46 % of base)
          36 : 199352.dasm (1.07 % of base)
          36 : 391401.dasm (0.98 % of base)
          36 : 497577.dasm (0.61 % of base)
          36 : 497627.dasm (1.04 % of base)
          36 : 387108.dasm (1.73 % of base)
          32 : 405292.dasm (16.00 % of base)

Top file improvements (bytes):
        -504 : 254898.dasm (-34.90 % of base)
        -168 : 304176.dasm (-31.82 % of base)
        -156 : 250751.dasm (-21.55 % of base)
        -156 : 250766.dasm (-21.55 % of base)
        -156 : 581308.dasm (-2.91 % of base)
        -156 : 357092.dasm (-2.91 % of base)
        -156 : 357673.dasm (-2.88 % of base)
        -156 : 581490.dasm (-2.91 % of base)
        -128 : 526766.dasm (-4.14 % of base)
         -80 : 486791.dasm (-2.49 % of base)
         -68 : 392177.dasm (-1.41 % of base)
         -56 : 301243.dasm (-7.87 % of base)
         -56 : 535009.dasm (-8.05 % of base)
         -52 : 250774.dasm (-0.83 % of base)
         -44 : 393485.dasm (-2.30 % of base)
         -40 : 284989.dasm (-1.90 % of base)
         -40 : 311165.dasm (-0.68 % of base)
         -40 : 358018.dasm (-0.68 % of base)
         -40 : 373337.dasm (-1.90 % of base)
         -40 : 291613.dasm (-1.90 % of base)

71 total files with Code Size differences (36 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         144 (5.56 % of base) : 391641.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,byref):ubyte:this (Tier1)
         128 (4.91 % of base) : 387536.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedMethodKey,byref):ubyte:this (Tier1)
          88 (1.85 % of base) : 593870.dasm - Internal.IL.Stubs.UnsafeIntrinsics:EmitIL(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
          80 (3.60 % of base) : 528182.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          76 (1.79 % of base) : 391438.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1)
          72 (3.44 % of base) : 391405.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          60 (34.88 % of base) : 405364.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 405781.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (1.43 % of base) : 386833.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
          52 (24.07 % of base) : 310708.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 310710.dasm - testout1:Test2(int):int (Tier1-OSR)
          44 (8.87 % of base) : 287976.dasm - RetBufferBug:Main():int (Tier1-OSR)
          44 (2.29 % of base) : 498107.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.46 % of base) : 593673.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          36 (0.98 % of base) : 391401.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
          36 (1.73 % of base) : 387108.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          36 (1.04 % of base) : 497627.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 497577.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (1.07 % of base) : 199352.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Instrumented Tier1)
          32 (16.00 % of base) : 405254.dasm - testout1:Sub_Funclet_107():int (FullOpts)

Top method improvements (bytes):
        -504 (-34.90 % of base) : 254898.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 304176.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 250751.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 250766.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-2.91 % of base) : 581308.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.91 % of base) : 581490.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
        -156 (-2.91 % of base) : 357092.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -156 (-2.88 % of base) : 357673.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
        -128 (-4.14 % of base) : 526766.dasm - Test_baduwinfo1:bar(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String):int (FullOpts)
         -80 (-2.49 % of base) : 486791.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -68 (-1.41 % of base) : 392177.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -56 (-8.05 % of base) : 535009.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-7.87 % of base) : 301243.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -52 (-0.83 % of base) : 250774.dasm - LUDecomp:Run():double:this (Tier1)
         -44 (-2.30 % of base) : 393485.dasm - Test:TestEntryPoint():int (Tier1-OSR)
         -40 (-1.90 % of base) : 284989.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Instrumented Tier1)
         -40 (-1.90 % of base) : 373337.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Instrumented Tier1)
         -40 (-1.90 % of base) : 291613.dasm - System.Diagnostics.Tracing.EventSource:Initialize(System.Guid,System.String,System.String[]):this (Instrumented Tier1)
         -40 (-0.68 % of base) : 311165.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
         -40 (-0.68 % of base) : 358018.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)

Top method regressions (percentages):
          60 (34.88 % of base) : 405364.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          56 (32.56 % of base) : 405781.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          52 (24.07 % of base) : 310708.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 310710.dasm - testout1:Test2(int):int (Tier1-OSR)
          32 (16.00 % of base) : 405254.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          32 (16.00 % of base) : 405292.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          32 (16.00 % of base) : 405366.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          28 (14.00 % of base) : 405671.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          28 (14.00 % of base) : 405709.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          28 (14.00 % of base) : 405783.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          24 (12.77 % of base) : 405708.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          24 (12.77 % of base) : 405291.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          16 (11.11 % of base) : 219740.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (11.11 % of base) : 215953.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (11.11 % of base) : 219357.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (11.11 % of base) : 303979.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          16 (11.11 % of base) : 219711.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          20 (10.42 % of base) : 405747.dasm - testout1:Sub_Funclet_184():int (FullOpts)
          20 (10.42 % of base) : 405778.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          20 (10.42 % of base) : 405782.dasm - testout1:Sub_Funclet_222():int (FullOpts)

Top method improvements (percentages):
        -504 (-34.90 % of base) : 254898.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 304176.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.55 % of base) : 250751.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.55 % of base) : 250766.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -28 (-14.00 % of base) : 406283.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -28 (-14.00 % of base) : 406699.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -32 (-11.59 % of base) : 217746.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Action`1[ubyte],System.Object) (FullOpts)
         -32 (-11.11 % of base) : 218092.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.DateTime,System.Object) (FullOpts)
         -32 (-10.81 % of base) : 257607.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.67 % of base) : 217573.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 257604.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -28 (-8.33 % of base) : 257612.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object):System.Object (FullOpts)
         -56 (-8.05 % of base) : 535009.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-7.87 % of base) : 301243.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -16 (-7.02 % of base) : 253859.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -28 (-6.93 % of base) : 486178.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 253857.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -36 (-6.87 % of base) : 218243.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object,System.Object) (FullOpts)
         -32 (-6.78 % of base) : 217933.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,double,System.Object) (FullOpts)
         -32 (-6.78 % of base) : 217917.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,float,System.Object) (FullOpts)


libraries.crossgen2.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 58963476 (overridden on cmd)
Total bytes of diff: 58963524 (overridden on cmd)
Total bytes of delta: 48 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         132 : 100152.dasm (0.35 % of base)
          84 : 51885.dasm (0.27 % of base)
          72 : 5366.dasm (0.63 % of base)
          52 : 136192.dasm (1.33 % of base)
          44 : 226374.dasm (2.07 % of base)
          44 : 2799.dasm (2.28 % of base)
          40 : 209717.dasm (1.89 % of base)
          40 : 240065.dasm (1.85 % of base)
          40 : 56541.dasm (1.39 % of base)
          32 : 10295.dasm (2.12 % of base)
          32 : 117917.dasm (2.35 % of base)
          32 : 140409.dasm (2.24 % of base)
          32 : 140410.dasm (2.18 % of base)
          32 : 56537.dasm (2.13 % of base)
          28 : 141125.dasm (1.73 % of base)
          28 : 167406.dasm (1.45 % of base)
          28 : 168772.dasm (4.22 % of base)
          24 : 160216.dasm (0.63 % of base)
          24 : 202742.dasm (0.49 % of base)
          24 : 218242.dasm (1.11 % of base)

Top file improvements (bytes):
         -84 : 141122.dasm (-7.81 % of base)
         -52 : 202055.dasm (-2.19 % of base)
         -44 : 161308.dasm (-1.75 % of base)
         -36 : 144297.dasm (-6.34 % of base)
         -36 : 174069.dasm (-6.34 % of base)
         -32 : 168432.dasm (-3.98 % of base)
         -32 : 182926.dasm (-0.86 % of base)
         -28 : 48534.dasm (-1.62 % of base)
         -28 : 113821.dasm (-1.51 % of base)
         -28 : 116734.dasm (-0.66 % of base)
         -24 : 185912.dasm (-0.79 % of base)
         -24 : 203028.dasm (-0.84 % of base)
         -24 : 93596.dasm (-0.74 % of base)
         -20 : 146683.dasm (-2.38 % of base)
         -20 : 47767.dasm (-0.46 % of base)
         -20 : 162277.dasm (-0.62 % of base)
         -16 : 157625.dasm (-0.31 % of base)
         -16 : 169022.dasm (-0.28 % of base)
         -16 : 107245.dasm (-0.28 % of base)
         -16 : 200170.dasm (-3.25 % of base)

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

Top method regressions (bytes):
         132 (0.35 % of base) : 100152.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          84 (0.27 % of base) : 51885.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          72 (0.63 % of base) : 5366.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          52 (1.33 % of base) : 136192.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (2.07 % of base) : 226374.dasm - System.IO.Ports.SerialStream:.ctor(System.String,int,int,int,int,int,int,int,ubyte,ubyte,ubyte,ubyte):this (FullOpts)
          44 (2.28 % of base) : 2799.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (1.39 % of base) : 56541.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          40 (1.89 % of base) : 209717.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (1.85 % of base) : 240065.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          32 (2.13 % of base) : 56537.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          32 (2.35 % of base) : 117917.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)
          32 (2.24 % of base) : 140409.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:SystemTypeName(System.String):System.String (FullOpts)
          32 (2.18 % of base) : 140410.dasm - Microsoft.VisualBasic.CompilerServices.Versioned:VbTypeName(System.String):System.String (FullOpts)
          32 (2.12 % of base) : 10295.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (1.73 % of base) : 141125.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:CreateParamOrder(ubyte,int[],System.Reflection.ParameterInfo[],System.Object[],System.String[]):System.Exception:this (FullOpts)
          28 (4.22 % of base) : 168772.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
          28 (1.45 % of base) : 167406.dasm - System.Data.Common.DbColumn:get_Item(System.String):System.Object:this (FullOpts)
          24 (1.11 % of base) : 218242.dasm - Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this (FullOpts)
          24 (0.63 % of base) : 160216.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (FullOpts)
          24 (0.49 % of base) : 202742.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)

Top method improvements (bytes):
         -84 (-7.81 % of base) : 141122.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -52 (-2.19 % of base) : 202055.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
         -44 (-1.75 % of base) : 161308.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -36 (-6.34 % of base) : 144297.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 174069.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.86 % of base) : 182926.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
         -32 (-3.98 % of base) : 168432.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -28 (-1.62 % of base) : 48534.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTupleBinaryOperatorNestedInfo(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.TupleBinaryOperatorInfo+Multiple:this (FullOpts)
         -28 (-0.66 % of base) : 116734.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+IntoClauseBinder:BindIntoSelector(Microsoft.CodeAnalysis.VisualBasic.Syntax.QueryClauseSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],System.Collections.Generic.HashSet`1[System.String],Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregationRangeVariableSyntax],ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -28 (-1.51 % of base) : 113821.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -24 (-0.74 % of base) : 93596.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindUserDefinedShortCircuitingOperator(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundUserDefinedShortCircuitingOperator:this (FullOpts)
         -24 (-0.79 % of base) : 185912.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:UpdateGroupMembership(System.DirectoryServices.AccountManagement.Principal,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.AccountManagement.NetCred,int) (FullOpts)
         -24 (-0.84 % of base) : 203028.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WritePrimitive(System.Xml.Serialization.TypeMapping,System.Func`2[System.Object,System.String],System.Object):System.Object:this (FullOpts)
         -20 (-0.46 % of base) : 47767.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
         -20 (-2.38 % of base) : 146683.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -20 (-0.62 % of base) : 162277.dasm - System.Data.OleDb.OleDbMetaDataFactory:.ctor(System.IO.Stream,System.String,System.String,System.Data.OleDb.SchemaSupport[]):this (FullOpts)
         -16 (-0.28 % of base) : 107245.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
         -16 (-0.28 % of base) : 169022.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
         -16 (-2.65 % of base) : 25588.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
         -16 (-0.31 % of base) : 157625.dasm - System.DirectoryServices.ActiveDirectory.ActiveDirectorySite:GetBridgeheadServers():System.DirectoryServices.ActiveDirectory.ReadOnlyDirectoryServerCollection:this (FullOpts)

Top method regressions (percentages):
          16 (9.76 % of base) : 3327.dasm - System.Decimal:.ctor(System.ReadOnlySpan`1[int]):this (FullOpts)
           8 (8.33 % of base) : 54282.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
           8 (5.71 % of base) : 148860.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 178554.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (4.55 % of base) : 22363.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
          28 (4.22 % of base) : 168772.dasm - System.Data.Common.BigIntegerStorage:ConvertToBigInteger(System.Object,System.IFormatProvider):System.Numerics.BigInteger (FullOpts)
           8 (4.08 % of base) : 193577.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           8 (4.00 % of base) : 144.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (4.00 % of base) : 226533.dasm - System.Threading.ReaderWriterLock+ThreadLocalLockEntry:GetCurrent(long):System.Threading.ReaderWriterLock+ThreadLocalLockEntry (FullOpts)
           8 (3.77 % of base) : 169398.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
           8 (3.64 % of base) : 64373.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (3.57 % of base) : 215706.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.08 % of base) : 79866.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
          12 (2.78 % of base) : 141446.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
           8 (2.78 % of base) : 25172.dasm - System.DateTimeParse:ProcessDateTimeSuffix(byref,byref,byref):ubyte (FullOpts)
          20 (2.78 % of base) : 185314.dasm - System.DirectoryServices.AccountManagement.Principal:GetChangeStatusForProperty(System.String):ubyte:this (FullOpts)
           8 (2.70 % of base) : 23330.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          20 (2.65 % of base) : 185315.dasm - System.DirectoryServices.AccountManagement.Principal:GetValueForProperty(System.String):System.Object:this (FullOpts)
           8 (2.60 % of base) : 8265.dasm - System.Globalization.CultureInfo:GetCultureInfo(System.String,ubyte):System.Globalization.CultureInfo (FullOpts)
          32 (2.35 % of base) : 117917.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler:GetWellKnownTag(System.String):int (FullOpts)

Top method improvements (percentages):
         -84 (-7.81 % of base) : 141122.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -16 (-6.78 % of base) : 14429.dasm - System.IO.Path:Join(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-6.67 % of base) : 14427.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -36 (-6.34 % of base) : 144297.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-6.34 % of base) : 174069.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.77 % of base) : 14428.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-5.00 % of base) : 206692.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
          -4 (-4.76 % of base) : 24233.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (FullOpts)
          -8 (-4.65 % of base) : 20585.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -12 (-4.17 % of base) : 20586.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-3.98 % of base) : 168432.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -16 (-3.77 % of base) : 20587.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-3.33 % of base) : 123855.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-3.33 % of base) : 161833.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
          -4 (-3.33 % of base) : 200189.dasm - System.Xml.XPath.XPathNavigator:IsValidChildType(int):ubyte:this (FullOpts)
         -16 (-3.25 % of base) : 200170.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:CachesResult(System.Xml.Xsl.Qil.QilNode):ubyte (FullOpts)
          -4 (-3.23 % of base) : 48187.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
         -16 (-2.65 % of base) : 25588.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:AddIdToGuid(ulong,int,uint,ubyte):int (FullOpts)
          -4 (-2.56 % of base) : 122283.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.56 % of base) : 197765.dasm - System.Xml.Serialization.XmlSerializationReader:IsXmlnsAttribute(System.String):ubyte:this (FullOpts)


libraries.pmi.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79565936 (overridden on cmd)
Total bytes of diff: 79562388 (overridden on cmd)
Total bytes of delta: -3548 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 102700.dasm (0.25 % of base)
          96 : 283194.dasm (4.96 % of base)
          52 : 53218.dasm (1.62 % of base)
          52 : 57451.dasm (0.15 % of base)
          48 : 149121.dasm (1.21 % of base)
          44 : 198635.dasm (0.93 % of base)
          44 : 13801.dasm (2.29 % of base)
          44 : 283195.dasm (2.02 % of base)
          44 : 54058.dasm (0.66 % of base)
          40 : 155048.dasm (1.64 % of base)
          40 : 211429.dasm (0.61 % of base)
          40 : 232096.dasm (0.45 % of base)
          40 : 220235.dasm (2.06 % of base)
          40 : 248337.dasm (2.01 % of base)
          40 : 280575.dasm (2.87 % of base)
          40 : 300134.dasm (2.29 % of base)
          40 : 95432.dasm (0.17 % of base)
          36 : 62204.dasm (0.61 % of base)
          36 : 62211.dasm (1.04 % of base)
          36 : 214654.dasm (7.38 % of base)

Top file improvements (bytes):
         -80 : 127174.dasm (-2.48 % of base)
         -72 : 145929.dasm (-0.25 % of base)
         -60 : 202365.dasm (-1.52 % of base)
         -60 : 289400.dasm (-2.47 % of base)
         -56 : 52354.dasm (-8.24 % of base)
         -52 : 223297.dasm (-4.19 % of base)
         -52 : 237537.dasm (-3.32 % of base)
         -44 : 147016.dasm (-3.94 % of base)
         -40 : 209912.dasm (-4.13 % of base)
         -40 : 147027.dasm (-4.76 % of base)
         -40 : 150073.dasm (-2.68 % of base)
         -40 : 207381.dasm (-1.78 % of base)
         -40 : 222534.dasm (-0.68 % of base)
         -40 : 269272.dasm (-1.51 % of base)
         -36 : 150324.dasm (-2.71 % of base)
         -36 : 196449.dasm (-0.84 % of base)
         -36 : 202413.dasm (-3.41 % of base)
         -36 : 225085.dasm (-4.25 % of base)
         -36 : 261166.dasm (-0.68 % of base)
         -32 : 131475.dasm (-5.84 % of base)

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

Top method regressions (bytes):
         100 (0.25 % of base) : 102700.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
          96 (4.96 % of base) : 283194.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetAllTcpConnections():System.Collections.Generic.List`1[System.Net.NetworkInformation.SystemTcpConnectionInformation] (FullOpts)
          52 (1.62 % of base) : 53218.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          52 (0.15 % of base) : 57451.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (1.21 % of base) : 149121.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          44 (0.66 % of base) : 54058.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindElementOrIndexerAccess>g__bindInlineArrayElementAccess|499_1(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,int,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          44 (0.93 % of base) : 198635.dasm - System.Net.Http.HttpConnectionPool+<AddHttp2ConnectionAsync>d__83:MoveNext():this (FullOpts)
          44 (2.02 % of base) : 283195.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetActiveUdpListeners():System.Net.IPEndPoint[]:this (FullOpts)
          44 (2.29 % of base) : 13801.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          40 (0.45 % of base) : 232096.dasm - Internal.JitInterface.InstructionSetParser:LookupPlatformIntrinsicInstructionSet(int,Internal.TypeSystem.TypeDesc):int (FullOpts)
          40 (1.64 % of base) : 155048.dasm - Microsoft.Build.Evaluation.ExpressionShredder:GetReferencedItemExpressions(System.String,int,int):System.Collections.Generic.List`1[Microsoft.Build.Evaluation.ExpressionShredder+ItemExpressionCapture] (FullOpts)
          40 (0.17 % of base) : 95432.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
          40 (2.06 % of base) : 220235.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.01 % of base) : 248337.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.87 % of base) : 280575.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          40 (2.29 % of base) : 300134.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          40 (0.61 % of base) : 211429.dasm - System.Xml.DtdParser+<ParseAttlistTypeAsync>d__161:MoveNext():this (FullOpts)
          36 (1.04 % of base) : 62211.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 62204.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (0.44 % of base) : 95427.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)

Top method improvements (bytes):
         -80 (-2.48 % of base) : 127174.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -72 (-0.25 % of base) : 145929.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)
         -60 (-1.52 % of base) : 202365.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -60 (-2.47 % of base) : 289400.dasm - System.Xml.Linq.XNodeBuilder:WriteEntityRef(System.String):this (FullOpts)
         -56 (-8.24 % of base) : 52354.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -52 (-3.32 % of base) : 237537.dasm - ILCompiler.Reflection.ReadyToRun.Amd64.GcInfo:GetLiveSlotsAtSafepoints(ubyte[],byref):System.Collections.Generic.List`1[System.Collections.Generic.List`1[ILCompiler.Reflection.ReadyToRun.BaseGcSlot]]:this (FullOpts)
         -52 (-4.19 % of base) : 223297.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
         -44 (-3.94 % of base) : 147016.dasm - Newtonsoft.Json.JsonReader:ReadAsBytes():ubyte[]:this (FullOpts)
         -40 (-2.68 % of base) : 150073.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadElement(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Converters.IXmlDocument,Newtonsoft.Json.Converters.IXmlNode,System.String,System.Xml.XmlNamespaceManager):this (FullOpts)
         -40 (-4.76 % of base) : 147027.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTimeOffset():System.Nullable`1[System.DateTimeOffset]:this (FullOpts)
         -40 (-1.51 % of base) : 269272.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:IdentityClaimToFilter(System.String,System.String,byref,ubyte):ubyte (FullOpts)
         -40 (-0.68 % of base) : 222534.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
         -40 (-1.78 % of base) : 207381.dasm - System.Xml.XmlUtf8RawTextWriter+<DisposeAsyncCore>d__85:MoveNext():this (FullOpts)
         -40 (-4.13 % of base) : 209912.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache:WriteEntityRef(System.String):this (FullOpts)
         -36 (-2.71 % of base) : 150324.dasm - Newtonsoft.Json.JsonTextWriter+<WriteIndentAsync>d__13:MoveNext():this (FullOpts)
         -36 (-0.68 % of base) : 261166.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
         -36 (-0.84 % of base) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
         -36 (-3.41 % of base) : 202413.dasm - System.Runtime.Serialization.SchemaHelper:AddSchemaImport(System.String,System.Xml.Schema.XmlSchema) (FullOpts)
         -36 (-4.25 % of base) : 225085.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:ValidateHashAlgorithm(System.Security.Cryptography.HashAlgorithmName) (FullOpts)
         -32 (-5.84 % of base) : 131475.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)

Top method regressions (percentages):
          28 (10.00 % of base) : 158376.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
          12 (10.00 % of base) : 54713.dasm - Microsoft.CodeAnalysis.CSharp.PatternExplainer:<SamplePatternForTemp>g__makeConjunct|4_10(System.String,System.String):System.String (FullOpts)
          16 (8.70 % of base) : 254956.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          16 (8.70 % of base) : 256030.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
          36 (7.38 % of base) : 214654.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
           8 (6.67 % of base) : 272732.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
          16 (6.56 % of base) : 154126.dasm - Microsoft.Build.Graph.ProjectInterpretation:SplitPropertyNames(System.String):System.Collections.Generic.IReadOnlyCollection`1[System.String] (FullOpts)
           8 (6.45 % of base) : 272744.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          16 (6.06 % of base) : 158217.dasm - Microsoft.Build.Shared.EncodingUtilities:SimilarToEncoding(System.Text.Encoding,System.Text.Encoding):ubyte (FullOpts)
          32 (5.76 % of base) : 254958.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:Insert(int,System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts)
           8 (5.71 % of base) : 138178.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (5.71 % of base) : 173520.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
          20 (5.49 % of base) : 240519.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
           8 (5.13 % of base) : 253196.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]:Sort(System.Comparison`1[ubyte]):this (FullOpts)
          96 (4.96 % of base) : 283194.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetAllTcpConnections():System.Collections.Generic.List`1[System.Net.NetworkInformation.SystemTcpConnectionInformation] (FullOpts)
           8 (4.76 % of base) : 71803.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (4.76 % of base) : 264940.dasm - System.Data.ProviderBase.DbConnectionFactory:FindConnectionOptions(System.Data.Common.DbConnectionPoolKey):System.Data.Common.DbConnectionOptions:this (FullOpts)
           8 (4.65 % of base) : 221948.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (4.65 % of base) : 223628.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (4.65 % of base) : 208533.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)

Top method improvements (percentages):
         -16 (-10.81 % of base) : 199696.dasm - System.Net.Http.Headers.RetryConditionHeaderValue:.ctor(System.TimeSpan):this (FullOpts)
          -8 (-9.09 % of base) : 720.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -56 (-8.24 % of base) : 52354.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -28 (-6.93 % of base) : 126336.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+GroupToArgsBinder:GetNextSym(Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults+CMethodIterator):ubyte:this (FullOpts)
         -16 (-6.78 % of base) : 206768.dasm - System.Xml.XmlSqlBinaryReader+QName:MatchPrefix(System.String,System.String):ubyte:this (FullOpts)
         -28 (-6.14 % of base) : 265616.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -28 (-6.09 % of base) : 289106.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
         -28 (-5.98 % of base) : 262466.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -20 (-5.88 % of base) : 266297.dasm - System.Diagnostics.Metrics.StringSequence3:Equals(System.Diagnostics.Metrics.StringSequence3):ubyte:this (FullOpts)
         -24 (-5.88 % of base) : 220658.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -24 (-5.88 % of base) : 248695.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
         -20 (-5.88 % of base) : 206773.dasm - System.Xml.XmlSqlBinaryReader+QName:Equals(System.Xml.XmlSqlBinaryReader+QName):ubyte:this (FullOpts)
         -32 (-5.84 % of base) : 131475.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-5.84 % of base) : 166890.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -16 (-5.56 % of base) : 166423.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
         -16 (-5.56 % of base) : 131007.dasm - Microsoft.CodeAnalysis.SuppressionDescriptor:Equals(Microsoft.CodeAnalysis.SuppressionDescriptor):ubyte:this (FullOpts)
          -4 (-5.56 % of base) : 270704.dasm - System.Formats.Asn1.SpanBasedEncoding:GetBytes(ulong,int,ulong,int):int:this (FullOpts)
          -4 (-5.56 % of base) : 270709.dasm - System.Formats.Asn1.SpanBasedEncoding:GetChars(ulong,int,ulong,int):int:this (FullOpts)
         -16 (-5.41 % of base) : 261193.dasm - System.ComponentModel.DesignerAttribute:Equals(System.Object):ubyte:this (FullOpts)
         -16 (-5.41 % of base) : 261225.dasm - System.ComponentModel.EditorAttribute:Equals(System.Object):ubyte:this (FullOpts)


libraries_tests.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 309738560 (overridden on cmd)
Total bytes of diff: 309693628 (overridden on cmd)
Total bytes of delta: -44932 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         140 : 156158.dasm (3.27 % of base)
         132 : 89333.dasm (4.15 % of base)
         124 : 61427.dasm (4.02 % of base)
         120 : 580826.dasm (16.48 % of base)
         120 : 59659.dasm (2.45 % of base)
         120 : 605652.dasm (3.80 % of base)
         112 : 265734.dasm (4.17 % of base)
         112 : 54269.dasm (2.09 % of base)
         112 : 333941.dasm (4.17 % of base)
         108 : 87725.dasm (0.54 % of base)
         104 : 268289.dasm (3.77 % of base)
         104 : 459646.dasm (3.90 % of base)
         104 : 326982.dasm (3.77 % of base)
         104 : 353273.dasm (3.53 % of base)
         104 : 82289.dasm (3.77 % of base)
          92 : 288019.dasm (0.94 % of base)
          88 : 621509.dasm (1.02 % of base)
          88 : 84987.dasm (1.57 % of base)
          88 : 89235.dasm (1.81 % of base)
          88 : 91104.dasm (0.74 % of base)

Top file improvements (bytes):
        -764 : 155714.dasm (-31.62 % of base)
        -704 : 156224.dasm (-6.00 % of base)
        -320 : 164025.dasm (-2.49 % of base)
        -152 : 77554.dasm (-1.00 % of base)
        -136 : 469813.dasm (-0.95 % of base)
        -128 : 34985.dasm (-0.84 % of base)
        -128 : 77578.dasm (-1.95 % of base)
        -120 : 616902.dasm (-0.84 % of base)
        -112 : 614170.dasm (-0.84 % of base)
        -112 : 493765.dasm (-0.52 % of base)
         -88 : 380032.dasm (-1.82 % of base)
         -84 : 214477.dasm (-1.06 % of base)
         -84 : 330722.dasm (-1.06 % of base)
         -84 : 469718.dasm (-1.06 % of base)
         -84 : 608922.dasm (-1.06 % of base)
         -84 : 341129.dasm (-0.48 % of base)
         -84 : 572789.dasm (-1.06 % of base)
         -84 : 232609.dasm (-1.06 % of base)
         -84 : 367506.dasm (-1.06 % of base)
         -84 : 435758.dasm (-1.06 % of base)

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

Top method regressions (bytes):
         140 (3.27 % of base) : 156158.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
         132 (4.15 % of base) : 89333.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         124 (4.02 % of base) : 61427.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         120 (2.45 % of base) : 59659.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
         120 (3.80 % of base) : 605652.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         120 (16.48 % of base) : 580826.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
         112 (2.09 % of base) : 54269.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         112 (4.17 % of base) : 265734.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         112 (4.17 % of base) : 333941.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         108 (0.54 % of base) : 87725.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
         104 (3.77 % of base) : 268289.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         104 (3.90 % of base) : 459646.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         104 (3.77 % of base) : 326982.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         104 (3.53 % of base) : 353273.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
         104 (3.77 % of base) : 82289.dasm - System.DateTimeParse:DoStrictParse(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,System.Globalization.DateTimeFormatInfo,byref):ubyte (Instrumented Tier1)
          92 (0.94 % of base) : 288019.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<AfterTestCaseStartingAsync>d__9:MoveNext():this (Tier1-OSR)
          88 (1.81 % of base) : 89235.dasm - Microsoft.CodeAnalysis.CombineNode`2[int,int]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[int,int]]:this (Tier1)
          88 (1.57 % of base) : 84987.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
          88 (0.74 % of base) : 91104.dasm - Microsoft.Interop.TypeSymbolExtensions:ResolveUnboundConstructedTypeToConstructedType(Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,byref,byref):Microsoft.CodeAnalysis.INamedTypeSymbol (Tier1)
          88 (1.02 % of base) : 621509.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
        -764 (-31.62 % of base) : 155714.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
        -704 (-6.00 % of base) : 156224.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (Tier1)
        -320 (-2.49 % of base) : 164025.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -152 (-1.00 % of base) : 77554.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -136 (-0.95 % of base) : 469813.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -128 (-0.84 % of base) : 34985.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -128 (-1.95 % of base) : 77578.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
        -120 (-0.84 % of base) : 616902.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -112 (-0.84 % of base) : 614170.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -112 (-0.52 % of base) : 493765.dasm - System.Xml.XmlLoader:LoadNode(ubyte):System.Xml.XmlNode:this (Tier1-OSR)
         -88 (-1.82 % of base) : 380032.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (Instrumented Tier1)
         -84 (-0.48 % of base) : 341129.dasm - Systen.Net.Mail.Tests.LoopbackSmtpServer+<HandleConnectionAsync>d__62:MoveNext():this (Tier1)
         -84 (-1.06 % of base) : 214477.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 330722.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 469718.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 608922.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 572789.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 232609.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 367506.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
         -84 (-1.06 % of base) : 435758.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
         120 (16.48 % of base) : 580826.dasm - Microsoft.CodeAnalysis.ProjectInfo:With(Microsoft.CodeAnalysis.ProjectInfo+ProjectAttributes,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CompilationOptions],Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.ParseOptions],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.ProjectReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerReference],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],System.Collections.Generic.IReadOnlyList`1[Microsoft.CodeAnalysis.DocumentInfo],Microsoft.CodeAnalysis.Optional`1[System.Type]):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
           8 (9.52 % of base) : 54925.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
           8 (9.52 % of base) : 152571.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (Tier1)
           8 (9.09 % of base) : 278888.dasm - System.IO.FileSystemInfo:get_NormalizedPath():System.String:this (Tier1)
          44 (9.02 % of base) : 182055.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.__Canon]):ubyte:this (Tier1-OSR)
          16 (8.70 % of base) : 51141.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.ValueTuple`3[int,int,System.__Canon]]:ItemRef(int):byref:this (Tier1)
          32 (8.08 % of base) : 102255.dasm - System.Reflection.AssemblyNameParser:ParsePKT(System.String,ubyte):ubyte[]:this (Tier1)
          16 (7.14 % of base) : 591742.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          16 (7.14 % of base) : 573100.dasm - System.Text.RegularExpressions.RegexCharClass:GetSetChars(System.String,System.Span`1[ushort]):int (Tier1)
          12 (6.67 % of base) : 590882.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetMetadataReference(Microsoft.CodeAnalysis.Symbols.IAssemblySymbolInternal):Microsoft.CodeAnalysis.MetadataReference:this (Tier1)
          32 (6.45 % of base) : 214303.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 327416.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 502279.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 126156.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 232456.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 277351.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 227408.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 431000.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 623948.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          32 (6.45 % of base) : 628083.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

Top method improvements (percentages):
        -764 (-31.62 % of base) : 155714.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
         -44 (-18.64 % of base) : 95926.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -44 (-18.64 % of base) : 96020.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-18.33 % of base) : 97874.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-18.33 % of base) : 98655.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-18.33 % of base) : 97305.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-18.33 % of base) : 97319.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 97324.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-17.19 % of base) : 97308.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-15.69 % of base) : 96320.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-15.69 % of base) : 96081.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-15.69 % of base) : 96167.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-15.69 % of base) : 96087.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-15.69 % of base) : 96075.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):short (FullOpts)
         -32 (-15.69 % of base) : 97039.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
         -32 (-15.69 % of base) : 96163.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):uint (FullOpts)
         -32 (-15.69 % of base) : 96174.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ulong (FullOpts)
         -32 (-15.69 % of base) : 96154.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -32 (-15.69 % of base) : 98106.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -32 (-15.38 % of base) : 96099.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):float (FullOpts)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 168998868 (overridden on cmd)
Total bytes of diff: 168977636 (overridden on cmd)
Total bytes of delta: -21232 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         184 : 294165.dasm (4.22 % of base)
         128 : 43300.dasm (1.67 % of base)
         128 : 48947.dasm (1.67 % of base)
         100 : 43429.dasm (3.22 % of base)
          88 : 158438.dasm (4.89 % of base)
          64 : 43328.dasm (1.55 % of base)
          64 : 48975.dasm (1.58 % of base)
          52 : 4591.dasm (0.16 % of base)
          48 : 180911.dasm (0.90 % of base)
          44 : 121647.dasm (1.59 % of base)
          44 : 158446.dasm (2.18 % of base)
          44 : 278027.dasm (0.70 % of base)
          44 : 291333.dasm (2.17 % of base)
          44 : 5202.dasm (2.29 % of base)
          40 : 156201.dasm (2.87 % of base)
          40 : 186374.dasm (2.06 % of base)
          40 : 314317.dasm (2.48 % of base)
          36 : 3911.dasm (0.61 % of base)
          36 : 3991.dasm (1.04 % of base)
          36 : 51900.dasm (1.50 % of base)

Top file improvements (bytes):
        -192 : 180909.dasm (-1.16 % of base)
        -156 : 171969.dasm (-8.23 % of base)
        -156 : 172165.dasm (-8.21 % of base)
        -116 : 207135.dasm (-3.15 % of base)
        -116 : 44914.dasm (-1.98 % of base)
         -88 : 183492.dasm (-2.21 % of base)
         -80 : 25180.dasm (-2.48 % of base)
         -76 : 59825.dasm (-0.26 % of base)
         -72 : 6735.dasm (-1.47 % of base)
         -72 : 126484.dasm (-2.32 % of base)
         -72 : 178003.dasm (-3.31 % of base)
         -68 : 297766.dasm (-1.30 % of base)
         -64 : 297919.dasm (-1.60 % of base)
         -56 : 118397.dasm (-8.24 % of base)
         -56 : 178047.dasm (-3.52 % of base)
         -52 : 228938.dasm (-4.19 % of base)
         -48 : 178641.dasm (-3.49 % of base)
         -48 : 190113.dasm (-4.11 % of base)
         -48 : 190146.dasm (-4.36 % of base)
         -48 : 190205.dasm (-4.11 % of base)

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

Top method regressions (bytes):
         184 (4.22 % of base) : 294165.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         128 (1.67 % of base) : 43300.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         128 (1.67 % of base) : 48947.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         100 (3.22 % of base) : 43429.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          88 (4.89 % of base) : 158438.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetAllTcpConnections():System.Collections.Generic.List`1[System.Net.NetworkInformation.SystemTcpConnectionInformation] (FullOpts)
          64 (1.55 % of base) : 43328.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          64 (1.58 % of base) : 48975.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          52 (0.16 % of base) : 4591.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          48 (0.90 % of base) : 180911.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestInvalid(System.String[],System.String,System.String[]):int:this (FullOpts)
          44 (1.59 % of base) : 121647.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectoryAsync_File_Tests+<LinkBeforeTargetAsync>d__13:MoveNext():this (FullOpts)
          44 (2.18 % of base) : 158446.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetActiveUdpListeners():System.Net.IPEndPoint[]:this (FullOpts)
          44 (2.29 % of base) : 5202.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          44 (2.17 % of base) : 291333.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29383_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          44 (0.70 % of base) : 278027.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitIndexOfAnyCustomHelper(System.String,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte):System.String (FullOpts)
          40 (2.06 % of base) : 186374.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          40 (2.87 % of base) : 156201.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)
          40 (2.48 % of base) : 314317.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          36 (1.04 % of base) : 3991.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 3911.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          36 (1.50 % of base) : 51900.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)

Top method improvements (bytes):
        -192 (-1.16 % of base) : 180909.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
        -156 (-8.23 % of base) : 171969.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write2_wrapper(System.Object[]):this (FullOpts)
        -156 (-8.21 % of base) : 172165.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterTypeWithArrayPropertyHavingChoice:Write3_Item(System.String,System.String,SerializationTypes.TypeWithArrayPropertyHavingChoice,ubyte,ubyte):this (FullOpts)
        -116 (-1.98 % of base) : 44914.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -116 (-3.15 % of base) : 207135.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -88 (-2.21 % of base) : 183492.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue+TCWriteState:InvokeMethod(System.Xml.XmlWriter,System.String):this (FullOpts)
         -80 (-2.48 % of base) : 25180.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -76 (-0.26 % of base) : 59825.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -72 (-1.47 % of base) : 6735.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -72 (-2.32 % of base) : 126484.dasm - System.IO.Compression.Tests.ZipFile_Extract:Windows_ZipWithInvalidFileNames():this (FullOpts)
         -72 (-3.31 % of base) : 178003.dasm - System.Xml.XmlSchemaValidatorApiTests.TCXmlSchemaValidatorMisc:CreateSchema2(System.String) (FullOpts)
         -68 (-1.30 % of base) : 297766.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31505_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-1.60 % of base) : 297919.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31776_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -56 (-8.24 % of base) : 118397.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -56 (-3.52 % of base) : 178047.dasm - System.Xml.XmlSchemaValidatorApiTests.TCXmlSchemaValidatorMisc:CreateSchema1(System.String) (FullOpts)
         -52 (-4.19 % of base) : 228938.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
         -48 (-4.11 % of base) : 190113.dasm - System.Reflection.Tests.ModuleTests:ModuleGetTypesReturnsNewObjectEachType() (FullOpts)
         -48 (-4.11 % of base) : 190205.dasm - System.Reflection.Tests.ModuleTests:MultiModule_AssemblyDefinedTypes_ReturnsDifferentObjectEachType() (FullOpts)
         -48 (-4.36 % of base) : 190146.dasm - System.Reflection.Tests.ModuleTests:MultiModule_AssemblyGetTypes() (FullOpts)
         -48 (-3.49 % of base) : 178641.dasm - System.Xml.XmlSchemaTests.TC_SchemaSet_ProhibitDTD:v15():this (FullOpts)

Top method regressions (percentages):
          28 (11.48 % of base) : 71176.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
          28 (11.48 % of base) : 69734.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
           8 (6.67 % of base) : 129992.dasm - System.IO.Hashing.XxHash32:GetCurrentHashAsUInt32():uint:this (FullOpts)
           8 (6.45 % of base) : 129984.dasm - System.IO.Hashing.XxHash64:GetCurrentHashAsUInt64():ulong:this (FullOpts)
          20 (5.49 % of base) : 38770.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
          20 (5.49 % of base) : 38865.dasm - Microsoft.Extensions.Diagnostics.Metrics.ListenerSubscription:IsMoreSpecific(Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule,ubyte):ubyte (FullOpts)
           8 (5.41 % of base) : 22843.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (5.41 % of base) : 22284.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
           8 (5.41 % of base) : 227911.dasm - System.Security.Cryptography.CryptoPool:Return(ubyte[],int) (FullOpts)
          88 (4.89 % of base) : 158438.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties:GetAllTcpConnections():System.Collections.Generic.List`1[System.Net.NetworkInformation.SystemTcpConnectionInformation] (FullOpts)
           8 (4.65 % of base) : 42857.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
         184 (4.22 % of base) : 294165.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
          20 (4.00 % of base) : 100105.dasm - System.Diagnostics.PerformanceData.PerfProviderCollection:QueryProvider(System.Guid):System.Diagnostics.PerformanceData.PerfProvider (FullOpts)
           8 (4.00 % of base) : 47686.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 18709.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 31378.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
         100 (3.22 % of base) : 43429.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
          12 (2.97 % of base) : 58182.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:CombinePathTest_BaseDirectory_RelativePath():this (FullOpts)
           8 (2.90 % of base) : 104733.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms12b.prms12b.Parent,System.Object):System.Object (FullOpts)
          40 (2.87 % of base) : 156201.dasm - System.Net.HttpListenerRequest+Helpers:GetCharSetValueFromHeader(System.String):System.String (FullOpts)

Top method improvements (percentages):
         -44 (-18.33 % of base) : 104861.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -44 (-18.03 % of base) : 104657.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-15.69 % of base) : 104539.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):double (FullOpts)
         -32 (-15.69 % of base) : 104535.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):float (FullOpts)
         -32 (-15.69 % of base) : 25371.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):int (FullOpts)
         -32 (-15.69 % of base) : 104531.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):long (FullOpts)
         -32 (-15.09 % of base) : 104525.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
         -32 (-15.09 % of base) : 104612.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ushort (FullOpts)
         -32 (-14.29 % of base) : 104794.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.Oneclass2operates.conversion.onedynamicparam001.onedynamicparam001.Target (FullOpts)
         -32 (-14.29 % of base) : 104544.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Decimal (FullOpts)
         -32 (-14.29 % of base) : 104495.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -36 (-13.64 % of base) : 105810.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,double):System.Object (FullOpts)
         -36 (-13.64 % of base) : 105541.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -36 (-13.43 % of base) : 105811.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,float):System.Object (FullOpts)
         -28 (-12.73 % of base) : 26447.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.IEquatable`1[System.DateTime] (FullOpts)
         -28 (-12.73 % of base) : 26515.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -32 (-12.70 % of base) : 105077.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 113778.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 27350.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -28 (-12.50 % of base) : 27355.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)


realworld.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15891292 (overridden on cmd)
Total bytes of diff: 15891100 (overridden on cmd)
Total bytes of delta: -192 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          68 : 31118.dasm (0.61 % of base)
          52 : 15169.dasm (0.16 % of base)
          44 : 11101.dasm (2.29 % of base)
          36 : 15635.dasm (1.04 % of base)
          36 : 15595.dasm (0.61 % of base)
          32 : 1841.dasm (2.12 % of base)
          28 : 15620.dasm (1.41 % of base)
          28 : 20531.dasm (0.60 % of base)
          24 : 23655.dasm (0.71 % of base)
          24 : 24872.dasm (0.91 % of base)
          24 : 26716.dasm (0.45 % of base)
          24 : 8386.dasm (0.26 % of base)
          20 : 29362.dasm (2.33 % of base)
          16 : 23364.dasm (0.39 % of base)
          16 : 26764.dasm (0.18 % of base)
          16 : 27300.dasm (0.45 % of base)
          16 : 5669.dasm (1.66 % of base)
          16 : 13557.dasm (1.56 % of base)
          16 : 13724.dasm (0.18 % of base)
          16 : 21578.dasm (1.19 % of base)

Top file improvements (bytes):
         -80 : 8952.dasm (-0.75 % of base)
         -56 : 2318.dasm (-7.41 % of base)
         -36 : 14038.dasm (-0.91 % of base)
         -32 : 17639.dasm (-5.84 % of base)
         -32 : 18830.dasm (-0.57 % of base)
         -32 : 13331.dasm (-2.42 % of base)
         -32 : 13530.dasm (-2.65 % of base)
         -28 : 14387.dasm (-0.51 % of base)
         -20 : 2449.dasm (-1.67 % of base)
         -16 : 29513.dasm (-2.35 % of base)
         -16 : 1666.dasm (-4.04 % of base)
         -16 : 3156.dasm (-0.27 % of base)
         -16 : 13264.dasm (-1.69 % of base)
         -16 : 30738.dasm (-0.11 % of base)
         -16 : 31028.dasm (-1.24 % of base)
         -16 : 29572.dasm (-5.26 % of base)
         -12 : 10965.dasm (-5.17 % of base)
         -12 : 2776.dasm (-2.54 % of base)
         -12 : 2859.dasm (-3.26 % of base)
         -12 : 12877.dasm (-0.21 % of base)

67 total files with Code Size differences (32 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
          68 (0.61 % of base) : 31118.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          52 (0.16 % of base) : 15169.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          44 (2.29 % of base) : 11101.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          36 (1.04 % of base) : 15635.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          36 (0.61 % of base) : 15595.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          32 (2.12 % of base) : 1841.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.60 % of base) : 20531.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__checkConstraintLanguageVersionAndRuntimeSupportForConversion|210_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          28 (1.41 % of base) : 15620.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetPreprocessorKeywordKind(System.String):ushort (FullOpts)
          24 (0.26 % of base) : 8386.dasm - FSharp.Compiler.TypedTreeOps:mkExprAddrOfExprAux(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.TypedTreeOps+Mutates,FSharp.Compiler.TypedTree+Expr,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+ValRef],FSharp.Compiler.Text.Range):System.Tuple`4[Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.TypedTree+Expr,ubyte,ubyte] (FullOpts)
          24 (0.71 % of base) : 23655.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetEnumeratorInfoCore(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,byref,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):int:this (FullOpts)
          24 (0.91 % of base) : 24872.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryBindIndexOrRangeImplicitIndexer(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):ubyte:this (FullOpts)
          24 (0.45 % of base) : 26716.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLockStatement(Microsoft.CodeAnalysis.CSharp.BoundLockStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          20 (2.33 % of base) : 29362.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          16 (1.66 % of base) : 5669.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          16 (0.39 % of base) : 23364.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertToArrayIndex(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (1.19 % of base) : 21578.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetParamArrayArgument(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],System.Collections.Immutable.ImmutableArray`1[System.String],int,int,Microsoft.CodeAnalysis.CSharp.Conversions,byref):Microsoft.CodeAnalysis.TypedConstant (FullOpts)
          16 (0.45 % of base) : 27300.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitStringSwitchJumpTable(System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.ConstantValue,System.Object][],Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CodeGen.LocalOrParameter,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
          16 (0.18 % of base) : 26764.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          16 (1.56 % of base) : 13557.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)
          16 (0.18 % of base) : 13724.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)

Top method improvements (bytes):
         -80 (-0.75 % of base) : 8952.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
         -56 (-7.41 % of base) : 2318.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -36 (-0.91 % of base) : 14038.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
         -32 (-5.84 % of base) : 17639.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-0.57 % of base) : 18830.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -32 (-2.65 % of base) : 13530.dasm - Microsoft.ML.Data.BufferBuilder`1[float]:GetResult(byref):this (FullOpts)
         -32 (-2.42 % of base) : 13331.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[float]:Get(byref):this (FullOpts)
         -28 (-0.51 % of base) : 14387.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         -20 (-1.67 % of base) : 2449.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
         -16 (-0.27 % of base) : 3156.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)
         -16 (-1.69 % of base) : 13264.dasm - Microsoft.ML.Data.VBuffer`1[double]:Copy(double[],int,byref,int) (FullOpts)
         -16 (-2.35 % of base) : 29513.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -16 (-1.24 % of base) : 31028.dasm - System.Linq.Expressions.Expression:ValidateTryAndCatchHaveSameType(System.Type,System.Linq.Expressions.Expression,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.CatchBlock]) (FullOpts)
         -16 (-5.26 % of base) : 29572.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -16 (-0.11 % of base) : 30738.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
         -16 (-4.04 % of base) : 1666.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -12 (-0.64 % of base) : 5333.dasm - FSharp.Compiler.LexFilter:|TyparsCloseOp|_|$cont@519(Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[ubyte,FSharp.Compiler.Parser+token][],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Parser+token]]] (FullOpts)
         -12 (-5.17 % of base) : 10965.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
         -12 (-0.91 % of base) : 18653.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AnalyzeArguments(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.ArgumentAnalysisResult (FullOpts)
         -12 (-0.21 % of base) : 12877.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)

Top method regressions (percentages):
           8 (5.41 % of base) : 16993.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           8 (4.00 % of base) : 28325.dasm - System.Reflection.BlobUtilities:GetUTF8ByteCount(ulong,int,int,byref):int (FullOpts)
           4 (3.57 % of base) : 25307.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
           8 (3.45 % of base) : 22713.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
           8 (2.74 % of base) : 2399.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.63 % of base) : 21230.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
           4 (2.56 % of base) : 32838.dasm - System.Dynamic.GetMemberBinder:Bind(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this (FullOpts)
          20 (2.33 % of base) : 29362.dasm - System.Management.Automation.MutableTuple:MakeTupleType(System.Type[],int,int):System.Type (FullOpts)
          44 (2.29 % of base) : 11101.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (2.22 % of base) : 14338.dasm - System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this (FullOpts)
           8 (2.13 % of base) : 21969.dasm - Microsoft.CodeAnalysis.Compilation:CommonBindScriptClass():Microsoft.CodeAnalysis.INamedTypeSymbol:this (FullOpts)
          32 (2.12 % of base) : 1841.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (2.00 % of base) : 22171.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:HasInitializer(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
          12 (1.92 % of base) : 13281.dasm - System.Collections.Immutable.ImmutableExtensions:ToArray[double](System.Collections.Generic.IEnumerable`1[double],int):double[] (FullOpts)
          12 (1.91 % of base) : 13594.dasm - Microsoft.ML.Trainers.LbfgsTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainModelCore(Microsoft.ML.TrainContext):System.__Canon:this (FullOpts)
           4 (1.89 % of base) : 31756.dasm - System.Management.Automation.Language.Compiler:ShouldSetExecutionStatusToSuccess(System.Management.Automation.Language.AssignmentStatementAst):ubyte:this (FullOpts)
           4 (1.75 % of base) : 27872.dasm - Microsoft.Cci.MetadataWriter:GetDefiningUnitReference(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.IUnitReference (FullOpts)
          16 (1.66 % of base) : 5669.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
           4 (1.61 % of base) : 18786.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetNullableAnalysisValue():System.Nullable`1[ubyte]:this (FullOpts)
          16 (1.56 % of base) : 13557.dasm - Microsoft.ML.Trainers.KMeansBarBarInitialization:FindBestCluster(byref,int,Microsoft.ML.Trainers.KMeansBarBarInitialization+SharedState,int,int,Microsoft.ML.Data.VBuffer`1[float][],float[],ubyte,ubyte,byref,byref) (FullOpts)

Top method improvements (percentages):
         -56 (-7.41 % of base) : 2318.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -32 (-5.84 % of base) : 17639.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -16 (-5.26 % of base) : 29572.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -12 (-5.17 % of base) : 10965.dasm - ILLinkBenchmarks.Utilities:GenerateTempFolder():System.String (FullOpts)
          -4 (-4.76 % of base) : 408.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (FullOpts)
         -16 (-4.04 % of base) : 1666.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -12 (-3.26 % of base) : 2859.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-3.23 % of base) : 20454.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
          -4 (-2.86 % of base) : 31841.dasm - System.Management.Automation.WildcardPattern:ContainsWildcardCharacters(System.String):ubyte (FullOpts)
          -8 (-2.78 % of base) : 2037.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
         -32 (-2.65 % of base) : 13530.dasm - Microsoft.ML.Data.BufferBuilder`1[float]:GetResult(byref):this (FullOpts)
         -12 (-2.54 % of base) : 2776.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String):System.String (FullOpts)
         -32 (-2.42 % of base) : 13331.dasm - Microsoft.ML.Data.TextLoader+VectorPipe`1+VectorValue[float]:Get(byref):this (FullOpts)
         -16 (-2.35 % of base) : 29513.dasm - System.IO.Path:CombineInternal(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.33 % of base) : 28551.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEmbeddedAttributeSymbolBase:GetMembers(System.String):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          -4 (-2.27 % of base) : 32669.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:AddPrefixToCommandName(System.String,System.String):System.String (FullOpts)
          -4 (-2.17 % of base) : 394.dasm - System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -4 (-2.13 % of base) : 12744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 4538.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.13 % of base) : 29533.dasm - System.Management.Automation.ExecutionContext:TryGetFromAssemblyCache(System.String,System.String,byref):ubyte:this (FullOpts)


smoke_tests.nativeaot.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3972452 (overridden on cmd)
Total bytes of diff: 3972372 (overridden on cmd)
Total bytes of delta: -80 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          64 : 3341.dasm (5.59 % of base)
          64 : 392.dasm (5.78 % of base)
          28 : 11383.dasm (0.32 % of base)
          12 : 1380.dasm (3.06 % of base)
          12 : 14817.dasm (0.68 % of base)
          12 : 2029.dasm (0.70 % of base)
          12 : 4987.dasm (3.06 % of base)
          12 : 5249.dasm (0.70 % of base)
           8 : 8293.dasm (2.47 % of base)
           8 : 11918.dasm (2.82 % of base)
           8 : 13969.dasm (2.47 % of base)
           8 : 6751.dasm (2.82 % of base)
           8 : 13955.dasm (0.93 % of base)
           8 : 8265.dasm (0.85 % of base)
           4 : 8352.dasm (0.83 % of base)
           4 : 9903.dasm (2.50 % of base)
           4 : 12848.dasm (1.18 % of base)
           4 : 14035.dasm (3.85 % of base)
           4 : 17301.dasm (1.52 % of base)
           4 : 23196.dasm (2.38 % of base)

Top file improvements (bytes):
         -16 : 11675.dasm (-0.92 % of base)
         -12 : 4918.dasm (-3.12 % of base)
         -12 : 5970.dasm (-7.14 % of base)
         -12 : 11164.dasm (-7.14 % of base)
         -12 : 1441.dasm (-3.12 % of base)
          -8 : 11428.dasm (-0.76 % of base)
          -8 : 11747.dasm (-7.69 % of base)
          -8 : 7876.dasm (-5.41 % of base)
          -8 : 9941.dasm (-0.95 % of base)
          -8 : 14328.dasm (-2.22 % of base)
          -8 : 1552.dasm (-2.94 % of base)
          -8 : 2353.dasm (-5.41 % of base)
          -8 : 23708.dasm (-0.95 % of base)
          -8 : 3836.dasm (-2.94 % of base)
          -8 : 8617.dasm (-0.36 % of base)
          -8 : 8631.dasm (-2.22 % of base)
          -8 : 14311.dasm (-0.37 % of base)
          -8 : 6362.dasm (-7.69 % of base)
          -4 : 7890.dasm (-2.22 % of base)
          -4 : 12074.dasm (-2.27 % of base)

58 total files with Code Size differences (30 improved, 28 regressed), 20 unchanged.

Top method regressions (bytes):
          64 (5.59 % of base) : 3341.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          64 (5.78 % of base) : 392.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          28 (0.32 % of base) : 11383.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          12 (0.68 % of base) : 14817.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.70 % of base) : 2029.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.70 % of base) : 5249.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (3.06 % of base) : 1380.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          12 (3.06 % of base) : 4987.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           8 (2.47 % of base) : 8293.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           8 (2.47 % of base) : 13969.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           8 (0.93 % of base) : 13955.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)
           8 (0.85 % of base) : 8265.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)
           8 (2.82 % of base) : 11918.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           8 (2.82 % of base) : 6751.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.50 % of base) : 9903.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (2.50 % of base) : 23665.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (0.40 % of base) : 11484.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.RuntimeTypeHandle[],byref,byref):ubyte (FullOpts)
           4 (1.18 % of base) : 12848.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           4 (1.18 % of base) : 7265.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           4 (0.83 % of base) : 8352.dasm - Internal.Win32.RegistryKey:GetValueNames():System.String[]:this (FullOpts)

Top method improvements (bytes):
         -16 (-0.92 % of base) : 11675.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)
         -12 (-7.14 % of base) : 5970.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-7.14 % of base) : 11164.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.12 % of base) : 4918.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.12 % of base) : 1441.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -8 (-0.95 % of base) : 9941.dasm - Interfaces:TestArrayInterfaces():int (FullOpts)
          -8 (-0.95 % of base) : 23708.dasm - Interfaces:TestArrayInterfaces():int (FullOpts)
          -8 (-5.41 % of base) : 7876.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -8 (-5.41 % of base) : 2353.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -8 (-7.69 % of base) : 11747.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
          -8 (-7.69 % of base) : 6362.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
          -8 (-0.76 % of base) : 11428.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileMemberInit(System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.MemberBinding]):this (FullOpts)
          -8 (-2.22 % of base) : 14328.dasm - System.Reflection.AssemblyNameParser:ParseProcessorArchitecture(System.String):int:this (FullOpts)
          -8 (-2.22 % of base) : 8631.dasm - System.Reflection.AssemblyNameParser:ParseProcessorArchitecture(System.String):int:this (FullOpts)
          -8 (-2.94 % of base) : 1552.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-2.94 % of base) : 3836.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-0.36 % of base) : 8617.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -8 (-0.37 % of base) : 14311.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):ubyte (FullOpts)
          -4 (-2.94 % of base) : 12829.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.56 % of base) : 7286.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:IsCanonicalSubtype(int):ubyte:this (FullOpts)

Top method regressions (percentages):
          64 (5.78 % of base) : 392.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          64 (5.59 % of base) : 3341.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
           4 (3.85 % of base) : 14035.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
           4 (3.23 % of base) : 8590.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
          12 (3.06 % of base) : 1380.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          12 (3.06 % of base) : 4987.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           8 (2.82 % of base) : 11918.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           8 (2.82 % of base) : 6751.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           4 (2.50 % of base) : 9903.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           4 (2.50 % of base) : 23665.dasm - Generics+TestGenericInlining:Run() (FullOpts)
           8 (2.47 % of base) : 8293.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           8 (2.47 % of base) : 13969.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (2.38 % of base) : 23196.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)
           4 (2.38 % of base) : 23326.dasm - ReflectionTest+TestMethodConsistency:Run() (FullOpts)
           4 (1.52 % of base) : 17301.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
           4 (1.35 % of base) : 3446.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
           4 (1.18 % of base) : 12848.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           4 (1.18 % of base) : 7265.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:.ctor(Internal.TypeSystem.TypeSystemContext,System.RuntimeTypeHandle,int,System.ReadOnlySpan`1[ubyte],int):this (FullOpts)
           8 (0.93 % of base) : 13955.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)
           8 (0.85 % of base) : 8265.dasm - Internal.TypeSystem.CastingHelper:CanCastByVarianceToInterfaceOrDelegate(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.StackOverflowProtect,ubyte):ubyte (FullOpts)

Top method improvements (percentages):
          -8 (-7.69 % of base) : 11747.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
          -8 (-7.69 % of base) : 6362.dasm - System.IO.Path:Join(System.String,System.String):System.String (FullOpts)
         -12 (-7.14 % of base) : 5970.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
         -12 (-7.14 % of base) : 11164.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-5.41 % of base) : 7876.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -8 (-5.41 % of base) : 2353.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (FullOpts)
          -4 (-4.76 % of base) : 13351.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (FullOpts)
          -4 (-4.76 % of base) : 8079.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (FullOpts)
         -12 (-3.12 % of base) : 4918.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -12 (-3.12 % of base) : 1441.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.94 % of base) : 12829.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -8 (-2.94 % of base) : 1552.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-2.94 % of base) : 3836.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-2.56 % of base) : 7286.dasm - Internal.TypeSystem.NoMetadata.NoMetadataType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -4 (-2.33 % of base) : 23211.dasm - ReflectionTest+TestAttributeInheritance:Run() (FullOpts)
          -4 (-2.33 % of base) : 23341.dasm - ReflectionTest+TestAttributeInheritance:Run() (FullOpts)
          -4 (-2.33 % of base) : 13179.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.27 % of base) : 12074.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 9825.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-2.22 % of base) : 7890.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)



windows x64

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

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

Overall (-150,214 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 41,763,246 -11,556
benchmarks.run.windows.x64.checked.mch 8,749,663 +2,072
benchmarks.run_pgo.windows.x64.checked.mch 34,741,684 -7,152
benchmarks.run_tiered.windows.x64.checked.mch 12,662,284 +203
coreclr_tests.run.windows.x64.checked.mch 392,866,349 -60,805
libraries.crossgen2.windows.x64.checked.mch 39,442,575 -1,101
libraries.pmi.windows.x64.checked.mch 61,196,926 -3,050
libraries_tests.run.windows.x64.Release.mch 279,034,285 -53,914
librariestestsnotieredcompilation.run.windows.x64.Release.mch 133,435,993 -11,707
realworld.run.windows.x64.checked.mch 14,170,685 -3,315
smoke_tests.nativeaot.windows.x64.checked.mch 5,091,660 +111

FullOpts (-150,214 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 27,104,521 -11,556
benchmarks.run.windows.x64.checked.mch 8,749,302 +2,072
benchmarks.run_pgo.windows.x64.checked.mch 20,506,707 -7,152
benchmarks.run_tiered.windows.x64.checked.mch 3,477,018 +203
coreclr_tests.run.windows.x64.checked.mch 119,323,357 -60,805
libraries.crossgen2.windows.x64.checked.mch 39,441,386 -1,101
libraries.pmi.windows.x64.checked.mch 61,083,407 -3,050
libraries_tests.run.windows.x64.Release.mch 100,665,969 -53,914
librariestestsnotieredcompilation.run.windows.x64.Release.mch 123,012,623 -11,707
realworld.run.windows.x64.checked.mch 13,780,980 -3,315
smoke_tests.nativeaot.windows.x64.checked.mch 5,090,751 +111

Example diffs

aspnet.run.windows.x64.checked.mch

-15 (-15.15%) : 53577.dasm - Npgsql.NpgsqlCommand:g_ValidateParameterCount|980(Npgsql.NpgsqlBatchCommand) (Tier1)

@@ -9,7 +9,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  5.00)     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]>
@@ -42,15 +42,10 @@ G_M9795_IG03:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M9795_IG04:        ; bbWeight=1.00, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x10], 0
-       jle      SHORT G_M9795_IG05
-       call     [Npgsql.NpgsqlBatchCommand:get_PositionalParameters():System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       cmp      dword ptr [rax+0x10], 0xFFFF
-       jg       SHORT G_M9795_IG07
-                       ;; size=21 bbWeight=1.00 PerfScore 11.00
+       jg       SHORT G_M9795_IG06
+                       ;; size=6 bbWeight=1.00 PerfScore 4.00
 G_M9795_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax rcx]
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -61,13 +56,9 @@ G_M9795_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {r
        ; gcr arg pop 0
        cmp      dword ptr [rax+0x10], 0xFFFF
        jle      SHORT G_M9795_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
        mov      ecx, 0x48A7
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -75,9 +66,9 @@ G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 99, prolog size 4, PerfScore 23.00, instruction count 25, allocated bytes for code 99 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
+; Total bytes of code 84, prolog size 4, PerfScore 16.00, instruction count 22, allocated bytes for code 84 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
 ; ============================================================
 
 Unwind Info:

-15 (-15.15%) : 65726.dasm - Npgsql.NpgsqlCommand:g_ValidateParameterCount|980(Npgsql.NpgsqlBatchCommand) (Tier1)

@@ -9,7 +9,7 @@
 ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  5.00)     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rcx         class-hnd single-def <Npgsql.NpgsqlBatchCommand>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]>
@@ -42,15 +42,10 @@ G_M9795_IG03:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M9795_IG04:        ; bbWeight=1.00, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x10], 0
-       jle      SHORT G_M9795_IG05
-       call     [Npgsql.NpgsqlBatchCommand:get_PositionalParameters():System.Collections.Generic.List`1[Npgsql.NpgsqlParameter]:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       cmp      dword ptr [rax+0x10], 0xFFFF
-       jg       SHORT G_M9795_IG07
-                       ;; size=21 bbWeight=1.00 PerfScore 11.00
+       jg       SHORT G_M9795_IG06
+                       ;; size=6 bbWeight=1.00 PerfScore 4.00
 G_M9795_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax rcx]
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -61,13 +56,9 @@ G_M9795_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {r
        ; gcr arg pop 0
        cmp      dword ptr [rax+0x10], 0xFFFF
        jle      SHORT G_M9795_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
        mov      ecx, 0x48A7
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -75,9 +66,9 @@ G_M9795_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 99, prolog size 4, PerfScore 23.00, instruction count 25, allocated bytes for code 99 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
+; Total bytes of code 84, prolog size 4, PerfScore 16.00, instruction count 22, allocated bytes for code 84 (MethodHash=b1ddd9bc) for method Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
 ; ============================================================
 
 Unwind Info:

-26 (-10.28%) : 99088.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsHostHeaderValid(System.String):ubyte (Tier1)

@@ -23,12 +23,12 @@
 ;  V11 tmp8         [V11,T07] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V14 tmp11        [V14,T11] (  3,  2   )   ubyte  ->  rdi         "Inline return value spill temp"
+;  V14 tmp11        [V14,T11] (  3,  2   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;  V15 tmp12        [V15,T03] (  3,  6   )     int  ->  rax         "Inlining Arg"
 ;  V16 tmp13        [V16,T09] (  2,  4   )     int  ->  rcx         "impSpillLclRefs"
 ;  V17 tmp14        [V17,T00] ( 12, 18.84)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp15        [V18    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V19 tmp16        [V19,T05] (  3,  4   )     int  ->  rdi         "Single return block return value"
+;  V19 tmp16        [V19,T05] (  3,  4   )     int  ->  rsi         "Single return block return value"
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V22 tmp19        [V22,T12] (  2,  2   )   byref  ->  rcx         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
@@ -43,102 +43,55 @@
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V32 cse0         [V32,T02] (  9, 10.02)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M1447_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=10 bbWeight=1 PerfScore 3.50
+                       ;; size=9 bbWeight=1 PerfScore 2.50
 G_M1447_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       SHORT G_M1447_IG04
+       je       SHORT G_M1447_IG10
                        ;; size=5 bbWeight=1 PerfScore 1.25
 G_M1447_IG03:        ; bbWeight=0.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      esi, dword ptr [rbx+0x08]
        test     esi, esi
-       jne      SHORT G_M1447_IG06
+       je       SHORT G_M1447_IG10
                        ;; size=7 bbWeight=0.99 PerfScore 3.22
-G_M1447_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      eax, 1
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M1447_IG05:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1447_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+G_M1447_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movzx    r8, word  ptr [rbx+0x0C]
        cmp      r8d, 91
-       jne      SHORT G_M1447_IG16
+       jne      SHORT G_M1447_IG06
                        ;; size=11 bbWeight=1 PerfScore 3.25
-G_M1447_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       jmp      G_M1447_IG22
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M1447_IG08:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      esi, eax
-       jle      SHORT G_M1447_IG13
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M1447_IG09:        ; bbWeight=0.80, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       test     eax, eax
-       jl       G_M1447_IG20
-                       ;; size=8 bbWeight=0.80 PerfScore 1.00
-G_M1447_IG10:        ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, eax
-       movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
-       add      ecx, -48
-       cmp      ecx, 10
-       jb       SHORT G_M1447_IG12
-                       ;; size=15 bbWeight=3.96 PerfScore 14.85
-G_M1447_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
-       xor      edi, edi
-       jmp      SHORT G_M1447_IG14
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M1447_IG12:        ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
-       inc      eax
-       cmp      esi, eax
-       jg       SHORT G_M1447_IG10
-                       ;; size=6 bbWeight=3.96 PerfScore 5.94
-G_M1447_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      edi, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M1447_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       movzx    rax, dil
-                       ;; size=4 bbWeight=1 PerfScore 0.25
-G_M1447_IG15:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=8 bbWeight=1 PerfScore 2.75
-G_M1447_IG16:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M1447_IG05:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsIPv6HostValid(System.String):ubyte
+       call     [rax]Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsIPv6HostValid(System.String):ubyte
+       ; gcrRegs -[rcx rbx]
+       ; gcr arg pop 0
+       mov      esi, eax
+       jmp      G_M1447_IG19
+                       ;; size=22 bbWeight=0 PerfScore 0.00
+G_M1447_IG06:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
        cmp      r8d, 58
-       jne      SHORT G_M1447_IG19
+       jne      SHORT G_M1447_IG09
                        ;; size=6 bbWeight=1 PerfScore 1.25
-G_M1447_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M1447_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M1447_IG18:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 32
+G_M1447_IG08:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rsi
-       pop      rdi
        ret      
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1447_IG19:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M1447_IG09:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        lea      rcx, bword ptr [rbx+0x0C]
        ; byrRegs +[rcx]
@@ -154,49 +107,91 @@ G_M1447_IG19:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        ; byrRegs -[rcx r8]
        ; gcr arg pop 0
        test     eax, eax
-       jl       G_M1447_IG04
+       jge      SHORT G_M1447_IG12
+                       ;; size=39 bbWeight=1 PerfScore 7.75
+G_M1447_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      eax, 1
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M1447_IG11:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rsi
+       ret      
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M1447_IG12:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rbx]
        cmp      eax, esi
        jae      SHORT G_M1447_IG21
        mov      ecx, eax
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        inc      eax
        cmp      ecx, 58
-       jne      SHORT G_M1447_IG11
+       je       SHORT G_M1447_IG14
+                       ;; size=18 bbWeight=1 PerfScore 5.00
+G_M1447_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx]
+       xor      esi, esi
+       jmp      SHORT G_M1447_IG19
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M1447_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rbx]
        cmp      esi, eax
-       jne      G_M1447_IG08
-       jmp      SHORT G_M1447_IG11
-                       ;; size=71 bbWeight=1 PerfScore 16.00
-G_M1447_IG20:        ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M1447_IG13
+       jmp      SHORT G_M1447_IG22
+                       ;; size=6 bbWeight=1 PerfScore 3.25
+G_M1447_IG15:        ; bbWeight=0.80, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       test     eax, eax
+       jl       SHORT G_M1447_IG17
+                       ;; size=4 bbWeight=0.80 PerfScore 1.00
+G_M1447_IG16:        ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, eax
+       movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
+       add      ecx, -48
+       cmp      ecx, 10
+       jae      SHORT G_M1447_IG13
+       inc      eax
+       cmp      esi, eax
+       jg       SHORT G_M1447_IG16
+       jmp      SHORT G_M1447_IG18
+                       ;; size=23 bbWeight=3.96 PerfScore 28.71
+G_M1447_IG17:        ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      eax, esi
        jae      SHORT G_M1447_IG21
        mov      ecx, eax
        movzx    rcx, word  ptr [rbx+2*rcx+0x0C]
        add      ecx, -48
        cmp      ecx, 10
-       jae      G_M1447_IG11
+       jae      SHORT G_M1447_IG13
        inc      eax
        cmp      esi, eax
-       jg       SHORT G_M1447_IG20
-       jmp      G_M1447_IG13
-                       ;; size=34 bbWeight=0.04 PerfScore 0.34
-G_M1447_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jg       SHORT G_M1447_IG17
+                       ;; size=25 bbWeight=0.04 PerfScore 0.26
+G_M1447_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
+       mov      esi, 1
+                       ;; size=5 bbWeight=1 PerfScore 0.25
+G_M1447_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       movzx    rax, sil
+                       ;; size=4 bbWeight=1 PerfScore 0.25
+G_M1447_IG20:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rsi
+       ret      
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M1447_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M1447_IG22:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M1447_IG22:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       mov      rax, 0xD1FFAB1E      ; code for Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsIPv6HostValid(System.String):ubyte
-       call     [rax]Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsIPv6HostValid(System.String):ubyte
-       ; gcrRegs -[rcx rbx]
-       ; gcr arg pop 0
-       mov      edi, eax
-       jmp      G_M1447_IG14
-                       ;; size=22 bbWeight=0 PerfScore 0.00
+       cmp      esi, eax
+       jle      SHORT G_M1447_IG18
+       jmp      SHORT G_M1447_IG15
+                       ;; size=6 bbWeight=1 PerfScore 3.25
...

+37 (+8.85%) : 59958.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 53912
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 53912
 ; 4 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -25,7 +25,7 @@
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
 ;  V14 tmp8         [V14    ] (  8,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.Threading.Tasks.ValueTask>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V16 tmp10        [V16,T09] (  3,  2   )     int  ->  r13         "Inline stloc first use temp"
+;  V16 tmp10        [V16,T09] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.Tasks.ValueTask>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
 ;* V19 tmp13        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -53,7 +53,7 @@
 ;  V41 tmp35        [V41,T15] (  2,  0   )   short  ->  rax         "field V18._token (fldOffset=0x8)" P-INDEP
 ;* V42 tmp36        [V42,T16] (  0,  0   )   ubyte  ->  zero-ref    "field V18._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
 ;* V43 tmp37        [V43    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlyMemory`1[ubyte]>
-;  V44 tmp38        [V44,T06] (  6,  3   )     ref  ->  rcx         "Field obj"
+;  V44 tmp38        [V44,T06] (  6,  3.00)     ref  ->  rcx         "Field obj"
 ;  V45 tmp39        [V45,T13] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
@@ -80,15 +80,11 @@ G_M30990_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14, gword ptr [rsp+0x90]
        ; gcrRegs +[r14]
                        ;; size=44 bbWeight=1 PerfScore 11.50
-G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        test     r14, r14
-       je       SHORT G_M30990_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG03:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       cmp      dword ptr [r14+0x20], 0
-       jne      G_M30990_IG18
-                       ;; size=11 bbWeight=0.02 PerfScore 0.07
-G_M30990_IG04:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+       jne      G_M30990_IG11
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M30990_IG03:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        cmp      byte  ptr [rdi], dil
        lea      rcx, bword ptr [rdi+0x38]
        ; byrRegs +[rcx]
@@ -98,27 +94,11 @@ G_M30990_IG04:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rb
        ; gcrRegs +[r15]
        xchg     gword ptr [rcx], r15
        test     r15, r15
-       jne      SHORT G_M30990_IG06
-                       ;; size=20 bbWeight=1 PerfScore 25.25
-G_M30990_IG05:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       ; gcrRegs -[rdx r15]
+       je       G_M30990_IG16
+                       ;; size=24 bbWeight=1 PerfScore 25.25
+G_M30990_IG04:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref, isz
+       ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       mov      rcx, 0xD1FFAB1E      ; System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs
-       call     CORINFO_HELP_NEWFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       xor      r8d, r8d
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:.ctor(System.Net.Sockets.Socket,ubyte):this]
-       ; gcrRegs -[rax rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M30990_IG06:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref, isz
        mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, rsi
@@ -140,38 +120,13 @@ G_M30990_IG06:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048
        ; gcrRegs -[rcx rdx rdi r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M30990_IG08
-                       ;; size=48 bbWeight=1 PerfScore 13.50
-G_M30990_IG07:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0008 {rbx}, byref
-       lea      rcx, bword ptr [r15+0x180]
-       ; byrRegs +[rcx]
-       mov      rdx, r14
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r14]
-       ; byrRegs -[rcx]
-       movsx    rax, word  ptr [r15+0x178]
-       mov      gword ptr [rsp+0x20], r15
-       mov      word  ptr [rsp+0x28], ax
-       mov      byte  ptr [rsp+0x2A], 1
-       jmp      G_M30990_IG16
-                       ;; size=43 bbWeight=0 PerfScore 0.00
-G_M30990_IG08:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M30990_IG18
        mov      r13d, dword ptr [r15+0xE8]
        cmp      byte  ptr [r15+0x150], 0
-       jne      SHORT G_M30990_IG10
-                       ;; size=17 bbWeight=1 PerfScore 6.00
-G_M30990_IG09:        ; bbWeight=0.28, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, gword ptr [r15+0x148]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 56
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       jmp      SHORT G_M30990_IG11
-                       ;; size=15 bbWeight=0.28 PerfScore 2.06
-G_M30990_IG10:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rcx]
+       je       SHORT G_M30990_IG10
+                       ;; size=69 bbWeight=1 PerfScore 19.50
+G_M30990_IG05:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[r14]
        mov      rcx, gword ptr [r15+0x148]
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
@@ -179,9 +134,9 @@ G_M30990_IG10:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
                        ;; size=13 bbWeight=0.72 PerfScore 3.76
-G_M30990_IG11:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref, isz
+G_M30990_IG06:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref
        test     rcx, rcx
-       je       G_M30990_IG20
+       je       G_M30990_IG17
        mov      rdx, r15
        ; gcrRegs +[rdx]
        xor      r8, r8
@@ -191,41 +146,16 @@ G_M30990_IG11:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rb
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M30990_IG13
-                       ;; size=25 bbWeight=1 PerfScore 4.00
-G_M30990_IG12:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rax]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M30990_IG13:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M30990_IG14
        test     r13d, r13d
-       je       SHORT G_M30990_IG15
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG14:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      edx, r13d
-       mov      r8d, 1
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:CreateException(int,ubyte):System.Exception:this]
-       ; gcrRegs -[rcx r15] +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x20]
-       call     [System.Threading.Tasks.ValueTask:FromException(System.Exception):System.Threading.Tasks.ValueTask]
-       ; gcrRegs -[rax rdx]
-       ; gcr arg pop 0
-       jmp      SHORT G_M30990_IG16
-                       ;; size=34 bbWeight=0 PerfScore 0.00
-G_M30990_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jne      G_M30990_IG15
+                       ;; size=38 bbWeight=1 PerfScore 5.25
+G_M30990_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rax r15]
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [rsp+0x20], xmm0
                        ;; size=10 bbWeight=1 PerfScore 1.33
-G_M30990_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M30990_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      rdx, gword ptr [rsp+0x20]
        ; gcrRegs +[rdx]
        mov      rcx, rbx
@@ -240,7 +170,7 @@ G_M30990_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=34 bbWeight=1 PerfScore 8.50
-G_M30990_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M30990_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -251,9 +181,26 @@ G_M30990_IG17:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.75
-G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[r14]
+G_M30990_IG10:        ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs +[r15]
        ; byrRegs -[rax]
+       mov      rcx, gword ptr [r15+0x148]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 56
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       jmp      SHORT G_M30990_IG06
+                       ;; size=15 bbWeight=0.28 PerfScore 2.06
+G_M30990_IG11:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
+       ; gcrRegs -[r15] +[rdi r14]
+       ; byrRegs -[rcx] +[rsi]
+       cmp      dword ptr [r14+0x20], 0
+       je       G_M30990_IG03
+                       ;; size=11 bbWeight=0.02 PerfScore 0.07
+G_M30990_IG12:        ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rsi]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        mov      rdx, r14
@@ -265,7 +212,7 @@ G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
+G_M30990_IG13:        ; bbWeight=0, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -276,14 +223,77 @@ G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax rbx]
+G_M30990_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs +[r15]
+       ; byrRegs -[rax]
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     r13d, r13d
+       je       G_M30990_IG07
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M30990_IG15:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
...

+37 (+8.85%) : 56859.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 55544
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 55544
 ; 4 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -25,12 +25,12 @@
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
 ;  V14 tmp8         [V14    ] (  8,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.Threading.Tasks.ValueTask>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V16 tmp10        [V16,T09] (  3,  2   )     int  ->  r13         "Inline stloc first use temp"
+;  V16 tmp10        [V16,T09] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.Tasks.ValueTask>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
 ;* V19 tmp13        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V20 tmp14        [V20,T14] (  2,  0   )   short  ->  rax         "Inlining Arg"
-;  V21 tmp15        [V21,T07] (  4,  3.00)   byref  ->  rcx        
+;  V21 tmp15        [V21,T07] (  4,  3   )   byref  ->  rcx        
 ;* V22 tmp16        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V23 tmp17        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V02._object (fldOffset=0x0)" P-INDEP
 ;* V24 tmp18        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V02._index (fldOffset=0x8)" P-INDEP
@@ -53,7 +53,7 @@
 ;  V41 tmp35        [V41,T15] (  2,  0   )   short  ->  rax         "field V18._token (fldOffset=0x8)" P-INDEP
 ;* V42 tmp36        [V42,T16] (  0,  0   )   ubyte  ->  zero-ref    "field V18._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
 ;* V43 tmp37        [V43    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlyMemory`1[ubyte]>
-;  V44 tmp38        [V44,T06] (  6,  3   )     ref  ->  rcx         "Field obj"
+;  V44 tmp38        [V44,T06] (  6,  3.00)     ref  ->  rcx         "Field obj"
 ;  V45 tmp39        [V45,T13] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
@@ -80,15 +80,11 @@ G_M30990_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14, gword ptr [rsp+0x90]
        ; gcrRegs +[r14]
                        ;; size=44 bbWeight=1 PerfScore 11.50
-G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        test     r14, r14
-       je       SHORT G_M30990_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG03:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       cmp      dword ptr [r14+0x20], 0
-       jne      G_M30990_IG18
-                       ;; size=11 bbWeight=0.02 PerfScore 0.07
-G_M30990_IG04:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+       jne      G_M30990_IG12
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M30990_IG03:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        cmp      byte  ptr [rdi], dil
        lea      rcx, bword ptr [rdi+0x38]
        ; byrRegs +[rcx]
@@ -98,27 +94,11 @@ G_M30990_IG04:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rb
        ; gcrRegs +[r15]
        xchg     gword ptr [rcx], r15
        test     r15, r15
-       jne      SHORT G_M30990_IG06
-                       ;; size=20 bbWeight=1 PerfScore 25.25
-G_M30990_IG05:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       ; gcrRegs -[rdx r15]
+       je       G_M30990_IG17
+                       ;; size=24 bbWeight=1 PerfScore 25.25
+G_M30990_IG04:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref, isz
+       ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       mov      rcx, 0xD1FFAB1E      ; System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs
-       call     CORINFO_HELP_NEWFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       xor      r8d, r8d
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:.ctor(System.Net.Sockets.Socket,ubyte):this]
-       ; gcrRegs -[rax rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M30990_IG06:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref, isz
        mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, rsi
@@ -140,38 +120,13 @@ G_M30990_IG06:        ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048
        ; gcrRegs -[rcx rdx rdi r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M30990_IG08
-                       ;; size=48 bbWeight=1 PerfScore 13.50
-G_M30990_IG07:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0008 {rbx}, byref
-       lea      rcx, bword ptr [r15+0x180]
-       ; byrRegs +[rcx]
-       mov      rdx, r14
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r14]
-       ; byrRegs -[rcx]
-       movsx    rax, word  ptr [r15+0x178]
-       mov      gword ptr [rsp+0x20], r15
-       mov      word  ptr [rsp+0x28], ax
-       mov      byte  ptr [rsp+0x2A], 1
-       jmp      G_M30990_IG16
-                       ;; size=43 bbWeight=0 PerfScore 0.00
-G_M30990_IG08:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M30990_IG19
        mov      r13d, dword ptr [r15+0xE8]
        cmp      byte  ptr [r15+0x150], 0
-       jne      SHORT G_M30990_IG10
-                       ;; size=17 bbWeight=1 PerfScore 6.00
-G_M30990_IG09:        ; bbWeight=0.28, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, gword ptr [r15+0x148]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 56
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       jmp      SHORT G_M30990_IG11
-                       ;; size=15 bbWeight=0.28 PerfScore 2.04
-G_M30990_IG10:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rcx]
+       je       SHORT G_M30990_IG11
+                       ;; size=69 bbWeight=1 PerfScore 19.50
+G_M30990_IG05:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[r14]
        mov      rcx, gword ptr [r15+0x148]
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
@@ -179,9 +134,9 @@ G_M30990_IG10:        ; bbWeight=0.72, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
                        ;; size=13 bbWeight=0.72 PerfScore 3.77
-G_M30990_IG11:        ; bbWeight=1.00, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref, isz
+G_M30990_IG06:        ; bbWeight=1.00, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref
        test     rcx, rcx
-       je       G_M30990_IG20
+       je       G_M30990_IG18
        mov      rdx, r15
        ; gcrRegs +[rdx]
        xor      r8, r8
@@ -191,41 +146,19 @@ G_M30990_IG11:        ; bbWeight=1.00, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M30990_IG13
-                       ;; size=25 bbWeight=1.00 PerfScore 4.00
-G_M30990_IG12:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+       jne      G_M30990_IG15
+                       ;; size=29 bbWeight=1.00 PerfScore 4.00
+G_M30990_IG07:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M30990_IG13:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
        test     r13d, r13d
-       je       SHORT G_M30990_IG15
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG14:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      edx, r13d
-       mov      r8d, 1
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:CreateException(int,ubyte):System.Exception:this]
-       ; gcrRegs -[rcx r15] +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x20]
-       call     [System.Threading.Tasks.ValueTask:FromException(System.Exception):System.Threading.Tasks.ValueTask]
-       ; gcrRegs -[rax rdx]
-       ; gcr arg pop 0
-       jmp      SHORT G_M30990_IG16
-                       ;; size=34 bbWeight=0 PerfScore 0.00
-G_M30990_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jne      G_M30990_IG16
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M30990_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[r15]
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [rsp+0x20], xmm0
                        ;; size=10 bbWeight=1 PerfScore 1.33
-G_M30990_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M30990_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      rdx, gword ptr [rsp+0x20]
        ; gcrRegs +[rdx]
        mov      rcx, rbx
@@ -240,7 +173,7 @@ G_M30990_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=34 bbWeight=1 PerfScore 8.50
-G_M30990_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M30990_IG10:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -251,9 +184,26 @@ G_M30990_IG17:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.75
-G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[r14]
+G_M30990_IG11:        ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs +[r15]
        ; byrRegs -[rax]
+       mov      rcx, gword ptr [r15+0x148]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 56
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       jmp      SHORT G_M30990_IG06
+                       ;; size=15 bbWeight=0.28 PerfScore 2.04
+G_M30990_IG12:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
+       ; gcrRegs -[r15] +[rdi r14]
+       ; byrRegs -[rcx] +[rsi]
+       cmp      dword ptr [r14+0x20], 0
+       je       G_M30990_IG03
+                       ;; size=11 bbWeight=0.02 PerfScore 0.07
+G_M30990_IG13:        ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rsi]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        mov      rdx, r14
@@ -265,7 +215,7 @@ G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
+G_M30990_IG14:        ; bbWeight=0, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -276,14 +226,77 @@ G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax rbx]
+G_M30990_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs +[r15]
+       ; byrRegs -[rax]
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
...

+37 (+8.85%) : 55916.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 61952
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 61952
 ; 4 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -25,7 +25,7 @@
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
 ;  V14 tmp8         [V14    ] (  8,  4.00)  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.Threading.Tasks.ValueTask>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V16 tmp10        [V16,T09] (  3,  2   )     int  ->  r13         "Inline stloc first use temp"
+;  V16 tmp10        [V16,T09] (  4,  2   )     int  ->  r13         "Inline stloc first use temp"
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.Tasks.ValueTask>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
 ;* V19 tmp13        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -53,7 +53,7 @@
 ;  V41 tmp35        [V41,T15] (  2,  0   )   short  ->  rax         "field V18._token (fldOffset=0x8)" P-INDEP
 ;* V42 tmp36        [V42,T16] (  0,  0   )   ubyte  ->  zero-ref    "field V18._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
 ;* V43 tmp37        [V43    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlyMemory`1[ubyte]>
-;  V44 tmp38        [V44,T06] (  6,  3.00)     ref  ->  rcx         "Field obj"
+;  V44 tmp38        [V44,T06] (  6,  3   )     ref  ->  rcx         "Field obj"
 ;  V45 tmp39        [V45,T13] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
@@ -80,15 +80,11 @@ G_M30990_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14, gword ptr [rsp+0x90]
        ; gcrRegs +[r14]
                        ;; size=44 bbWeight=1 PerfScore 11.50
-G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+G_M30990_IG02:        ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        test     r14, r14
-       je       SHORT G_M30990_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG03:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       cmp      dword ptr [r14+0x20], 0
-       jne      G_M30990_IG18
-                       ;; size=11 bbWeight=0.02 PerfScore 0.07
-G_M30990_IG04:        ; bbWeight=1.00, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
+       jne      G_M30990_IG12
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M30990_IG03:        ; bbWeight=1.00, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
        cmp      byte  ptr [rdi], dil
        lea      rcx, bword ptr [rdi+0x38]
        ; byrRegs +[rcx]
@@ -98,27 +94,11 @@ G_M30990_IG04:        ; bbWeight=1.00, gcrefRegs=4080 {rdi r14}, byrefRegs=0048
        ; gcrRegs +[r15]
        xchg     gword ptr [rcx], r15
        test     r15, r15
-       jne      SHORT G_M30990_IG06
-                       ;; size=20 bbWeight=1.00 PerfScore 25.25
-G_M30990_IG05:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
-       ; gcrRegs -[rdx r15]
+       je       G_M30990_IG17
+                       ;; size=24 bbWeight=1.00 PerfScore 25.25
+G_M30990_IG04:        ; bbWeight=1.00, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref
+       ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       mov      rcx, 0xD1FFAB1E      ; System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs
-       call     CORINFO_HELP_NEWFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       xor      r8d, r8d
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:.ctor(System.Net.Sockets.Socket,ubyte):this]
-       ; gcrRegs -[rax rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M30990_IG06:        ; bbWeight=1.00, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0048 {rbx rsi}, byref, isz
        mov      rcx, r15
        ; gcrRegs +[rcx]
        mov      rdx, rsi
@@ -140,38 +120,15 @@ G_M30990_IG06:        ; bbWeight=1.00, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0
        ; gcrRegs -[rcx rdx rdi r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M30990_IG08
-                       ;; size=48 bbWeight=1.00 PerfScore 13.50
-G_M30990_IG07:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0008 {rbx}, byref
-       lea      rcx, bword ptr [r15+0x180]
-       ; byrRegs +[rcx]
-       mov      rdx, r14
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r14]
-       ; byrRegs -[rcx]
-       movsx    rax, word  ptr [r15+0x178]
-       mov      gword ptr [rsp+0x20], r15
-       mov      word  ptr [rsp+0x28], ax
-       mov      byte  ptr [rsp+0x2A], 1
-       jmp      G_M30990_IG16
-                       ;; size=43 bbWeight=0 PerfScore 0.00
-G_M30990_IG08:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M30990_IG19
+                       ;; size=52 bbWeight=1.00 PerfScore 13.50
+G_M30990_IG05:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs -[r14]
        mov      r13d, dword ptr [r15+0xE8]
        cmp      byte  ptr [r15+0x150], 0
-       jne      SHORT G_M30990_IG10
+       je       SHORT G_M30990_IG11
                        ;; size=17 bbWeight=1 PerfScore 6.00
-G_M30990_IG09:        ; bbWeight=0.31, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, gword ptr [r15+0x148]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 56
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       jmp      SHORT G_M30990_IG11
-                       ;; size=15 bbWeight=0.31 PerfScore 2.23
-G_M30990_IG10:        ; bbWeight=0.69, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rcx]
+G_M30990_IG06:        ; bbWeight=0.69, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
        mov      rcx, gword ptr [r15+0x148]
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
@@ -179,9 +136,9 @@ G_M30990_IG10:        ; bbWeight=0.69, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
                        ;; size=13 bbWeight=0.69 PerfScore 3.64
-G_M30990_IG11:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref, isz
+G_M30990_IG07:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rbx}, byref
        test     rcx, rcx
-       je       G_M30990_IG20
+       je       G_M30990_IG18
        mov      rdx, r15
        ; gcrRegs +[rdx]
        xor      r8, r8
@@ -191,41 +148,16 @@ G_M30990_IG11:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=000A {rcx rb
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M30990_IG13
-                       ;; size=25 bbWeight=1 PerfScore 4.00
-G_M30990_IG12:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rax]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M30990_IG13:        ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M30990_IG15
        test     r13d, r13d
-       je       SHORT G_M30990_IG15
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M30990_IG14:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       mov      edx, r13d
-       mov      r8d, 1
-       call     [System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:CreateException(int,ubyte):System.Exception:this]
-       ; gcrRegs -[rcx r15] +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x20]
-       call     [System.Threading.Tasks.ValueTask:FromException(System.Exception):System.Threading.Tasks.ValueTask]
-       ; gcrRegs -[rax rdx]
-       ; gcr arg pop 0
-       jmp      SHORT G_M30990_IG16
-                       ;; size=34 bbWeight=0 PerfScore 0.00
-G_M30990_IG15:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jne      G_M30990_IG16
+                       ;; size=38 bbWeight=1 PerfScore 5.25
+G_M30990_IG08:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rax r15]
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [rsp+0x20], xmm0
                        ;; size=10 bbWeight=1.00 PerfScore 1.33
-G_M30990_IG16:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M30990_IG09:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      rdx, gword ptr [rsp+0x20]
        ; gcrRegs +[rdx]
        mov      rcx, rbx
@@ -240,7 +172,7 @@ G_M30990_IG16:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=34 bbWeight=1.00 PerfScore 8.50
-G_M30990_IG17:        ; bbWeight=1.00, epilog, nogc, extend
+G_M30990_IG10:        ; bbWeight=1.00, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -251,9 +183,26 @@ G_M30990_IG17:        ; bbWeight=1.00, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=1.00 PerfScore 4.75
-G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, gcvars, byref
-       ; gcrRegs +[r14]
+G_M30990_IG11:        ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs +[r15]
        ; byrRegs -[rax]
+       mov      rcx, gword ptr [r15+0x148]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 56
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       jmp      SHORT G_M30990_IG07
+                       ;; size=15 bbWeight=0.31 PerfScore 2.23
+G_M30990_IG12:        ; bbWeight=0.02, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref
+       ; gcrRegs -[r15] +[rdi r14]
+       ; byrRegs -[rcx] +[rsi]
+       cmp      dword ptr [r14+0x20], 0
+       je       G_M30990_IG03
+                       ;; size=11 bbWeight=0.02 PerfScore 0.07
+G_M30990_IG13:        ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rsi]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        mov      rdx, r14
@@ -265,7 +214,7 @@ G_M30990_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {
        mov      rax, rbx
        ; byrRegs +[rax]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
+G_M30990_IG14:        ; bbWeight=0, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -276,14 +225,77 @@ G_M30990_IG19:        ; bbWeight=0, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M30990_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; byrRegs -[rax rbx]
+G_M30990_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs +[r15]
+       ; byrRegs -[rax]
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       call     [System.Net.Sockets.SocketAsyncEventArgs:Dispose():this]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     r13d, r13d
+       je       G_M30990_IG08
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M30990_IG16:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, r15
...

benchmarks.run.windows.x64.checked.mch

-23 (-7.67%) : 19180.dasm - Microsoft.Extensions.Primitives.StringSegment:TrimEnd():Microsoft.Extensions.Primitives.StringSegment:this (FullOpts)

@@ -31,10 +31,10 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V21 tmp17        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V23 tmp19        [V23,T03] (  7, 10   )     int  ->  r15         "Inlining Arg"
+;  V23 tmp19        [V23,T03] (  7, 10   )     int  ->  rdi         "Inlining Arg"
 ;  V24 tmp20        [V24,T08] (  4,  6   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.Primitives.StringSegment>
-;  V26 tmp22        [V26,T05] (  5,  8   )     int  ->  r13         "Inlining Arg"
+;  V26 tmp22        [V26,T05] (  5,  8   )     int  ->  rbp         "Inlining Arg"
 ;  V27 tmp23        [V27,T11] (  2,  5   )   byref  ->  rbp         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V28 tmp24        [V28,T09] (  3,  6   )     int  ->  r14         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V29 tmp25        [V29,T15] (  3,  2   )   byref  ->  rbp         "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -56,8 +56,8 @@
 ;* V45 tmp41        [V45    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V46 tmp42        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp43        [V47,T18] (  2,  2   )     ref  ->  rdx         single-def "field V25.<Buffer>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V48 tmp44        [V48,T19] (  2,  2   )     int  ->  r13         single-def "field V25.<Offset>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V49 tmp45        [V49,T20] (  2,  2   )     int  ->  r15         single-def "field V25.<Length>k__BackingField (fldOffset=0xc)" P-INDEP
+;  V48 tmp44        [V48,T19] (  2,  2   )     int  ->  rbp         single-def "field V25.<Offset>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V49 tmp45        [V49,T20] (  2,  2   )     int  ->  rdi         single-def "field V25.<Length>k__BackingField (fldOffset=0xc)" P-INDEP
 ;  V50 cse0         [V50,T21] (  3,  1.50)     ref  ->  rdx         "CSE - moderate"
 ;  V51 cse1         [V51,T13] (  3,  3   )     ref  ->  rcx         "CSE - moderate"
 ;  V52 cse2         [V52,T14] (  3,  3   )     int  ->  rdx         "CSE - moderate"
@@ -65,9 +65,7 @@
 ; Lcl frame size = 32
 
 G_M7786_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
-       push     r13
        push     rdi
        push     rsi
        push     rbp
@@ -77,7 +75,7 @@ G_M7786_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs +[rbx]
        mov      rsi, rdx
        ; byrRegs +[rsi]
-                       ;; size=20 bbWeight=1 PerfScore 7.75
+                       ;; size=16 bbWeight=1 PerfScore 5.75
 G_M7786_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        mov      rcx, gword ptr [rbx]
        ; gcrRegs +[rcx]
@@ -89,7 +87,7 @@ G_M7786_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
 G_M7786_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; gcrRegs -[rcx]
        or       edx, edi
-       jne      G_M7786_IG15
+       jne      G_M7786_IG14
        xor      rbp, rbp
        ; byrRegs +[rbp]
        xor      r14d, r14d
@@ -103,7 +101,7 @@ G_M7786_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0048 {rbx
        add      rax, r8
        mov      r8d, dword ptr [rcx+0x08]
        cmp      rax, r8
-       ja       G_M7786_IG15
+       ja       G_M7786_IG14
        mov      edx, edx
        lea      rbp, bword ptr [rcx+2*rdx+0x0C]
        ; byrRegs +[rbp]
@@ -122,53 +120,51 @@ G_M7786_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp
 G_M7786_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
        lea      edi, [r14-0x01]
        test     edi, edi
-       jl       SHORT G_M7786_IG12
+       jl       SHORT G_M7786_IG11
                        ;; size=8 bbWeight=1 PerfScore 1.75
 G_M7786_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
        cmp      edi, r14d
-       jae      G_M7786_IG14
+       jae      SHORT G_M7786_IG13
        mov      ecx, edi
        movzx    rcx, word  ptr [rbp+2*rcx]
        cmp      ecx, 256
-       jb       SHORT G_M7786_IG10
-                       ;; size=24 bbWeight=4 PerfScore 19.00
+       jb       SHORT G_M7786_IG09
+                       ;; size=20 bbWeight=4 PerfScore 19.00
 G_M7786_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M7786_IG12
-                       ;; size=10 bbWeight=2 PerfScore 8.50
-G_M7786_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
-       jmp      SHORT G_M7786_IG11
-                       ;; size=2 bbWeight=4 PerfScore 8.00
-G_M7786_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
+       je       SHORT G_M7786_IG11
+       jmp      SHORT G_M7786_IG10
+                       ;; size=12 bbWeight=2 PerfScore 12.50
+G_M7786_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
        mov      ecx, ecx
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rcx+rax], 128
-       je       SHORT G_M7786_IG12
+       je       SHORT G_M7786_IG11
                        ;; size=18 bbWeight=2 PerfScore 9.00
-G_M7786_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
+G_M7786_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
        dec      edi
        jns      SHORT G_M7786_IG07
                        ;; size=4 bbWeight=4 PerfScore 5.00
-G_M7786_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
+G_M7786_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs -[rbp]
-       lea      r15d, [rdi+0x01]
+       inc      edi
        mov      rcx, gword ptr [rbx]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       SHORT G_M7786_IG16
-       test     r15d, r15d
-       jl       SHORT G_M7786_IG16
-       cmp      r15d, dword ptr [rbx+0x0C]
-       ja       SHORT G_M7786_IG16
-       mov      r13d, dword ptr [rbx+0x08]
+       je       SHORT G_M7786_IG15
+       test     edi, edi
+       jl       SHORT G_M7786_IG15
+       cmp      edi, dword ptr [rbx+0x0C]
+       ja       SHORT G_M7786_IG15
+       mov      ebp, dword ptr [rbx+0x08]
        mov      edx, dword ptr [rcx+0x08]
-       cmp      edx, r13d
-       jb       SHORT G_M7786_IG17
-       sub      edx, r13d
-       cmp      edx, r15d
-       jb       SHORT G_M7786_IG17
+       cmp      edx, ebp
+       jb       SHORT G_M7786_IG16
+       sub      edx, ebp
+       cmp      edx, edi
+       jb       SHORT G_M7786_IG16
        mov      rdx, rcx
        ; gcrRegs +[rdx]
        mov      rcx, rsi
@@ -177,38 +173,36 @@ G_M7786_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rdx]
        ; byrRegs -[rcx rbx]
-       mov      dword ptr [rsi+0x08], r13d
-       mov      dword ptr [rsi+0x0C], r15d
+       mov      dword ptr [rsi+0x08], ebp
+       mov      dword ptr [rsi+0x0C], edi
        mov      rax, rsi
        ; byrRegs +[rax]
-                       ;; size=65 bbWeight=1 PerfScore 19.50
-G_M7786_IG13:        ; bbWeight=1, epilog, nogc, extend
+                       ;; size=55 bbWeight=1 PerfScore 19.25
+G_M7786_IG12:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r13
        pop      r14
-       pop      r15
        ret      
-                       ;; size=15 bbWeight=1 PerfScore 4.75
-G_M7786_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 3.75
+G_M7786_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; byrRegs -[rax rsi]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M7786_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M7786_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 33
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
        ; gcr arg pop 0
        int3     
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M7786_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M7786_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs +[rbx]
        mov      rcx, rbx
        ; byrRegs +[rcx]
-       mov      r8d, r15d
+       mov      r8d, edi
        xor      edx, edx
        mov      r9d, 1
        call     [Microsoft.Extensions.Primitives.StringSegment:ThrowInvalidArguments(int,int,int):this]
@@ -216,17 +210,17 @@ G_M7786_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byre
        ; gcr arg pop 0
        int3     
                        ;; size=21 bbWeight=0 PerfScore 0.00
-G_M7786_IG17:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M7786_IG16:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
-       mov      edx, r13d
-       mov      r8d, r15d
+       mov      edx, ebp
+       mov      r8d, edi
        call     [Microsoft.Extensions.Primitives.StringSegment:ThrowInvalidArguments(System.String,int,int)]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        int3     
-                       ;; size=13 bbWeight=0 PerfScore 0.00
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 300, prolog size 20, PerfScore 97.50, instruction count 97, allocated bytes for code 300 (MethodHash=4041e195) for method Microsoft.Extensions.Primitives.StringSegment:TrimEnd():Microsoft.Extensions.Primitives.StringSegment:this (FullOpts)
+; Total bytes of code 277, prolog size 16, PerfScore 90.25, instruction count 93, allocated bytes for code 277 (MethodHash=4041e195) for method Microsoft.Extensions.Primitives.StringSegment:TrimEnd():Microsoft.Extensions.Primitives.StringSegment:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -234,16 +228,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0E
-  CountOfUnwindCodes: 8
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

-49 (-7.10%) : 8691.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)

@@ -20,21 +20,21 @@
 ;  V09 loc5         [V09,T09] (  5, 13.50)   ubyte  ->  [rsp+0x40] 
 ;  V10 loc6         [V10,T15] (  3,  5   )     int  ->  [rsp+0x3C] 
 ;  V11 loc7         [V11    ] ( 20, 83.50)     int  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V12 loc8         [V12,T16] (  3,  1.50)     int  ->  rax        
-;  V13 loc9         [V13,T08] (  7, 14   )  ushort  ->   r9        
+;  V12 loc8         [V12,T16] (  3,  1.50)     int  ->  rcx        
+;  V13 loc9         [V13,T08] (  7, 14   )  ushort  ->  rcx        
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;  V16 tmp2         [V16,T00] (  3, 96   )     int  ->  rcx         "dup spill"
 ;* V17 tmp3         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp4         [V18    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V19 tmp5         [V19,T12] (  3,  6   )    long  ->   r8         "Inline stloc first use temp"
+;  V19 tmp5         [V19,T12] (  3,  6   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V20 tmp6         [V20    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V21 tmp7         [V21    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp8         [V22    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp9         [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V24 cse0         [V24,T01] (  3, 48   )     int  ->  rcx         "CSE - aggressive"
-;  V25 cse1         [V25,T10] (  5, 10   )     int  ->   r9         multi-def "CSE - aggressive"
-;  V26 cse2         [V26,T17] (  3,  1.50)     int  ->   r8         "CSE - moderate"
+;  V25 cse1         [V25,T10] (  5, 10   )     int  ->  rcx         multi-def "CSE - aggressive"
+;  V26 cse2         [V26,T17] (  3,  1.50)     int  ->  rcx         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -59,227 +59,231 @@ G_M23448_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        xor      r15d, r15d
        xor      r13d, r13d
        xor      r12d, r12d
-       xor      eax, eax
-       mov      r10d, 1
-       mov      r11d, 1
-       movsxd   r8, ebp
-       cmp      word  ptr [rsi+2*r8], 58
-       jne      SHORT G_M23448_IG04
-                       ;; size=37 bbWeight=1 PerfScore 6.00
-G_M23448_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       lea      r8d, [rbp+0x01]
-       cmp      r8d, dword ptr [rbx]
-       jge      G_M23448_IG29
-       movsxd   r8, r8d
-       cmp      word  ptr [rsi+2*r8], 58
-       jne      G_M23448_IG29
-                       ;; size=28 bbWeight=0.50 PerfScore 4.38
-G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      dword ptr [rsp+0x30], ebp
-       mov      r8d, dword ptr [rsp+0x30]
-       cmp      r8d, dword ptr [rbx]
-       jge      SHORT G_M23448_IG07
-                       ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M23448_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      dword ptr [rsp+0x44], eax
-       test     eax, eax
-       jne      SHORT G_M23448_IG08
-                       ;; size=8 bbWeight=4 PerfScore 9.00
-G_M23448_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       movsxd   r8, dword ptr [rsp+0x30]
-       movzx    r9, word  ptr [rsi+2*r8]
-       lea      r8d, [r9-0x30]
-       mov      rcx, 0xD1FFAB1E
-       shlx     rcx, rcx, r8
-       add      r8, -64
-       and      r8, rcx
-       jge      SHORT G_M23448_IG10
-       jmp      SHORT G_M23448_IG09
-                       ;; size=40 bbWeight=2 PerfScore 19.50
-G_M23448_IG07:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       mov      dword ptr [rsp+0x44], eax
-       mov      dword ptr [rsp+0x40], r10d
-       jmp      G_M23448_IG23
-                       ;; size=14 bbWeight=0.25 PerfScore 1.00
-G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       movsxd   r9, dword ptr [rsp+0x30]
-       movzx    r9, word  ptr [rsi+2*r9]
-       lea      r8d, [r9-0x30]
-       cmp      r8d, 9
-       ja       SHORT G_M23448_IG10
-                       ;; size=20 bbWeight=2 PerfScore 13.50
-G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       inc      r15d
-       xor      r10d, r10d
-       mov      dword ptr [rsp+0x40], r10d
-       jmp      G_M23448_IG22
-                       ;; size=16 bbWeight=2 PerfScore 7.00
-G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      r15d, 4
-       jg       G_M23448_IG29
-       test     r15d, r15d
-       je       SHORT G_M23448_IG11
-       inc      r14d
-       mov      r11d, dword ptr [rsp+0x30]
-       sub      r11d, r15d
-                       ;; size=26 bbWeight=2 PerfScore 8.00
-G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      r9d, 46
-       ja       SHORT G_M23448_IG12
-       cmp      r9d, 37
-       je       SHORT G_M23448_IG14
-       cmp      r9d, 46
-       jne      G_M23448_IG29
-       test     r12d, r12d
-       mov      dword ptr [rsp+0x40], r10d
-       jne      G_M23448_IG29
-       mov      r8d, dword ptr [rbx]
-       mov      dword ptr [rsp+0x30], r8d
        xor      r8d, r8d
-       mov      dword ptr [rsp+0x20], r8d
-       lea      r8, [rsp+0x30]
-       mov      rcx, rsi
-       mov      dword ptr [rsp+0x3C], r11d
-       mov      edx, r11d
-       mov      r9d, 1
-       call     [<unknown method>]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       G_M23448_IG29
+       mov      eax, 1
+       mov      r10d, 1
+       movsxd   rcx, ebp
+       cmp      word  ptr [rsi+2*rcx], 58
+       jne      SHORT G_M23448_IG04
+                       ;; size=36 bbWeight=1 PerfScore 6.00
+G_M23448_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       lea      ecx, [rbp+0x01]
+       cmp      ecx, dword ptr [rbx]
+       jge      G_M23448_IG27
+       movsxd   rcx, ecx
+       cmp      word  ptr [rsi+2*rcx], 58
+       jne      G_M23448_IG27
+                       ;; size=25 bbWeight=0.50 PerfScore 4.38
+G_M23448_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       mov      dword ptr [rsp+0x30], ebp
+       mov      ecx, dword ptr [rsp+0x30]
+       cmp      ecx, dword ptr [rbx]
+       jge      G_M23448_IG21
+                       ;; size=16 bbWeight=0.50 PerfScore 3.00
+G_M23448_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       test     r8d, r8d
+       jne      SHORT G_M23448_IG07
+                       ;; size=5 bbWeight=4 PerfScore 5.00
+G_M23448_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       movsxd   rcx, dword ptr [rsp+0x30]
+       movzx    rcx, word  ptr [rsi+2*rcx]
+       lea      edx, [rcx-0x30]
+       mov      r9, 0xD1FFAB1E
+       shlx     r9, r9, rdx
+       add      rdx, -64
+       and      rdx, r9
+       jge      SHORT G_M23448_IG09
+       jmp      SHORT G_M23448_IG08
+                       ;; size=38 bbWeight=2 PerfScore 19.50
+G_M23448_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       movsxd   rcx, dword ptr [rsp+0x30]
+       movzx    rcx, word  ptr [rsi+2*rcx]
+       lea      edx, [rcx-0x30]
+       cmp      edx, 9
+       ja       SHORT G_M23448_IG09
+                       ;; size=17 bbWeight=2 PerfScore 13.50
+G_M23448_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       inc      r15d
+       xor      eax, eax
        jmp      G_M23448_IG20
-                       ;; size=93 bbWeight=2 PerfScore 37.50
-G_M23448_IG12:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      r9d, 47
-       je       G_M23448_IG19
-       cmp      r9d, 58
-       je       SHORT G_M23448_IG17
-       cmp      r9d, 93
-       je       SHORT G_M23448_IG16
-                       ;; size=22 bbWeight=2 PerfScore 7.50
-G_M23448_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rbx]
-       jmp      G_M23448_IG29
-                       ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M23448_IG14:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       ; byrRegs +[rbx]
+                       ;; size=10 bbWeight=2 PerfScore 5.00
+G_M23448_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      r15d, 4
+       jg       G_M23448_IG27
+       test     r15d, r15d
+       je       SHORT G_M23448_IG10
+       inc      r14d
+       mov      r10d, dword ptr [rsp+0x30]
+       sub      r10d, r15d
+                       ;; size=26 bbWeight=2 PerfScore 8.00
+G_M23448_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      ecx, 46
+       ja       SHORT G_M23448_IG11
+       cmp      ecx, 37
+       je       SHORT G_M23448_IG12
+       cmp      ecx, 46
+       jne      G_M23448_IG27
+       test     r12d, r12d
+       mov      dword ptr [rsp+0x44], r8d
+       mov      dword ptr [rsp+0x40], eax
+       jne      G_M23448_IG27
+       jmp      G_M23448_IG18
+                       ;; size=42 bbWeight=2 PerfScore 18.00
+G_M23448_IG11:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      ecx, 47
+       je       G_M23448_IG17
+       cmp      ecx, 58
+       je       SHORT G_M23448_IG15
+       cmp      ecx, 93
+       je       SHORT G_M23448_IG14
+       jmp      G_M23448_IG23
+                       ;; size=24 bbWeight=2 PerfScore 11.50
+G_M23448_IG12:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, dword ptr [rsp+0x30]
        inc      ecx
        mov      dword ptr [rsp+0x30], ecx
        cmp      ecx, dword ptr [rbx]
-       je       G_M23448_IG29
+       je       G_M23448_IG27
        movsxd   rcx, dword ptr [rsp+0x30]
        movzx    rcx, word  ptr [rsi+2*rcx]
        cmp      ecx, 93
-       je       SHORT G_M23448_IG16
+       je       SHORT G_M23448_IG14
        cmp      ecx, 47
-       jne      SHORT G_M23448_IG14
+       jne      SHORT G_M23448_IG12
                        ;; size=37 bbWeight=16 PerfScore 220.00
-G_M23448_IG15:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M23448_IG19
+G_M23448_IG13:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       jmp      SHORT G_M23448_IG17
                        ;; size=2 bbWeight=2 PerfScore 4.00
-G_M23448_IG16:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M23448_IG14:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      ebp, dword ptr [rsp+0x30]
        mov      ecx, dword ptr [rbx]
        mov      dword ptr [rsp+0x30], ecx
-       mov      dword ptr [rsp+0x40], r10d
-       jmp      G_M23448_IG22
-                       ;; size=20 bbWeight=2 PerfScore 14.00
-G_M23448_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       jmp      G_M23448_IG20
+                       ;; size=15 bbWeight=2 PerfScore 12.00
+G_M23448_IG15:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      dword ptr [rsp+0x30], 0
-       jle      SHORT G_M23448_IG18
-       mov      r10d, dword ptr [rsp+0x30]
-       dec      r10d
-       movsxd   rcx, r10d
+       jle      SHORT G_M23448_IG16
...

-18 (-6.21%) : 634.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

@@ -75,22 +75,43 @@ G_M46385_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
 G_M46385_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       je       SHORT G_M46385_IG04
+       jne      SHORT G_M46385_IG05
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
+G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 36
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        cmp      edi, 1
-       jne      G_M46385_IG16
+       jne      G_M46385_IG17
        movzx    rcx, word  ptr [rbx+0x0C]
        or       ecx, 32
        cmp      ecx, 100
-       jg       G_M46385_IG12
+       jg       SHORT G_M46385_IG06
        cmp      ecx, 98
-       je       G_M46385_IG14
+       je       SHORT G_M46385_IG08
        cmp      ecx, 100
-       jne      G_M46385_IG17
-                       ;; size=50 bbWeight=0.50 PerfScore 5.25
-G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 36
+       jne      G_M46385_IG18
+       jmp      SHORT G_M46385_IG04
+                       ;; size=37 bbWeight=0.50 PerfScore 4.62
+G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       cmp      ecx, 110
+       je       SHORT G_M46385_IG07
+       cmp      ecx, 112
+       je       SHORT G_M46385_IG08
+       cmp      ecx, 120
+       jne      G_M46385_IG18
+       mov      ecx, 68
+       jmp      SHORT G_M46385_IG09
+                       ;; size=26 bbWeight=0.50 PerfScore 3.00
+G_M46385_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 32
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       mov      ecx, 38
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+G_M46385_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -100,15 +121,25 @@ G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
        ; byrRegs +[rcx]
        mov      edx, dword ptr [rbp+0x08]
        test     rbx, rbx
-       jne      G_M46385_IG15
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref
+       jne      SHORT G_M46385_IG11
+                       ;; size=20 bbWeight=1 PerfScore 5.00
+G_M46385_IG10:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref, isz
        ; gcrRegs -[rax rbx]
        xor      r9, r9
        ; byrRegs +[r9]
        xor      r8d, r8d
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       jmp      SHORT G_M46385_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG11:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
+       ; gcrRegs +[rbx]
+       ; byrRegs -[r9]
+       lea      r9, bword ptr [rbx+0x0C]
+       ; byrRegs +[r9]
+       mov      edi, dword ptr [rbx+0x08]
+       mov      r8d, edi
+                       ;; size=10 bbWeight=0.50 PerfScore 1.38
+G_M46385_IG12:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       ; gcrRegs -[rbx]
        mov      bword ptr [rsp+0x30], rcx
        mov      dword ptr [rsp+0x38], edx
        mov      bword ptr [rsp+0x20], r9
@@ -122,17 +153,17 @@ G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rs
        ; byrRegs -[rcx rsi]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M46385_IG09
+       je       SHORT G_M46385_IG14
                        ;; size=47 bbWeight=1 PerfScore 10.00
-G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
+G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
        mov      ecx, dword ptr [rsp+0x40]
        cmp      ecx, dword ptr [rbp+0x08]
        sete     cl
        movzx    rcx, cl
        test     cl, cl
-       jne      SHORT G_M46385_IG10
+       jne      SHORT G_M46385_IG15
                        ;; size=17 bbWeight=0.50 PerfScore 3.25
-G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -141,11 +172,11 @@ G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46385_IG10:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG15:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        mov      rax, rbp
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46385_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -153,49 +184,19 @@ G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M46385_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs -[rax rbp] +[rbx]
-       ; byrRegs +[rsi]
-       cmp      ecx, 110
-       je       SHORT G_M46385_IG13
-       cmp      ecx, 112
-       je       SHORT G_M46385_IG14
-       cmp      ecx, 120
-       jne      SHORT G_M46385_IG17
-       mov      ecx, 68
-       jmp      G_M46385_IG05
-                       ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 32
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 38
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG15:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
-       ; gcrRegs +[rbp]
-       ; byrRegs +[rcx]
-       lea      r9, bword ptr [rbx+0x0C]
-       ; byrRegs +[r9]
-       mov      edi, dword ptr [rbx+0x08]
-       mov      r8d, edi
-       jmp      G_M46385_IG07
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M46385_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rbp]
-       ; byrRegs -[rcx rsi r9]
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbp]
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46385_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 290, prolog size 18, PerfScore 45.08, instruction count 80, allocated bytes for code 290 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
+; Total bytes of code 272, prolog size 18, PerfScore 46.08, instruction count 81, allocated bytes for code 272 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+37 (+3.19%) : 16227.dasm - System.Formats.Tar.TarEntry+d__47:MoveNext():this (FullOpts)

@@ -144,9 +144,9 @@ G_M38735_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=008
                        ;; size=11 bbWeight=1 PerfScore 5.00
 G_M38735_IG03:        ; bbWeight=1, gcVars=0000000004000001 {V00 V02}, gcrefRegs=0082 {rcx rdi}, byrefRegs=0040 {rsi}, gcvars, byref, isz
        test     ebx, ebx
-       je       G_M38735_IG09
+       je       SHORT G_M38735_IG06
        cmp      ebx, 1
-       je       G_M38735_IG20
+       je       G_M38735_IG25
        lea      rax, bword ptr [rsi+0x28]
        ; byrRegs +[rax]
        mov      rdx, gword ptr [rax]
@@ -154,7 +154,7 @@ G_M38735_IG03:        ; bbWeight=1, gcVars=0000000004000001 {V00 V02}, gcrefRegs
        test     rdx, rdx
        je       SHORT G_M38735_IG04
        cmp      dword ptr [rdx+0x20], 0
-       jne      SHORT G_M38735_IG06
+       jne      G_M38735_IG20
                        ;; size=35 bbWeight=1 PerfScore 10.25
 G_M38735_IG04:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rdx rdi]
@@ -195,66 +195,21 @@ G_M38735_IG04:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi},
        ; gcrRegs +[rcx]
        mov      gword ptr [rsi+0x10], rcx
                        ;; size=75 bbWeight=1 PerfScore 15.00
-G_M38735_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
+G_M38735_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
        mov      dword ptr [rsi+0x1C], ecx
        mov      rcx, gword ptr [rbp-0x70]
        ; gcrRegs +[rcx]
-       jmp      SHORT G_M38735_IG09
-                       ;; size=9 bbWeight=1 PerfScore 4.00
-G_M38735_IG06:        ; bbWeight=0, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0041 {rax rsi}, gcvars, byref
-       ; gcrRegs -[rcx rdi]
-       ; byrRegs +[rax]
-       ; GC ptr vars -{V02}
-       mov      rcx, rax
-       ; byrRegs +[rcx]
-       call     [System.Threading.CancellationToken:ThrowOperationCanceledException():this]
-       ; byrRegs -[rax rcx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M38735_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs +[rbx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       mov      rcx, 0xD1FFAB1E      ; System.Exception
-       call     CORINFO_HELP_ISINSTANCEOFCLASS
-       ; gcrRegs -[rdx] +[rax]
-       ; gcr arg pop 0
-       test     rax, rax
-       jne      SHORT G_M38735_IG08
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rax rcx rbx]
-       ; gcr arg pop 0
-                       ;; size=31 bbWeight=0 PerfScore 0.00
-G_M38735_IG08:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0040 {rsi}, byref
-       ; gcrRegs +[rax]
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       call     [System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx], ecx
-       call     [System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this]
-       ; gcrRegs -[rax rcx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=21 bbWeight=0 PerfScore 0.00
-G_M38735_IG09:        ; bbWeight=1, gcVars=0000000004000001 {V00 V02}, gcrefRegs=0082 {rcx rdi}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs +[rcx rdi]
-       ; GC ptr vars +{V02}
+                       ;; size=7 bbWeight=1 PerfScore 2.00
+G_M38735_IG06:        ; bbWeight=1, gcrefRegs=0082 {rcx rdi}, byrefRegs=0040 {rsi}, byref, isz
        test     ebx, ebx
-       je       G_M38735_IG11
+       je       G_M38735_IG08
        mov      rax, gword ptr [rcx+0x08]
        ; gcrRegs +[rax]
        mov      rbx, gword ptr [rax+0x08]
        ; gcrRegs +[rbx]
        test     rbx, rbx
-       je       G_M38735_IG15
+       je       G_M38735_IG12
        mov      r14, gword ptr [rsi+0x28]
        ; gcrRegs +[r14]
        cmp      byte  ptr [rbx], bl
@@ -279,13 +234,13 @@ G_M38735_IG09:        ; bbWeight=1, gcVars=0000000004000001 {V00 V02}, gcrefRegs
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], ecx
        test     byte  ptr [rbp-0x30], 4
-       jne      SHORT G_M38735_IG10
+       jne      SHORT G_M38735_IG07
        mov      rcx, gword ptr [rbp-0x38]
        ; gcrRegs +[rcx]
        test     dword ptr [rcx+0x34], 0xD1FFAB1E
-       jne      SHORT G_M38735_IG14
+       jne      SHORT G_M38735_IG11
                        ;; size=92 bbWeight=1 PerfScore 36.00
-G_M38735_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M38735_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax rcx]
        xor      ecx, ecx
        mov      dword ptr [rsi+0x18], ecx
@@ -312,24 +267,24 @@ G_M38735_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-       jmp      G_M38735_IG31
+       jmp      G_M38735_IG32
                        ;; size=55 bbWeight=1 PerfScore 15.25
-G_M38735_IG11:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi}, byref
+G_M38735_IG08:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs +[rcx]
        lea      rdx, bword ptr [rsi+0x40]
        ; byrRegs +[rdx]
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M38735_IG12:        ; bbWeight=1, nogc, extend
+G_M38735_IG09:        ; bbWeight=1, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rdx]
        vmovdqu  xmmword ptr [rbp-0x38], xmm0
                        ;; size=9 bbWeight=1 PerfScore 5.00
-G_M38735_IG13:        ; bbWeight=1, extend
+G_M38735_IG10:        ; bbWeight=1, extend
        xor      eax, eax
        mov      qword ptr [rdx], rax
        mov      qword ptr [rdx+0x08], rax
        mov      dword ptr [rsi+0x18], -1
                        ;; size=16 bbWeight=1 PerfScore 3.25
-G_M38735_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M38735_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[rcx]
        ; byrRegs -[rdx]
        mov      rdx, gword ptr [rbp-0x38]
@@ -338,7 +293,7 @@ G_M38735_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        mov      r8d, dword ptr [rdx+0x34]
        and      r8d, 0xD1FFAB1E
        cmp      r8d, 0xD1FFAB1E
-       je       SHORT G_M38735_IG15
+       je       SHORT G_M38735_IG12
        mov      rcx, rdx
        ; gcrRegs +[rcx]
        mov      edx, eax
@@ -348,7 +303,7 @@ G_M38735_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        ; gcr arg pop 0
        nop      
                        ;; size=39 bbWeight=1 PerfScore 9.25
-G_M38735_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M38735_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rsi]
        mov      rsi, bword ptr [rbp+0x10]
        ; byrRegs +[rsi]
@@ -372,7 +327,7 @@ G_M38735_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
        test     rdi, rdi
-       je       SHORT G_M38735_IG16
+       je       G_M38735_IG21
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
@@ -381,7 +336,7 @@ G_M38735_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M38735_IG16
+       jne      G_M38735_IG21
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -391,18 +346,141 @@ G_M38735_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        xor      ecx, ecx
        test     rax, rax
        setne    cl
-       jmp      SHORT G_M38735_IG17
-                       ;; size=112 bbWeight=1 PerfScore 26.25
-G_M38735_IG16:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+                       ;; size=118 bbWeight=1 PerfScore 24.25
+G_M38735_IG13:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax]
-       mov      ecx, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M38735_IG17:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        movzx    rcx, cl
        call     [System.Diagnostics.Debug:Assert(ubyte)]
        ; gcr arg pop 0
        test     rdi, rdi
-       je       G_M38735_IG23
+       jne      G_M38735_IG22
+                       ;; size=18 bbWeight=1 PerfScore 4.50
+G_M38735_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rdi]
+       mov      rbx, gword ptr [rbp-0x48]
+       ; gcrRegs +[rbx]
+       test     rbx, rbx
+       je       G_M38735_IG28
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      G_M38735_IG28
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFINTERFACE
+       ; gcrRegs -[rdx]
+       ; gcr arg pop 0
+       xor      ecx, ecx
+       test     rax, rax
+       setne    cl
+                       ;; size=66 bbWeight=1 PerfScore 8.00
+G_M38735_IG15:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[rax]
+       movzx    rcx, cl
+       call     [System.Diagnostics.Debug:Assert(ubyte)]
+       ; gcr arg pop 0
+       test     rbx, rbx
+       je       SHORT G_M38735_IG16
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       je       G_M38735_IG29
+       mov      ecx, dword ptr [rax+0x34]
+       and      ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       je       SHORT G_M38735_IG16
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       xor      edx, edx
+       call     [<unknown method>]
+       ; gcrRegs -[rax rcx rbx]
+       ; gcr arg pop 0
+                       ;; size=69 bbWeight=1 PerfScore 14.25
+G_M38735_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+       mov      rbx, gword ptr [rsi+0x10]
+       ; gcrRegs +[rbx]
+       test     rbx, rbx
...

+2 (+3.28%) : 4709.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)

@@ -20,39 +20,44 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x0C]
        cmp      eax, 1
-       je       SHORT G_M65033_IG05
+       je       SHORT G_M65033_IG04
                        ;; size=8 bbWeight=1 PerfScore 3.25
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      eax, 2
-       jne      SHORT G_M65033_IG07
+       jne      SHORT G_M65033_IG08
        mov      eax, dword ptr [rcx+0x10]
        inc      eax
        mov      dword ptr [rcx+0x10], eax
        cmp      eax, dword ptr [rcx+0x18]
-       je       SHORT G_M65033_IG07
-       mov      eax, 1
-                       ;; size=23 bbWeight=0.50 PerfScore 4.38
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       ret      
-                       ;; size=1 bbWeight=0.50 PerfScore 0.50
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+       je       SHORT G_M65033_IG08
+       jmp      SHORT G_M65033_IG06
+                       ;; size=20 bbWeight=0.50 PerfScore 5.25
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      eax, dword ptr [rcx+0x14]
        mov      dword ptr [rcx+0x10], eax
        mov      dword ptr [rcx+0x0C], 2
        mov      eax, 1
                        ;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0.50 PerfScore 0.50
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rcx]
        mov      dword ptr [rcx+0x0C], -1
        xor      eax, eax
                        ;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 61, prolog size 0, PerfScore 11.88, instruction count 20, allocated bytes for code 61 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 63, prolog size 0, PerfScore 12.88, instruction count 21, allocated bytes for code 63 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+42 (+3.41%) : 16198.dasm - System.Formats.Tar.TarFile+d__15:MoveNext():this (FullOpts)

@@ -140,9 +140,9 @@ G_M62977_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=008
                        ;; size=3 bbWeight=1 PerfScore 2.00
 G_M62977_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        test     ebx, ebx
-       je       G_M62977_IG09
+       je       G_M62977_IG06
        cmp      ebx, 1
-       je       G_M62977_IG21
+       je       G_M62977_IG26
        lea      rcx, bword ptr [rsi+0x30]
        ; byrRegs +[rcx]
        mov      rax, gword ptr [rcx]
@@ -150,8 +150,8 @@ G_M62977_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
        test     rax, rax
        je       SHORT G_M62977_IG04
        cmp      dword ptr [rax+0x20], 0
-       jne      SHORT G_M62977_IG06
-                       ;; size=35 bbWeight=1 PerfScore 10.25
+       jne      G_M62977_IG21
+                       ;; size=39 bbWeight=1 PerfScore 10.25
 G_M62977_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax rdi]
        ; byrRegs -[rcx]
@@ -197,54 +197,13 @@ G_M62977_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        ; gcrRegs +[rcx]
        mov      gword ptr [rsi+0x10], rcx
                        ;; size=118 bbWeight=1 PerfScore 18.25
-G_M62977_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
+G_M62977_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
        mov      dword ptr [rsi+0x1C], ecx
-       jmp      SHORT G_M62977_IG09
-                       ;; size=5 bbWeight=1 PerfScore 3.00
-G_M62977_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0042 {rcx rsi}, byref
-       ; gcrRegs -[rdi]
-       ; byrRegs +[rcx]
-       call     [System.Threading.CancellationToken:ThrowOperationCanceledException():this]
-       ; byrRegs -[rcx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M62977_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs +[rbx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       mov      rcx, 0xD1FFAB1E      ; System.Exception
-       call     CORINFO_HELP_ISINSTANCEOFCLASS
-       ; gcrRegs -[rdx] +[rax]
-       ; gcr arg pop 0
-       test     rax, rax
-       jne      SHORT G_M62977_IG08
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rax rcx rbx]
-       ; gcr arg pop 0
-                       ;; size=31 bbWeight=0 PerfScore 0.00
-G_M62977_IG08:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0040 {rsi}, byref
-       ; gcrRegs +[rax]
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       call     [System.Runtime.ExceptionServices.ExceptionDispatchInfo:Capture(System.Exception):System.Runtime.ExceptionServices.ExceptionDispatchInfo]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx], ecx
-       call     [System.Runtime.ExceptionServices.ExceptionDispatchInfo:Throw():this]
-       ; gcrRegs -[rax rcx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=21 bbWeight=0 PerfScore 0.00
-G_M62977_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs +[rdi]
+                       ;; size=3 bbWeight=1 PerfScore 1.00
+G_M62977_IG06:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        test     ebx, ebx
-       je       G_M62977_IG12
+       je       G_M62977_IG09
        mov      rcx, gword ptr [rsi+0x08]
        ; gcrRegs +[rcx]
        movzx    rax, byte  ptr [rsi+0x20]
@@ -266,24 +225,24 @@ G_M62977_IG09:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
        mov      rax, gword ptr [rbp-0xA0]
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M62977_IG10
+       jne      SHORT G_M62977_IG07
        lea      rcx, [rbp-0xA0]
        call     [<unknown method>]
        ; gcr arg pop 0
                        ;; size=112 bbWeight=1 PerfScore 23.75
-G_M62977_IG10:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0040 {rsi}, byref, isz
+G_M62977_IG07:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0040 {rsi}, byref, isz
        cmp      byte  ptr [rax], al
        mov      gword ptr [rbp-0x38], rax
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], ecx
        test     byte  ptr [rbp-0x30], 4
-       jne      SHORT G_M62977_IG11
+       jne      SHORT G_M62977_IG08
        mov      rcx, gword ptr [rbp-0x38]
        ; gcrRegs +[rcx]
        test     dword ptr [rcx+0x34], 0xD1FFAB1E
-       jne      SHORT G_M62977_IG15
+       jne      SHORT G_M62977_IG12
                        ;; size=30 bbWeight=1 PerfScore 13.25
-G_M62977_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M62977_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax rcx]
        xor      ecx, ecx
        mov      dword ptr [rsi+0x18], ecx
@@ -310,23 +269,23 @@ G_M62977_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-       jmp      G_M62977_IG32
+       jmp      G_M62977_IG33
                        ;; size=55 bbWeight=1 PerfScore 15.25
-G_M62977_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M62977_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        lea      rcx, bword ptr [rsi+0x48]
        ; byrRegs +[rcx]
                        ;; size=4 bbWeight=1 PerfScore 0.50
-G_M62977_IG13:        ; bbWeight=1, nogc, extend
+G_M62977_IG10:        ; bbWeight=1, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rcx]
        vmovdqu  xmmword ptr [rbp-0x38], xmm0
                        ;; size=9 bbWeight=1 PerfScore 5.00
-G_M62977_IG14:        ; bbWeight=1, extend
+G_M62977_IG11:        ; bbWeight=1, extend
        xor      edx, edx
        mov      qword ptr [rcx], rdx
        mov      qword ptr [rcx+0x08], rdx
        mov      dword ptr [rsi+0x18], -1
                        ;; size=16 bbWeight=1 PerfScore 3.25
-G_M62977_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M62977_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs -[rcx]
        mov      rcx, gword ptr [rbp-0x38]
        ; gcrRegs +[rcx]
@@ -334,13 +293,13 @@ G_M62977_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        mov      eax, dword ptr [rcx+0x34]
        and      eax, 0xD1FFAB1E
        cmp      eax, 0xD1FFAB1E
-       je       SHORT G_M62977_IG16
+       je       SHORT G_M62977_IG13
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        nop      
                        ;; size=29 bbWeight=1 PerfScore 8.75
-G_M62977_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M62977_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rsi]
        mov      rsi, bword ptr [rbp+0x10]
        ; byrRegs +[rsi]
@@ -364,7 +323,7 @@ G_M62977_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
        test     rdi, rdi
-       je       SHORT G_M62977_IG17
+       je       G_M62977_IG22
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
@@ -373,7 +332,7 @@ G_M62977_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M62977_IG17
+       jne      G_M62977_IG22
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -383,18 +342,124 @@ G_M62977_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        xor      ecx, ecx
        test     rax, rax
        setne    cl
-       jmp      SHORT G_M62977_IG18
-                       ;; size=121 bbWeight=1 PerfScore 26.25
-G_M62977_IG17:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+                       ;; size=127 bbWeight=1 PerfScore 24.25
+G_M62977_IG14:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax]
-       mov      ecx, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M62977_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        movzx    rcx, cl
        call     [System.Diagnostics.Debug:Assert(ubyte)]
        ; gcr arg pop 0
        test     rdi, rdi
-       je       G_M62977_IG24
+       jne      G_M62977_IG23
+                       ;; size=18 bbWeight=1 PerfScore 4.50
+G_M62977_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rdi]
+       mov      rbx, gword ptr [rbp-0x48]
+       ; gcrRegs +[rbx]
+       test     rbx, rbx
+       je       G_M62977_IG29
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      G_M62977_IG29
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFINTERFACE
+       ; gcrRegs -[rdx]
+       ; gcr arg pop 0
+       xor      ecx, ecx
+       test     rax, rax
+       setne    cl
+                       ;; size=66 bbWeight=1 PerfScore 8.00
+G_M62977_IG16:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[rax]
+       movzx    rcx, cl
+       call     [System.Diagnostics.Debug:Assert(ubyte)]
+       ; gcr arg pop 0
+       test     rbx, rbx
+       je       SHORT G_M62977_IG17
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       je       G_M62977_IG30
+       mov      ecx, dword ptr [rax+0x34]
+       and      ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       je       SHORT G_M62977_IG17
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       xor      edx, edx
+       call     [<unknown method>]
+       ; gcrRegs -[rax rcx rbx]
+       ; gcr arg pop 0
+                       ;; size=69 bbWeight=1 PerfScore 14.25
+G_M62977_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+       mov      rbx, gword ptr [rsi+0x10]
+       ; gcrRegs +[rbx]
+       test     rbx, rbx
+       jne      SHORT G_M62977_IG19
...

benchmarks.run_pgo.windows.x64.checked.mch

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

@@ -37,30 +37,22 @@ G_M57887_IG04:        ; bbWeight=0, epilog, nogc, extend
 G_M57887_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rcx]
        test     dl, dl
-       je       SHORT G_M57887_IG07
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M57887_IG06:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       jmp      SHORT G_M57887_IG08
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M57887_IG07:        ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax]
+       jne      SHORT G_M57887_IG06
        mov      eax, dword ptr [rax+0x5C]
        ; gcrRegs -[rax]
        and      eax, 7
        cmp      eax, 6
-       je       SHORT G_M57887_IG08
-       jmp      SHORT G_M57887_IG03
-                       ;; size=13 bbWeight=1 PerfScore 5.50
-G_M57887_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+       jne      SHORT G_M57887_IG03
+                       ;; size=15 bbWeight=1 PerfScore 4.75
+G_M57887_IG06:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      rax, gword ptr [rcx+0x18]
        ; gcrRegs +[rax]
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M57887_IG09:        ; bbWeight=0, epilog, nogc, extend
+G_M57887_IG07:        ; bbWeight=0, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 36, prolog size 0, PerfScore 10.00, instruction count 15, allocated bytes for code 36 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
+; Total bytes of code 32, prolog size 0, PerfScore 8.00, instruction count 13, allocated bytes for code 32 (MethodHash=f3d51de0) for method System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
 ; ============================================================
 
 Unwind Info:

-26 (-9.42%) : 72327.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ThisParameterSymbol:get_RefKind():ubyte:this (Tier1)

@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; partially interruptible
-; with Dynamic PGO: edge weights are valid, and fgCalledCount is 6839
+; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 6839
 ; 2 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -33,20 +33,25 @@
 ;
 ; Lcl frame size = 40
 
-G_M31300_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M31300_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
        sub      rsp, 40
        mov      rbx, rcx
        ; gcrRegs +[rbx]
                        ;; size=9 bbWeight=1 PerfScore 2.50
-G_M31300_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M31300_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, gword ptr [rbx+0x10]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       je       G_M31300_IG14
-                       ;; size=13 bbWeight=1 PerfScore 3.25
-G_M31300_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       jne      SHORT G_M31300_IG04
+                       ;; size=9 bbWeight=1 PerfScore 3.25
+G_M31300_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi]
+       mov      rsi, gword ptr [rbx+0x18]
+       ; gcrRegs +[rsi]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M31300_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
@@ -54,106 +59,21 @@ G_M31300_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        cmp      rax, rsi
-       je       G_M31300_IG15
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple
+       jne      SHORT G_M31300_IG06
+                       ;; size=23 bbWeight=1 PerfScore 2.75
+G_M31300_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      qword ptr [rsi], rax
-       jne      G_M31300_IG16
-       mov      rcx, gword ptr [rsi+0x38]
-       ; gcrRegs +[rcx]
-                       ;; size=50 bbWeight=1 PerfScore 9.00
-G_M31300_IG04:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       test     rcx, rcx
-       je       SHORT G_M31300_IG06
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol
-       cmp      qword ptr [rcx], rax
-       jne      G_M31300_IG17
-       mov      edx, dword ptr [rcx+0x88]
-       sar      edx, 10
-       and      edx, 15
-                       ;; size=36 bbWeight=1 PerfScore 8.25
-G_M31300_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       cmp      edx, 10
-       je       SHORT G_M31300_IG08
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M31300_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M31300_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rsi
-       ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M31300_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
-       je       SHORT G_M31300_IG10
-       mov      rax, qword ptr [rcx]
-       mov      rax, qword ptr [rax+0xD0]
-       call     [rax+0x20]<unknown method>
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       cmp      eax, 1
-       sete     al
-       movzx    rax, al
-       test     eax, eax
-       je       SHORT G_M31300_IG10
-       mov      eax, 2
-                       ;; size=40 bbWeight=0 PerfScore 0.00
-G_M31300_IG09:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rsi
-       ret      
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M31300_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
-       je       SHORT G_M31300_IG12
-       mov      rax, qword ptr [rcx]
-       mov      rax, qword ptr [rax+0xF8]
-       call     [rax]<unknown method>
-       ; gcrRegs -[rcx rbx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M31300_IG12
-       mov      eax, 3
-                       ;; size=30 bbWeight=0 PerfScore 0.00
-G_M31300_IG11:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rsi
-       ret      
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M31300_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31300_IG13:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rsi
-       ret      
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M31300_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs +[rbx]
-       mov      rsi, gword ptr [rbx+0x18]
-       ; gcrRegs +[rsi]
-       jmp      G_M31300_IG03
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M31300_IG15:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-       jmp      G_M31300_IG04
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M31300_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M31300_IG08
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M31300_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
+       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple
+       cmp      qword ptr [rsi], rax
+       je       SHORT G_M31300_IG09
+                       ;; size=15 bbWeight=1 PerfScore 4.25
+G_M31300_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rsi]
@@ -163,20 +83,109 @@ G_M31300_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       jmp      G_M31300_IG04
-                       ;; size=21 bbWeight=0 PerfScore 0.00
-G_M31300_IG17:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M31300_IG08:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
+       test     rcx, rcx
+       je       SHORT G_M31300_IG13
+       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol
+       cmp      qword ptr [rcx], rax
+       je       SHORT G_M31300_IG15
+       jmp      SHORT G_M31300_IG10
+                       ;; size=22 bbWeight=1 PerfScore 7.50
+G_M31300_IG09:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rcx] +[rsi]
+       mov      rcx, gword ptr [rsi+0x38]
+       ; gcrRegs +[rcx]
+       jmp      SHORT G_M31300_IG08
+                       ;; size=6 bbWeight=1 PerfScore 4.00
+G_M31300_IG10:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      edx, eax
-       jmp      G_M31300_IG05
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
+G_M31300_IG11:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      edx, 10
+       jne      SHORT G_M31300_IG13
+                       ;; size=5 bbWeight=1 PerfScore 1.25
+G_M31300_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, gword ptr [rbx+0x10]
+       ; gcrRegs +[rcx]
+       test     rcx, rcx
+       je       SHORT G_M31300_IG18
+       jmp      SHORT G_M31300_IG16
+                       ;; size=11 bbWeight=0 PerfScore 0.00
+G_M31300_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rcx rbx]
+       xor      eax, eax
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M31300_IG14:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rsi
+       ret      
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M31300_IG15:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rcx rbx]
+       mov      edx, dword ptr [rcx+0x88]
+       sar      edx, 10
+       and      edx, 15
+       jmp      SHORT G_M31300_IG11
+                       ;; size=14 bbWeight=1 PerfScore 4.75
+G_M31300_IG16:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
+       mov      rax, qword ptr [rcx]
+       mov      rax, qword ptr [rax+0xD0]
+       call     [rax+0x20]<unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       cmp      eax, 1
+       sete     al
+       movzx    rax, al
+       test     eax, eax
+       je       SHORT G_M31300_IG18
+       mov      eax, 2
+                       ;; size=31 bbWeight=0 PerfScore 0.00
+G_M31300_IG17:        ; bbWeight=0, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rsi
+       ret      
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M31300_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      rcx, gword ptr [rbx+0x10]
+       ; gcrRegs +[rcx]
+       test     rcx, rcx
+       je       SHORT G_M31300_IG20
+       mov      rax, qword ptr [rcx]
+       mov      rax, qword ptr [rax+0xF8]
+       call     [rax]<unknown method>
+       ; gcrRegs -[rcx rbx]
+       ; gcr arg pop 0
+       test     eax, eax
...

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

@@ -32,15 +32,14 @@ G_M23529_IG04:        ; bbWeight=1, epilog, nogc, extend
 G_M23529_IG05:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        cmp      qword ptr [rdx], rcx
-       jne      SHORT G_M23529_IG06
-       jmp      SHORT G_M23529_IG03
-                       ;; size=7 bbWeight=0.33 PerfScore 2.00
+       je       SHORT G_M23529_IG03
+                       ;; size=5 bbWeight=0.33 PerfScore 1.33
 G_M23529_IG06:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [System.Runtime.CompilerServices.CastHelpers:ChkCastClassSpecial(ulong,System.Object):System.Object]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 22 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 20, prolog size 0, PerfScore 3.83, instruction count 7, allocated bytes for code 20 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:

+47 (+13.28%) : 35518.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2335
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 2335
 ; 5 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9,  5.17)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  rsi         single-def
+;  V01 arg1         [V01,T05] (  4,  3   )   ubyte  ->  rsi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -47,28 +47,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.75
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG15
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; System.Threading.Channels.AsyncOperation`1[ubyte]
        cmp      qword ptr [rax], rdx
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -76,73 +66,28 @@ G_M29172_IG06:        ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.17 PerfScore 0.61
-G_M29172_IG07:        ; bbWeight=0.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.33 PerfScore 0.08
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG16
        mov      rax, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rax]
        mov      rdi, gword ptr [rax]
        ; gcrRegs +[rdi]
        cmp      byte  ptr [rdi+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=19 bbWeight=1 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG17
+                       ;; size=32 bbWeight=1 PerfScore 7.50
+G_M29172_IG07:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        test     sil, sil
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, 4
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rcx, gword ptr [rax+0x38]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
-       je       SHORT G_M29172_IG14
-       mov      rcx, gword ptr [rcx+0x18]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       cmp      dword ptr [rcx], ecx
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG18
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rdi+0x08]
        ; gcrRegs +[rcx]
        mov      rbp, gword ptr [rcx+0x10]
@@ -150,35 +95,26 @@ G_M29172_IG14:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
        mov      r14, gword ptr [rbp+0x08]
        ; gcrRegs +[r14]
                        ;; size=12 bbWeight=1 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG09:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp+0xA0]
        mov      dword ptr [rsp+0x24], eax
        mov      edx, eax
        and      edx, dword ptr [rbp+0x18]
        cmp      edx, dword ptr [r14+0x08]
-       jae      SHORT G_M29172_IG22
+       jae      SHORT G_M29172_IG14
        shl      rdx, 4
        lea      rsi, bword ptr [r14+rdx+0x10]
        ; byrRegs +[rsi]
        mov      r8d, dword ptr [rsi+0x08]
        sub      r8d, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=39 bbWeight=1 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[rsi]
-       test     r8d, r8d
-       jge      SHORT G_M29172_IG15
-       jmp      SHORT G_M29172_IG23
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0040 {rsi}, byref, isz
-       ; byrRegs +[rsi]
+       jne      G_M29172_IG19
        lea      rdx, bword ptr [rbp+0xA0]
        ; byrRegs +[rdx]
        lea      r15d, [rax+0x01]
        lock     
        cmpxchg  dword ptr [rdx], r15d
        cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG09
        mov      rcx, rsi
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -189,8 +125,8 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefR
        ; gcrRegs -[rdx rbx rbp r14]
        ; byrRegs -[rcx]
        mov      dword ptr [rsi+0x08], r15d
-                       ;; size=37 bbWeight=1 PerfScore 24.50
-G_M29172_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=80 bbWeight=1 PerfScore 39.50
+G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rsi]
        add      rdi, 116
        ; gcrRegs -[rdi]
@@ -200,17 +136,13 @@ G_M29172_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        lock     
        cmpxchg  dword ptr [rdi], ecx
        test     eax, eax
-       jne      SHORT G_M29172_IG20
+       je       SHORT G_M29172_IG13
                        ;; size=19 bbWeight=1 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29172_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       call     [System.Threading.ThreadPool:RequestWorkerThread()]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0.01 PerfScore 0.02
-G_M29172_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M29172_IG21:        ; bbWeight=1, epilog, nogc, extend
+G_M29172_IG12:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -220,21 +152,78 @@ G_M29172_IG21:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=1 PerfScore 4.25
-G_M29172_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29172_IG13:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Threading.ThreadPool:RequestWorkerThread()]
+       ; gcr arg pop 0
+       jmp      SHORT G_M29172_IG11
+                       ;; size=8 bbWeight=0.01 PerfScore 0.03
+G_M29172_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG23:        ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rcx rbx rdi]
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG17:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx rdi]
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx+0x9D], 0
+       je       G_M29172_IG07
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rcx]
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx]
...

+47 (+13.28%) : 96463.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 1511
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 1511
 ; 5 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9,  5.22)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  rsi         single-def
+;  V01 arg1         [V01,T05] (  4,  3   )   ubyte  ->  rsi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8.00)     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -47,28 +47,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.75
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG16
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; System.Threading.Channels.VoidAsyncOperationWithData`1[ubyte[]]
        cmp      qword ptr [rax], rdx
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -76,73 +66,30 @@ G_M29172_IG06:        ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.22 PerfScore 0.77
-G_M29172_IG07:        ; bbWeight=0.28, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.28, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.28 PerfScore 0.07
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG17
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG07:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      rax, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rax]
        ; gcrRegs +[rdi]
        cmp      byte  ptr [rdi+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=19 bbWeight=1.00 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG18
+                       ;; size=23 bbWeight=1.00 PerfScore 6.25
+G_M29172_IG08:        ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        test     sil, sil
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1.00 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, 4
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rcx, gword ptr [rax+0x38]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
-       je       SHORT G_M29172_IG14
-       mov      rcx, gword ptr [rcx+0x18]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       cmp      dword ptr [rcx], ecx
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG19
+                       ;; size=9 bbWeight=1.00 PerfScore 1.25
+G_M29172_IG09:        ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rdi+0x08]
        ; gcrRegs +[rcx]
        mov      rbp, gword ptr [rcx+0x10]
@@ -150,35 +97,26 @@ G_M29172_IG14:        ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        mov      r14, gword ptr [rbp+0x08]
        ; gcrRegs +[r14]
                        ;; size=12 bbWeight=1.00 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1.00, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG10:        ; bbWeight=1.00, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp+0xA0]
        mov      dword ptr [rsp+0x24], eax
        mov      edx, eax
        and      edx, dword ptr [rbp+0x18]
        cmp      edx, dword ptr [r14+0x08]
-       jae      SHORT G_M29172_IG22
+       jae      SHORT G_M29172_IG15
        shl      rdx, 4
        lea      rsi, bword ptr [r14+rdx+0x10]
        ; byrRegs +[rsi]
        mov      r8d, dword ptr [rsi+0x08]
        sub      r8d, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=39 bbWeight=1.00 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[rsi]
-       test     r8d, r8d
-       jge      SHORT G_M29172_IG15
-       jmp      SHORT G_M29172_IG23
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1.00, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0040 {rsi}, byref, isz
-       ; byrRegs +[rsi]
+       jne      G_M29172_IG20
        lea      rdx, bword ptr [rbp+0xA0]
        ; byrRegs +[rdx]
        lea      r15d, [rax+0x01]
        lock     
        cmpxchg  dword ptr [rdx], r15d
        cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG10
        mov      rcx, rsi
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -189,8 +127,8 @@ G_M29172_IG17:        ; bbWeight=1.00, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byr
        ; gcrRegs -[rdx rbx rbp r14]
        ; byrRegs -[rcx]
        mov      dword ptr [rsi+0x08], r15d
-                       ;; size=37 bbWeight=1.00 PerfScore 24.50
-G_M29172_IG18:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=80 bbWeight=1.00 PerfScore 39.50
+G_M29172_IG11:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rsi]
        add      rdi, 116
        ; gcrRegs -[rdi]
@@ -200,17 +138,13 @@ G_M29172_IG18:        ; bbWeight=1.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        lock     
        cmpxchg  dword ptr [rdi], ecx
        test     eax, eax
-       jne      SHORT G_M29172_IG20
+       je       SHORT G_M29172_IG14
                        ;; size=19 bbWeight=1.00 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29172_IG12:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       call     [System.Threading.ThreadPool:RequestWorkerThread()]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M29172_IG20:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, 1
                        ;; size=5 bbWeight=1.00 PerfScore 0.25
-G_M29172_IG21:        ; bbWeight=1.00, epilog, nogc, extend
+G_M29172_IG13:        ; bbWeight=1.00, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -220,21 +154,78 @@ G_M29172_IG21:        ; bbWeight=1.00, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=1.00 PerfScore 4.25
-G_M29172_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29172_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Threading.ThreadPool:RequestWorkerThread()]
+       ; gcr arg pop 0
+       jmp      SHORT G_M29172_IG12
+                       ;; size=8 bbWeight=0.00 PerfScore 0.00
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG23:        ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rcx rbx rdi]
+G_M29172_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG18:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx rdi]
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx+0x9D], 0
+       je       G_M29172_IG08
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rcx]
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
...

+47 (+13.28%) : 90740.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)

@@ -5,12 +5,12 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 7491
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 7491
 ; 5 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9,  5.19)     ref  ->  rbx         class-hnd single-def <System.Threading.IThreadPoolWorkItem>
-;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  rsi         single-def
+;  V01 arg1         [V01,T05] (  4,  3   )   ubyte  ->  rsi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Threading.ThreadPoolWorkQueue>
 ;* V04 tmp2         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -47,28 +47,18 @@ G_M29172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=17 bbWeight=1 PerfScore 6.75
 G_M29172_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       jne      SHORT G_M29172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M29172_IG15
        mov      rax, rbx
        ; gcrRegs +[rax]
        test     rax, rax
-       je       SHORT G_M29172_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M29172_IG05:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M29172_IG06
+                       ;; size=17 bbWeight=1 PerfScore 2.75
+G_M29172_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; System.Threading.Channels.VoidAsyncOperationWithData`1[ubyte[]]
        cmp      qword ptr [rax], rdx
-       je       SHORT G_M29172_IG07
+       je       SHORT G_M29172_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M29172_IG06:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG04:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -76,73 +66,28 @@ G_M29172_IG06:        ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG08
+       jmp      SHORT G_M29172_IG06
                        ;; size=20 bbWeight=0.19 PerfScore 0.67
-G_M29172_IG07:        ; bbWeight=0.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M29172_IG05:        ; bbWeight=0.31, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      rax, rax
        ; gcrRegs +[rax]
                        ;; size=2 bbWeight=0.31 PerfScore 0.08
-G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG06:        ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        test     rax, rax
-       je       SHORT G_M29172_IG10
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rbx]
-       mov      ecx, 44
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG16
        mov      rax, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rax]
        mov      rdi, gword ptr [rax]
        ; gcrRegs +[rdi]
        cmp      byte  ptr [rdi+0x34], 0
-       je       SHORT G_M29172_IG12
-                       ;; size=19 bbWeight=1 PerfScore 6.25
-G_M29172_IG11:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx+0x9D], 0
-       je       SHORT G_M29172_IG12
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M29172_IG12:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M29172_IG17
+                       ;; size=32 bbWeight=1 PerfScore 7.50
+G_M29172_IG07:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        test     sil, sil
-       je       SHORT G_M29172_IG14
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M29172_IG13:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, 4
-       call     CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rcx, gword ptr [rax+0x38]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
-       je       SHORT G_M29172_IG14
-       mov      rcx, gword ptr [rcx+0x18]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       cmp      dword ptr [rcx], ecx
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx]
-       ; byrRegs -[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M29172_IG18
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M29172_IG14:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
+       jne      G_M29172_IG18
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M29172_IG08:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rdi+0x08]
        ; gcrRegs +[rcx]
        mov      rbp, gword ptr [rcx+0x10]
@@ -150,35 +95,26 @@ G_M29172_IG14:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
        mov      r14, gword ptr [rbp+0x08]
        ; gcrRegs +[r14]
                        ;; size=12 bbWeight=1 PerfScore 6.00
-G_M29172_IG15:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M29172_IG09:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
        mov      eax, dword ptr [rbp+0xA0]
        mov      dword ptr [rsp+0x24], eax
        mov      edx, eax
        and      edx, dword ptr [rbp+0x18]
        cmp      edx, dword ptr [r14+0x08]
-       jae      SHORT G_M29172_IG22
+       jae      SHORT G_M29172_IG14
        shl      rdx, 4
        lea      rsi, bword ptr [r14+rdx+0x10]
        ; byrRegs +[rsi]
        mov      r8d, dword ptr [rsi+0x08]
        sub      r8d, eax
-       je       SHORT G_M29172_IG17
-                       ;; size=39 bbWeight=1 PerfScore 15.00
-G_M29172_IG16:        ; bbWeight=0, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[rsi]
-       test     r8d, r8d
-       jge      SHORT G_M29172_IG15
-       jmp      SHORT G_M29172_IG23
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29172_IG17:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0040 {rsi}, byref, isz
-       ; byrRegs +[rsi]
+       jne      G_M29172_IG19
        lea      rdx, bword ptr [rbp+0xA0]
        ; byrRegs +[rdx]
        lea      r15d, [rax+0x01]
        lock     
        cmpxchg  dword ptr [rdx], r15d
        cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M29172_IG15
+       jne      SHORT G_M29172_IG09
        mov      rcx, rsi
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -189,8 +125,8 @@ G_M29172_IG17:        ; bbWeight=1, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefR
        ; gcrRegs -[rdx rbx rbp r14]
        ; byrRegs -[rcx]
        mov      dword ptr [rsi+0x08], r15d
-                       ;; size=37 bbWeight=1 PerfScore 24.50
-G_M29172_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=80 bbWeight=1 PerfScore 39.50
+G_M29172_IG10:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rsi]
        add      rdi, 116
        ; gcrRegs -[rdi]
@@ -200,17 +136,13 @@ G_M29172_IG18:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        lock     
        cmpxchg  dword ptr [rdi], ecx
        test     eax, eax
-       jne      SHORT G_M29172_IG20
+       je       SHORT G_M29172_IG13
                        ;; size=19 bbWeight=1 PerfScore 20.00
-G_M29172_IG19:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29172_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       call     [System.Threading.ThreadPool:RequestWorkerThread()]
-       ; gcr arg pop 0
-                       ;; size=6 bbWeight=0.10 PerfScore 0.31
-G_M29172_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M29172_IG21:        ; bbWeight=1, epilog, nogc, extend
+G_M29172_IG12:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -220,21 +152,78 @@ G_M29172_IG21:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=1 PerfScore 4.25
-G_M29172_IG22:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29172_IG13:        ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       call     [System.Threading.ThreadPool:RequestWorkerThread()]
+       ; gcr arg pop 0
+       jmp      SHORT G_M29172_IG11
+                       ;; size=8 bbWeight=0.10 PerfScore 0.52
+G_M29172_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M29172_IG23:        ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rcx rbx rdi]
+G_M29172_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentNullException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ecx, 44
+       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M29172_IG17:        ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx rdi]
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx+0x9D], 0
+       je       G_M29172_IG07
+       mov      rcx, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rcx]
+       mov      rcx, gword ptr [rcx]
+       ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx]
...

benchmarks.run_tiered.windows.x64.checked.mch

-16 (-5.35%) : 3486.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)

@@ -54,11 +54,8 @@ G_M21105_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
 G_M21105_IG03:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      ebp, dword ptr [rsi+0x08]
        test     ebp, ebp
-       je       SHORT G_M21105_IG04
-       test     rdi, rdi
-       je       SHORT G_M21105_IG07
-       jmp      SHORT G_M21105_IG06
-                       ;; size=14 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M21105_IG06
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
 G_M21105_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rcx, rdi
@@ -79,13 +76,12 @@ G_M21105_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=18 bbWeight=0.50 PerfScore 2.62
 G_M21105_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx] +[rsi]
+       test     rdi, rdi
+       je       SHORT G_M21105_IG07
        mov      r14d, dword ptr [rdi+0x08]
        test     r14d, r14d
-       je       SHORT G_M21105_IG07
-       test     rbx, rbx
-       je       G_M21105_IG13
-       jmp      SHORT G_M21105_IG09
-                       ;; size=20 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M21105_IG09
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
 G_M21105_IG07:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rcx, rsi
@@ -106,22 +102,45 @@ G_M21105_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=18 bbWeight=0.50 PerfScore 2.62
 G_M21105_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx] +[rdi]
+       test     rbx, rbx
+       je       SHORT G_M21105_IG10
        cmp      dword ptr [rbx+0x08], 0
-       je       G_M21105_IG13
+       jne      SHORT G_M21105_IG12
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M21105_IG10:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+                       ;; size=6 bbWeight=0.50 PerfScore 0.25
+G_M21105_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       tail.jmp [System.String:Concat(System.String,System.String):System.String]
+       ; gcr arg pop 0
+                       ;; size=18 bbWeight=0.50 PerfScore 2.62
+G_M21105_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rcx rdx] +[rbx]
        mov      ecx, r14d
        mov      eax, ebp
        add      rcx, rax
        mov      eax, dword ptr [rbx+0x08]
        add      rcx, rax
        cmp      rcx, 0xD1FFAB1E
-       jg       G_M21105_IG15
+       jg       SHORT G_M21105_IG16
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      r15, rax
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      SHORT G_M21105_IG10
+       jne      SHORT G_M21105_IG13
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -129,10 +148,10 @@ G_M21105_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-                       ;; size=69 bbWeight=0.50 PerfScore 7.12
-G_M21105_IG10:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=55 bbWeight=0.50 PerfScore 5.12
+G_M21105_IG13:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r15+0x08], ebp
-       jge      SHORT G_M21105_IG11
+       jge      SHORT G_M21105_IG14
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -141,7 +160,7 @@ G_M21105_IG10:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=25 bbWeight=0.50 PerfScore 3.75
-G_M21105_IG11:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+G_M21105_IG14:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [r15+0x0C]
        ; byrRegs +[rcx]
        lea      rdx, bword ptr [rsi+0x0C]
@@ -171,7 +190,7 @@ G_M21105_IG11:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
        mov      rax, r15
        ; gcrRegs +[rax]
                        ;; size=53 bbWeight=0.50 PerfScore 6.25
-G_M21105_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M21105_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -181,32 +200,14 @@ G_M21105_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M21105_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r15] +[rsi rdi]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M21105_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       tail.jmp [System.String:Concat(System.String,System.String):System.String]
-       ; gcr arg pop 0
-                       ;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M21105_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rcx rdx rsi rdi]
+G_M21105_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r15]
        call     [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 299, prolog size 21, PerfScore 42.62, instruction count 99, allocated bytes for code 299 (MethodHash=c73dad8e) for method System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
+; Total bytes of code 283, prolog size 21, PerfScore 40.62, instruction count 97, allocated bytes for code 283 (MethodHash=c73dad8e) for method System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:

-14 (-3.43%) : 33857.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)

@@ -63,11 +63,8 @@ G_M26691_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
 G_M26691_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r14d, dword ptr [rsi+0x08]
        test     r14d, r14d
-       je       SHORT G_M26691_IG04
-       test     rdi, rdi
-       je       SHORT G_M26691_IG07
-       jmp      SHORT G_M26691_IG06
-                       ;; size=16 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M26691_IG06
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
 G_M26691_IG04:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rcx, rdi
@@ -92,13 +89,12 @@ G_M26691_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M26691_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx r8] +[rsi]
+       test     rdi, rdi
+       je       SHORT G_M26691_IG07
        mov      r15d, dword ptr [rdi+0x08]
        test     r15d, r15d
-       je       SHORT G_M26691_IG07
-       test     rbp, rbp
-       je       SHORT G_M26691_IG10
-       jmp      SHORT G_M26691_IG09
-                       ;; size=16 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M26691_IG09
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
 G_M26691_IG07:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rcx, rsi
@@ -123,13 +119,12 @@ G_M26691_IG08:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M26691_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx r8] +[rdi]
+       test     rbp, rbp
+       je       SHORT G_M26691_IG10
        mov      r13d, dword ptr [rbp+0x08]
        test     r13d, r13d
-       je       SHORT G_M26691_IG10
-       test     rbx, rbx
-       je       G_M26691_IG16
-       jmp      SHORT G_M26691_IG12
-                       ;; size=20 bbWeight=0.50 PerfScore 3.25
+       jne      SHORT G_M26691_IG12
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
 G_M26691_IG10:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbp]
        mov      rcx, rsi
@@ -154,8 +149,35 @@ G_M26691_IG11:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx r8] +[rbp]
+       test     rbx, rbx
+       je       SHORT G_M26691_IG13
        cmp      dword ptr [rbx+0x08], 0
-       je       G_M26691_IG16
+       jne      SHORT G_M26691_IG15
+                       ;; size=11 bbWeight=0.50 PerfScore 2.62
+G_M26691_IG13:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       mov      r8, rbp
+       ; gcrRegs +[r8]
+                       ;; size=9 bbWeight=0.50 PerfScore 0.38
+G_M26691_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r12
+       pop      r13
+       pop      r14
+       pop      r15
+       tail.jmp [<unknown method>]
+       ; gcr arg pop 0
+                       ;; size=22 bbWeight=0.50 PerfScore 3.12
+G_M26691_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rcx rdx r8] +[rbx]
        mov      ecx, r15d
        mov      eax, r14d
        add      rcx, rax
@@ -164,14 +186,14 @@ G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E
        mov      eax, dword ptr [rbx+0x08]
        add      rcx, rax
        cmp      rcx, 0xD1FFAB1E
-       jg       G_M26691_IG18
+       jg       G_M26691_IG19
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      r12, rax
        ; gcrRegs +[r12]
        test     r12, r12
-       jne      SHORT G_M26691_IG13
+       jne      SHORT G_M26691_IG16
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -179,10 +201,10 @@ G_M26691_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-                       ;; size=76 bbWeight=0.50 PerfScore 7.38
-G_M26691_IG13:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byrefRegs=0000 {}, byref, isz
+                       ;; size=66 bbWeight=0.50 PerfScore 5.38
+G_M26691_IG16:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r12+0x08], r14d
-       jge      SHORT G_M26691_IG14
+       jge      SHORT G_M26691_IG17
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        mov      rcx, rdx
@@ -191,7 +213,7 @@ G_M26691_IG13:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byr
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 3.75
-G_M26691_IG14:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byrefRegs=0000 {}, byref
+G_M26691_IG17:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [r12+0x0C]
        ; byrRegs +[rcx]
        lea      rdx, bword ptr [rsi+0x0C]
@@ -230,7 +252,7 @@ G_M26691_IG14:        ; bbWeight=0.50, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byr
        mov      rax, r12
        ; gcrRegs +[rax]
                        ;; size=73 bbWeight=0.50 PerfScore 8.25
-G_M26691_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26691_IG18:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -242,36 +264,14 @@ G_M26691_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M26691_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r12] +[rbp rsi rdi]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       mov      r8, rbp
-       ; gcrRegs +[r8]
-                       ;; size=9 bbWeight=0.50 PerfScore 0.38
-G_M26691_IG17:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       tail.jmp [<unknown method>]
-       ; gcr arg pop 0
-                       ;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M26691_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rcx rdx rbp rsi rdi r8]
+G_M26691_IG19:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax r12]
        call     [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 408, prolog size 28, PerfScore 56.25, instruction count 139, allocated bytes for code 408 (MethodHash=389697bc) for method System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
+; Total bytes of code 394, prolog size 28, PerfScore 53.25, instruction count 136, allocated bytes for code 394 (MethodHash=389697bc) for method System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:

-8 (-3.07%) : 48392.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)

@@ -26,7 +26,7 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V17 tmp12        [V17,T03] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->  r13         class-hnd exact "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T00] (  6, 52   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.String>
 ;  V19 tmp14        [V19,T05] (  2,  8   )   byref  ->  rcx         "impAppendStmt"
 ;* V20 tmp15        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp16        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -45,28 +45,27 @@
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V35 tmp30        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
-;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V37 tmp32        [V37,T08] (  3,  3   )     ref  ->   r8         single-def "arr expr"
 ;  V38 tmp33        [V38,T10] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V39 cse0         [V39,T02] (  4, 18.50)     int  ->  rdi         "CSE - aggressive"
 ;  V40 cse1         [V40,T15] (  2,  1   )     ref  ->  rax         "CSE - aggressive"
 ;  V41 cse2         [V41,T09] (  3,  3   )   byref  ->  rbp         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M51747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
-       push     r13
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=20 bbWeight=1 PerfScore 7.75
+                       ;; size=18 bbWeight=1 PerfScore 6.75
 G_M51747_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
        je       G_M51747_IG16
@@ -80,16 +79,15 @@ G_M51747_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
                        ;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M51747_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M51747_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rsi]
        lea      rbp, bword ptr [rbx+0x0C]
@@ -104,42 +102,42 @@ G_M51747_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        mov      r14d, eax
-       mov      rcx, gword ptr [rsi+0x08]
-       ; gcrRegs +[rcx]
+       mov      r8, gword ptr [rsi+0x08]
+       ; gcrRegs +[r8]
        mov      edx, r14d
        and      edx, dword ptr [rsi+0x14]
-       cmp      edx, dword ptr [rcx+0x08]
+       cmp      edx, dword ptr [r8+0x08]
        jae      SHORT G_M51747_IG15
-       mov      r15, gword ptr [rcx+8*rdx+0x10]
+       mov      r15, gword ptr [r8+8*rdx+0x10]
        ; gcrRegs +[r15]
        test     r15, r15
        je       SHORT G_M51747_IG11
-                       ;; size=57 bbWeight=0.50 PerfScore 8.75
+                       ;; size=58 bbWeight=0.50 PerfScore 8.75
 G_M51747_IG06:        ; bbWeight=4, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0020 {rbp}, byref, isz
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[r8]
        cmp      dword ptr [r15+0x18], r14d
        jne      SHORT G_M51747_IG10
                        ;; size=6 bbWeight=4 PerfScore 16.00
 G_M51747_IG07:        ; bbWeight=2, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0020 {rbp}, byref, isz
-       mov      r13, gword ptr [r15+0x08]
-       ; gcrRegs +[r13]
-       cmp      byte  ptr [r13], r13b
-       cmp      r13, rbx
+       mov      r8, gword ptr [r15+0x08]
+       ; gcrRegs +[r8]
+       cmp      byte  ptr [r8], r8b
+       cmp      r8, rbx
        je       SHORT G_M51747_IG13
-                       ;; size=13 bbWeight=2 PerfScore 12.50
-G_M51747_IG08:        ; bbWeight=16, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0020 {rbp}, byref, isz
-       cmp      dword ptr [r13+0x08], edi
+                       ;; size=12 bbWeight=2 PerfScore 12.50
+G_M51747_IG08:        ; bbWeight=16, gcrefRegs=8148 {rbx rsi r8 r15}, byrefRegs=0020 {rbp}, byref, isz
+       cmp      dword ptr [r8+0x08], edi
        jne      SHORT G_M51747_IG10
                        ;; size=6 bbWeight=16 PerfScore 64.00
-G_M51747_IG09:        ; bbWeight=2, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0020 {rbp}, byref, isz
-       lea      rcx, bword ptr [r13+0x0C]
+G_M51747_IG09:        ; bbWeight=2, gcrefRegs=8148 {rbx rsi r8 r15}, byrefRegs=0020 {rbp}, byref, isz
+       lea      rcx, bword ptr [r8+0x0C]
        ; byrRegs +[rcx]
-       mov      r8d, dword ptr [r13+0x08]
+       mov      r8d, dword ptr [r8+0x08]
+       ; gcrRegs -[r8]
        add      r8d, r8d
        mov      rdx, rbp
        ; byrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[r13]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
@@ -164,32 +162,30 @@ G_M51747_IG11:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        nop      
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 G_M51747_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M51747_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[r15]
        mov      rax, gword ptr [r15+0x08]
        ; gcrRegs +[rax]
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M51747_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M51747_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r15]
        call     CORINFO_HELP_RNGCHKFAIL
@@ -209,7 +205,7 @@ G_M51747_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 261, prolog size 20, PerfScore 151.25, instruction count 90, allocated bytes for code 261 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
+; Total bytes of code 253, prolog size 18, PerfScore 149.50, instruction count 86, allocated bytes for code 253 (MethodHash=5b1e35dc) for method System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -217,16 +213,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0E
-  CountOfUnwindCodes: 8
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

+4 (+3.10%) : 48453.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier1)

@@ -16,7 +16,7 @@
 ;
 ; Lcl frame size = 40
 
-G_M26551_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M26551_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
@@ -48,7 +48,7 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        add      eax, -15
        cmp      eax, 1
-       jbe      SHORT G_M26551_IG05
+       jbe      SHORT G_M26551_IG07
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rsi+0x88]
@@ -57,12 +57,19 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M26551_IG03
-                       ;; size=25 bbWeight=4 PerfScore 32.00
+       jmp      SHORT G_M26551_IG09
+                       ;; size=27 bbWeight=4 PerfScore 40.00
 G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       mov      rax, qword ptr [rsi+0x88]
+       call     [rax]<unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, rdi
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
+                       ;; size=18 bbWeight=0.50 PerfScore 2.88
 G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
@@ -75,14 +82,8 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs -[rcx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rsi+0x88]
-       call     [rax]<unknown method>
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
        mov      rax, rdi
-                       ;; size=18 bbWeight=0.50 PerfScore 2.88
+                       ;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
@@ -91,14 +92,18 @@ G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rdi
        tail.jmp [rax+0x28]<unknown method>
                        ;; size=12 bbWeight=0.50 PerfScore 2.12
-RWD00      dd  G_M26551_IG05 - G_M26551_IG02
+G_M26551_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rcx]
+       jmp      SHORT G_M26551_IG07
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+RWD00      dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG05 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
+           dd  G_M26551_IG07 - G_M26551_IG02
            dd  G_M26551_IG07 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
-           dd  G_M26551_IG05 - G_M26551_IG02
 
 
-; Total bytes of code 129, prolog size 8, PerfScore 135.88, instruction count 46, allocated bytes for code 129 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier1)
+; Total bytes of code 133, prolog size 8, PerfScore 144.88, instruction count 48, allocated bytes for code 133 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+2 (+3.28%) : 8415.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)

@@ -20,39 +20,44 @@ G_M65033_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x0C]
        cmp      eax, 1
-       je       SHORT G_M65033_IG05
+       je       SHORT G_M65033_IG04
                        ;; size=8 bbWeight=1 PerfScore 3.25
 G_M65033_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      eax, 2
-       jne      SHORT G_M65033_IG07
+       jne      SHORT G_M65033_IG08
        mov      eax, dword ptr [rcx+0x10]
        inc      eax
        mov      dword ptr [rcx+0x10], eax
        cmp      eax, dword ptr [rcx+0x18]
-       je       SHORT G_M65033_IG07
-       mov      eax, 1
-                       ;; size=23 bbWeight=0.50 PerfScore 4.38
-G_M65033_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       ret      
-                       ;; size=1 bbWeight=0.50 PerfScore 0.50
-G_M65033_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+       je       SHORT G_M65033_IG08
+       jmp      SHORT G_M65033_IG06
+                       ;; size=20 bbWeight=0.50 PerfScore 5.25
+G_M65033_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      eax, dword ptr [rcx+0x14]
        mov      dword ptr [rcx+0x10], eax
        mov      dword ptr [rcx+0x0C], 2
        mov      eax, 1
                        ;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M65033_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0.50 PerfScore 0.50
-G_M65033_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M65033_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M65033_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       ret      
+                       ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M65033_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rcx]
        mov      dword ptr [rcx+0x0C], -1
        xor      eax, eax
                        ;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M65033_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M65033_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 61, prolog size 0, PerfScore 11.88, instruction count 20, allocated bytes for code 61 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 63, prolog size 0, PerfScore 12.88, instruction count 21, allocated bytes for code 63 (MethodHash=273701f6) for method System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+42 (+3.51%) : 30608.dasm - System.IO.Pipelines.Tests.PerfPipe+d_9:MoveNext():this (Tier1-OSR)

@@ -121,7 +121,7 @@ G_M52295_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M52295_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref
        ; GC ptr vars +{V00}
        cmp      dword ptr [rsi+0x14], 0x2710
-       jge      G_M52295_IG21
+       jge      G_M52295_IG23
                        ;; size=13 bbWeight=1 PerfScore 4.00
 G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        mov      rcx, gword ptr [rsi+0x08]
@@ -129,7 +129,7 @@ G_M52295_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
        mov      r8, gword ptr [rbx+0x10]
        ; gcrRegs +[r8]
        cmp      byte  ptr [r8+0x24], 0
-       jne      G_M52295_IG08
+       jne      G_M52295_IG13
        lea      rdx, [rbp+0xB0]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
@@ -143,11 +143,11 @@ G_M52295_IG04:        ; bbWeight=4, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rbp+0xD0]
        vmovdqu  xmmword ptr [rbp+0x100], xmm0
                        ;; size=32 bbWeight=4 PerfScore 36.00
-G_M52295_IG05:        ; bbWeight=4, isz, extend
+G_M52295_IG05:        ; bbWeight=4, extend
        mov      rdi, gword ptr [rbp+0xE0]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       G_M52295_IG09
+       je       G_M52295_IG15
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -155,7 +155,7 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      G_M52295_IG09
+       jne      G_M52295_IG15
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -166,16 +166,10 @@ G_M52295_IG05:        ; bbWeight=4, isz, extend
        test     rax, rax
        setne    cl
        test     cl, cl
-       jne      SHORT G_M52295_IG06
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
-       ; gcr arg pop 0
-                       ;; size=92 bbWeight=4 PerfScore 51.00
-G_M52295_IG06:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       je       G_M52295_IG14
+                       ;; size=77 bbWeight=4 PerfScore 37.00
+G_M52295_IG06:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rax]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
@@ -183,12 +177,137 @@ G_M52295_IG06:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rs
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M52295_IG10
+       je       G_M52295_IG16
        test     dword ptr [rax+0x34], 0xD1FFAB1E
-       jne      G_M52295_IG11
-                       ;; size=36 bbWeight=4 PerfScore 27.00
-G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
-       ; gcrRegs -[rax rbx rdi]
+       je       G_M52295_IG17
+                       ;; size=40 bbWeight=4 PerfScore 27.00
+G_M52295_IG07:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rax rdi]
+       mov      rdi, gword ptr [rbp+0xE0]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       je       G_M52295_IG19
+                       ;; size=16 bbWeight=8 PerfScore 18.00
+G_M52295_IG08:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       test     rax, rax
+       jne      G_M52295_IG19
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_ISINSTANCEOFANY
+       ; gcrRegs -[rdx]
+       ; gcr arg pop 0
+       xor      ecx, ecx
+       test     rax, rax
+       setne    cl
+       test     cl, cl
+       je       G_M52295_IG18
+                       ;; size=61 bbWeight=4 PerfScore 28.00
+G_M52295_IG09:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[rax]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
+       call     CORINFO_HELP_ISINSTANCEOFCLASS
+       ; gcrRegs -[rdx] +[rax]
+       ; gcr arg pop 0
+       mov      r14, rax
+       ; gcrRegs +[r14]
+       test     r14, r14
+       je       G_M52295_IG22
+       mov      ecx, dword ptr [r14+0x34]
+       and      ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       je       SHORT G_M52295_IG10
+       mov      rcx, r14
+       ; gcrRegs +[rcx]
+       xor      edx, edx
+       call     [<unknown method>]
+       ; gcrRegs -[rax rcx rdi]
+       ; gcr arg pop 0
+                       ;; size=59 bbWeight=4 PerfScore 40.00
+G_M52295_IG10:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, dword ptr [r14+0x34]
+       and      ecx, 0xD1FFAB1E
+       cmp      ecx, 0xD1FFAB1E
+       je       SHORT G_M52295_IG11
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+                       ;; size=44 bbWeight=4 PerfScore 28.00
+G_M52295_IG11:        ; bbWeight=4, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, nogc
+       vmovdqu  ymm0, ymmword ptr [r14+0x38]
+       vmovdqu  ymmword ptr [rbp-0x40], ymm0
+                       ;; size=11 bbWeight=4 PerfScore 24.00
+G_M52295_IG12:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[r14]
+       mov      rcx, gword ptr [rbp-0x38]
+       ; gcrRegs +[rcx]
+       mov      edx, dword ptr [rbp-0x28]
+       mov      rax, gword ptr [rsi+0x08]
+       ; gcrRegs +[rax]
+       and      edx, 0xD1FFAB1E
+       mov      gword ptr [rbp-0x58], rcx
+       mov      dword ptr [rbp-0x50], edx
+       mov      rcx, rax
+       lea      rdx, [rbp-0x58]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
+       mov      rax, qword ptr [rax+0x48]
+       call     [rax+0x38]<unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       inc      dword ptr [rsi+0x14]
+       cmp      dword ptr [rsi+0x14], 0x2710
+       jl       G_M52295_IG03
+       jmp      G_M52295_IG23
+                       ;; size=62 bbWeight=8 PerfScore 184.00
+G_M52295_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rbx]
+       mov      ecx, 70
+       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M52295_IG14:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs +[rbx rdi]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       mov      rcx, rdx
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       jmp      G_M52295_IG06
+                       ;; size=24 bbWeight=4 PerfScore 22.00
+G_M52295_IG15:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+       test     rdi, rdi
+       jne      G_M52295_IG06
+       jmp      G_M52295_IG07
+                       ;; size=14 bbWeight=4 PerfScore 13.00
+G_M52295_IG16:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+       mov      rcx, rdi
+       ; gcrRegs +[rcx]
+       movsx    rdx, word  ptr [rbp+0xE8]
+       mov      r11, 0xD1FFAB1E      ; code for <unknown method>
+       call     [r11]<unknown method>
+       ; gcrRegs -[rcx rdi]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      G_M52295_IG07
+                       ;; size=32 bbWeight=4 PerfScore 31.00
+G_M52295_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rbx]
        xor      eax, eax
        mov      dword ptr [rsi+0x10], eax
        lea      rdi, bword ptr [rsi+0x20]
@@ -215,143 +334,32 @@ G_M52295_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-       jmp      G_M52295_IG31
+       jmp      G_M52295_IG33
                        ;; size=78 bbWeight=1 PerfScore 18.75
-G_M52295_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 70
-       call     [System.ThrowHelper:ThrowObjectDisposedException(int)]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M52295_IG09:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+G_M52295_IG18:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs +[rbx rdi]
-       test     rdi, rdi
-       jne      G_M52295_IG06
-       jmp      SHORT G_M52295_IG11
-                       ;; size=11 bbWeight=4 PerfScore 13.00
-G_M52295_IG10:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
-       mov      rcx, rdi
-       ; gcrRegs +[rcx]
-       movsx    rdx, word  ptr [rbp+0xE8]
-       mov      r11, 0xD1FFAB1E      ; code for <unknown method>
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdi]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M52295_IG11
-       jmp      G_M52295_IG07
-                       ;; size=33 bbWeight=4 PerfScore 39.00
-G_M52295_IG11:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
-       mov      rdi, gword ptr [rbp+0xE0]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       je       SHORT G_M52295_IG13
-                       ;; size=12 bbWeight=8 PerfScore 18.00
-G_M52295_IG12:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       mov      rcx, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.IO.Pipelines.ReadResult]
-       call     CORINFO_HELP_ISINSTANCEOFCLASS
-       ; gcrRegs -[rdx] +[rax]
-       ; gcr arg pop 0
...

coreclr_tests.run.windows.x64.checked.mch

-20 (-12.12%) : 386409.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
@@ -21,71 +21,70 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V13 tmp4         [V13,T10] (  2,  2   )     int  ->  rcx        
+;* V13 tmp4         [V13,T09] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V16 tmp7         [V16,T29] (  0,  0   )     int  ->  zero-ref   
-;  V17 tmp8         [V17,T11] (  2,  2   )     int  ->  rcx         single-def
+;* V16 tmp7         [V16,T28] (  0,  0   )     int  ->  zero-ref   
+;* V17 tmp8         [V17,T10] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V19 tmp10        [V19,T12] (  2,  2   )     int  ->  rdx        
-;  V20 tmp11        [V20,T13] (  2,  2   )     int  ->  rcx         single-def
+;* V19 tmp10        [V19,T11] (  0,  0   )     int  ->  zero-ref   
+;* V20 tmp11        [V20,T12] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V22 tmp13        [V22,T14] (  2,  2   )     int  ->  rax        
-;  V23 tmp14        [V23,T15] (  2,  2   )     int  ->  rax         single-def
+;* V22 tmp13        [V22,T13] (  0,  0   )     int  ->  zero-ref   
+;* V23 tmp14        [V23,T14] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V25 tmp16        [V25,T30] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp17        [V26,T16] (  2,  2   )     int  ->  rax         single-def
+;* V25 tmp16        [V25,T29] (  0,  0   )     int  ->  zero-ref   
+;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V32 tmp23        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32,T30] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V34 tmp25        [V34,T32] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp25        [V34,T31] (  0,  0   )     int  ->  zero-ref   
+;* V35 tmp26        [V35,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V37 tmp28        [V37,T19] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp28        [V37,T17] (  0,  0   )     int  ->  zero-ref   
+;* V38 tmp29        [V38,T18] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V40 tmp31        [V40,T33] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V40 tmp31        [V40,T32] (  0,  0   )     int  ->  zero-ref   
+;* V41 tmp32        [V41,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V43 tmp34        [V43,T22] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T34] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp34        [V43,T20] (  0,  0   )     int  ->  zero-ref   
+;* V44 tmp35        [V44,T33] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V46 tmp37        [V46,T35] (  0,  0   )     int  ->  zero-ref   
-;  V47 tmp38        [V47,T23] (  2,  2   )     int  ->  rax         single-def
+;* V46 tmp37        [V46,T34] (  0,  0   )     int  ->  zero-ref   
+;* V47 tmp38        [V47,T21] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp40        [V49,T36] (  0,  0   )     int  ->  zero-ref   
-;  V50 tmp41        [V50,T24] (  2,  2   )     int  ->  rax         single-def
+;* V49 tmp40        [V49,T35] (  0,  0   )     int  ->  zero-ref   
+;* V50 tmp41        [V50,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V53 tmp44        [V53,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T37] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56,T36] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp49        [V58,T37] (  0,  0   )     int  ->  zero-ref   
+;* V59 tmp50        [V59,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V61 tmp52        [V61,T27] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T28] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp52        [V61,T24] (  0,  0   )     int  ->  zero-ref   
+;* V62 tmp53        [V62,T25] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V64 tmp55        [V64,T39] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T40] (  0,  0   )     int  ->  zero-ref    single-def
+;* V64 tmp55        [V64,T38] (  0,  0   )     int  ->  zero-ref   
+;* V65 tmp56        [V65,T39] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V67 tmp58        [V67,T41] (  0,  0   )     int  ->  zero-ref   
-;* V68 tmp59        [V68,T42] (  0,  0   )     int  ->  zero-ref    single-def
+;* V67 tmp58        [V67,T40] (  0,  0   )     int  ->  zero-ref   
+;  V68 tmp59        [V68,T26] (  2,  2   )     int  ->  rcx         single-def
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V70 tmp61        [V70,T43] (  0,  0   )     int  ->  zero-ref   
-;  V71 cse0         [V71,T03] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V72 cse1         [V72,T07] (  2,  2   )     int  ->  rax         "CSE - moderate"
+;  V70 tmp61        [V70,T27] (  2,  2   )     int  ->  rax        
+;* V71 cse0         [V71,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V72 cse1         [V72,T07] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;* V73 cse2         [V73,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V74 cse3         [V74,T01] (  2,  2   )     int  ->  rdx         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;  V74 cse3         [V74,T01] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;* V75 cse4         [V75,T04] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V76 cse5         [V76,T05] (  2,  2   )     int  ->  rax         "CSE - moderate"
-;  V77 cse6         [V77,T09] (  2,  2   )     int  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -118,25 +117,18 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rbx+0x08]
-       add      ecx, 17
-       mov      edx, dword ptr [rax+0x14]
-       add      ecx, edx
+       mov      ecx, dword ptr [rax+0x14]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
        add      eax, ecx
-       add      eax, 3
-       add      eax, -5
-       add      eax, 3
-       add      eax, -5
-                       ;; size=154 bbWeight=1 PerfScore 21.50
+                       ;; size=134 bbWeight=1 PerfScore 18.00
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 165, prolog size 5, PerfScore 24.50, instruction count 34, allocated bytes for code 165 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 145, prolog size 5, PerfScore 21.00, instruction count 27, allocated bytes for code 145 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

-20 (-12.12%) : 386825.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,78 +10,77 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T03] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T03] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V09 tmp5         [V09,T10] (  2,  2   )     int  ->  rcx        
+;* V09 tmp5         [V09,T09] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V12 tmp8         [V12,T29] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp9         [V13,T11] (  2,  2   )     int  ->  rcx         single-def
+;* V12 tmp8         [V12,T28] (  0,  0   )     int  ->  zero-ref   
+;* V13 tmp9         [V13,T10] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T12] (  2,  2   )     int  ->  rdx        
-;  V16 tmp12        [V16,T13] (  2,  2   )     int  ->  rcx         single-def
+;* V15 tmp11        [V15,T11] (  0,  0   )     int  ->  zero-ref   
+;* V16 tmp12        [V16,T12] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V18 tmp14        [V18,T14] (  2,  2   )     int  ->  rax        
-;  V19 tmp15        [V19,T15] (  2,  2   )     int  ->  rax         single-def
+;* V18 tmp14        [V18,T13] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp15        [V19,T14] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V21 tmp17        [V21,T30] (  0,  0   )     int  ->  zero-ref   
-;  V22 tmp18        [V22,T16] (  2,  2   )     int  ->  rax         single-def
+;* V21 tmp17        [V21,T29] (  0,  0   )     int  ->  zero-ref   
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25,T15] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V28 tmp24        [V28,T31] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28,T30] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V30 tmp26        [V30,T32] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V30 tmp26        [V30,T31] (  0,  0   )     int  ->  zero-ref   
+;* V31 tmp27        [V31,T16] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V33 tmp29        [V33,T19] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V33 tmp29        [V33,T17] (  0,  0   )     int  ->  zero-ref   
+;* V34 tmp30        [V34,T18] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V36 tmp32        [V36,T33] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V36 tmp32        [V36,T32] (  0,  0   )     int  ->  zero-ref   
+;* V37 tmp33        [V37,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V39 tmp35        [V39,T22] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T34] (  0,  0   )     int  ->  zero-ref    single-def
+;* V39 tmp35        [V39,T20] (  0,  0   )     int  ->  zero-ref   
+;* V40 tmp36        [V40,T33] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V42 tmp38        [V42,T35] (  0,  0   )     int  ->  zero-ref   
-;  V43 tmp39        [V43,T23] (  2,  2   )     int  ->  rax         single-def
+;* V42 tmp38        [V42,T34] (  0,  0   )     int  ->  zero-ref   
+;* V43 tmp39        [V43,T21] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V45 tmp41        [V45,T36] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp42        [V46,T24] (  2,  2   )     int  ->  rax         single-def
+;* V45 tmp41        [V45,T35] (  0,  0   )     int  ->  zero-ref   
+;* V46 tmp42        [V46,T22] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V49 tmp45        [V49,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T37] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52,T36] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V54 tmp50        [V54,T38] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V54 tmp50        [V54,T37] (  0,  0   )     int  ->  zero-ref   
+;* V55 tmp51        [V55,T23] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V57 tmp53        [V57,T27] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T28] (  0,  0   )     int  ->  zero-ref    single-def
+;* V57 tmp53        [V57,T24] (  0,  0   )     int  ->  zero-ref   
+;* V58 tmp54        [V58,T25] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V60 tmp56        [V60,T39] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T40] (  0,  0   )     int  ->  zero-ref    single-def
+;* V60 tmp56        [V60,T38] (  0,  0   )     int  ->  zero-ref   
+;* V61 tmp57        [V61,T39] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V63 tmp59        [V63,T41] (  0,  0   )     int  ->  zero-ref   
-;* V64 tmp60        [V64,T42] (  0,  0   )     int  ->  zero-ref    single-def
+;* V63 tmp59        [V63,T40] (  0,  0   )     int  ->  zero-ref   
+;  V64 tmp60        [V64,T26] (  2,  2   )     int  ->  rcx         single-def
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V66 tmp62        [V66,T43] (  0,  0   )     int  ->  zero-ref   
-;  V67 cse0         [V67,T04] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V68 cse1         [V68,T07] (  2,  2   )     int  ->  rax         "CSE - moderate"
+;  V66 tmp62        [V66,T27] (  2,  2   )     int  ->  rax        
+;* V67 cse0         [V67,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
+;* V68 cse1         [V68,T07] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;* V69 cse2         [V69,T08] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V70 cse3         [V70,T02] (  2,  2   )     int  ->  rdx         "CSE - moderate"
-;  V71 cse4         [V71,T05] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;  V70 cse3         [V70,T02] (  2,  2   )     int  ->  rcx         "CSE - moderate"
+;* V71 cse4         [V71,T05] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;  V72 cse5         [V72,T06] (  2,  2   )     int  ->  rax         "CSE - moderate"
-;  V73 cse6         [V73,T09] (  2,  2   )     int  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -114,25 +113,18 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rbx+0x08]
-       add      ecx, 17
-       mov      edx, dword ptr [rax+0x14]
-       add      ecx, edx
+       mov      ecx, dword ptr [rax+0x14]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
        add      eax, ecx
-       add      eax, 3
-       add      eax, -5
-       add      eax, 3
-       add      eax, -5
-                       ;; size=154 bbWeight=1 PerfScore 21.50
+                       ;; size=134 bbWeight=1 PerfScore 18.00
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 165, prolog size 5, PerfScore 24.50, instruction count 34, allocated bytes for code 165 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 145, prolog size 5, PerfScore 21.00, instruction count 27, allocated bytes for code 145 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

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

@@ -32,15 +32,14 @@ G_M23529_IG04:        ; bbWeight=0.85, epilog, nogc, extend
 G_M23529_IG05:        ; bbWeight=0.46, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        cmp      qword ptr [rdx], rcx
-       jne      SHORT G_M23529_IG06
-       jmp      SHORT G_M23529_IG03
-                       ;; size=7 bbWeight=0.46 PerfScore 2.77
+       je       SHORT G_M23529_IG03
+                       ;; size=5 bbWeight=0.46 PerfScore 1.85
 G_M23529_IG06:        ; bbWeight=0.15, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [System.Runtime.CompilerServices.CastHelpers:ChkCastClassSpecial(ulong,System.Object):System.Object]
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0.15 PerfScore 0.31
 
-; Total bytes of code 22, prolog size 0, PerfScore 5.38, instruction count 8, allocated bytes for code 22 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 20, prolog size 0, PerfScore 4.46, instruction count 7, allocated bytes for code 20 (MethodHash=3733a416) for method System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
 ; ============================================================
 
 Unwind Info:

+12 (+14.12%) : 281299.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)

@@ -9,10 +9,10 @@
 ; 4 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  5   )   byref  ->  rbx         this single-def
+;  V00 this         [V00,T01] (  9,  5   )   byref  ->  rbx         this single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  rcx         "Span.get_Item index"
-;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rax         "Span.get_Item ptrToSpan"
+;  V02 tmp1         [V02,T03] (  3,  6   )     int  ->  rsi         "Span.get_Item index"
+;  V03 tmp2         [V03,T02] (  3,  6   )   byref  ->  rcx         "Span.get_Item ptrToSpan"
 ;  V04 tmp3         [V04,T05] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V05 tmp4         [V05,T00] (  4,  8   )  ushort  ->  rcx         "Inlining Arg"
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
@@ -34,57 +34,65 @@
 ;* V22 tmp21        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
-;  V25 cse0         [V25,T04] (  3,  3   )     int  ->  rcx         "CSE - aggressive"
+;  V25 cse0         [V25,T04] (  5,  3   )     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M7781_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     rsi
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rbx, rcx
        ; byrRegs +[rbx]
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+                       ;; size=9 bbWeight=1 PerfScore 2.50
 G_M7781_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      ecx, dword ptr [rbx+0x20]
-       cmp      ecx, dword ptr [rbx+0x38]
-       jge      SHORT G_M7781_IG05
-       lea      rax, bword ptr [rbx+0x30]
-       ; byrRegs +[rax]
-       cmp      ecx, dword ptr [rax+0x08]
-       jae      SHORT G_M7781_IG06
-       mov      rax, bword ptr [rax]
-       movzx    rcx, word  ptr [rax+2*rcx]
+       mov      esi, dword ptr [rbx+0x20]
+       cmp      esi, dword ptr [rbx+0x38]
+       jge      SHORT G_M7781_IG06
+                       ;; size=8 bbWeight=1 PerfScore 6.00
+G_M7781_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       lea      rcx, bword ptr [rbx+0x30]
+       ; byrRegs +[rcx]
+       cmp      esi, dword ptr [rcx+0x08]
+       jae      SHORT G_M7781_IG07
+       mov      rcx, bword ptr [rcx]
+       mov      eax, esi
+       movzx    rcx, word  ptr [rcx+2*rax]
+       ; byrRegs -[rcx]
        cmp      ecx, 256
        jb       SHORT G_M7781_IG04
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M7781_IG05
-                       ;; size=42 bbWeight=1 PerfScore 20.00
-G_M7781_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       inc      dword ptr [rbx+0x20]
-       jmp      SHORT G_M7781_IG02
-                       ;; size=5 bbWeight=0 PerfScore 0.00
+       jne      SHORT G_M7781_IG05
+       jmp      SHORT G_M7781_IG06
+                       ;; size=38 bbWeight=1 PerfScore 16.25
 G_M7781_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, ecx
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rcx+rax], 128
-       jne      SHORT G_M7781_IG03
+       je       SHORT G_M7781_IG06
                        ;; size=18 bbWeight=1 PerfScore 4.50
-G_M7781_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7781_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       inc      dword ptr [rbx+0x20]
+       mov      esi, dword ptr [rbx+0x20]
+       cmp      esi, dword ptr [rbx+0x38]
+       jl       SHORT G_M7781_IG03
+                       ;; size=11 bbWeight=0 PerfScore 0.00
+G_M7781_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; byrRegs -[rbx]
-       add      rsp, 32
+       add      rsp, 40
        pop      rbx
+       pop      rsi
        ret      
-                       ;; size=6 bbWeight=1 PerfScore 1.75
-G_M7781_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M7781_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 85, prolog size 8, PerfScore 27.75, instruction count 27, allocated bytes for code 85 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
+; Total bytes of code 97, prolog size 9, PerfScore 31.50, instruction count 33, allocated bytes for code 97 (MethodHash=3805e19a) for method System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -92,10 +100,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x05
-  CountOfUnwindCodes: 2
+  SizeOfProlog      : 0x06
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

+33 (+21.85%) : 385907.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -10,78 +10,77 @@
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V02 loc2         [V02,T02] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V02 loc2         [V02,T02] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;  V03 loc3         [V03,T01] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
-;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V07 tmp3         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;* V09 tmp5         [V09    ] (  0,  0   )     int  ->  zero-ref   
-;* V10 tmp6         [V10,T10] (  0,  0   )     int  ->  zero-ref    single-def
+;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref   
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref   
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    single-def
+;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp11        [V15    ] (  0,  0   )     int  ->  zero-ref   
-;* V16 tmp12        [V16,T12] (  0,  0   )     int  ->  zero-ref    single-def
+;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref   
-;* V19 tmp15        [V19,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;  V19 tmp15        [V19,T08] (  2,  2   )     int  ->  r10         single-def
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref   
-;* V25 tmp21        [V25,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V25 tmp21        [V25    ] (  0,  0   )     int  ->  zero-ref   
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref   
-;* V28 tmp24        [V28,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V28 tmp24        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp26        [V30    ] (  0,  0   )     int  ->  zero-ref   
-;* V31 tmp27        [V31,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref   
-;* V34 tmp30        [V34,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V34 tmp30        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp32        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;* V37 tmp33        [V37,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref   
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref   
-;* V40 tmp36        [V40,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;  V40 tmp36        [V40,T09] (  2,  2   )     int  ->  rcx         single-def
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp38        [V42    ] (  0,  0   )     int  ->  zero-ref   
-;* V43 tmp39        [V43,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V43 tmp39        [V43    ] (  0,  0   )     int  ->  zero-ref   
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp41        [V45    ] (  0,  0   )     int  ->  zero-ref   
-;* V46 tmp42        [V46,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V46 tmp42        [V46    ] (  0,  0   )     int  ->  zero-ref   
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;* V52 tmp48        [V52,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V52 tmp48        [V52    ] (  0,  0   )     int  ->  zero-ref   
 ;* V53 tmp49        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp50        [V54    ] (  0,  0   )     int  ->  zero-ref   
-;* V55 tmp51        [V55,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;  V55 tmp51        [V55,T10] (  2,  2   )     int  ->  rcx         single-def
 ;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp53        [V57    ] (  0,  0   )     int  ->  zero-ref   
-;* V58 tmp54        [V58,T21] (  0,  0   )     int  ->  zero-ref    single-def
+;* V58 tmp54        [V58    ] (  0,  0   )     int  ->  zero-ref   
 ;* V59 tmp55        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp56        [V60    ] (  0,  0   )     int  ->  zero-ref   
-;* V61 tmp57        [V61,T26] (  0,  0   )     int  ->  zero-ref    single-def
+;* V61 tmp57        [V61    ] (  0,  0   )     int  ->  zero-ref   
 ;* V62 tmp58        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp59        [V63    ] (  0,  0   )     int  ->  zero-ref   
-;  V64 tmp60        [V64,T22] (  2,  2   )     int  ->  rcx         single-def
+;* V64 tmp60        [V64    ] (  0,  0   )     int  ->  zero-ref   
 ;* V65 tmp61        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp62        [V66    ] (  0,  0   )     int  ->  zero-ref   
-;* V67 cse0         [V67,T06] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;* V68 cse1         [V68,T03] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V69 cse2         [V69,T04] (  2,  2   )     int  ->  rcx         "CSE - aggressive"
-;* V70 cse3         [V70,T05] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V71 cse4         [V71,T07] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V72 cse5         [V72,T08] (  2,  2   )    long  ->  rcx         "CSE - aggressive"
-;  V73 cse6         [V73,T09] (  2,  2   )    long  ->  rcx         "CSE - aggressive"
+;  V67 cse0         [V67,T11] (  2,  2   )     int  ->  rcx         "CSE - aggressive"
+;  V68 cse1         [V68,T03] (  4,  4   )     int  ->  rdx         "CSE - aggressive"
+;  V69 cse2         [V69,T04] (  4,  4   )     int  ->   r8         "CSE - aggressive"
+;  V70 cse3         [V70,T05] (  4,  4   )     int  ->  rax         "CSE - aggressive"
+;  V71 cse4         [V71,T06] (  3,  3   )    long  ->  rcx         "CSE - aggressive"
+;  V72 cse5         [V72,T07] (  2,  2   )    long  ->  rcx         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -115,18 +114,27 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rax+0x14]
+       mov      edx, dword ptr [rbx+0x08]
+       mov      r8d, dword ptr [rax+0x14]
+       lea      r10d, [rdx+r8]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
-       add      eax, ecx
-                       ;; size=140 bbWeight=1 PerfScore 18.25
+       lea      r10d, [r10+rax+0x11]
+       add      r10d, dword ptr [rcx]
+       add      r10d, edx
+       lea      ecx, [r10+r8+0x0A]
+       add      ecx, eax
+       add      ecx, edx
+       add      ecx, r8d
+       lea      eax, [rcx+rax+0x11]
+                       ;; size=173 bbWeight=1 PerfScore 27.50
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 151, prolog size 5, PerfScore 21.25, instruction count 28, allocated bytes for code 151 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 184, prolog size 5, PerfScore 30.50, instruction count 37, allocated bytes for code 184 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

+39 (+25.83%) : 385490.dasm - testout1:SubFunclet221():int (FullOpts)

@@ -8,83 +8,82 @@
 ; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T00] (  8,  8   )     int  ->  r10        
 ;* V01 loc1         [V01    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 loc3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V04 loc4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V05 loc5         [V05,T01] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <testout1>
+;  V05 loc5         [V05,T02] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def <testout1>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V07 loc7         [V07,T05] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
-;  V08 loc8         [V08,T00] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V07 loc7         [V07,T06] (  3,  3   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V08 loc8         [V08,T01] (  5,  5   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <testout1>
-;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def
+;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;* V14 tmp5         [V14,T09] (  0,  0   )     int  ->  zero-ref    single-def
+;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
-;* V17 tmp8         [V17,T10] (  0,  0   )     int  ->  zero-ref    single-def
+;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;* V20 tmp11        [V20,T11] (  0,  0   )     int  ->  zero-ref    single-def
+;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;* V23 tmp14        [V23,T12] (  0,  0   )     int  ->  zero-ref    single-def
+;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp15        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref   
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
-;* V29 tmp20        [V29,T13] (  0,  0   )     int  ->  zero-ref    single-def
+;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
-;* V32 tmp23        [V32,T22] (  0,  0   )     int  ->  zero-ref    single-def
+;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;* V35 tmp26        [V35,T14] (  0,  0   )     int  ->  zero-ref    single-def
+;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref   
-;* V38 tmp29        [V38,T15] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref   
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp31        [V40    ] (  0,  0   )     int  ->  zero-ref   
-;* V41 tmp32        [V41,T16] (  0,  0   )     int  ->  zero-ref    single-def
+;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref   
-;* V44 tmp35        [V44,T23] (  0,  0   )     int  ->  zero-ref    single-def
+;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref   
 ;* V46 tmp37        [V46    ] (  0,  0   )     int  ->  zero-ref   
-;* V47 tmp38        [V47,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;* V47 tmp38        [V47    ] (  0,  0   )     int  ->  zero-ref   
 ;* V48 tmp39        [V48    ] (  0,  0   )     int  ->  zero-ref   
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;* V50 tmp41        [V50,T18] (  0,  0   )     int  ->  zero-ref    single-def
+;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref   
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp43        [V52    ] (  0,  0   )     int  ->  zero-ref   
 ;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     int  ->  zero-ref   
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
-;* V56 tmp47        [V56,T24] (  0,  0   )     int  ->  zero-ref    single-def
+;* V56 tmp47        [V56    ] (  0,  0   )     int  ->  zero-ref   
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref   
 ;* V58 tmp49        [V58    ] (  0,  0   )     int  ->  zero-ref   
-;* V59 tmp50        [V59,T19] (  0,  0   )     int  ->  zero-ref    single-def
+;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref   
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref   
-;* V62 tmp53        [V62,T20] (  0,  0   )     int  ->  zero-ref    single-def
+;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref   
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref   
 ;* V64 tmp55        [V64    ] (  0,  0   )     int  ->  zero-ref   
-;* V65 tmp56        [V65,T25] (  0,  0   )     int  ->  zero-ref    single-def
+;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp57        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref   
-;  V68 tmp59        [V68,T21] (  2,  2   )     int  ->  rcx         single-def
+;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref   
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref   
 ;* V70 tmp61        [V70    ] (  0,  0   )     int  ->  zero-ref   
-;* V71 cse0         [V71,T06] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;* V72 cse1         [V72,T02] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V73 cse2         [V73,T03] (  2,  2   )     int  ->  rcx         "CSE - aggressive"
-;* V74 cse3         [V74,T04] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V75 cse4         [V75,T07] (  2,  2   )     int  ->  rax         "CSE - aggressive"
-;  V76 cse5         [V76,T08] (  2,  2   )    long  ->  rcx         "CSE - aggressive"
+;  V71 cse0         [V71,T08] (  2,  2   )     int  ->  r10         "CSE - aggressive"
+;  V72 cse1         [V72,T03] (  4,  4   )     int  ->  rdx         "CSE - aggressive"
+;  V73 cse2         [V73,T04] (  4,  4   )     int  ->   r8         "CSE - aggressive"
+;  V74 cse3         [V74,T05] (  4,  4   )     int  ->  rax         "CSE - aggressive"
+;  V75 cse4         [V75,T07] (  3,  3   )    long  ->  rcx         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -118,18 +117,28 @@ G_M59959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      byte  ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
        mov      dword ptr [rbx+0x08], -13
        mov      word  ptr [rbx+0x0C], 256
-       mov      ecx, dword ptr [rax+0x14]
+       mov      edx, dword ptr [rbx+0x08]
+       mov      r8d, dword ptr [rax+0x14]
+       lea      r10d, [rdx+r8]
        mov      eax, dword ptr [rax+0x10]
        ; gcrRegs -[rax]
-       add      eax, ecx
-                       ;; size=140 bbWeight=1 PerfScore 18.25
+       lea      r10d, [r10+rax+0x11]
+       add      r10d, dword ptr [rcx]
+       add      r10d, edx
+       lea      r10d, [r10+r8+0x0A]
+       add      r10d, eax
+       add      edx, r10d
+       add      edx, r8d
+       lea      r10d, [rdx+rax+0x11]
+       mov      eax, r10d
+                       ;; size=179 bbWeight=1 PerfScore 27.75
 G_M59959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 151, prolog size 5, PerfScore 21.25, instruction count 28, allocated bytes for code 151 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
+; Total bytes of code 190, prolog size 5, PerfScore 30.75, instruction count 38, allocated bytes for code 190 (MethodHash=af8015c8) for method testout1:Sub_Funclet_221():int (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.crossgen2.windows.x64.checked.mch

-39 (-7.82%) : 135159.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts)

@@ -9,46 +9,45 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 12, 10   )     ref  ->  rbx         this class-hnd single-def <System.Xml.XmlSqlBinaryReader>
-;  V01 loc0         [V01,T10] (  4,  2.50)     int  ->  rsi        
-;  V02 loc1         [V02,T07] (  4,  3.50)     int  ->  rdi        
-;  V03 loc2         [V03,T08] (  4,  3   )     int  ->  rbp        
+;  V00 this         [V00,T00] ( 12,  8.50)     ref  ->  rbx         this class-hnd single-def <System.Xml.XmlSqlBinaryReader>
+;  V01 loc0         [V01,T09] (  4,  2.50)     int  ->  rsi        
+;  V02 loc1         [V02,T06] (  4,  3.50)     int  ->  rdi        
+;  V03 loc2         [V03,T07] (  4,  3   )     int  ->  rbp        
 ;* V04 loc3         [V04    ] (  0,  0   )     int  ->  zero-ref   
-;  V05 loc4         [V05,T04] (  7,  4.50)     ref  ->  r15         class-hnd <<unknown class>>
-;  V06 loc5         [V06,T05] (  5,  4   )     ref  ->  r13         class-hnd single-def <<unknown class>>
-;  V07 loc6         [V07,T02] ( 10,  5   )     ref  ->  registers   class-hnd <System.String>
-;  V08 loc7         [V08,T11] (  4,  2   )     ref  ->  registers   class-hnd <System.String>
-;  V09 loc8         [V09,T15] (  3,  1.50)     ref  ->  rbx         class-hnd <System.String>
-;  V10 loc9         [V10,T03] (  7,  5   )     int  ->  r14        
-;  V11 loc10        [V11,T16] (  3,  1.50)     ref  ->  r13         class-hnd exact single-def <<unknown class>>
+;  V05 loc4         [V05,T03] (  7,  4.50)     ref  ->  r15         class-hnd <<unknown class>>
+;  V06 loc5         [V06,T04] (  5,  4   )     ref  ->  rcx         class-hnd single-def <<unknown class>>
+;  V07 loc6         [V07,T10] ( 10,  1.50)     ref  ->  r13         class-hnd <System.String>
+;  V08 loc7         [V08,T12] (  4,  1   )     ref  ->  rdi         class-hnd <System.String>
+;  V09 loc8         [V09,T13] (  3,  1   )     ref  ->  rsi         class-hnd <System.String>
+;  V10 loc9         [V10,T02] (  7,  5   )     int  ->  r14        
+;  V11 loc10        [V11,T11] (  3,  1.50)     ref  ->  r13         class-hnd exact single-def <<unknown class>>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V13 tmp1         [V13,T01] (  3,  6   )   byref  ->  rcx         single-def "dup spill"
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V15 tmp3         [V15,T19] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V16 tmp4         [V16,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V16 tmp4         [V16,T15] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V17 tmp5         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <<unknown class>>
-;  V18 tmp6         [V18,T06] (  4,  4   )   byref  ->  rbp         single-def "Inlining Arg"
-;  V19 tmp7         [V19,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V20 tmp8         [V20,T13] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V21 tmp9         [V21,T14] (  2,  2   )     ref  ->  rbp         single-def "argument with side effect"
-;  V22 cse0         [V22,T12] (  4,  2   )     int  ->  rcx         "CSE - moderate"
-;  V23 cse1         [V23,T09] (  4,  3   )     int  ->  r12         "CSE - aggressive"
+;  V18 tmp6         [V18,T05] (  4,  4   )   byref  ->  rbx         single-def "Inlining Arg"
+;  V19 tmp7         [V19,T16] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V20 tmp8         [V20,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V21 tmp9         [V21,T18] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V22 cse0         [V22,T14] (  4,  0   )     int  ->  rcx         "CSE - moderate"
+;  V23 cse1         [V23,T08] (  4,  3   )     int  ->  rdx         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M55691_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=19 bbWeight=1 PerfScore 8.50
+                       ;; size=17 bbWeight=1 PerfScore 7.50
 G_M55691_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -81,7 +80,7 @@ G_M55691_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M55691_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; byrRegs -[rcx]
        imul     ecx, r14d, 2
-       jo       G_M55691_IG16
+       jo       G_M55691_IG11
        movsxd   rcx, ecx
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
        ; gcrRegs +[rax]
@@ -106,170 +105,155 @@ G_M55691_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        ; gcrRegs -[rdx r13]
        ; byrRegs -[rcx]
                        ;; size=56 bbWeight=0.50 PerfScore 7.12
-G_M55691_IG04:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
-       mov      r13, gword ptr [rbx+0xC8]
-       ; gcrRegs +[r13]
-       mov      r12d, dword ptr [r13+0x08]
-       cmp      edi, r12d
-       jae      G_M55691_IG15
-       mov      ecx, edi
-       mov      rdx, gword ptr [r13+8*rcx+0x10]
-       ; gcrRegs +[rdx]
-       mov      rax, rdx
+G_M55691_IG04:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, gword ptr [rbx+0xC8]
+       ; gcrRegs +[rcx]
+       mov      edx, dword ptr [rcx+0x08]
+       cmp      edi, edx
+       jae      G_M55691_IG10
+       mov      eax, edi
+       mov      rax, gword ptr [rcx+8*rax+0x10]
        ; gcrRegs +[rax]
+       mov      r13, rax
+       ; gcrRegs +[r13]
        test     ebp, ebp
-       jne      G_M55691_IG12
-                       ;; size=38 bbWeight=1 PerfScore 9.00
-G_M55691_IG05:        ; bbWeight=0.50, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx r13]
-       or       esi, edi
        jne      SHORT G_M55691_IG07
+                       ;; size=32 bbWeight=1 PerfScore 9.00
+G_M55691_IG05:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax rcx]
+       or       esi, edi
+       jne      SHORT G_M55691_IG12
                        ;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M55691_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M55691_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, gcvars, byref
-       mov      ecx, dword ptr [rax+0x08]
-       cmp      ecx, 5
-       jl       G_M55691_IG17
-                       ;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M55691_IG08:        ; bbWeight=0.25, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
-       mov      r11, 0xD1FFAB1E
-       xor      r11, qword ptr [rax+0x0C]
-       mov      edx, dword ptr [rax+0x12]
-       xor      edx, 0xD1FFAB1E
-       or       r11, rdx
-       jne      G_M55691_IG17
-                       ;; size=32 bbWeight=0.25 PerfScore 1.69
-G_M55691_IG09:        ; bbWeight=0.50, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 5
-       jle      SHORT G_M55691_IG10
-       cmp      ecx, 6
-       je       G_M55691_IG17
-       cmp      word  ptr [rax+0x16], 58
-       jne      G_M55691_IG17
-       mov      rbp, gword ptr [rbx+0x18]
-       ; gcrRegs +[rbp]
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       lea      r11, [(reloc)]      ; function address
-       mov      edx, 6
-       call     [r11]<unknown method>
+                       ;; size=15 bbWeight=0.50 PerfScore 2.38
+G_M55691_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=A002 {rcx r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rbx] +[rcx]
+       cmp      ebp, edx
+       jae      SHORT G_M55691_IG10
+       mov      eax, ebp
+       mov      rdi, gword ptr [rcx+8*rax+0x10]
+       ; gcrRegs +[rdi]
+       cmp      esi, edx
+       jae      SHORT G_M55691_IG10
+       mov      edx, esi
+       mov      rsi, gword ptr [rcx+8*rdx+0x10]
+       ; gcrRegs +[rsi]
+                       ;; size=22 bbWeight=0.50 PerfScore 3.50
+G_M55691_IG08:        ; bbWeight=0.50, gcrefRegs=A0C0 {rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbp
-       ; gcrRegs +[rcx]
-       lea      r11, [(reloc)]      ; function address
-       cmp      dword ptr [rcx], ecx
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdx rbp]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       mov      rax, gword ptr [rbx+0x28]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       jmp      SHORT G_M55691_IG11
-                       ;; size=77 bbWeight=0.50 PerfScore 12.00
-G_M55691_IG10:        ; bbWeight=0.50, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       mov      rax, qword ptr [(reloc)]      ; const ptr
-       ; gcrRegs -[rax]
-       mov      rax, gword ptr [rax]
-       ; gcrRegs +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=16 bbWeight=0.50 PerfScore 2.25
-G_M55691_IG11:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      rbx, gword ptr [rbx+0x30]
-       jmp      SHORT G_M55691_IG13
-                       ;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M55691_IG12:        ; bbWeight=0.50, gcrefRegs=A001 {rax r13 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rsi rdi] +[rax r13]
-       cmp      ebp, r12d
-       jae      SHORT G_M55691_IG15
-       mov      ecx, ebp
-       mov      rcx, gword ptr [r13+8*rcx+0x10]
-       ; gcrRegs +[rcx]
-       mov      rdi, rcx
-       ; gcrRegs +[rdi]
-       cmp      esi, r12d
-       jae      SHORT G_M55691_IG15
-       mov      ecx, esi
-       ; gcrRegs -[rcx]
-       mov      rbx, gword ptr [r13+8*rcx+0x10]
-       ; gcrRegs +[rbx]
-       mov      rsi, rdi
-       ; gcrRegs +[rsi]
-       mov      rdi, rax
-                       ;; size=33 bbWeight=0.50 PerfScore 3.88
-G_M55691_IG13:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax r13]
        cmp      r14d, dword ptr [r15+0x08]
-       jae      SHORT G_M55691_IG15
+       jae      SHORT G_M55691_IG10
        mov      ecx, r14d
        lea      rcx, [rcx+2*rcx]
-       lea      rbp, bword ptr [r15+8*rcx+0x10]
-       ; byrRegs +[rbp]
-       mov      rcx, rbp
+       lea      rbx, bword ptr [r15+8*rcx+0x10]
+       ; byrRegs +[rbx]
+       mov      rcx, rbx
+       ; byrRegs +[rcx]
+       mov      rdx, r13
+       ; gcrRegs +[rdx]
+       call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
+       ; gcrRegs -[rdx r13 r15]
+       ; byrRegs -[rcx]
+       lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
-       ; gcrRegs -[rdx rdi r15]
+       ; gcrRegs -[rdx rdi]
        ; byrRegs -[rcx]
...

-35 (-7.43%) : 85827.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)

@@ -81,12 +81,12 @@ G_M49290_IG02:        ; bbWeight=1, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefR
        mov      dword ptr [rbp-0x40], 1
        xor      edx, edx
        test     r9d, r9d
-       jle      G_M49290_IG10
+       jle      G_M49290_IG13
        test     r13, r13
-       je       G_M49290_IG09
+       je       G_M49290_IG08
        mov      ecx, dword ptr [r15+0x08]
        cmp      dword ptr [r13+0x08], r9d
-       jl       G_M49290_IG11
+       jl       G_M49290_IG08
                        ;; size=49 bbWeight=1 PerfScore 12.75
 G_M49290_IG03:        ; bbWeight=3.96, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref, isz
        mov      rcx, r14
@@ -136,60 +136,41 @@ G_M49290_IG06:        ; bbWeight=1.98, isz, extend
        xor      r11d, r11d
        mov      dword ptr [rbp-0x40], r11d
                        ;; size=67 bbWeight=1.98 PerfScore 29.20
-G_M49290_IG07:        ; bbWeight=3.96, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
+G_M49290_IG07:        ; bbWeight=3.96, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref, isz
        mov      ecx, dword ptr [rbp-0x44]
        inc      ecx
-       mov      r8d, dword ptr [rbp-0x3C]
-       cmp      ecx, r8d
+       cmp      ecx, dword ptr [rbp-0x3C]
        mov      edx, ecx
-       jl       G_M49290_IG03
-                       ;; size=20 bbWeight=3.96 PerfScore 14.85
-G_M49290_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi r12-r13 r15]
-       ; byrRegs -[rsi r14]
-       mov      r11d, dword ptr [rbp-0x40]
-       jmp      G_M49290_IG17
-                       ;; size=9 bbWeight=1 PerfScore 3.00
-G_M49290_IG09:        ; bbWeight=0.50, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref, isz
-       ; gcrRegs +[rbx rdi r12-r13 r15]
-       ; byrRegs +[rsi r14]
-       jmp      SHORT G_M49290_IG11
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M49290_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi r12-r13 r15]
-       ; byrRegs -[rsi r14]
-       mov      r11d, dword ptr [rbp-0x40]
-       jmp      G_M49290_IG17
-                       ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M49290_IG11:        ; bbWeight=0.04, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
-       ; gcrRegs +[rbx rdi r12-r13 r15]
-       ; byrRegs +[rsi r14]
+       jl       SHORT G_M49290_IG03
+       jmp      G_M49290_IG13
+                       ;; size=17 bbWeight=3.96 PerfScore 25.74
+G_M49290_IG08:        ; bbWeight=0.04, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
        mov      rcx, r14
        ; byrRegs +[rcx]
        mov      dword ptr [rbp-0x44], edx
        call     [<unknown method>]
        ; byrRegs -[rcx]
        test     eax, eax
-       jne      G_M49290_IG20
+       jne      G_M49290_IG12
                        ;; size=20 bbWeight=0.04 PerfScore 0.22
-G_M49290_IG12:        ; bbWeight=0.02, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
+G_M49290_IG09:        ; bbWeight=0.02, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
        mov      eax, dword ptr [rbp-0x44]
        mov      ecx, eax
        mov      r9, gword ptr [r15+8*rcx+0x10]
        ; gcrRegs +[r9]
        cmp      eax, dword ptr [r13+0x08]
-       jae      G_M49290_IG21
+       jae      G_M49290_IG15
        mov      dword ptr [rbp-0x44], eax
        mov      ecx, eax
        lea      rcx, [rcx+2*rcx]
                        ;; size=29 bbWeight=0.02 PerfScore 0.18
-G_M49290_IG13:        ; bbWeight=0.02, nogc, extend
+G_M49290_IG10:        ; bbWeight=0.02, nogc, extend
        movups   xmm0, xmmword ptr [r13+8*rcx+0x10]
        movups   xmmword ptr [rbp-0x60], xmm0
        mov      rdx, qword ptr [r13+8*rcx+0x20]
        mov      qword ptr [rbp-0x50], rdx
                        ;; size=19 bbWeight=0.02 PerfScore 0.16
-G_M49290_IG14:        ; bbWeight=0.02, isz, extend
+G_M49290_IG11:        ; bbWeight=0.02, isz, extend
        mov      gword ptr [rsp+0x28], r12
        mov      r10, gword ptr [rbp+0x40]
        ; gcrRegs +[r10]
@@ -215,28 +196,25 @@ G_M49290_IG14:        ; bbWeight=0.02, isz, extend
        ; gcrRegs -[rcx r8-r10]
        ; byrRegs -[rdx r11]
        test     eax, eax
-       mov      eax, dword ptr [rbp-0x40]
-       jne      SHORT G_M49290_IG15
+       jne      SHORT G_M49290_IG12
        xor      r11d, r11d
        xor      eax, eax
+       mov      dword ptr [rbp-0x40], eax
                        ;; size=76 bbWeight=0.02 PerfScore 0.34
-G_M49290_IG15:        ; bbWeight=0.04, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref, isz
+G_M49290_IG12:        ; bbWeight=0.04, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref
        mov      ecx, dword ptr [rbp-0x44]
        inc      ecx
        mov      r9d, dword ptr [rbp-0x3C]
        cmp      ecx, r9d
        mov      edx, ecx
-       jl       SHORT G_M49290_IG19
-                       ;; size=16 bbWeight=0.04 PerfScore 0.15
-G_M49290_IG16:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jl       G_M49290_IG08
+                       ;; size=20 bbWeight=0.04 PerfScore 0.15
+G_M49290_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rdi r12-r13 r15]
        ; byrRegs -[rsi r14]
-       mov      r11d, eax
-                       ;; size=3 bbWeight=0.02 PerfScore 0.01
-G_M49290_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, r11d
-                       ;; size=3 bbWeight=1 PerfScore 0.25
-G_M49290_IG18:        ; bbWeight=1, epilog, nogc, extend
+       mov      eax, dword ptr [rbp-0x40]
+                       ;; size=3 bbWeight=1 PerfScore 1.00
+G_M49290_IG14:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 120
        pop      rbx
        pop      rsi
@@ -248,24 +226,12 @@ G_M49290_IG18:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=17 bbWeight=1 PerfScore 5.25
-G_M49290_IG19:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, gcvars, byref
-       ; gcrRegs +[rbx rdi r12-r13 r15]
-       ; byrRegs +[rsi r14]
-       mov      dword ptr [rbp-0x40], eax
-       jmp      G_M49290_IG11
-                       ;; size=8 bbWeight=0.02 PerfScore 0.06
-G_M49290_IG20:        ; bbWeight=0.02, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=4040 {rsi r14}, byref, isz
-       mov      eax, dword ptr [rbp-0x40]
-       jmp      SHORT G_M49290_IG15
-                       ;; size=5 bbWeight=0.02 PerfScore 0.06
-G_M49290_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi r12-r13 r15]
-       ; byrRegs -[rsi r14]
+G_M49290_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [CORINFO_HELP_RNGCHKFAIL]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 471, prolog size 41, PerfScore 130.86, instruction count 134, allocated bytes for code 471 (MethodHash=ce803f75) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)
+; Total bytes of code 436, prolog size 41, PerfScore 136.88, instruction count 124, allocated bytes for code 436 (MethodHash=ce803f75) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

-3 (-6.82%) : 134109.dasm - System.Xml.Schema.Preprocessor:GetParentSchema(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchema (FullOpts)

@@ -9,8 +9,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  7, 19   )     ref  ->  rbx         class-hnd <System.Xml.Schema.XmlSchemaObject>
-;  V01 loc0         [V01,T01] (  4, 10   )     ref  ->  rax         class-hnd <System.Xml.Schema.XmlSchema>
+;  V00 arg0         [V00,T00] (  6, 12   )     ref  ->  rbx         class-hnd <System.Xml.Schema.XmlSchemaObject>
+;  V01 loc0         [V01,T01] (  4,  6   )     ref  ->  rax         class-hnd <System.Xml.Schema.XmlSchema>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 32
@@ -24,10 +24,9 @@ G_M65415_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M65415_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        xor      rax, rax
        ; gcrRegs +[rax]
-       test     rbx, rbx
-       je       SHORT G_M65415_IG04
-                       ;; size=7 bbWeight=1 PerfScore 1.50
-G_M65415_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M65415_IG04
+                       ;; size=4 bbWeight=1 PerfScore 2.25
+G_M65415_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rbx, gword ptr [rbx+0x18]
        mov      rcx, rbx
@@ -36,18 +35,20 @@ G_M65415_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M65415_IG04
+       jne      SHORT G_M65415_IG05
+                       ;; size=18 bbWeight=2 PerfScore 13.00
+G_M65415_IG04:        ; bbWeight=4, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
        jne      SHORT G_M65415_IG03
-                       ;; size=23 bbWeight=4 PerfScore 31.00
-G_M65415_IG04:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+                       ;; size=5 bbWeight=4 PerfScore 5.00
+G_M65415_IG05:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rbx]
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 44, prolog size 8, PerfScore 35.75, instruction count 16, allocated bytes for code 44 (MethodHash=360f0078) for method System.Xml.Schema.Preprocessor:GetParentSchema(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchema (FullOpts)
+; Total bytes of code 41, prolog size 8, PerfScore 23.50, instruction count 15, allocated bytes for code 41 (MethodHash=360f0078) for method System.Xml.Schema.Preprocessor:GetParentSchema(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchema (FullOpts)
 ; ============================================================
 
 Unwind Info:

+31 (+6.68%) : 187482.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)

@@ -13,31 +13,32 @@
 ;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  rbp         single-def
 ;  V02 arg2         [V02,T01] ( 10,  7   )     int  ->  rbx         single-def
 ;  V03 arg3         [V03,T04] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String>
-;  V04 loc0         [V04,T06] (  7,  4.50)     ref  ->  r14         class-hnd <System.String>
+;  V04 loc0         [V04,T06] (  7,  4.50)     ref  ->  r15         class-hnd <System.String>
 ;* V05 loc1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Configuration.Configuration>
 ;  V06 loc2         [V06,T09] (  5,  2.50)     ref  ->  r14         class-hnd single-def <System.Configuration.ExeConfigurationFileMap>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T00] (  5, 10   )     ref  ->  rbp         class-hnd exact single-def "dup spill" <<unknown class>>
-;  V09 tmp2         [V09,T07] (  2,  4   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V10 tmp3         [V10,T03] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Configuration.Configuration>
+;  V09 tmp2         [V09,T07] (  2,  4   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V10 tmp3         [V10,T03] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Configuration.Configuration>
 ;  V11 rat0         [V11,T08] (  3,  3   )     ref  ->  rax         "delegate invoke call"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M58367_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      ebp, edx
        mov      ebx, r8d
        mov      rdi, r9
        ; gcrRegs +[rdi]
-                       ;; size=21 bbWeight=1 PerfScore 6.25
+                       ;; size=23 bbWeight=1 PerfScore 7.25
 G_M58367_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 20
        ja       G_M58367_IG13
@@ -45,7 +46,7 @@ G_M58367_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
        bt       ecx, ebx
        jae      G_M58367_IG13
        test     rsi, rsi
-       je       SHORT G_M58367_IG06
+       je       SHORT G_M58367_IG05
                        ;; size=28 bbWeight=1 PerfScore 4.25
 G_M58367_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rax, gword ptr [rsi+0x08]
@@ -70,31 +71,23 @@ G_M58367_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        mov      r14, rax
        ; gcrRegs +[r14]
        test     r14, r14
-       je       SHORT G_M58367_IG06
-       test     ebx, ebx
        je       SHORT G_M58367_IG05
-       cmp      ebx, 10
+       test     ebx, ebx
        je       SHORT G_M58367_IG04
+       cmp      ebx, 10
+       je       G_M58367_IG09
        cmp      ebx, 20
-       jne      SHORT G_M58367_IG06
+       jne      SHORT G_M58367_IG05
        mov      rcx, gword ptr [r14+0x20]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M58367_IG17
-                       ;; size=77 bbWeight=0.50 PerfScore 13.12
+       je       G_M58367_IG09
+       jmp      G_M58367_IG17
+                       ;; size=86 bbWeight=0.50 PerfScore 14.12
 G_M58367_IG04:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
-       mov      rcx, gword ptr [r14+0x18]
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M58367_IG16
-                       ;; size=18 bbWeight=0.50 PerfScore 3.12
-G_M58367_IG05:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [r14+0x10]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -103,49 +96,25 @@ G_M58367_IG05:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0
        test     eax, eax
        jne      G_M58367_IG15
                        ;; size=18 bbWeight=0.50 PerfScore 3.12
-G_M58367_IG06:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       xor      r14, r14
-       ; gcrRegs +[r14]
+G_M58367_IG05:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       xor      r15, r15
+       ; gcrRegs +[r15]
        test     bpl, bpl
-       je       SHORT G_M58367_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M58367_IG07:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
+       je       G_M58367_IG10
+                       ;; size=12 bbWeight=1 PerfScore 1.50
+G_M58367_IG06:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M58367_IG08:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref, isz
-       test     ebx, ebx
-       je       SHORT G_M58367_IG09
-       cmp      ebx, 10
-       je       SHORT G_M58367_IG10
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       cmp      ebx, 20
-       cmove    r14, gword ptr [rcx]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=25 bbWeight=0.50 PerfScore 4.88
-G_M58367_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M58367_IG10:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14]
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
                        ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M58367_IG11:        ; bbWeight=1, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
+G_M58367_IG07:        ; bbWeight=1, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
        mov      rcx, qword ptr [(reloc)]      ; System.Configuration.ClientConfigurationHost
        call     [CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      r14, rax
+       ; gcrRegs +[r14]
        mov      ecx, 3
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
        ; gcr arg pop 0
@@ -167,41 +136,78 @@ G_M58367_IG11:        ; bbWeight=1, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000
        ; byrRegs -[rcx]
        lea      rcx, bword ptr [rbp+0x20]
        ; byrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rdx r14]
+       ; gcrRegs -[rdx r15]
        ; byrRegs -[rcx]
        call     [CORINFO_HELP_READYTORUN_NEW]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       mov      rcx, rsi
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+       mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r9, rbp
        ; gcrRegs +[r9]
-       mov      r8, rbx
+       mov      r8, r14
        ; gcrRegs +[r8]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbx rbp r8-r9]
+       ; gcrRegs -[rax rcx rdx rbp r8-r9 r14]
        ; gcr arg pop 0
-       mov      rax, rsi
+       mov      rax, rbx
        ; gcrRegs +[rax]
                        ;; size=98 bbWeight=1 PerfScore 27.50
-G_M58367_IG12:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+G_M58367_IG08:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        ret      
-                       ;; size=11 bbWeight=1 PerfScore 3.75
-G_M58367_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rsi]
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M58367_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx] +[rsi rdi r14]
+       mov      rcx, gword ptr [r14+0x18]
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      G_M58367_IG16
+       jmp      G_M58367_IG04
+                       ;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M58367_IG10:        ; bbWeight=0.50, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14] +[r15]
+       test     ebx, ebx
+       je       SHORT G_M58367_IG11
+       cmp      ebx, 10
+       je       SHORT G_M58367_IG12
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       cmp      ebx, 20
+       cmove    r15, gword ptr [rcx]
+       jmp      G_M58367_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 4.88
+G_M58367_IG11:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
+       jmp      G_M58367_IG07
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M58367_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
+       jmp      G_M58367_IG07
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M58367_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi r15]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
@@ -268,7 +274,7 @@ G_M58367_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=26 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 464, prolog size 10, PerfScore 75.50, instruction count 122, allocated bytes for code 464 (MethodHash=13661c00) for method System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
+; Total bytes of code 495, prolog size 12, PerfScore 79.00, instruction count 126, allocated bytes for code 495 (MethodHash=13661c00) for method System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
 ; ============================================================
 
 Unwind Info:
...

+31 (+6.68%) : 206347.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)

@@ -13,31 +13,32 @@
 ;  V01 arg1         [V01,T05] (  3,  3   )   ubyte  ->  rbp         single-def
 ;  V02 arg2         [V02,T01] ( 10,  7   )     int  ->  rbx         single-def
 ;  V03 arg3         [V03,T04] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String>
-;  V04 loc0         [V04,T06] (  7,  4.50)     ref  ->  r14         class-hnd <System.String>
+;  V04 loc0         [V04,T06] (  7,  4.50)     ref  ->  r15         class-hnd <System.String>
 ;* V05 loc1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Configuration.Configuration>
 ;  V06 loc2         [V06,T09] (  5,  2.50)     ref  ->  r14         class-hnd single-def <System.Configuration.ExeConfigurationFileMap>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T00] (  5, 10   )     ref  ->  rbp         class-hnd exact single-def "dup spill" <<unknown class>>
-;  V09 tmp2         [V09,T07] (  2,  4   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V10 tmp3         [V10,T03] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Configuration.Configuration>
+;  V09 tmp2         [V09,T07] (  2,  4   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V10 tmp3         [V10,T03] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Configuration.Configuration>
 ;  V11 rat0         [V11,T08] (  3,  3   )     ref  ->  rax         "delegate invoke call"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M58367_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      ebp, edx
        mov      ebx, r8d
        mov      rdi, r9
        ; gcrRegs +[rdi]
-                       ;; size=21 bbWeight=1 PerfScore 6.25
+                       ;; size=23 bbWeight=1 PerfScore 7.25
 G_M58367_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, 20
        ja       G_M58367_IG13
@@ -45,7 +46,7 @@ G_M58367_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
        bt       ecx, ebx
        jae      G_M58367_IG13
        test     rsi, rsi
-       je       SHORT G_M58367_IG06
+       je       SHORT G_M58367_IG05
                        ;; size=28 bbWeight=1 PerfScore 4.25
 G_M58367_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rax, gword ptr [rsi+0x08]
@@ -70,31 +71,23 @@ G_M58367_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        mov      r14, rax
        ; gcrRegs +[r14]
        test     r14, r14
-       je       SHORT G_M58367_IG06
-       test     ebx, ebx
        je       SHORT G_M58367_IG05
-       cmp      ebx, 10
+       test     ebx, ebx
        je       SHORT G_M58367_IG04
+       cmp      ebx, 10
+       je       G_M58367_IG09
        cmp      ebx, 20
-       jne      SHORT G_M58367_IG06
+       jne      SHORT G_M58367_IG05
        mov      rcx, gword ptr [r14+0x20]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M58367_IG17
-                       ;; size=77 bbWeight=0.50 PerfScore 13.12
+       je       G_M58367_IG09
+       jmp      G_M58367_IG17
+                       ;; size=86 bbWeight=0.50 PerfScore 14.12
 G_M58367_IG04:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
-       mov      rcx, gword ptr [r14+0x18]
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M58367_IG16
-                       ;; size=18 bbWeight=0.50 PerfScore 3.12
-G_M58367_IG05:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [r14+0x10]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -103,49 +96,25 @@ G_M58367_IG05:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0
        test     eax, eax
        jne      G_M58367_IG15
                        ;; size=18 bbWeight=0.50 PerfScore 3.12
-G_M58367_IG06:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       xor      r14, r14
-       ; gcrRegs +[r14]
+G_M58367_IG05:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       xor      r15, r15
+       ; gcrRegs +[r15]
        test     bpl, bpl
-       je       SHORT G_M58367_IG08
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M58367_IG07:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
+       je       G_M58367_IG10
+                       ;; size=12 bbWeight=1 PerfScore 1.50
+G_M58367_IG06:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M58367_IG08:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref, isz
-       test     ebx, ebx
-       je       SHORT G_M58367_IG09
-       cmp      ebx, 10
-       je       SHORT G_M58367_IG10
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       cmp      ebx, 20
-       cmove    r14, gword ptr [rcx]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=25 bbWeight=0.50 PerfScore 4.88
-G_M58367_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
-       jmp      SHORT G_M58367_IG11
-                       ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M58367_IG10:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14]
-       mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
                        ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M58367_IG11:        ; bbWeight=1, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, byref
+G_M58367_IG07:        ; bbWeight=1, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
        mov      rcx, qword ptr [(reloc)]      ; System.Configuration.ClientConfigurationHost
        call     [CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      r14, rax
+       ; gcrRegs +[r14]
        mov      ecx, 3
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
        ; gcr arg pop 0
@@ -167,41 +136,78 @@ G_M58367_IG11:        ; bbWeight=1, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000
        ; byrRegs -[rcx]
        lea      rcx, bword ptr [rbp+0x20]
        ; byrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, r15
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rdx r14]
+       ; gcrRegs -[rdx r15]
        ; byrRegs -[rcx]
        call     [CORINFO_HELP_READYTORUN_NEW]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       mov      rcx, rsi
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+       mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r9, rbp
        ; gcrRegs +[r9]
-       mov      r8, rbx
+       mov      r8, r14
        ; gcrRegs +[r8]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbx rbp r8-r9]
+       ; gcrRegs -[rax rcx rdx rbp r8-r9 r14]
        ; gcr arg pop 0
-       mov      rax, rsi
+       mov      rax, rbx
        ; gcrRegs +[rax]
                        ;; size=98 bbWeight=1 PerfScore 27.50
-G_M58367_IG12:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+G_M58367_IG08:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        ret      
-                       ;; size=11 bbWeight=1 PerfScore 3.75
-G_M58367_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rsi]
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M58367_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx] +[rsi rdi r14]
+       mov      rcx, gword ptr [r14+0x18]
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      G_M58367_IG16
+       jmp      G_M58367_IG04
+                       ;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M58367_IG10:        ; bbWeight=0.50, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r14] +[r15]
+       test     ebx, ebx
+       je       SHORT G_M58367_IG11
+       cmp      ebx, 10
+       je       SHORT G_M58367_IG12
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       cmp      ebx, 20
+       cmove    r15, gword ptr [rcx]
+       jmp      G_M58367_IG07
+                       ;; size=28 bbWeight=0.50 PerfScore 4.88
+G_M58367_IG11:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
+       jmp      G_M58367_IG07
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M58367_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r15]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      r15, gword ptr [rcx]
+       ; gcrRegs +[r15]
+       jmp      G_M58367_IG07
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M58367_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi r15]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
@@ -268,7 +274,7 @@ G_M58367_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=26 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 464, prolog size 10, PerfScore 75.50, instruction count 122, allocated bytes for code 464 (MethodHash=13661c00) for method System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
+; Total bytes of code 495, prolog size 12, PerfScore 79.00, instruction count 126, allocated bytes for code 495 (MethodHash=13661c00) for method System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
 ; ============================================================
 
 Unwind Info:
...

+21 (+7.92%) : 192478.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)

@@ -8,25 +8,26 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 18   )     ref  ->  rbx         this class-hnd single-def <Microsoft.VisualBasic.FileIO.TextFieldParser>
-;  V01 loc0         [V01,T14] (  3,  2   )   ubyte  ->  rax        
+;  V00 this         [V00,T06] ( 13, 18.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.VisualBasic.FileIO.TextFieldParser>
+;  V01 loc0         [V01,T15] (  3,  2   )   ubyte  ->  rax        
 ;* V02 loc1         [V02    ] (  0,  0   )     int  ->  zero-ref   
-;  V03 loc2         [V03,T13] (  3,  2.50)     int  ->  rcx         single-def
-;  V04 loc3         [V04,T15] (  2,  1   )     int  ->  rsi         single-def
+;  V03 loc2         [V03,T14] (  3,  2.50)     int  ->  rcx         single-def
+;  V04 loc3         [V04,T16] (  2,  1   )     int  ->  rsi         single-def
 ;  V05 loc4         [V05,T11] (  3,  5   )     int  ->  rdi         single-def
 ;  V06 loc5         [V06,T00] (  8, 25   )     int  ->  rsi        
-;  V07 loc6         [V07,T16] (  2,  1   )     int  ->  rsi         single-def
-;  V08 loc7         [V08,T12] (  2,  4.50)     int  ->  rax         single-def
-;  V09 loc8         [V09,T06] (  7, 14.50)     int  ->  rsi        
+;  V07 loc6         [V07,T17] (  2,  1   )     int  ->  rsi         single-def
+;  V08 loc7         [V08,T12] (  3,  5   )     int  ->  rax         single-def
+;  V09 loc8         [V09,T01] (  8, 25   )     int  ->  rsi        
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T01] (  3, 24   )     ref  ->  rcx         "arr expr"
-;  V12 tmp2         [V12,T02] (  3, 24   )     ref  ->   r8         "arr expr"
-;  V13 tmp3         [V13,T04] (  2, 16   )     ref  ->  rcx         "argument with side effect"
-;  V14 tmp4         [V14,T05] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V15 tmp5         [V15,T07] (  3, 12   )     ref  ->  rcx         "arr expr"
-;  V16 tmp6         [V16,T08] (  3, 12   )     ref  ->   r8         "arr expr"
-;  V17 cse0         [V17,T09] (  3, 12   )    long  ->  rdx         "CSE - aggressive"
-;  V18 cse1         [V18,T10] (  3,  6   )    long  ->  rdx         "CSE - aggressive"
+;  V11 tmp1         [V11,T02] (  3, 24   )     ref  ->  rcx         "arr expr"
+;  V12 tmp2         [V12,T03] (  3, 24   )     ref  ->   r8         "arr expr"
+;  V13 tmp3         [V13,T07] (  2, 16   )     ref  ->  rcx         "argument with side effect"
+;  V14 tmp4         [V14,T08] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V15 tmp5         [V15,T04] (  3, 24   )     ref  ->  rdx         "arr expr"
+;  V16 tmp6         [V16,T05] (  3, 24   )     ref  ->  r10         "arr expr"
+;  V17 cse0         [V17,T13] (  2,  4.50)     ref  ->  rcx         hoist "CSE - aggressive"
+;  V18 cse1         [V18,T09] (  3, 12   )    long  ->  rdx         "CSE - aggressive"
+;  V19 cse2         [V19,T10] (  3, 12   )    long  ->   r8         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -48,26 +49,9 @@ G_M10517_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        jne      G_M10517_IG10
        cmp      gword ptr [rbx+0x20], 0
        je       G_M10517_IG10
-       mov      rcx, gword ptr [rbx+0x30]
-       ; gcrRegs +[rcx]
-       lea      r11, [(reloc)]      ; function address
-       xor      edx, edx
-       cmp      dword ptr [rcx], ecx
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      esi, eax
-       mov      rcx, gword ptr [rbx+0x30]
-       ; gcrRegs +[rcx]
-       lea      r11, [(reloc)]      ; function address
-       xor      edx, edx
-       cmp      dword ptr [rcx], ecx
-       call     [r11]<unknown method>
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       jmp      G_M10517_IG09
-                       ;; size=63 bbWeight=0.50 PerfScore 12.50
-G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      G_M10517_IG08
+                       ;; size=25 bbWeight=0.50 PerfScore 3.62
+G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      gword ptr [rbx+0x28], 0
        je       G_M10517_IG10
        mov      rcx, gword ptr [rbx+0x38]
@@ -89,19 +73,19 @@ G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      edi, eax
        cmp      esi, edi
-       jg       SHORT G_M10517_IG10
-                       ;; size=55 bbWeight=0.50 PerfScore 11.62
+       jg       G_M10517_IG10
+                       ;; size=59 bbWeight=0.50 PerfScore 11.62
 G_M10517_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbx+0x28]
        ; gcrRegs +[rcx]
        cmp      esi, dword ptr [rcx+0x08]
-       jae      SHORT G_M10517_IG13
+       jae      G_M10517_IG13
        mov      edx, esi
        mov      rcx, gword ptr [rcx+8*rdx+0x10]
        mov      r8, gword ptr [rbx+0x38]
        ; gcrRegs +[r8]
        cmp      esi, dword ptr [r8+0x08]
-       jae      SHORT G_M10517_IG13
+       jae      G_M10517_IG13
        mov      rdx, gword ptr [r8+8*rdx+0x10]
        ; gcrRegs +[rdx]
        xor      r8d, r8d
@@ -115,7 +99,7 @@ G_M10517_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jo       SHORT G_M10517_IG12
        cmp      esi, edi
        jle      SHORT G_M10517_IG05
-                       ;; size=53 bbWeight=4 PerfScore 93.00
+                       ;; size=61 bbWeight=4 PerfScore 93.00
 G_M10517_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
        jmp      SHORT G_M10517_IG10
@@ -124,31 +108,51 @@ G_M10517_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      eax, 1
        jmp      SHORT G_M10517_IG11
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M10517_IG08:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M10517_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
+       mov      rcx, gword ptr [rbx+0x30]
+       ; gcrRegs +[rcx]
+       lea      r11, [(reloc)]      ; function address
+       xor      edx, edx
+       cmp      dword ptr [rcx], ecx
+       call     [r11]<unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       mov      esi, eax
+       mov      rcx, gword ptr [rbx+0x30]
+       ; gcrRegs +[rcx]
+       lea      r11, [(reloc)]      ; function address
+       xor      edx, edx
+       cmp      dword ptr [rcx], ecx
+       call     [r11]<unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       cmp      esi, eax
+       jg       SHORT G_M10517_IG10
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
-       cmp      esi, dword ptr [rcx+0x08]
+                       ;; size=46 bbWeight=0.50 PerfScore 10.50
+G_M10517_IG09:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
+       mov      rdx, rcx
+       ; gcrRegs +[rdx]
+       cmp      esi, dword ptr [rdx+0x08]
        jae      SHORT G_M10517_IG13
-       mov      edx, esi
-       mov      ecx, dword ptr [rcx+4*rdx+0x10]
-       ; gcrRegs -[rcx]
-       mov      r8, gword ptr [rbx+0x30]
-       ; gcrRegs +[r8]
-       cmp      esi, dword ptr [r8+0x08]
+       mov      r8d, esi
+       mov      edx, dword ptr [rdx+4*r8+0x10]
+       ; gcrRegs -[rdx]
+       mov      r10, gword ptr [rbx+0x30]
+       ; gcrRegs +[r10]
+       cmp      esi, dword ptr [r10+0x08]
        jae      SHORT G_M10517_IG13
-       cmp      ecx, dword ptr [r8+4*rdx+0x10]
+       cmp      edx, dword ptr [r10+4*r8+0x10]
        jne      SHORT G_M10517_IG07
        add      esi, 1
        jo       SHORT G_M10517_IG12
-                       ;; size=37 bbWeight=2 PerfScore 39.00
-G_M10517_IG09:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r8]
        cmp      esi, eax
-       jle      SHORT G_M10517_IG08
-                       ;; size=4 bbWeight=4 PerfScore 5.00
+       jle      SHORT G_M10517_IG09
+                       ;; size=42 bbWeight=4 PerfScore 76.00
 G_M10517_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[rcx rbx r10]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M10517_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
@@ -169,7 +173,7 @@ G_M10517_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 265, prolog size 10, PerfScore 172.88, instruction count 84, allocated bytes for code 265 (MethodHash=2a83d6ea) for method Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
+; Total bytes of code 286, prolog size 10, PerfScore 206.50, instruction count 87, allocated bytes for code 286 (MethodHash=2a83d6ea) for method Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.windows.x64.checked.mch

-30 (-10.14%) : 242831.dasm - System.Security.Cryptography.DSA:TrySignData(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)

@@ -13,15 +13,15 @@
 ;  V02 arg2         [V02,T00] (  6,  9   )   byref  ->  rbx         ld-addr-op single-def
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Security.Cryptography.HashAlgorithmName>
 ;  V04 arg4         [V04,T10] (  2,  1   )   byref  ->  [rsp+0xB0]  single-def
-;  V05 loc0         [V05    ] (  2,  1.50)     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V05 loc0         [V05    ] (  2,  1.50)     int  ->  [rsp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V10 tmp4         [V10,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp5         [V11,T04] (  4,  4   )     int  ->  r14         "Inlining Arg"
+;  V11 tmp5         [V11,T04] (  4,  4   )     int  ->  rbp         "Inlining Arg"
 ;* V12 tmp6         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V13 tmp7         [V13,T08] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V13 tmp7         [V13,T08] (  2,  2   )   byref  ->  r14         single-def "Inlining Arg"
 ;* V14 tmp8         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp9         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp10        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
@@ -43,55 +43,153 @@
 ;* V32 tmp26        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp27        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp28        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp29        [V35,T11] (  2,  1   )   byref  ->  r15         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V36 tmp30        [V36,T12] (  2,  1   )     int  ->  r14         "field V17._length (fldOffset=0x8)" P-INDEP
+;  V35 tmp29        [V35,T11] (  2,  1   )   byref  ->  r14         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V36 tmp30        [V36,T12] (  2,  1   )     int  ->  rbp         "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp31        [V37    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V38 tmp32        [V38    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ubyte]>
 ;  V39 tmp33        [V39,T15] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V40 tmp34        [V40    ] (  2,  4   )  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
+;  V40 tmp34        [V40    ] (  2,  4   )  struct (16) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
 ;* V41 tmp35        [V41,T09] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V42 tmp36        [V42,T05] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
-;  V43 tmp37        [V43    ] (  3,  3   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
+;  V43 tmp37        [V43    ] (  3,  3   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V44 tmp38        [V44,T13] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V45 cse0         [V45,T07] (  3,  2.50)    long  ->  rdi         "CSE - aggressive"
-;  V46 cse1         [V46,T06] (  5,  2.50)     ref  ->  r13         "CSE - moderate"
+;  V46 cse1         [V46,T06] (  5,  2.50)     ref  ->  r15         "CSE - moderate"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M62408_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
-       push     r13
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 80
+       sub      rsp, 88
        vzeroupper 
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
-       mov      qword ptr [rsp+0x40], rax
+       vmovdqu  ymmword ptr [rsp+0x30], ymm4
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, r8
        ; byrRegs +[rbx]
        mov      rdi, r9
        ; gcrRegs +[rdi]
-                       ;; size=48 bbWeight=1 PerfScore 13.58
-G_M62408_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref, isz
+                       ;; size=34 bbWeight=1 PerfScore 10.33
+G_M62408_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref
        ; byrRegs +[rdx]
        test     rdi, rdi
-       je       SHORT G_M62408_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M62408_IG03:        ; bbWeight=0.46, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref, isz
+       je       G_M62408_IG13
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M62408_IG03:        ; bbWeight=0.46, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref
        cmp      dword ptr [rdi+0x08], 0
-       jne      SHORT G_M62408_IG05
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M62408_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       je       G_M62408_IG13
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M62408_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref, nogc
+       vmovdqu  xmm0, xmmword ptr [rbx]
+       vmovdqu  xmmword ptr [rsp+0x40], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M62408_IG05:        ; bbWeight=1, isz, extend
+       lea      rcx, [rsp+0x50]
+       mov      qword ptr [rsp+0x20], rcx
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       lea      r8, [rsp+0x40]
+       mov      r9, rdi
+       ; gcrRegs +[r9]
+       mov      rax, qword ptr [rsi]
+       mov      rdi, qword ptr [rax+0x70]
+       ; gcrRegs -[rdi]
+       call     [rdi+0x18]<unknown method>
+       ; gcrRegs -[rcx r9]
+       ; byrRegs -[rdx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M62408_IG11
+                       ;; size=35 bbWeight=1 PerfScore 10.75
+G_M62408_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      ebp, dword ptr [rsp+0x50]
+       cmp      ebp, dword ptr [rbx+0x08]
+       jbe      SHORT G_M62408_IG08
+                       ;; size=9 bbWeight=0.50 PerfScore 2.50
+G_M62408_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
-       ; byrRegs -[rdx rbx]
+       ; byrRegs -[rbx]
+       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M62408_IG08:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       ; gcrRegs +[rsi]
+       ; byrRegs +[rbx]
+       mov      r14, bword ptr [rbx]
+       ; byrRegs +[r14]
+       test     ebp, ebp
+       jge      SHORT G_M62408_IG09
+       mov      r15, 0xD1FFAB1E
+       ; gcrRegs +[r15]
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       mov      rdx, r15
+       ; gcrRegs +[rdx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       mov      rcx, r15
+       ; gcrRegs +[rcx]
+       mov      rdx, r15
+       ; gcrRegs +[rdx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx r15]
+       ; gcr arg pop 0
+                       ;; size=41 bbWeight=0.50 PerfScore 5.25
+G_M62408_IG09:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=4008 {rbx r14}, byref, isz
+       mov      bword ptr [rsp+0x30], r14
+       mov      dword ptr [rsp+0x38], ebp
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       lea      rdx, [rsp+0x30]
+       mov      r8, rbx
+       ; byrRegs +[r8]
+       mov      r9, bword ptr [rsp+0xB0]
+       ; byrRegs +[r9]
+       call     [rdi+0x08]<unknown method>
+       ; gcrRegs -[rcx rsi]
+       ; byrRegs -[rbx r8-r9 r14]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       SHORT G_M62408_IG11
+       mov      eax, 1
+                       ;; size=40 bbWeight=0.50 PerfScore 4.25
+G_M62408_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 88
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       ret      
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M62408_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       xor      eax, eax
+       mov      rbx, bword ptr [rsp+0xB0]
+       ; byrRegs +[rbx]
+       mov      dword ptr [rbx], eax
+                       ;; size=12 bbWeight=0.50 PerfScore 1.12
+G_M62408_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       ; byrRegs -[rbx]
+       add      rsp, 88
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       ret      
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M62408_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rdi]
        mov      ecx, 0x43B1
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -106,119 +204,8 @@ G_M62408_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        int3     
                        ;; size=33 bbWeight=0 PerfScore 0.00
-G_M62408_IG05:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=000C {rdx rbx}, byref, nogc
-       ; gcrRegs +[rsi rdi]
-       ; byrRegs +[rdx rbx]
-       vmovdqu  xmm0, xmmword ptr [rbx]
-       vmovdqu  xmmword ptr [rsp+0x38], xmm0
-                       ;; size=10 bbWeight=1 PerfScore 5.00
-G_M62408_IG06:        ; bbWeight=1, extend
-       lea      rcx, [rsp+0x48]
-       mov      qword ptr [rsp+0x20], rcx
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       lea      r8, [rsp+0x38]
-       mov      r9, rdi
-       ; gcrRegs +[r9]
-       mov      rax, qword ptr [rsi]
-       mov      rdi, qword ptr [rax+0x70]
-       ; gcrRegs -[rdi]
-       call     [rdi+0x18]<unknown method>
-       ; gcrRegs -[rcx r9]
-       ; byrRegs -[rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       G_M62408_IG12
-                       ;; size=39 bbWeight=1 PerfScore 10.75
-G_M62408_IG07:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rbp, bword ptr [rsp+0xB0]
-       ; byrRegs +[rbp]
-       mov      r14d, dword ptr [rsp+0x48]
-       cmp      r14d, dword ptr [rbx+0x08]
-       jbe      SHORT G_M62408_IG09
-                       ;; size=19 bbWeight=0.50 PerfScore 3.00
-G_M62408_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
-       ; byrRegs -[rbx rbp]
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M62408_IG09:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0028 {rbx rbp}, byref, isz
-       ; gcrRegs +[rsi]
-       ; byrRegs +[rbx rbp]
-       mov      r15, bword ptr [rbx]
-       ; byrRegs +[r15]
-       test     r14d, r14d
-       jge      SHORT G_M62408_IG10
-       mov      r13, 0xD1FFAB1E
-       ; gcrRegs +[r13]
-       mov      rcx, r13
-       ; gcrRegs +[rcx]
-       mov      rdx, r13
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
...

-28 (-9.18%) : 204251.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)

@@ -17,14 +17,14 @@
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;  V08 tmp2         [V08,T03] (  3,  8   )     ref  ->  rdx         class-hnd exact "impAppendStmt" <System.Version>
-;  V09 tmp3         [V09,T10] (  4,  4   )     ref  ->  r12         class-hnd exact "dup spill" <<unknown class>>
+;  V09 tmp3         [V09,T10] (  4,  4   )     ref  ->  rsi         class-hnd exact "dup spill" <<unknown class>>
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref   
-;  V11 tmp5         [V11,T04] (  7,  7   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs>
-;  V12 tmp6         [V12,T11] (  2,  2   )     ref  ->  r13         class-hnd exact "impAppendStmt" <<unknown class>>
+;  V11 tmp5         [V11,T04] (  7,  7   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs>
+;  V12 tmp6         [V12,T11] (  2,  2   )     ref  ->  rbx         class-hnd exact "impAppendStmt" <<unknown class>>
 ;  V13 tmp7         [V13,T01] (  3, 12   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.Version>
 ;  V14 tmp8         [V14,T13] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Version>
-;  V16 cse0         [V16,T12] (  3,  1.50)     ref  ->  r13         "CSE - moderate"
+;  V16 cse0         [V16,T12] (  3,  1.50)     ref  ->  rbx         "CSE - moderate"
 ;  V17 cse1         [V17,T08] (  3,  6   )     int  ->  r14         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
@@ -32,8 +32,6 @@
 G_M22614_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
-       push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
@@ -43,8 +41,8 @@ G_M22614_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=22 bbWeight=1 PerfScore 8.75
-G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+                       ;; size=18 bbWeight=1 PerfScore 6.75
+G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -71,9 +69,9 @@ G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        xor      ebp, ebp
        mov      r14d, dword ptr [rbx+0x08]
        test     r14d, r14d
-       jle      G_M22614_IG12
-                       ;; size=59 bbWeight=1 PerfScore 18.75
-G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       jle      SHORT G_M22614_IG08
+                       ;; size=55 bbWeight=1 PerfScore 18.75
+G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      ecx, ebp
        mov      r15, gword ptr [rbx+8*rcx+0x10]
@@ -87,8 +85,8 @@ G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M22614_IG11
-                       ;; size=35 bbWeight=4 PerfScore 43.00
+       je       SHORT G_M22614_IG07
+                       ;; size=31 bbWeight=4 PerfScore 43.00
 G_M22614_IG04:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      rdx, gword ptr [r15+0x30]
        ; gcrRegs +[rdx]
@@ -110,94 +108,89 @@ G_M22614_IG06:        ; bbWeight=2, gcrefRegs=80CE {rcx rdx rbx rsi rdi r15}, by
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jge      SHORT G_M22614_IG11
+       jl       SHORT G_M22614_IG10
                        ;; size=10 bbWeight=2 PerfScore 8.50
-G_M22614_IG07:        ; bbWeight=0.50, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rdi]
-       mov      r13, gword ptr [rsi+0x08]
-       ; gcrRegs +[r13]
-       mov      r12, gword ptr [r13+0x40]
-       ; gcrRegs +[r12]
-       test     r12, r12
-       je       SHORT G_M22614_IG09
-       mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[rsi] +[rax]
-       ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      dword ptr [rbx+0x28], 5
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbx+0x10], rcx
-       xor      rcx, rcx
-       mov      gword ptr [rbx+0x08], rcx
-                       ;; size=58 bbWeight=0.50 PerfScore 5.12
-G_M22614_IG08:        ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rcx]
-       mov      gword ptr [rbx+0x18], rcx
-       mov      rdx, gword ptr [r15+0x30]
-       ; gcrRegs +[rdx]
-       lea      rcx, bword ptr [rbx+0x20]
-       ; byrRegs +[rcx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r15]
-       ; byrRegs -[rcx]
-       mov      rdx, r13
-       ; gcrRegs +[rdx]
-       mov      r8, rbx
-       ; gcrRegs +[r8]
-       mov      rcx, gword ptr [r12+0x08]
-       ; gcrRegs +[rcx]
-       call     [r12+0x18]<unknown method>
-       ; gcrRegs -[rcx rdx rbx r8 r12-r13]
-       ; gcr arg pop 0
-                       ;; size=33 bbWeight=0.50 PerfScore 5.00
-G_M22614_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M22614_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22614_IG07:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r15]
+       inc      ebp
+       cmp      r14d, ebp
+       jg       SHORT G_M22614_IG03
+                       ;; size=7 bbWeight=4 PerfScore 6.00
+G_M22614_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rsi rdi]
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M22614_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M22614_IG11:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs +[rbx rsi rdi]
-       inc      ebp
-       cmp      r14d, ebp
-       jg       G_M22614_IG03
-                       ;; size=11 bbWeight=4 PerfScore 6.00
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M22614_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rsi r15]
+       mov      rbx, gword ptr [rsi+0x08]
+       ; gcrRegs +[rbx]
+       mov      rsi, gword ptr [rbx+0x40]
+       test     rsi, rsi
+       je       SHORT G_M22614_IG12
+       mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       mov      dword ptr [rdi+0x28], 5
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rdi+0x10], rcx
+       xor      rcx, rcx
+       mov      gword ptr [rdi+0x08], rcx
+                       ;; size=58 bbWeight=0.50 PerfScore 5.12
+G_M22614_IG11:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax rcx]
+       mov      gword ptr [rdi+0x18], rcx
+       mov      rdx, gword ptr [r15+0x30]
+       ; gcrRegs +[rdx]
+       lea      rcx, bword ptr [rdi+0x20]
+       ; byrRegs +[rcx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rdx r15]
+       ; byrRegs -[rcx]
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      r8, rdi
+       ; gcrRegs +[r8]
+       mov      rcx, gword ptr [rsi+0x08]
+       ; gcrRegs +[rcx]
+       call     [rsi+0x18]<unknown method>
+       ; gcrRegs -[rcx rdx rbx rsi rdi r8]
+       ; gcr arg pop 0
+                       ;; size=30 bbWeight=0.50 PerfScore 5.00
 G_M22614_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi rdi]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M22614_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0.50 PerfScore 2.62
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M22614_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rsi rdi r15]
        test     eax, eax
-       jne      G_M22614_IG07
-       jmp      SHORT G_M22614_IG11
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+       jne      SHORT G_M22614_IG10
+       jmp      G_M22614_IG07
+                       ;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 305, prolog size 16, PerfScore 111.12, instruction count 93, allocated bytes for code 305 (MethodHash=7902a7a9) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
+; Total bytes of code 277, prolog size 12, PerfScore 108.12, instruction count 87, allocated bytes for code 277 (MethodHash=7902a7a9) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -205,17 +198,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x10
-  CountOfUnwindCodes: 9
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

-28 (-9.18%) : 164436.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)

@@ -17,14 +17,14 @@
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;  V08 tmp2         [V08,T03] (  3,  8   )     ref  ->  rdx         class-hnd exact "impAppendStmt" <System.Version>
-;  V09 tmp3         [V09,T10] (  4,  4   )     ref  ->  r12         class-hnd exact "dup spill" <<unknown class>>
+;  V09 tmp3         [V09,T10] (  4,  4   )     ref  ->  rsi         class-hnd exact "dup spill" <<unknown class>>
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref   
-;  V11 tmp5         [V11,T04] (  7,  7   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs>
-;  V12 tmp6         [V12,T11] (  2,  2   )     ref  ->  r13         class-hnd exact "impAppendStmt" <<unknown class>>
+;  V11 tmp5         [V11,T04] (  7,  7   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs>
+;  V12 tmp6         [V12,T11] (  2,  2   )     ref  ->  rbx         class-hnd exact "impAppendStmt" <<unknown class>>
 ;  V13 tmp7         [V13,T01] (  3, 12   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.Version>
 ;  V14 tmp8         [V14,T13] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Version>
-;  V16 cse0         [V16,T12] (  3,  1.50)     ref  ->  r13         "CSE - moderate"
+;  V16 cse0         [V16,T12] (  3,  1.50)     ref  ->  rbx         "CSE - moderate"
 ;  V17 cse1         [V17,T08] (  3,  6   )     int  ->  r14         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
@@ -32,8 +32,6 @@
 G_M22614_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
-       push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
@@ -43,8 +41,8 @@ G_M22614_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=22 bbWeight=1 PerfScore 8.75
-G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+                       ;; size=18 bbWeight=1 PerfScore 6.75
+G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -71,9 +69,9 @@ G_M22614_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        xor      ebp, ebp
        mov      r14d, dword ptr [rbx+0x08]
        test     r14d, r14d
-       jle      G_M22614_IG12
-                       ;; size=59 bbWeight=1 PerfScore 18.75
-G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       jle      SHORT G_M22614_IG08
+                       ;; size=55 bbWeight=1 PerfScore 18.75
+G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      ecx, ebp
        mov      r15, gword ptr [rbx+8*rcx+0x10]
@@ -87,8 +85,8 @@ G_M22614_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M22614_IG11
-                       ;; size=35 bbWeight=4 PerfScore 43.00
+       je       SHORT G_M22614_IG07
+                       ;; size=31 bbWeight=4 PerfScore 43.00
 G_M22614_IG04:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      rdx, gword ptr [r15+0x30]
        ; gcrRegs +[rdx]
@@ -110,94 +108,89 @@ G_M22614_IG06:        ; bbWeight=2, gcrefRegs=80CE {rcx rdx rbx rsi rdi r15}, by
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jge      SHORT G_M22614_IG11
+       jl       SHORT G_M22614_IG10
                        ;; size=10 bbWeight=2 PerfScore 8.50
-G_M22614_IG07:        ; bbWeight=0.50, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rdi]
-       mov      r13, gword ptr [rsi+0x08]
-       ; gcrRegs +[r13]
-       mov      r12, gword ptr [r13+0x40]
-       ; gcrRegs +[r12]
-       test     r12, r12
-       je       SHORT G_M22614_IG09
-       mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[rsi] +[rax]
-       ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      dword ptr [rbx+0x28], 5
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbx+0x10], rcx
-       xor      rcx, rcx
-       mov      gword ptr [rbx+0x08], rcx
-                       ;; size=58 bbWeight=0.50 PerfScore 5.12
-G_M22614_IG08:        ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rcx]
-       mov      gword ptr [rbx+0x18], rcx
-       mov      rdx, gword ptr [r15+0x30]
-       ; gcrRegs +[rdx]
-       lea      rcx, bword ptr [rbx+0x20]
-       ; byrRegs +[rcx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r15]
-       ; byrRegs -[rcx]
-       mov      rdx, r13
-       ; gcrRegs +[rdx]
-       mov      r8, rbx
-       ; gcrRegs +[r8]
-       mov      rcx, gword ptr [r12+0x08]
-       ; gcrRegs +[rcx]
-       call     [r12+0x18]<unknown method>
-       ; gcrRegs -[rcx rdx rbx r8 r12-r13]
-       ; gcr arg pop 0
-                       ;; size=33 bbWeight=0.50 PerfScore 5.00
-G_M22614_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M22614_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+G_M22614_IG07:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r15]
+       inc      ebp
+       cmp      r14d, ebp
+       jg       SHORT G_M22614_IG03
+                       ;; size=7 bbWeight=4 PerfScore 6.00
+G_M22614_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rsi rdi]
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M22614_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M22614_IG11:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs +[rbx rsi rdi]
-       inc      ebp
-       cmp      r14d, ebp
-       jg       G_M22614_IG03
-                       ;; size=11 bbWeight=4 PerfScore 6.00
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M22614_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs +[rsi r15]
+       mov      rbx, gword ptr [rsi+0x08]
+       ; gcrRegs +[rbx]
+       mov      rsi, gword ptr [rbx+0x40]
+       test     rsi, rsi
+       je       SHORT G_M22614_IG12
+       mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.Diagnostics.AnalyzerLoadFailureEventArgs
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       mov      dword ptr [rdi+0x28], 5
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rdi+0x10], rcx
+       xor      rcx, rcx
+       mov      gword ptr [rdi+0x08], rcx
+                       ;; size=58 bbWeight=0.50 PerfScore 5.12
+G_M22614_IG11:        ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax rcx]
+       mov      gword ptr [rdi+0x18], rcx
+       mov      rdx, gword ptr [r15+0x30]
+       ; gcrRegs +[rdx]
+       lea      rcx, bword ptr [rdi+0x20]
+       ; byrRegs +[rcx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rdx r15]
+       ; byrRegs -[rcx]
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       mov      r8, rdi
+       ; gcrRegs +[r8]
+       mov      rcx, gword ptr [rsi+0x08]
+       ; gcrRegs +[rcx]
+       call     [rsi+0x18]<unknown method>
+       ; gcrRegs -[rcx rdx rbx rsi rdi r8]
+       ; gcr arg pop 0
+                       ;; size=30 bbWeight=0.50 PerfScore 5.00
 G_M22614_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi rdi]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M22614_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0.50 PerfScore 2.62
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M22614_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rsi rdi r15]
        test     eax, eax
-       jne      G_M22614_IG07
-       jmp      SHORT G_M22614_IG11
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+       jne      SHORT G_M22614_IG10
+       jmp      G_M22614_IG07
+                       ;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 305, prolog size 16, PerfScore 111.12, instruction count 93, allocated bytes for code 305 (MethodHash=7902a7a9) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
+; Total bytes of code 277, prolog size 12, PerfScore 108.12, instruction count 87, allocated bytes for code 277 (MethodHash=7902a7a9) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -205,17 +198,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x10
-  CountOfUnwindCodes: 9
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

+18 (+7.29%) : 167947.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)

@@ -7,25 +7,26 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 18   )     ref  ->  rbx         this class-hnd single-def <Microsoft.VisualBasic.FileIO.TextFieldParser>
-;  V01 loc0         [V01,T14] (  3,  2   )   ubyte  ->  rax        
+;  V00 this         [V00,T06] ( 13, 18.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.VisualBasic.FileIO.TextFieldParser>
+;  V01 loc0         [V01,T15] (  3,  2   )   ubyte  ->  rax        
 ;* V02 loc1         [V02    ] (  0,  0   )     int  ->  zero-ref   
-;  V03 loc2         [V03,T13] (  3,  2.50)     int  ->  rcx         single-def
-;  V04 loc3         [V04,T15] (  2,  1   )     int  ->  rsi         single-def
+;  V03 loc2         [V03,T14] (  3,  2.50)     int  ->  rcx         single-def
+;  V04 loc3         [V04,T16] (  2,  1   )     int  ->  rsi         single-def
 ;  V05 loc4         [V05,T11] (  3,  5   )     int  ->  rdi         single-def
 ;  V06 loc5         [V06,T00] (  8, 25   )     int  ->  rsi        
-;  V07 loc6         [V07,T16] (  2,  1   )     int  ->  rsi         single-def
-;  V08 loc7         [V08,T12] (  2,  4.50)     int  ->  rax         single-def
-;  V09 loc8         [V09,T06] (  7, 14.50)     int  ->  rsi        
+;  V07 loc6         [V07,T17] (  2,  1   )     int  ->  rsi         single-def
+;  V08 loc7         [V08,T12] (  3,  5   )     int  ->  rax         single-def
+;  V09 loc8         [V09,T01] (  8, 25   )     int  ->  rsi        
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T01] (  3, 24   )     ref  ->  rcx         "arr expr"
-;  V12 tmp2         [V12,T02] (  3, 24   )     ref  ->   r8         "arr expr"
-;  V13 tmp3         [V13,T04] (  2, 16   )     ref  ->  rcx         "argument with side effect"
-;  V14 tmp4         [V14,T05] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V15 tmp5         [V15,T07] (  3, 12   )     ref  ->  rcx         "arr expr"
-;  V16 tmp6         [V16,T08] (  3, 12   )     ref  ->   r8         "arr expr"
-;  V17 cse0         [V17,T09] (  3, 12   )    long  ->  rdx         "CSE - aggressive"
-;  V18 cse1         [V18,T10] (  3,  6   )    long  ->  rdx         "CSE - aggressive"
+;  V11 tmp1         [V11,T02] (  3, 24   )     ref  ->  rcx         "arr expr"
+;  V12 tmp2         [V12,T03] (  3, 24   )     ref  ->   r8         "arr expr"
+;  V13 tmp3         [V13,T07] (  2, 16   )     ref  ->  rcx         "argument with side effect"
+;  V14 tmp4         [V14,T08] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V15 tmp5         [V15,T04] (  3, 24   )     ref  ->  rdx         "arr expr"
+;  V16 tmp6         [V16,T05] (  3, 24   )     ref  ->  r10         "arr expr"
+;  V17 cse0         [V17,T13] (  2,  4.50)     ref  ->  rcx         hoist "CSE - aggressive"
+;  V18 cse1         [V18,T09] (  3, 12   )    long  ->  rdx         "CSE - aggressive"
+;  V19 cse2         [V19,T10] (  3, 12   )    long  ->   r8         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -42,29 +43,14 @@ G_M10517_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        test     ecx, ecx
        je       SHORT G_M10517_IG04
                        ;; size=10 bbWeight=1 PerfScore 3.25
-G_M10517_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M10517_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 1
        jne      G_M10517_IG10
        cmp      gword ptr [rbx+0x20], 0
        je       G_M10517_IG10
-       mov      rcx, gword ptr [rbx+0x30]
-       ; gcrRegs +[rcx]
-       xor      edx, edx
-       cmp      dword ptr [rcx], ecx
-       call     [System.Array:GetLowerBound(int):int:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       mov      esi, eax
-       mov      rcx, gword ptr [rbx+0x30]
-       ; gcrRegs +[rcx]
-       xor      edx, edx
-       cmp      dword ptr [rcx], ecx
-       call     [System.Array:GetUpperBound(int):int:this]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       jmp      G_M10517_IG09
-                       ;; size=55 bbWeight=0.50 PerfScore 12.00
-G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M10517_IG08
+                       ;; size=22 bbWeight=0.50 PerfScore 3.62
+G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      gword ptr [rbx+0x28], 0
        je       G_M10517_IG10
        mov      rcx, gword ptr [rbx+0x38]
@@ -84,19 +70,19 @@ G_M10517_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      edi, eax
        cmp      esi, edi
-       jg       SHORT G_M10517_IG10
-                       ;; size=47 bbWeight=0.50 PerfScore 11.12
+       jg       G_M10517_IG10
+                       ;; size=51 bbWeight=0.50 PerfScore 11.12
 G_M10517_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbx+0x28]
        ; gcrRegs +[rcx]
        cmp      esi, dword ptr [rcx+0x08]
-       jae      SHORT G_M10517_IG13
+       jae      G_M10517_IG13
        mov      edx, esi
        mov      rcx, gword ptr [rcx+8*rdx+0x10]
        mov      r8, gword ptr [rbx+0x38]
        ; gcrRegs +[r8]
        cmp      esi, dword ptr [r8+0x08]
-       jae      SHORT G_M10517_IG13
+       jae      G_M10517_IG13
        mov      rdx, gword ptr [r8+8*rdx+0x10]
        ; gcrRegs +[rdx]
        xor      r8d, r8d
@@ -110,7 +96,7 @@ G_M10517_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jo       SHORT G_M10517_IG12
        cmp      esi, edi
        jle      SHORT G_M10517_IG05
-                       ;; size=53 bbWeight=4 PerfScore 93.00
+                       ;; size=61 bbWeight=4 PerfScore 93.00
 G_M10517_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
        jmp      SHORT G_M10517_IG10
@@ -119,31 +105,49 @@ G_M10517_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      eax, 1
        jmp      SHORT G_M10517_IG11
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M10517_IG08:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M10517_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
+       mov      rcx, gword ptr [rbx+0x30]
+       ; gcrRegs +[rcx]
+       xor      edx, edx
+       cmp      dword ptr [rcx], ecx
+       call     [System.Array:GetLowerBound(int):int:this]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       mov      esi, eax
+       mov      rcx, gword ptr [rbx+0x30]
+       ; gcrRegs +[rcx]
+       xor      edx, edx
+       cmp      dword ptr [rcx], ecx
+       call     [System.Array:GetUpperBound(int):int:this]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       cmp      esi, eax
+       jg       SHORT G_M10517_IG10
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
-       cmp      esi, dword ptr [rcx+0x08]
+                       ;; size=38 bbWeight=0.50 PerfScore 10.00
+G_M10517_IG09:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
+       mov      rdx, rcx
+       ; gcrRegs +[rdx]
+       cmp      esi, dword ptr [rdx+0x08]
        jae      SHORT G_M10517_IG13
-       mov      edx, esi
-       mov      ecx, dword ptr [rcx+4*rdx+0x10]
-       ; gcrRegs -[rcx]
-       mov      r8, gword ptr [rbx+0x30]
-       ; gcrRegs +[r8]
-       cmp      esi, dword ptr [r8+0x08]
+       mov      r8d, esi
+       mov      edx, dword ptr [rdx+4*r8+0x10]
+       ; gcrRegs -[rdx]
+       mov      r10, gword ptr [rbx+0x30]
+       ; gcrRegs +[r10]
+       cmp      esi, dword ptr [r10+0x08]
        jae      SHORT G_M10517_IG13
-       cmp      ecx, dword ptr [r8+4*rdx+0x10]
+       cmp      edx, dword ptr [r10+4*r8+0x10]
        jne      SHORT G_M10517_IG07
        add      esi, 1
        jo       SHORT G_M10517_IG12
-                       ;; size=37 bbWeight=2 PerfScore 39.00
-G_M10517_IG09:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r8]
        cmp      esi, eax
-       jle      SHORT G_M10517_IG08
-                       ;; size=4 bbWeight=4 PerfScore 5.00
+       jle      SHORT G_M10517_IG09
+                       ;; size=42 bbWeight=4 PerfScore 76.00
 G_M10517_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[rcx rbx r10]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M10517_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
@@ -164,7 +168,7 @@ G_M10517_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 247, prolog size 10, PerfScore 171.88, instruction count 80, allocated bytes for code 247 (MethodHash=2a83d6ea) for method Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
+; Total bytes of code 265, prolog size 10, PerfScore 205.50, instruction count 83, allocated bytes for code 265 (MethodHash=2a83d6ea) for method Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+16 (+7.37%) : 292320.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)

@@ -56,58 +56,24 @@ G_M25025_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, r8
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M25025_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG14
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rbx+0x08], 0
-       jne      SHORT G_M25025_IG05
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M25025_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
-       mov      ecx, 0x192F
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rbx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG05:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG14
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M25025_IG04:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rsi, rsi
-       je       SHORT G_M25025_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG06:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG15
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG05:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      ebp, dword ptr [rsi+0x08]
        test     ebp, ebp
-       jne      SHORT G_M25025_IG08
-                       ;; size=7 bbWeight=0.46 PerfScore 1.49
-G_M25025_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi]
-       mov      ecx, 0x13A3
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rsi]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG15
+                       ;; size=11 bbWeight=0.46 PerfScore 1.49
+G_M25025_IG06:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Net.Mime.MailBnfHelper:ValidateHeaderName(System.String)]
@@ -128,9 +94,9 @@ G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M25025_IG12
+       jne      SHORT G_M25025_IG10
                        ;; size=37 bbWeight=1 PerfScore 11.75
-G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG07:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 1
@@ -140,7 +106,7 @@ G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -148,9 +114,9 @@ G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M25025_IG13
+       je       SHORT G_M25025_IG11
                        ;; size=13 bbWeight=1 PerfScore 4.50
-G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -160,13 +126,13 @@ G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        call     [System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this]
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
-       jmp      SHORT G_M25025_IG14
+       jmp      SHORT G_M25025_IG12
                        ;; size=17 bbWeight=0.50 PerfScore 2.88
-G_M25025_IG12:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG10:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx rsi rdi]
-       jmp      SHORT G_M25025_IG10
+       jmp      SHORT G_M25025_IG08
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -177,10 +143,10 @@ G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0.50 PerfScore 1.88
-G_M25025_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25025_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M25025_IG13:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -188,8 +154,40 @@ G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
+G_M25025_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rbx]
+       mov      ecx, 0x192F
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rbx]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M25025_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi]
+       mov      ecx, 0x13A3
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rsi]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 217 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
+; Total bytes of code 233, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 233 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+16 (+8.21%) : 242968.dasm - System.Security.Cryptography.ECDsa:SignData(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):int:this (FullOpts)

@@ -40,44 +40,25 @@ G_M15172_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rbx]
        mov      eax, dword ptr [rsp+0x70]
                        ;; size=13 bbWeight=1 PerfScore 3.50
-G_M15172_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
+G_M15172_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref
        ; gcrRegs +[rcx]
        ; byrRegs +[rdx r8]
        test     rbx, rbx
-       je       SHORT G_M15172_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M15172_IG03:        ; bbWeight=0.46, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
+       je       G_M15172_IG09
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M15172_IG03:        ; bbWeight=0.46, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref
        cmp      dword ptr [rbx+0x08], 0
-       jne      SHORT G_M15172_IG05
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M15172_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx]
-       ; byrRegs -[rdx r8]
-       mov      ecx, 0x43B1
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rbx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M15172_IG05:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
-       ; gcrRegs +[rcx rbx]
-       ; byrRegs +[rdx r8]
+       je       G_M15172_IG09
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M15172_IG04:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref
        test     eax, eax
-       jl       SHORT G_M15172_IG10
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M15172_IG06:        ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
+       jl       G_M15172_IG10
+                       ;; size=8 bbWeight=1 PerfScore 1.25
+G_M15172_IG05:        ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref
        cmp      eax, 1
-       jg       SHORT G_M15172_IG10
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M15172_IG07:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
+       jg       G_M15172_IG10
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M15172_IG06:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rdx r8}, byref, isz
        mov      dword ptr [rsp+0x20], eax
        lea      r9, [rsp+0x30]
        mov      qword ptr [rsp+0x28], r9
@@ -90,16 +71,16 @@ G_M15172_IG07:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0104 {rd
        ; byrRegs -[rdx r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M15172_IG09
+       je       SHORT G_M15172_IG08
        mov      eax, dword ptr [rsp+0x30]
                        ;; size=35 bbWeight=1 PerfScore 12.00
-G_M15172_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M15172_IG07:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      rsi
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
-G_M15172_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M15172_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      rcx, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -129,6 +110,22 @@ G_M15172_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
                        ;; size=70 bbWeight=0 PerfScore 0.00
+G_M15172_IG09:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rbx]
+       mov      ecx, 0x43B1
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rbx]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 G_M15172_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, eax
        call     [<unknown method>]
@@ -142,7 +139,7 @@ G_M15172_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 195, prolog size 6, PerfScore 22.71, instruction count 53, allocated bytes for code 195 (MethodHash=0aabc4bb) for method System.Security.Cryptography.ECDsa:SignData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):int:this (FullOpts)
+; Total bytes of code 211, prolog size 6, PerfScore 22.71, instruction count 53, allocated bytes for code 211 (MethodHash=0aabc4bb) for method System.Security.Cryptography.ECDsa:SignData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.windows.x64.Release.mch

-49 (-18.28%) : 282825.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)

@@ -12,135 +12,121 @@
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T01] (  4,  3.50)     ref  ->  rsi         class-hnd single-def <System.Type>
 ;  V03 arg3         [V03,T02] (  4,  3   )     int  ->  rdi         single-def
-;  V04 arg4         [V04,T10] (  2,  1   )     int  ->  [rsp+0x80]  single-def
-;  V05 arg5         [V05,T06] (  4,  1.75)     ref  ->  rbp         class-hnd single-def <System.Object>
+;  V04 arg4         [V04,T09] (  2,  1   )     int  ->  [rsp+0x70]  single-def
+;  V05 arg5         [V05,T05] (  3,  1.50)     ref  ->  rbp         class-hnd single-def <System.Object>
 ;* V06 loc0         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T04] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V09 tmp2         [V09,T09] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V10 tmp3         [V10,T12] (  0,  0   )     int  ->  zero-ref   
+;* V09 tmp2         [V09,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V10 tmp3         [V10,T11] (  0,  0   )     int  ->  zero-ref   
 ;  V11 tmp4         [V11,T03] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V12 tmp5         [V12,T11] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V13 tmp6         [V13,T07] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V14 cse0         [V14,T08] (  3,  1.50)    long  ->  rdx         "CSE - moderate"
-;  V15 cse1         [V15,T05] (  5,  2.25)    long  ->  r15         "CSE - aggressive"
+;  V12 tmp5         [V12,T10] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
+;  V13 tmp6         [V13,T06] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V14 cse0         [V14,T07] (  3,  1.50)    long  ->  rcx         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M49136_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rsi, r8
        ; gcrRegs +[rsi]
        mov      edi, r9d
-       mov      rbp, gword ptr [rsp+0x88]
+       mov      rbp, gword ptr [rsp+0x78]
        ; gcrRegs +[rbp]
-                       ;; size=29 bbWeight=1 PerfScore 8.00
+                       ;; size=24 bbWeight=1 PerfScore 7.00
 G_M49136_IG02:        ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       cmp      rsi, rdx
-       jne      SHORT G_M49136_IG09
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       cmp      rsi, rcx
+       jne      SHORT G_M49136_IG04
                        ;; size=15 bbWeight=1 PerfScore 1.50
 G_M49136_IG03:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx]
+       ; gcrRegs -[rcx]
        cmp      edi, 1
-       jne      SHORT G_M49136_IG09
-       mov      r14d, dword ptr [rsp+0x80]
+       jne      SHORT G_M49136_IG04
+       mov      r14d, dword ptr [rsp+0x70]
        cmp      r14d, 1
-       jne      SHORT G_M49136_IG08
+       jne      SHORT G_M49136_IG07
        test     rbp, rbp
-       je       SHORT G_M49136_IG07
-       mov      rdx, qword ptr [rbp]
-       mov      r15, 0xD1FFAB1E      ; System.Int32
-       cmp      rdx, r15
-       mov      dword ptr [rsp+0x80], r14d
-       jne      SHORT G_M49136_IG09
-       je       SHORT G_M49136_IG05
-                       ;; size=53 bbWeight=0.50 PerfScore 5.12
-G_M49136_IG04:        ; bbWeight=0.25, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
-       mov      rdx, rbp
-       ; gcrRegs +[rdx]
-       mov      rcx, r15
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rdx rbp]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M49136_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, r15
+       je       SHORT G_M49136_IG06
+       mov      rcx, 0xD1FFAB1E      ; System.Int32
+       cmp      qword ptr [rbp], rcx
+       mov      dword ptr [rsp+0x70], r14d
+       je       SHORT G_M49136_IG08
+                       ;; size=42 bbWeight=0.50 PerfScore 5.00
+G_M49136_IG04:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     ecx, ecx
+       je       SHORT G_M49136_IG10
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
+G_M49136_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       ret      
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M49136_IG06:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       mov      dword ptr [rsp+0x70], r14d
+       jmp      SHORT G_M49136_IG04
+                       ;; size=7 bbWeight=0.25 PerfScore 0.75
+G_M49136_IG07:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rsp+0x70], r14d
+       jmp      SHORT G_M49136_IG04
+                       ;; size=7 bbWeight=0.25 PerfScore 0.75
+G_M49136_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rbp rsi]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        xor      ecx, ecx
        mov      dword ptr [rax+0x08], ecx
-                       ;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M49136_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=10 bbWeight=0.50 PerfScore 1.12
+G_M49136_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG07:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M49136_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rbp rsi]
-       mov      dword ptr [rsp+0x80], r14d
-       jmp      SHORT G_M49136_IG09
-                       ;; size=10 bbWeight=0.25 PerfScore 0.75
-G_M49136_IG08:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
-       mov      dword ptr [rsp+0x80], r14d
-                       ;; size=8 bbWeight=0.25 PerfScore 0.25
-G_M49136_IG09:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M49136_IG11
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M49136_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M49136_IG13
+       je       SHORT G_M49136_IG12
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG12:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M49136_IG11:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M49136_IG13:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M49136_IG12:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rdx]
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M49136_IG14:        ; bbWeight=0.50, nogc, extend
-       mov      r14d, dword ptr [rsp+0x80]
-       mov      dword ptr [rsp+0x80], r14d
-       mov      gword ptr [rsp+0x88], rbp
+G_M49136_IG13:        ; bbWeight=0.50, nogc, extend
+       mov      r14d, dword ptr [rsp+0x70]
+       mov      dword ptr [rsp+0x70], r14d
+       mov      gword ptr [rsp+0x78], rbp
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      r8, rsi
@@ -148,19 +134,18 @@ G_M49136_IG14:        ; bbWeight=0.50, nogc, extend
        mov      r9d, edi
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-                       ;; size=37 bbWeight=0.50 PerfScore 2.88
-G_M49136_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=28 bbWeight=0.50 PerfScore 2.88
+G_M49136_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=16 bbWeight=0.50 PerfScore 2.62
+                       ;; size=14 bbWeight=0.50 PerfScore 2.38
 
-; Total bytes of code 268, prolog size 29, PerfScore 32.81, instruction count 80, allocated bytes for code 268 (MethodHash=1121400f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
+; Total bytes of code 219, prolog size 24, PerfScore 30.94, instruction count 71, allocated bytes for code 219 (MethodHash=1121400f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -168,15 +153,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

-45 (-15.36%) : 280422.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)

@@ -12,61 +12,76 @@
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T02] (  5,  4   )     ref  ->  rdi         class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass>
 ;  V03 arg3         [V03,T01] (  6,  4   )     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V04 arg4         [V04,T07] (  5,  2.25)     ref  ->  rbp         class-hnd single-def <System.Object>
+;  V04 arg4         [V04,T06] (  4,  2   )     ref  ->  rbp         class-hnd single-def <System.Object>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06,T12] (  0,  0   )     int  ->  zero-ref   
-;  V07 tmp2         [V07,T06] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V08 tmp3         [V08,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V09 tmp4         [V09,T13] (  0,  0   )     int  ->  zero-ref   
-;* V10 tmp5         [V10,T14] (  0,  0   )     int  ->  zero-ref   
+;* V06 tmp1         [V06,T11] (  0,  0   )     int  ->  zero-ref   
+;  V07 tmp2         [V07,T05] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;* V08 tmp3         [V08,T09] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V09 tmp4         [V09,T12] (  0,  0   )     int  ->  zero-ref   
+;* V10 tmp5         [V10,T13] (  0,  0   )     int  ->  zero-ref   
 ;  V11 tmp6         [V11,T03] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V12 tmp7         [V12,T04] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V13 tmp8         [V13,T11] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
+;  V13 tmp8         [V13,T10] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
 ;  V14 tmp9         [V14,T08] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V15 cse0         [V15,T09] (  3,  1.50)    long  ->  r15         "CSE - moderate"
-;  V16 cse1         [V16,T05] (  6,  2.75)    long  ->  r14         "CSE - aggressive"
+;  V15 cse0         [V15,T07] (  4,  2   )    long  ->  r14         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M52598_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rdi, r8
        ; gcrRegs +[rdi]
        mov      rsi, r9
        ; gcrRegs +[rsi]
-       mov      rbp, gword ptr [rsp+0x80]
+       mov      rbp, gword ptr [rsp+0x70]
        ; gcrRegs +[rbp]
-                       ;; size=29 bbWeight=1 PerfScore 8.00
-G_M52598_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+                       ;; size=24 bbWeight=1 PerfScore 7.00
+G_M52598_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rdi, rdi
-       je       G_M52598_IG07
-                       ;; size=9 bbWeight=1 PerfScore 1.25
+       je       SHORT G_M52598_IG04
+                       ;; size=5 bbWeight=1 PerfScore 1.25
 G_M52598_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass
        cmp      qword ptr [rdi], rcx
-       jne      G_M52598_IG07
+       jne      SHORT G_M52598_IG04
        test     rsi, rsi
-       je       G_M52598_IG07
+       je       SHORT G_M52598_IG04
        mov      r14, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rsi], r14
-       jne      SHORT G_M52598_IG07
+       jne      SHORT G_M52598_IG04
        test     rbp, rbp
-       je       SHORT G_M52598_IG07
-       mov      r15, qword ptr [rbp]
-       cmp      r15, r14
-       jne      SHORT G_M52598_IG07
+       je       SHORT G_M52598_IG04
+       cmp      qword ptr [rbp], r14
+       je       SHORT G_M52598_IG06
+                       ;; size=46 bbWeight=0.50 PerfScore 7.50
+G_M52598_IG04:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     ecx, ecx
+       je       SHORT G_M52598_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.12
+G_M52598_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       ret      
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx rdi]
        mov      rcx, 0xD1FFAB1E      ; System.Object[]
        mov      edx, 2
        call     CORINFO_HELP_NEWARR_1_OBJ
-       ; gcrRegs -[rbx rdi] +[rax]
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
@@ -77,18 +92,6 @@ G_M52598_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx rsi]
        ; byrRegs -[rcx]
-       cmp      r15, r14
-       je       SHORT G_M52598_IG05
-                       ;; size=97 bbWeight=0.50 PerfScore 9.50
-G_M52598_IG04:        ; bbWeight=0.25, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       mov      rdx, rbp
-       ; gcrRegs +[rdx]
-       mov      rcx, r14
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rdx]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M52598_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
        mov      rcx, r14
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -103,54 +106,37 @@ G_M52598_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
        ; gcrRegs -[rax rdx rbx rbp]
        ; byrRegs -[rcx]
        mov      dword ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
-                       ;; size=36 bbWeight=0.50 PerfScore 3.50
-G_M52598_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=71 bbWeight=0.50 PerfScore 5.25
+G_M52598_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rbp rsi rdi]
-       movzx    rcx, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     ecx, ecx
-       je       SHORT G_M52598_IG09
-                       ;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M52598_IG11
+       je       SHORT G_M52598_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG10:        ; bbWeight=0.25, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M52598_IG09:        ; bbWeight=0.25, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M52598_IG11:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M52598_IG10:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rdx]
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M52598_IG12:        ; bbWeight=0.50, nogc, extend
-       mov      gword ptr [rsp+0x80], rbp
+G_M52598_IG11:        ; bbWeight=0.50, nogc, extend
+       mov      gword ptr [rsp+0x70], rbp
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      r8, rdi
@@ -159,19 +145,18 @@ G_M52598_IG12:        ; bbWeight=0.50, nogc, extend
        ; gcrRegs +[r9]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-                       ;; size=21 bbWeight=0.50 PerfScore 1.88
-G_M52598_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=18 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=16 bbWeight=0.50 PerfScore 2.62
+                       ;; size=14 bbWeight=0.50 PerfScore 2.38
 
-; Total bytes of code 293, prolog size 29, PerfScore 37.06, instruction count 86, allocated bytes for code 293 (MethodHash=e7623289) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
+; Total bytes of code 248, prolog size 24, PerfScore 34.69, instruction count 76, allocated bytes for code 248 (MethodHash=e7623289) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -179,15 +164,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

-44 (-14.97%) : 63085.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)

@@ -14,9 +14,9 @@
 ;  V02 loc1         [V02,T01] (  5, 29.03)     int  ->  rdi        
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V05 tmp2         [V05,T07] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T04] (  8,  7.96)  ushort  ->  rcx         "Inlining Arg"
-;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rbp         "Inline return value spill temp"
+;  V07 tmp4         [V07,T10] (  3,  0   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V08 tmp5         [V08,T11] (  3,  0   )     int  ->  rax         "Inlining Arg"
 ;  V09 tmp6         [V09,T08] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V10 tmp7         [V10,T00] ( 10, 42.21)  ushort  ->  rcx         "Inlining Arg"
@@ -25,179 +25,155 @@
 ;* V13 tmp10        [V13,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V14 cse0         [V14,T05] (  3,  3.00)     int  ->  rsi         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M26758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=11 bbWeight=1 PerfScore 4.50
+                       ;; size=10 bbWeight=1 PerfScore 3.50
 G_M26758_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
-       je       SHORT G_M26758_IG03
+       je       G_M26758_IG19
        mov      esi, dword ptr [rbx+0x08]
        test     esi, esi
-       jne      SHORT G_M26758_IG05
-                       ;; size=12 bbWeight=1 PerfScore 4.50
-G_M26758_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG04:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
-G_M26758_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+       je       G_M26758_IG19
        movzx    rcx, word  ptr [rbx+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG14
-                       ;; size=9 bbWeight=1 PerfScore 3.25
-G_M26758_IG06:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG08
-                       ;; size=2 bbWeight=0.98 PerfScore 1.96
-G_M26758_IG07:        ; bbWeight=7.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       inc      edi
-       cmp      edi, esi
-       jl       SHORT G_M26758_IG13
-       jmp      SHORT G_M26758_IG22
-                       ;; size=8 bbWeight=7.13 PerfScore 24.95
-G_M26758_IG08:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jge      SHORT G_M26758_IG11
+                       ;; size=29 bbWeight=1 PerfScore 7.75
+G_M26758_IG03:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      ecx, 65
-       jl       SHORT G_M26758_IG03
-                       ;; size=5 bbWeight=0.98 PerfScore 1.23
-G_M26758_IG09:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jl       G_M26758_IG19
+                       ;; size=9 bbWeight=0.98 PerfScore 1.23
+G_M26758_IG04:        ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 90
-       jle      SHORT G_M26758_IG11
+       jle      SHORT G_M26758_IG06
                        ;; size=5 bbWeight=0.98 PerfScore 1.23
-G_M26758_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG12
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG11:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG05:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       xor      edi, edi
+       cmp      ecx, 95
+       sete     dil
+       jmp      G_M26758_IG24
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M26758_IG06:        ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      edi, 1
        cmp      esi, 1
-       jle      SHORT G_M26758_IG22
-       jmp      SHORT G_M26758_IG13
-                       ;; size=12 bbWeight=1.00 PerfScore 3.50
-G_M26758_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       xor      ebp, ebp
-       cmp      ecx, 95
-       sete     bpl
-       jmp      SHORT G_M26758_IG27
-                       ;; size=11 bbWeight=0 PerfScore 0.00
-G_M26758_IG13:        ; bbWeight=6.65, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jle      SHORT G_M26758_IG17
+                       ;; size=10 bbWeight=1.00 PerfScore 1.50
+G_M26758_IG07:        ; bbWeight=6.65, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      eax, edi
        movzx    rcx, word  ptr [rbx+2*rax+0x0C]
        cmp      ecx, 97
-       jge      SHORT G_M26758_IG18
-       jmp      SHORT G_M26758_IG15
-                       ;; size=14 bbWeight=6.65 PerfScore 36.56
-G_M26758_IG14:        ; bbWeight=0.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 122
-       jg       SHORT G_M26758_IG24
-       jmp      SHORT G_M26758_IG11
-                       ;; size=7 bbWeight=0.02 PerfScore 0.06
-G_M26758_IG15:        ; bbWeight=1.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jge      SHORT G_M26758_IG14
+                       ;; size=12 bbWeight=6.65 PerfScore 23.26
+G_M26758_IG08:        ; bbWeight=1.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 65
-       jge      SHORT G_M26758_IG19
+       jge      SHORT G_M26758_IG12
                        ;; size=5 bbWeight=1.09 PerfScore 1.36
-G_M26758_IG16:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG09:        ; bbWeight=0.58, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 48
-       jl       SHORT G_M26758_IG03
+       jl       SHORT G_M26758_IG19
                        ;; size=5 bbWeight=0.58 PerfScore 0.73
-G_M26758_IG17:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG10:        ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 57
-       jg       SHORT G_M26758_IG03
-       jmp      SHORT G_M26758_IG07
+       jle      SHORT G_M26758_IG16
+       jmp      SHORT G_M26758_IG19
                        ;; size=7 bbWeight=0.07 PerfScore 0.23
-G_M26758_IG18:        ; bbWeight=5.56, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG11:        ; bbWeight=0.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 122
-       jle      SHORT G_M26758_IG07
-       jmp      SHORT G_M26758_IG28
-                       ;; size=7 bbWeight=5.56 PerfScore 18.07
-G_M26758_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 90
        jg       SHORT G_M26758_IG21
+       jmp      SHORT G_M26758_IG06
+                       ;; size=7 bbWeight=0.02 PerfScore 0.06
+G_M26758_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 90
+       jle      SHORT G_M26758_IG16
                        ;; size=5 bbWeight=0.50 PerfScore 0.63
-G_M26758_IG20:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M26758_IG07
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG21:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M26758_IG13:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 95
-       jne      SHORT G_M26758_IG03
-       jmp      SHORT G_M26758_IG07
+       je       SHORT G_M26758_IG16
+       jmp      SHORT G_M26758_IG19
                        ;; size=7 bbWeight=0.01 PerfScore 0.02
-G_M26758_IG22:        ; bbWeight=0.93, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       mov      eax, 1
-                       ;; size=5 bbWeight=0.93 PerfScore 0.23
-G_M26758_IG23:        ; bbWeight=0.93, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=9 bbWeight=0.93 PerfScore 3.03
-G_M26758_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+G_M26758_IG14:        ; bbWeight=5.56, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       cmp      ecx, 122
+       jle      SHORT G_M26758_IG16
+                       ;; size=5 bbWeight=5.56 PerfScore 6.95
+G_M26758_IG15:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, 127
-       jle      G_M26758_IG03
+       jle      SHORT G_M26758_IG19
        call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
        ; gcr arg pop 0
        cmp      eax, 4
-       jbe      SHORT G_M26758_IG25
+       jbe      SHORT G_M26758_IG16
        cmp      eax, 9
-       jne      SHORT G_M26758_IG26
-                       ;; size=25 bbWeight=0 PerfScore 0.00
-G_M26758_IG25:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      ebp, 1
-       jmp      SHORT G_M26758_IG27
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M26758_IG26:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       xor      ebp, ebp
-                       ;; size=2 bbWeight=0 PerfScore 0.00
-G_M26758_IG27:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       test     ebp, ebp
-       je       G_M26758_IG03
-       jmp      G_M26758_IG11
-                       ;; size=13 bbWeight=0 PerfScore 0.00
-G_M26758_IG28:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       cmp      ecx, 127
-       jle      G_M26758_IG03
-       call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
-       ; gcr arg pop 0
-       cmp      eax, 4
-       jbe      G_M26758_IG07
-       cmp      eax, 9
-       je       G_M26758_IG07
+       je       SHORT G_M26758_IG16
        cmp      eax, 8
-       je       G_M26758_IG07
+       je       SHORT G_M26758_IG16
        cmp      eax, 18
-       je       G_M26758_IG07
+       je       SHORT G_M26758_IG16
        lea      ecx, [rax-0x05]
        cmp      ecx, 1
-       ja       SHORT G_M26758_IG29
-       jmp      G_M26758_IG07
-                       ;; size=64 bbWeight=0 PerfScore 0.00
-G_M26758_IG29:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       jbe      SHORT G_M26758_IG16
        cmp      eax, 15
        sete     al
        movzx    rax, al
        test     eax, eax
-       je       G_M26758_IG03
-       jmp      G_M26758_IG07
-                       ;; size=22 bbWeight=0 PerfScore 0.00
+       je       SHORT G_M26758_IG19
+                       ;; size=52 bbWeight=0 PerfScore 0.00
+G_M26758_IG16:        ; bbWeight=7.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       inc      edi
+       cmp      edi, esi
+       jl       SHORT G_M26758_IG07
+                       ;; size=6 bbWeight=7.13 PerfScore 10.69
+G_M26758_IG17:        ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx]
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.49 PerfScore 0.12
+G_M26758_IG18:        ; bbWeight=0.49, epilog, nogc, extend
...

+44 (+12.05%) : 457271.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

@@ -5,15 +5,15 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 1968
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 1968
 ; 3 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  8,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
+;  V00 this         [V00,T01] (  9,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
 ;  V01 arg1         [V01,T03] (  5,  3   )     ref  ->  rsi         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T16] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V04 tmp2         [V04,T05] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V04 tmp2         [V04,T07] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V05 tmp3         [V05,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp4         [V06,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
 ;  V07 tmp5         [V07,T09] (  3,  3   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -21,15 +21,15 @@
 ;  V09 tmp7         [V09,T10] (  3,  3   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp9         [V11,T12] (  3,  2   )     int  ->   r8         "Inline stloc first use temp"
-;  V12 tmp10        [V12,T06] (  3,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp10        [V12,T04] (  5,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V13 tmp11        [V13,T13] (  2,  2   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V15 tmp13        [V15,T07] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V16 tmp14        [V16,T08] (  4,  3   )     ref  ->  rcx        
+;  V15 tmp13        [V15,T05] (  4,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
+;  V16 tmp14        [V16,T08] (  6,  3   )     ref  ->  rcx        
 ;  V17 tmp15        [V17,T15] (  5,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;  V19 tmp17        [V19,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V20 cse0         [V20,T04] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
+;  V20 cse0         [V20,T06] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
 ;  V21 cse1         [V21,T11] (  3,  3   )     int  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
@@ -47,12 +47,83 @@ G_M26012_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, rdx
        ; gcrRegs +[rsi]
                        ;; size=18 bbWeight=1 PerfScore 6.75
-G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbx+0x29], 0
-       je       SHORT G_M26012_IG04
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
+       jne      G_M26012_IG08
+       cmp      byte  ptr [rbx+0x2A], 0
+       jne      G_M26012_IG09
+                       ;; size=20 bbWeight=1 PerfScore 8.00
+G_M26012_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rcx, gword ptr [rbx+0x10]
+       ; gcrRegs +[rcx]
+       mov      rdi, gword ptr [rcx+0x10]
+       ; gcrRegs +[rdi]
+       mov      rbp, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbp]
+                       ;; size=12 bbWeight=1 PerfScore 6.00
+G_M26012_IG04:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       mov      eax, dword ptr [rdi+0xA0]
+       mov      dword ptr [rsp+0x24], eax
+       mov      edx, eax
+       and      edx, dword ptr [rdi+0x18]
+       cmp      edx, dword ptr [rbp+0x08]
+       jae      SHORT G_M26012_IG07
+       shl      rdx, 4
+       lea      r14, bword ptr [rbp+rdx+0x10]
+       ; byrRegs +[r14]
+       mov      r8d, dword ptr [r14+0x08]
+       sub      r8d, eax
+       jne      G_M26012_IG10
+       lea      rdx, bword ptr [rdi+0xA0]
+       ; byrRegs +[rdx]
+       lea      r15d, [rax+0x01]
+       lock     
+       cmpxchg  dword ptr [rdx], r15d
+       cmp      eax, dword ptr [rsp+0x24]
+       jne      SHORT G_M26012_IG04
+       mov      rcx, r14
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx rbp rsi rdi]
+       ; byrRegs -[rcx]
+       mov      dword ptr [r14+0x08], r15d
+       mov      r14, gword ptr [rbx+0x20]
+       ; gcrRegs +[r14]
+       ; byrRegs -[r14]
+       mov      rcx, gword ptr [r14+0x08]
+       ; gcrRegs +[rcx]
+       test     rcx, rcx
+       je       G_M26012_IG11
+                       ;; size=96 bbWeight=1 PerfScore 45.75
+G_M26012_IG05:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       G_M26012_IG12
+       movzx    rax, byte  ptr [rbx+0x28]
+                       ;; size=18 bbWeight=1 PerfScore 6.25
+G_M26012_IG06:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       ret      
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M26012_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx]
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M26012_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -76,12 +147,8 @@ G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
                        ;; size=58 bbWeight=0 PerfScore 0.00
-G_M26012_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG09:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi]
-       cmp      byte  ptr [rbx+0x2A], 0
-       je       SHORT G_M26012_IG06
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -89,67 +156,26 @@ G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M26012_IG06
+       je       G_M26012_IG03
        mov      byte  ptr [rbx+0x28], 0
-                       ;; size=27 bbWeight=0 PerfScore 0.00
-G_M26012_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       mov      rdi, gword ptr [rcx+0x10]
-       ; gcrRegs +[rdi]
-       mov      rbp, gword ptr [rdi+0x08]
-       ; gcrRegs +[rbp]
-                       ;; size=12 bbWeight=1 PerfScore 6.00
-G_M26012_IG07:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      eax, dword ptr [rdi+0xA0]
-       mov      dword ptr [rsp+0x24], eax
-       mov      edx, eax
-       and      edx, dword ptr [rdi+0x18]
-       cmp      edx, dword ptr [rbp+0x08]
-       jae      G_M26012_IG14
-       shl      rdx, 4
-       lea      r14, bword ptr [rbp+rdx+0x10]
-       ; byrRegs +[r14]
-       mov      r8d, dword ptr [r14+0x08]
-       sub      r8d, eax
-       je       SHORT G_M26012_IG09
-                       ;; size=42 bbWeight=1 PerfScore 16.00
-G_M26012_IG08:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       jmp      G_M26012_IG03
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M26012_IG10:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax] +[rcx rbp rdi]
        test     r8d, r8d
-       jge      SHORT G_M26012_IG07
-       jmp      G_M26012_IG15
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M26012_IG09:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=4000 {r14}, byref, isz
-       ; byrRegs +[r14]
-       lea      rdx, bword ptr [rdi+0xA0]
-       ; byrRegs +[rdx]
-       lea      r15d, [rax+0x01]
-       lock     
-       cmpxchg  dword ptr [rdx], r15d
-       cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M26012_IG07
-       mov      rcx, r14
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
+       jge      G_M26012_IG04
        mov      rdx, rsi
        ; gcrRegs +[rdx]
-       ; byrRegs -[rdx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rdx rbp rsi rdi]
-       ; byrRegs -[rcx]
-       mov      dword ptr [r14+0x08], r15d
-                       ;; size=37 bbWeight=1 PerfScore 24.50
-G_M26012_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx rbp rsi rdi]
+       ; gcr arg pop 0
        mov      r14, gword ptr [rbx+0x20]
        ; gcrRegs +[r14]
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       jne      SHORT G_M26012_IG12
-                       ;; size=13 bbWeight=1 PerfScore 5.25
+       jne      G_M26012_IG05
+                       ;; size=35 bbWeight=0 PerfScore 0.00
 G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.Win32.SafeHandles.SafeWaitHandle
@@ -175,42 +201,10 @@ G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        ; byrRegs -[rcx]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-                       ;; size=55 bbWeight=0 PerfScore 0.00
-G_M26012_IG12:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M26012_IG16
-       movzx    rax, byte  ptr [rbx+0x28]
-                       ;; size=14 bbWeight=1 PerfScore 6.25
-G_M26012_IG13:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=1 PerfScore 4.25
-G_M26012_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
...

+44 (+12.05%) : 125772.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

@@ -5,15 +5,15 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 11
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 11
 ; 3 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  8,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
+;  V00 this         [V00,T01] (  9,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
 ;  V01 arg1         [V01,T03] (  5,  3   )     ref  ->  rsi         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T16] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V04 tmp2         [V04,T05] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V04 tmp2         [V04,T07] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V05 tmp3         [V05,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp4         [V06,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
 ;  V07 tmp5         [V07,T09] (  3,  3   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -21,15 +21,15 @@
 ;  V09 tmp7         [V09,T10] (  3,  3   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp9         [V11,T12] (  3,  2   )     int  ->   r8         "Inline stloc first use temp"
-;  V12 tmp10        [V12,T06] (  3,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp10        [V12,T04] (  5,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V13 tmp11        [V13,T13] (  2,  2   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V15 tmp13        [V15,T07] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V16 tmp14        [V16,T08] (  4,  3   )     ref  ->  rcx        
+;  V15 tmp13        [V15,T05] (  4,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
+;  V16 tmp14        [V16,T08] (  6,  3   )     ref  ->  rcx        
 ;  V17 tmp15        [V17,T15] (  5,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;  V19 tmp17        [V19,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V20 cse0         [V20,T04] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
+;  V20 cse0         [V20,T06] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
 ;  V21 cse1         [V21,T11] (  3,  3   )     int  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
@@ -47,12 +47,83 @@ G_M26012_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, rdx
        ; gcrRegs +[rsi]
                        ;; size=18 bbWeight=1 PerfScore 6.75
-G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbx+0x29], 0
-       je       SHORT G_M26012_IG04
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
+       jne      G_M26012_IG08
+       cmp      byte  ptr [rbx+0x2A], 0
+       jne      G_M26012_IG09
+                       ;; size=20 bbWeight=1 PerfScore 8.00
+G_M26012_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rcx, gword ptr [rbx+0x10]
+       ; gcrRegs +[rcx]
+       mov      rdi, gword ptr [rcx+0x10]
+       ; gcrRegs +[rdi]
+       mov      rbp, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbp]
+                       ;; size=12 bbWeight=1 PerfScore 6.00
+G_M26012_IG04:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       mov      eax, dword ptr [rdi+0xA0]
+       mov      dword ptr [rsp+0x24], eax
+       mov      edx, eax
+       and      edx, dword ptr [rdi+0x18]
+       cmp      edx, dword ptr [rbp+0x08]
+       jae      SHORT G_M26012_IG07
+       shl      rdx, 4
+       lea      r14, bword ptr [rbp+rdx+0x10]
+       ; byrRegs +[r14]
+       mov      r8d, dword ptr [r14+0x08]
+       sub      r8d, eax
+       jne      G_M26012_IG10
+       lea      rdx, bword ptr [rdi+0xA0]
+       ; byrRegs +[rdx]
+       lea      r15d, [rax+0x01]
+       lock     
+       cmpxchg  dword ptr [rdx], r15d
+       cmp      eax, dword ptr [rsp+0x24]
+       jne      SHORT G_M26012_IG04
+       mov      rcx, r14
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx rbp rsi rdi]
+       ; byrRegs -[rcx]
+       mov      dword ptr [r14+0x08], r15d
+       mov      r14, gword ptr [rbx+0x20]
+       ; gcrRegs +[r14]
+       ; byrRegs -[r14]
+       mov      rcx, gword ptr [r14+0x08]
+       ; gcrRegs +[rcx]
+       test     rcx, rcx
+       je       G_M26012_IG11
+                       ;; size=96 bbWeight=1 PerfScore 45.75
+G_M26012_IG05:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       G_M26012_IG12
+       movzx    rax, byte  ptr [rbx+0x28]
+                       ;; size=18 bbWeight=1 PerfScore 6.25
+G_M26012_IG06:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       ret      
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M26012_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx]
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M26012_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -76,12 +147,8 @@ G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
                        ;; size=58 bbWeight=0 PerfScore 0.00
-G_M26012_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG09:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi]
-       cmp      byte  ptr [rbx+0x2A], 0
-       je       SHORT G_M26012_IG06
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -89,67 +156,26 @@ G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M26012_IG06
+       je       G_M26012_IG03
        mov      byte  ptr [rbx+0x28], 0
-                       ;; size=27 bbWeight=0 PerfScore 0.00
-G_M26012_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       mov      rdi, gword ptr [rcx+0x10]
-       ; gcrRegs +[rdi]
-       mov      rbp, gword ptr [rdi+0x08]
-       ; gcrRegs +[rbp]
-                       ;; size=12 bbWeight=1 PerfScore 6.00
-G_M26012_IG07:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      eax, dword ptr [rdi+0xA0]
-       mov      dword ptr [rsp+0x24], eax
-       mov      edx, eax
-       and      edx, dword ptr [rdi+0x18]
-       cmp      edx, dword ptr [rbp+0x08]
-       jae      G_M26012_IG14
-       shl      rdx, 4
-       lea      r14, bword ptr [rbp+rdx+0x10]
-       ; byrRegs +[r14]
-       mov      r8d, dword ptr [r14+0x08]
-       sub      r8d, eax
-       je       SHORT G_M26012_IG09
-                       ;; size=42 bbWeight=1 PerfScore 16.00
-G_M26012_IG08:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       jmp      G_M26012_IG03
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M26012_IG10:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax] +[rcx rbp rdi]
        test     r8d, r8d
-       jge      SHORT G_M26012_IG07
-       jmp      G_M26012_IG15
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M26012_IG09:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=4000 {r14}, byref, isz
-       ; byrRegs +[r14]
-       lea      rdx, bword ptr [rdi+0xA0]
-       ; byrRegs +[rdx]
-       lea      r15d, [rax+0x01]
-       lock     
-       cmpxchg  dword ptr [rdx], r15d
-       cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M26012_IG07
-       mov      rcx, r14
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
+       jge      G_M26012_IG04
        mov      rdx, rsi
        ; gcrRegs +[rdx]
-       ; byrRegs -[rdx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rdx rbp rsi rdi]
-       ; byrRegs -[rcx]
-       mov      dword ptr [r14+0x08], r15d
-                       ;; size=37 bbWeight=1 PerfScore 24.50
-G_M26012_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx rbp rsi rdi]
+       ; gcr arg pop 0
        mov      r14, gword ptr [rbx+0x20]
        ; gcrRegs +[r14]
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       jne      SHORT G_M26012_IG12
-                       ;; size=13 bbWeight=1 PerfScore 5.25
+       jne      G_M26012_IG05
+                       ;; size=35 bbWeight=0 PerfScore 0.00
 G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.Win32.SafeHandles.SafeWaitHandle
@@ -175,42 +201,10 @@ G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        ; byrRegs -[rcx]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-                       ;; size=55 bbWeight=0 PerfScore 0.00
-G_M26012_IG12:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M26012_IG16
-       movzx    rax, byte  ptr [rbx+0x28]
-                       ;; size=14 bbWeight=1 PerfScore 6.25
-G_M26012_IG13:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=1 PerfScore 4.25
-G_M26012_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
...

+44 (+12.05%) : 127936.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)

@@ -5,15 +5,15 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 45
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 45
 ; 3 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  8,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
+;  V00 this         [V00,T01] (  9,  7   )     ref  ->  rbx         this class-hnd single-def <Xunit.Sdk.MessageBus>
 ;  V01 arg1         [V01,T03] (  5,  3   )     ref  ->  rsi         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T16] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V04 tmp2         [V04,T05] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V04 tmp2         [V04,T07] (  3,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V05 tmp3         [V05,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V06 tmp4         [V06,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
 ;  V07 tmp5         [V07,T09] (  3,  3   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -21,15 +21,15 @@
 ;  V09 tmp7         [V09,T10] (  3,  3   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp9         [V11,T12] (  3,  2   )     int  ->   r8         "Inline stloc first use temp"
-;  V12 tmp10        [V12,T06] (  3,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp10        [V12,T04] (  5,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V13 tmp11        [V13,T13] (  2,  2   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V15 tmp13        [V15,T07] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
-;  V16 tmp14        [V16,T08] (  4,  3   )     ref  ->  rcx        
+;  V15 tmp13        [V15,T05] (  4,  4   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
+;  V16 tmp14        [V16,T08] (  6,  3   )     ref  ->  rcx        
 ;  V17 tmp15        [V17,T15] (  5,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.Win32.SafeHandles.SafeWaitHandle>
 ;  V19 tmp17        [V19,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V20 cse0         [V20,T04] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
+;  V20 cse0         [V20,T06] (  4,  4   )   byref  ->  r14         "CSE - aggressive"
 ;  V21 cse1         [V21,T11] (  3,  3   )     int  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
@@ -47,12 +47,83 @@ G_M26012_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, rdx
        ; gcrRegs +[rsi]
                        ;; size=18 bbWeight=1 PerfScore 6.75
-G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbx+0x29], 0
-       je       SHORT G_M26012_IG04
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
+       jne      G_M26012_IG08
+       cmp      byte  ptr [rbx+0x2A], 0
+       jne      G_M26012_IG09
+                       ;; size=20 bbWeight=1 PerfScore 8.00
+G_M26012_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rcx, gword ptr [rbx+0x10]
+       ; gcrRegs +[rcx]
+       mov      rdi, gword ptr [rcx+0x10]
+       ; gcrRegs +[rdi]
+       mov      rbp, gword ptr [rdi+0x08]
+       ; gcrRegs +[rbp]
+                       ;; size=12 bbWeight=1 PerfScore 6.00
+G_M26012_IG04:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       mov      eax, dword ptr [rdi+0xA0]
+       mov      dword ptr [rsp+0x24], eax
+       mov      edx, eax
+       and      edx, dword ptr [rdi+0x18]
+       cmp      edx, dword ptr [rbp+0x08]
+       jae      SHORT G_M26012_IG07
+       shl      rdx, 4
+       lea      r14, bword ptr [rbp+rdx+0x10]
+       ; byrRegs +[r14]
+       mov      r8d, dword ptr [r14+0x08]
+       sub      r8d, eax
+       jne      G_M26012_IG10
+       lea      rdx, bword ptr [rdi+0xA0]
+       ; byrRegs +[rdx]
+       lea      r15d, [rax+0x01]
+       lock     
+       cmpxchg  dword ptr [rdx], r15d
+       cmp      eax, dword ptr [rsp+0x24]
+       jne      SHORT G_M26012_IG04
+       mov      rcx, r14
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx rbp rsi rdi]
+       ; byrRegs -[rcx]
+       mov      dword ptr [r14+0x08], r15d
+       mov      r14, gword ptr [rbx+0x20]
+       ; gcrRegs +[r14]
+       ; byrRegs -[r14]
+       mov      rcx, gword ptr [r14+0x08]
+       ; gcrRegs +[rcx]
+       test     rcx, rcx
+       je       G_M26012_IG11
+                       ;; size=96 bbWeight=1 PerfScore 45.75
+G_M26012_IG05:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       je       G_M26012_IG12
+       movzx    rax, byte  ptr [rbx+0x28]
+                       ;; size=18 bbWeight=1 PerfScore 6.25
+G_M26012_IG06:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       pop      r15
+       ret      
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M26012_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx]
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M26012_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -76,12 +147,8 @@ G_M26012_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
                        ;; size=58 bbWeight=0 PerfScore 0.00
-G_M26012_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M26012_IG09:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi]
-       cmp      byte  ptr [rbx+0x2A], 0
-       je       SHORT G_M26012_IG06
-                       ;; size=6 bbWeight=1 PerfScore 4.00
-G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -89,67 +156,26 @@ G_M26012_IG05:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M26012_IG06
+       je       G_M26012_IG03
        mov      byte  ptr [rbx+0x28], 0
-                       ;; size=27 bbWeight=0 PerfScore 0.00
-G_M26012_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbx+0x10]
-       ; gcrRegs +[rcx]
-       mov      rdi, gword ptr [rcx+0x10]
-       ; gcrRegs +[rdi]
-       mov      rbp, gword ptr [rdi+0x08]
-       ; gcrRegs +[rbp]
-                       ;; size=12 bbWeight=1 PerfScore 6.00
-G_M26012_IG07:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      eax, dword ptr [rdi+0xA0]
-       mov      dword ptr [rsp+0x24], eax
-       mov      edx, eax
-       and      edx, dword ptr [rdi+0x18]
-       cmp      edx, dword ptr [rbp+0x08]
-       jae      G_M26012_IG14
-       shl      rdx, 4
-       lea      r14, bword ptr [rbp+rdx+0x10]
-       ; byrRegs +[r14]
-       mov      r8d, dword ptr [r14+0x08]
-       sub      r8d, eax
-       je       SHORT G_M26012_IG09
-                       ;; size=42 bbWeight=1 PerfScore 16.00
-G_M26012_IG08:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       jmp      G_M26012_IG03
+                       ;; size=36 bbWeight=0 PerfScore 0.00
+G_M26012_IG10:        ; bbWeight=0, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax] +[rcx rbp rdi]
        test     r8d, r8d
-       jge      SHORT G_M26012_IG07
-       jmp      G_M26012_IG15
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M26012_IG09:        ; bbWeight=1, gcrefRegs=00EA {rcx rbx rbp rsi rdi}, byrefRegs=4000 {r14}, byref, isz
-       ; byrRegs +[r14]
-       lea      rdx, bword ptr [rdi+0xA0]
-       ; byrRegs +[rdx]
-       lea      r15d, [rax+0x01]
-       lock     
-       cmpxchg  dword ptr [rdx], r15d
-       cmp      eax, dword ptr [rsp+0x24]
-       jne      SHORT G_M26012_IG07
-       mov      rcx, r14
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
+       jge      G_M26012_IG04
        mov      rdx, rsi
        ; gcrRegs +[rdx]
-       ; byrRegs -[rdx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rdx rbp rsi rdi]
-       ; byrRegs -[rcx]
-       mov      dword ptr [r14+0x08], r15d
-                       ;; size=37 bbWeight=1 PerfScore 24.50
-G_M26012_IG10:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; byrRegs -[r14]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx rbp rsi rdi]
+       ; gcr arg pop 0
        mov      r14, gword ptr [rbx+0x20]
        ; gcrRegs +[r14]
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       jne      SHORT G_M26012_IG12
-                       ;; size=13 bbWeight=1 PerfScore 5.25
+       jne      G_M26012_IG05
+                       ;; size=35 bbWeight=0 PerfScore 0.00
 G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.Win32.SafeHandles.SafeWaitHandle
@@ -175,42 +201,10 @@ G_M26012_IG11:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        ; byrRegs -[rcx]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-                       ;; size=55 bbWeight=0 PerfScore 0.00
-G_M26012_IG12:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx]
-       ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M26012_IG16
-       movzx    rax, byte  ptr [rbx+0x28]
-                       ;; size=14 bbWeight=1 PerfScore 6.25
-G_M26012_IG13:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=1 PerfScore 4.25
-G_M26012_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
...

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-49 (-18.28%) : 113684.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)

@@ -12,135 +12,121 @@
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T01] (  4,  3.50)     ref  ->  rsi         class-hnd single-def <System.Type>
 ;  V03 arg3         [V03,T02] (  4,  3   )     int  ->  rdi         single-def
-;  V04 arg4         [V04,T10] (  2,  1   )     int  ->  [rsp+0x80]  single-def
-;  V05 arg5         [V05,T06] (  4,  1.75)     ref  ->  rbp         class-hnd single-def <System.Object>
+;  V04 arg4         [V04,T09] (  2,  1   )     int  ->  [rsp+0x70]  single-def
+;  V05 arg5         [V05,T05] (  3,  1.50)     ref  ->  rbp         class-hnd single-def <System.Object>
 ;* V06 loc0         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T04] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V09 tmp2         [V09,T09] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V10 tmp3         [V10,T12] (  0,  0   )     int  ->  zero-ref   
+;* V09 tmp2         [V09,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V10 tmp3         [V10,T11] (  0,  0   )     int  ->  zero-ref   
 ;  V11 tmp4         [V11,T03] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V12 tmp5         [V12,T11] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V13 tmp6         [V13,T07] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V14 cse0         [V14,T08] (  3,  1.50)    long  ->  rdx         "CSE - moderate"
-;  V15 cse1         [V15,T05] (  5,  2.25)    long  ->  r15         "CSE - aggressive"
+;  V12 tmp5         [V12,T10] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
+;  V13 tmp6         [V13,T06] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V14 cse0         [V14,T07] (  3,  1.50)    long  ->  rcx         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M49136_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rsi, r8
        ; gcrRegs +[rsi]
        mov      edi, r9d
-       mov      rbp, gword ptr [rsp+0x88]
+       mov      rbp, gword ptr [rsp+0x78]
        ; gcrRegs +[rbp]
-                       ;; size=29 bbWeight=1 PerfScore 8.00
+                       ;; size=24 bbWeight=1 PerfScore 7.00
 G_M49136_IG02:        ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       cmp      rsi, rdx
-       jne      SHORT G_M49136_IG09
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       cmp      rsi, rcx
+       jne      SHORT G_M49136_IG04
                        ;; size=15 bbWeight=1 PerfScore 1.50
 G_M49136_IG03:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx]
+       ; gcrRegs -[rcx]
        cmp      edi, 1
-       jne      SHORT G_M49136_IG09
-       mov      r14d, dword ptr [rsp+0x80]
+       jne      SHORT G_M49136_IG04
+       mov      r14d, dword ptr [rsp+0x70]
        cmp      r14d, 1
-       jne      SHORT G_M49136_IG08
+       jne      SHORT G_M49136_IG07
        test     rbp, rbp
-       je       SHORT G_M49136_IG07
-       mov      rdx, qword ptr [rbp]
-       mov      r15, 0xD1FFAB1E      ; System.Int32
-       cmp      rdx, r15
-       mov      dword ptr [rsp+0x80], r14d
-       jne      SHORT G_M49136_IG09
-       je       SHORT G_M49136_IG05
-                       ;; size=53 bbWeight=0.50 PerfScore 5.12
-G_M49136_IG04:        ; bbWeight=0.25, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
-       mov      rdx, rbp
-       ; gcrRegs +[rdx]
-       mov      rcx, r15
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rdx rbp]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M49136_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, r15
+       je       SHORT G_M49136_IG06
+       mov      rcx, 0xD1FFAB1E      ; System.Int32
+       cmp      qword ptr [rbp], rcx
+       mov      dword ptr [rsp+0x70], r14d
+       je       SHORT G_M49136_IG08
+                       ;; size=42 bbWeight=0.50 PerfScore 5.00
+G_M49136_IG04:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     ecx, ecx
+       je       SHORT G_M49136_IG10
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
+G_M49136_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       ret      
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M49136_IG06:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       mov      dword ptr [rsp+0x70], r14d
+       jmp      SHORT G_M49136_IG04
+                       ;; size=7 bbWeight=0.25 PerfScore 0.75
+G_M49136_IG07:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rsp+0x70], r14d
+       jmp      SHORT G_M49136_IG04
+                       ;; size=7 bbWeight=0.25 PerfScore 0.75
+G_M49136_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rbp rsi]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        xor      ecx, ecx
        mov      dword ptr [rax+0x08], ecx
-                       ;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M49136_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=10 bbWeight=0.50 PerfScore 1.12
+G_M49136_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG07:        ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M49136_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rbp rsi]
-       mov      dword ptr [rsp+0x80], r14d
-       jmp      SHORT G_M49136_IG09
-                       ;; size=10 bbWeight=0.25 PerfScore 0.75
-G_M49136_IG08:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
-       mov      dword ptr [rsp+0x80], r14d
-                       ;; size=8 bbWeight=0.25 PerfScore 0.25
-G_M49136_IG09:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M49136_IG11
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M49136_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M49136_IG13
+       je       SHORT G_M49136_IG12
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M49136_IG12:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M49136_IG11:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M49136_IG13:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M49136_IG12:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rdx]
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M49136_IG14:        ; bbWeight=0.50, nogc, extend
-       mov      r14d, dword ptr [rsp+0x80]
-       mov      dword ptr [rsp+0x80], r14d
-       mov      gword ptr [rsp+0x88], rbp
+G_M49136_IG13:        ; bbWeight=0.50, nogc, extend
+       mov      r14d, dword ptr [rsp+0x70]
+       mov      dword ptr [rsp+0x70], r14d
+       mov      gword ptr [rsp+0x78], rbp
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      r8, rsi
@@ -148,19 +134,18 @@ G_M49136_IG14:        ; bbWeight=0.50, nogc, extend
        mov      r9d, edi
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-                       ;; size=37 bbWeight=0.50 PerfScore 2.88
-G_M49136_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=28 bbWeight=0.50 PerfScore 2.88
+G_M49136_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=16 bbWeight=0.50 PerfScore 2.62
+                       ;; size=14 bbWeight=0.50 PerfScore 2.38
 
-; Total bytes of code 268, prolog size 29, PerfScore 32.81, instruction count 80, allocated bytes for code 268 (MethodHash=1121400f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
+; Total bytes of code 219, prolog size 24, PerfScore 30.94, instruction count 71, allocated bytes for code 219 (MethodHash=1121400f) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -168,15 +153,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

-45 (-15.36%) : 119936.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)

@@ -12,61 +12,76 @@
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T02] (  5,  4   )     ref  ->  rdi         class-hnd single-def <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass>
 ;  V03 arg3         [V03,T01] (  6,  4   )     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V04 arg4         [V04,T07] (  5,  2.25)     ref  ->  rbp         class-hnd single-def <System.Object>
+;  V04 arg4         [V04,T06] (  4,  2   )     ref  ->  rbp         class-hnd single-def <System.Object>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06,T12] (  0,  0   )     int  ->  zero-ref   
-;  V07 tmp2         [V07,T06] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V08 tmp3         [V08,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V09 tmp4         [V09,T13] (  0,  0   )     int  ->  zero-ref   
-;* V10 tmp5         [V10,T14] (  0,  0   )     int  ->  zero-ref   
+;* V06 tmp1         [V06,T11] (  0,  0   )     int  ->  zero-ref   
+;  V07 tmp2         [V07,T05] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;* V08 tmp3         [V08,T09] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V09 tmp4         [V09,T12] (  0,  0   )     int  ->  zero-ref   
+;* V10 tmp5         [V10,T13] (  0,  0   )     int  ->  zero-ref   
 ;  V11 tmp6         [V11,T03] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V12 tmp7         [V12,T04] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V13 tmp8         [V13,T11] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
+;  V13 tmp8         [V13,T10] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
 ;  V14 tmp9         [V14,T08] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V15 cse0         [V15,T09] (  3,  1.50)    long  ->  r15         "CSE - moderate"
-;  V16 cse1         [V16,T05] (  6,  2.75)    long  ->  r14         "CSE - aggressive"
+;  V15 cse0         [V15,T07] (  4,  2   )    long  ->  r14         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M52598_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rdi, r8
        ; gcrRegs +[rdi]
        mov      rsi, r9
        ; gcrRegs +[rsi]
-       mov      rbp, gword ptr [rsp+0x80]
+       mov      rbp, gword ptr [rsp+0x70]
        ; gcrRegs +[rbp]
-                       ;; size=29 bbWeight=1 PerfScore 8.00
-G_M52598_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+                       ;; size=24 bbWeight=1 PerfScore 7.00
+G_M52598_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rdi, rdi
-       je       G_M52598_IG07
-                       ;; size=9 bbWeight=1 PerfScore 1.25
+       je       SHORT G_M52598_IG04
+                       ;; size=5 bbWeight=1 PerfScore 1.25
 G_M52598_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass
        cmp      qword ptr [rdi], rcx
-       jne      G_M52598_IG07
+       jne      SHORT G_M52598_IG04
        test     rsi, rsi
-       je       G_M52598_IG07
+       je       SHORT G_M52598_IG04
        mov      r14, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rsi], r14
-       jne      SHORT G_M52598_IG07
+       jne      SHORT G_M52598_IG04
        test     rbp, rbp
-       je       SHORT G_M52598_IG07
-       mov      r15, qword ptr [rbp]
-       cmp      r15, r14
-       jne      SHORT G_M52598_IG07
+       je       SHORT G_M52598_IG04
+       cmp      qword ptr [rbp], r14
+       je       SHORT G_M52598_IG06
+                       ;; size=46 bbWeight=0.50 PerfScore 7.50
+G_M52598_IG04:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     ecx, ecx
+       je       SHORT G_M52598_IG08
+                       ;; size=12 bbWeight=0.50 PerfScore 2.12
+G_M52598_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r14
+       ret      
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rbx rdi]
        mov      rcx, 0xD1FFAB1E      ; System.Object[]
        mov      edx, 2
        call     CORINFO_HELP_NEWARR_1_OBJ
-       ; gcrRegs -[rbx rdi] +[rax]
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
@@ -77,18 +92,6 @@ G_M52598_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx rsi]
        ; byrRegs -[rcx]
-       cmp      r15, r14
-       je       SHORT G_M52598_IG05
-                       ;; size=97 bbWeight=0.50 PerfScore 9.50
-G_M52598_IG04:        ; bbWeight=0.25, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
-       mov      rdx, rbp
-       ; gcrRegs +[rdx]
-       mov      rcx, r14
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rdx]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M52598_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
        mov      rcx, r14
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -103,54 +106,37 @@ G_M52598_IG05:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
        ; gcrRegs -[rax rdx rbx rbp]
        ; byrRegs -[rcx]
        mov      dword ptr [(reloc)], 1      ; data for <unknown class>:<unknown field>
-                       ;; size=36 bbWeight=0.50 PerfScore 3.50
-G_M52598_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=71 bbWeight=0.50 PerfScore 5.25
+G_M52598_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rbp rsi rdi]
-       movzx    rcx, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     ecx, ecx
-       je       SHORT G_M52598_IG09
-                       ;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M52598_IG11
+       je       SHORT G_M52598_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M52598_IG10:        ; bbWeight=0.25, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M52598_IG09:        ; bbWeight=0.25, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M52598_IG11:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M52598_IG10:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rdx]
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M52598_IG12:        ; bbWeight=0.50, nogc, extend
-       mov      gword ptr [rsp+0x80], rbp
+G_M52598_IG11:        ; bbWeight=0.50, nogc, extend
+       mov      gword ptr [rsp+0x70], rbp
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      r8, rdi
@@ -159,19 +145,18 @@ G_M52598_IG12:        ; bbWeight=0.50, nogc, extend
        ; gcrRegs +[r9]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-                       ;; size=21 bbWeight=0.50 PerfScore 1.88
-G_M52598_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+                       ;; size=18 bbWeight=0.50 PerfScore 1.88
+G_M52598_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=16 bbWeight=0.50 PerfScore 2.62
+                       ;; size=14 bbWeight=0.50 PerfScore 2.38
 
-; Total bytes of code 293, prolog size 29, PerfScore 37.06, instruction count 86, allocated bytes for code 293 (MethodHash=e7623289) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
+; Total bytes of code 248, prolog size 24, PerfScore 34.69, instruction count 76, allocated bytes for code 248 (MethodHash=e7623289) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -179,15 +164,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

-27 (-13.99%) : 118800.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,System.Object):System.Object (FullOpts)

@@ -12,28 +12,26 @@
 ;  V01 arg1         [V01,T00] (  7,  4.25)     ref  ->  rbx         class-hnd single-def <System.Runtime.CompilerServices.CallSite>
 ;  V02 arg2         [V02,T01] (  4,  3.50)     ref  ->  rsi         class-hnd single-def <System.Type>
 ;  V03 arg3         [V03,T02] (  3,  2.50)     int  ->  rdi         single-def
-;  V04 arg4         [V04,T06] (  4,  1.75)     ref  ->  rbp         class-hnd single-def <System.Object>
+;  V04 arg4         [V04,T05] (  3,  1.50)     ref  ->  rbp         class-hnd single-def <System.Object>
 ;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T04] (  3,  2.50)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V08 tmp2         [V08,T09] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;* V09 tmp3         [V09,T11] (  0,  0   )     int  ->  zero-ref   
+;* V08 tmp2         [V08,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;* V09 tmp3         [V09,T10] (  0,  0   )     int  ->  zero-ref   
 ;  V10 tmp4         [V10,T03] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
 ;* V11 tmp5         [V11    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V12 tmp6         [V12,T10] (  2,  1   )   ubyte  ->  rax         single-def "Inline stloc first use temp"
-;  V13 tmp7         [V13,T07] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V14 cse0         [V14,T08] (  3,  1.50)    long  ->  rdx         "CSE - moderate"
-;  V15 cse1         [V15,T05] (  5,  2.25)    long  ->  r14         "CSE - aggressive"
+;  V12 tmp6         [V12,T09] (  2,  1   )   ubyte  ->  rcx         single-def "Inline stloc first use temp"
+;  V13 tmp7         [V13,T06] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V14 cse0         [V14,T07] (  3,  1.50)    long  ->  rcx         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M31567_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rsi, r8
@@ -41,87 +39,73 @@ G_M31567_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edi, r9d
        mov      rbp, gword ptr [rsp+0x70]
        ; gcrRegs +[rbp]
-                       ;; size=24 bbWeight=1 PerfScore 7.00
+                       ;; size=22 bbWeight=1 PerfScore 6.00
 G_M31567_IG02:        ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       cmp      rsi, rdx
-       jne      SHORT G_M31567_IG07
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       cmp      rsi, rcx
+       jne      SHORT G_M31567_IG04
                        ;; size=15 bbWeight=1 PerfScore 1.50
 G_M31567_IG03:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx]
+       ; gcrRegs -[rcx]
        test     rbp, rbp
-       je       SHORT G_M31567_IG07
-       mov      rdx, qword ptr [rbp]
-       mov      r14, 0xD1FFAB1E      ; System.Int32
-       cmp      rdx, r14
-       jne      SHORT G_M31567_IG07
-       je       SHORT G_M31567_IG05
-                       ;; size=26 bbWeight=0.50 PerfScore 2.88
-G_M31567_IG04:        ; bbWeight=0.25, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi]
-       mov      rdx, rbp
-       ; gcrRegs +[rdx]
-       mov      rcx, r14
-       call     CORINFO_HELP_UNBOX
-       ; gcrRegs -[rdx rbp]
-       ; gcr arg pop 0
-                       ;; size=11 bbWeight=0.25 PerfScore 0.38
-G_M31567_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, r14
+       je       SHORT G_M31567_IG04
+       mov      rcx, 0xD1FFAB1E      ; System.Int32
+       cmp      qword ptr [rbp], rcx
+       je       SHORT G_M31567_IG06
+                       ;; size=21 bbWeight=0.50 PerfScore 2.75
+G_M31567_IG04:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       movzx    rcx, byte  ptr [rbx+0x10]
+       mov      byte  ptr [rbx+0x10], 0
+       test     ecx, ecx
+       je       SHORT G_M31567_IG08
+       xor      rax, rax
+       ; gcrRegs +[rax]
+                       ;; size=14 bbWeight=0.50 PerfScore 2.25
+G_M31567_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       ret      
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M31567_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx rbp rsi]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        xor      ecx, ecx
        mov      dword ptr [rax+0x08], ecx
-                       ;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M31567_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+                       ;; size=10 bbWeight=0.50 PerfScore 1.12
+G_M31567_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M31567_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M31567_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rbp rsi]
-       movzx    rax, byte  ptr [rbx+0x10]
-       mov      byte  ptr [rbx+0x10], 0
-       test     eax, eax
-       je       SHORT G_M31567_IG09
-       xor      rax, rax
-       ; gcrRegs +[rax]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.25
-G_M31567_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M31567_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M31567_IG11
+       je       SHORT G_M31567_IG10
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M31567_IG10:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M31567_IG09:        ; bbWeight=0.25, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
                        ;; size=8 bbWeight=0.25 PerfScore 0.31
-G_M31567_IG11:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M31567_IG10:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rax, gword ptr [rdx]
        ; gcrRegs +[rax]
                        ;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M31567_IG12:        ; bbWeight=0.50, nogc, extend
+G_M31567_IG11:        ; bbWeight=0.50, nogc, extend
        mov      gword ptr [rsp+0x70], rbp
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -131,17 +115,16 @@ G_M31567_IG12:        ; bbWeight=0.50, nogc, extend
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
                        ;; size=18 bbWeight=0.50 PerfScore 1.88
-G_M31567_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 32
+G_M31567_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
        tail.jmp [rax+0x18]<unknown method>
-                       ;; size=14 bbWeight=0.50 PerfScore 2.38
+                       ;; size=12 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 193, prolog size 24, PerfScore 26.81, instruction count 65, allocated bytes for code 193 (MethodHash=0d2084b0) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,System.Object):System.Object (FullOpts)
+; Total bytes of code 166, prolog size 22, PerfScore 24.44, instruction count 55, allocated bytes for code 166 (MethodHash=0d2084b0) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,System.Object):System.Object (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -149,14 +132,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0A
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

+16 (+7.37%) : 161173.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)

@@ -56,58 +56,24 @@ G_M25025_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, r8
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M25025_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG14
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rbx+0x08], 0
-       jne      SHORT G_M25025_IG05
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M25025_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
-       mov      ecx, 0x3071
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rbx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG05:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG14
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M25025_IG04:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rsi, rsi
-       je       SHORT G_M25025_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG06:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG15
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG05:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      ebp, dword ptr [rsi+0x08]
        test     ebp, ebp
-       jne      SHORT G_M25025_IG08
-                       ;; size=7 bbWeight=0.46 PerfScore 1.49
-G_M25025_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi]
-       mov      ecx, 0x15BB
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rsi]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG15
+                       ;; size=11 bbWeight=0.46 PerfScore 1.49
+G_M25025_IG06:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Net.Mime.MailBnfHelper:ValidateHeaderName(System.String)]
@@ -128,9 +94,9 @@ G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M25025_IG12
+       jne      SHORT G_M25025_IG10
                        ;; size=37 bbWeight=1 PerfScore 11.75
-G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG07:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 1
@@ -140,7 +106,7 @@ G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -148,9 +114,9 @@ G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M25025_IG13
+       je       SHORT G_M25025_IG11
                        ;; size=13 bbWeight=1 PerfScore 4.50
-G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -160,13 +126,13 @@ G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        call     [System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this]
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
-       jmp      SHORT G_M25025_IG14
+       jmp      SHORT G_M25025_IG12
                        ;; size=17 bbWeight=0.50 PerfScore 2.88
-G_M25025_IG12:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG10:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx rsi rdi]
-       jmp      SHORT G_M25025_IG10
+       jmp      SHORT G_M25025_IG08
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -177,10 +143,10 @@ G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0.50 PerfScore 1.88
-G_M25025_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25025_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M25025_IG13:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -188,8 +154,40 @@ G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
+G_M25025_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rbx]
+       mov      ecx, 0x3071
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rbx]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M25025_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi]
+       mov      ecx, 0x15BB
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rsi]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 217 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
+; Total bytes of code 233, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 233 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+16 (+7.37%) : 160594.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)

@@ -56,58 +56,24 @@ G_M25025_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, r8
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M25025_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG14
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rbx+0x08], 0
-       jne      SHORT G_M25025_IG05
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M25025_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
-       mov      ecx, 0x192F
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rbx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG05:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG14
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M25025_IG04:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rsi, rsi
-       je       SHORT G_M25025_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M25025_IG06:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M25025_IG15
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M25025_IG05:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      ebp, dword ptr [rsi+0x08]
        test     ebp, ebp
-       jne      SHORT G_M25025_IG08
-                       ;; size=7 bbWeight=0.46 PerfScore 1.49
-G_M25025_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi]
-       mov      ecx, 0x13A3
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rsi]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M25025_IG15
+                       ;; size=11 bbWeight=0.46 PerfScore 1.49
+G_M25025_IG06:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Net.Mime.MailBnfHelper:ValidateHeaderName(System.String)]
@@ -128,9 +94,9 @@ G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M25025_IG12
+       jne      SHORT G_M25025_IG10
                        ;; size=37 bbWeight=1 PerfScore 11.75
-G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG07:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 1
@@ -140,7 +106,7 @@ G_M25025_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -148,9 +114,9 @@ G_M25025_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M25025_IG13
+       je       SHORT G_M25025_IG11
                        ;; size=13 bbWeight=1 PerfScore 4.50
-G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -160,13 +126,13 @@ G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        call     [System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this]
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
-       jmp      SHORT G_M25025_IG14
+       jmp      SHORT G_M25025_IG12
                        ;; size=17 bbWeight=0.50 PerfScore 2.88
-G_M25025_IG12:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M25025_IG10:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx rsi rdi]
-       jmp      SHORT G_M25025_IG10
+       jmp      SHORT G_M25025_IG08
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M25025_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
@@ -177,10 +143,10 @@ G_M25025_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx rbx rsi rdi r8]
        ; gcr arg pop 0
                        ;; size=15 bbWeight=0.50 PerfScore 1.88
-G_M25025_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25025_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M25025_IG13:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -188,8 +154,40 @@ G_M25025_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
+G_M25025_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rbx]
+       mov      ecx, 0x192F
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rbx]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M25025_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi]
+       mov      ecx, 0x13A3
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rsi]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 217 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
+; Total bytes of code 233, prolog size 8, PerfScore 36.33, instruction count 66, allocated bytes for code 233 (MethodHash=ec109e3e) for method System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+24 (+8.36%) : 160395.dasm - System.Net.Mime.HeaderCollection:Set(System.String,System.String):this (FullOpts)

@@ -120,58 +120,24 @@ G_M38562_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, r8
        ; gcrRegs +[rsi]
                        ;; size=17 bbWeight=1 PerfScore 5.00
-G_M38562_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M38562_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M38562_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M38562_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M38562_IG13
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M38562_IG03:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      ebp, dword ptr [rbx+0x08]
        test     ebp, ebp
-       jne      SHORT G_M38562_IG05
-                       ;; size=7 bbWeight=0.46 PerfScore 1.49
-G_M38562_IG04:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
-       mov      ecx, 0x192F
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rbx]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M38562_IG05:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M38562_IG13
+                       ;; size=11 bbWeight=0.46 PerfScore 1.49
+G_M38562_IG04:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rsi, rsi
-       je       SHORT G_M38562_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M38562_IG06:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M38562_IG14
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M38562_IG05:        ; bbWeight=0.46, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rsi+0x08], 0
-       jne      SHORT G_M38562_IG08
-                       ;; size=6 bbWeight=0.46 PerfScore 1.84
-G_M38562_IG07:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rdi]
-       mov      ecx, 0x13A3
-       mov      rdx, 0xD1FFAB1E
-       call     CORINFO_HELP_STRCNS
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, rsi
-       ; gcrRegs +[rcx]
-       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
-       ; gcrRegs -[rax rcx rdx rsi]
-       ; gcr arg pop 0
-       int3     
-                       ;; size=33 bbWeight=0 PerfScore 0.00
-G_M38562_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx rsi rdi]
+       je       G_M38562_IG14
+                       ;; size=10 bbWeight=0.46 PerfScore 1.84
+G_M38562_IG06:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -186,9 +152,9 @@ G_M38562_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M38562_IG15
-                       ;; size=35 bbWeight=1 PerfScore 8.50
-G_M38562_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M38562_IG15
+                       ;; size=39 bbWeight=1 PerfScore 8.50
+G_M38562_IG07:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rbx+0x0C]
        ; byrRegs +[rcx]
        mov      r9d, ebp
@@ -198,9 +164,9 @@ G_M38562_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jge      SHORT G_M38562_IG15
-                       ;; size=28 bbWeight=0.50 PerfScore 2.75
-G_M38562_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       jge      G_M38562_IG15
+                       ;; size=32 bbWeight=0.50 PerfScore 2.75
+G_M38562_IG08:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Net.Mail.MailHeaderInfo:NormalizeCase(System.String):System.String]
@@ -216,9 +182,9 @@ G_M38562_IG10:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M38562_IG14
+       jne      SHORT G_M38562_IG12
                        ;; size=29 bbWeight=1 PerfScore 10.25
-G_M38562_IG11:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M38562_IG09:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 1
@@ -228,7 +194,7 @@ G_M38562_IG11:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      r8, rax
        ; gcrRegs +[r8]
                        ;; size=17 bbWeight=0 PerfScore 0.00
-G_M38562_IG12:        ; bbWeight=1, gcrefRegs=0188 {rbx rdi r8}, byrefRegs=0000 {}, byref
+G_M38562_IG10:        ; bbWeight=1, gcrefRegs=0188 {rbx rdi r8}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -239,7 +205,7 @@ G_M38562_IG12:        ; bbWeight=1, gcrefRegs=0188 {rbx rdi r8}, byrefRegs=0000
        ; gcr arg pop 0
        nop      
                        ;; size=13 bbWeight=1 PerfScore 3.75
-G_M38562_IG13:        ; bbWeight=1, epilog, nogc, extend
+G_M38562_IG11:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -247,14 +213,45 @@ G_M38562_IG13:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M38562_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M38562_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rsi rdi]
        mov      r8, rsi
        ; gcrRegs +[r8]
-       jmp      SHORT G_M38562_IG12
+       jmp      SHORT G_M38562_IG10
                        ;; size=5 bbWeight=0.50 PerfScore 1.12
+G_M38562_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi r8]
+       mov      ecx, 0x192F
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rbx]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M38562_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi]
+       mov      ecx, 0x13A3
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
+       ; gcrRegs -[rax rcx rdx rsi]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 G_M38562_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rsi rdi r8]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -278,7 +275,7 @@ G_M38562_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 287, prolog size 8, PerfScore 40.46, instruction count 80, allocated bytes for code 287 (MethodHash=6510695d) for method System.Net.Mime.HeaderCollection:Set(System.String,System.String):this (FullOpts)
+; Total bytes of code 311, prolog size 8, PerfScore 40.46, instruction count 80, allocated bytes for code 311 (MethodHash=6510695d) for method System.Net.Mime.HeaderCollection:Set(System.String,System.String):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

realworld.run.windows.x64.checked.mch

-27 (-6.91%) : 15802.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor:.ctor(System.Numerics.Matrix3x2,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler,SixLabors.ImageSharp.Size):this (FullOpts)

@@ -8,15 +8,15 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5,  5   )     ref  ->  rsi         this class-hnd single-def <SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor>
-;  V01 arg1         [V01,T00] (  9, 18   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T02] (  5,  5   )     ref  ->  rdi         class-hnd single-def <SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler>
-;  V03 arg3         [V03,T04] (  3,  3   )  struct ( 8) rbp         single-def <SixLabors.ImageSharp.Size>
+;  V00 this         [V00,T01] (  5,  2   )     ref  ->  rsi         this class-hnd single-def <SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor>
+;  V01 arg1         [V01,T00] (  9,  4   )   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T02] (  5,  2   )     ref  ->  rdi         class-hnd single-def <SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler>
+;  V03 arg3         [V03,T03] (  3,  2   )  struct ( 8) rbp         single-def <SixLabors.ImageSharp.Size>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T15] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <SixLabors.ImageSharp.Processing.Processors.Transforms.DegenerateTransformException>
+;  V05 tmp1         [V05,T04] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <SixLabors.ImageSharp.Processing.Processors.Transforms.DegenerateTransformException>
 ;* V06 tmp2         [V06    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler>
 ;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;  V08 tmp4         [V08,T06] (  2,  1   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V08 tmp4         [V08,T10] (  2,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Numerics.Matrix3x2>
 ;* V10 tmp6         [V10,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] "Inlining Arg" <System.Numerics.Matrix3x2>
@@ -26,26 +26,26 @@
 ;* V15 tmp11        [V15    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp12        [V16    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
-;  V18 tmp14        [V18,T05] (  3,  1.50)   ubyte  ->  rcx         "Inline return value spill temp"
-;  V19 tmp15        [V19,T08] (  3,  3   )   float  ->  mm6         "Inlining Arg"
-;  V20 tmp16        [V20,T07] (  4,  3.50)   float  ->  mm0         single-def "V09.[000..004)"
-;  V21 tmp17        [V21,T09] (  4,  2.50)   float  ->  mm1         single-def "V09.[004..008)"
-;  V22 tmp18        [V22,T10] (  4,  2.50)   float  ->  mm2         single-def "V09.[008..012)"
-;  V23 tmp19        [V23,T11] (  4,  2.50)   float  ->  mm3         single-def "V09.[012..016)"
-;  V24 tmp20        [V24,T12] (  3,  2   )   float  ->  mm4         single-def "V09.[016..020)"
-;  V25 tmp21        [V25,T13] (  3,  2   )   float  ->  mm5         single-def "V09.[020..024)"
+;  V18 tmp14        [V18,T11] (  3,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V19 tmp15        [V19,T12] (  3,  0   )   float  ->  mm6         "Inlining Arg"
+;  V20 tmp16        [V20,T05] (  4,  0   )   float  ->  mm0         single-def "V09.[000..004)"
+;  V21 tmp17        [V21,T06] (  4,  0   )   float  ->  mm1         single-def "V09.[004..008)"
+;  V22 tmp18        [V22,T07] (  4,  0   )   float  ->  mm2         single-def "V09.[008..012)"
+;  V23 tmp19        [V23,T08] (  4,  0   )   float  ->  mm3         single-def "V09.[012..016)"
+;  V24 tmp20        [V24,T13] (  3,  0   )   float  ->  mm4         single-def "V09.[016..020)"
+;  V25 tmp21        [V25,T14] (  3,  0   )   float  ->  mm5         single-def "V09.[020..024)"
 ;* V26 tmp22        [V26    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[000..004)"
 ;* V27 tmp23        [V27    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[004..008)"
 ;* V28 tmp24        [V28    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[008..012)"
 ;* V29 tmp25        [V29    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[012..016)"
 ;* V30 tmp26        [V30    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[016..020)"
 ;* V31 tmp27        [V31    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[020..024)"
-;  V32 tmp28        [V32,T03] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
-;  V33 cse0         [V33,T14] (  3,  1.50)   float  ->  mm0         "CSE - moderate"
+;  V32 tmp28        [V32,T09] (  3,  0   )     ref  ->  rax         single-def "argument with side effect"
+;  V33 cse0         [V33,T15] (  3,  0   )   float  ->  mm0         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
-G_M56268_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M56268_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
@@ -60,19 +60,17 @@ G_M56268_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdi, r8
        ; gcrRegs +[rdi]
        mov      rbp, r9
-                       ;; size=29 bbWeight=1 PerfScore 8.25
-G_M56268_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+                       ;; size=29 bbWeight=0 PerfScore 0.00
+G_M56268_IG02:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        test     rdi, rdi
-       jne      SHORT G_M56268_IG04
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M56268_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+       jne      SHORT G_M56268_IG03
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-                       ;; size=16 bbWeight=0.50 PerfScore 1.62
-G_M56268_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+                       ;; size=21 bbWeight=0 PerfScore 0.00
+G_M56268_IG03:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -87,9 +85,7 @@ G_M56268_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M56268_IG06
-                       ;; size=28 bbWeight=1 PerfScore 9.75
-G_M56268_IG05:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+       jne      SHORT G_M56268_IG04
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -97,8 +93,8 @@ G_M56268_IG05:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M56268_IG06:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+                       ;; size=54 bbWeight=0 PerfScore 0.00
+G_M56268_IG04:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        vmovss   xmm0, dword ptr [rbx]
        vmovss   xmm1, dword ptr [rbx+0x04]
        vmovss   xmm2, dword ptr [rbx+0x08]
@@ -106,83 +102,54 @@ G_M56268_IG06:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rb
        vmovss   xmm4, dword ptr [rbx+0x10]
        vmovss   xmm5, dword ptr [rbx+0x14]
        vucomiss xmm0, xmm0
-       jp       G_M56268_IG14
-                       ;; size=39 bbWeight=1 PerfScore 27.00
-G_M56268_IG07:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       jp       SHORT G_M56268_IG08
        vucomiss xmm1, xmm1
-       jp       G_M56268_IG14
+       jp       SHORT G_M56268_IG08
        vucomiss xmm2, xmm2
-       jp       G_M56268_IG14
+       jp       SHORT G_M56268_IG08
        vucomiss xmm3, xmm3
-       jp       G_M56268_IG14
+       jp       SHORT G_M56268_IG08
        vucomiss xmm4, xmm4
-       jp       G_M56268_IG14
+       jp       SHORT G_M56268_IG08
        vucomiss xmm5, xmm5
-       jp       G_M56268_IG14
+       jp       SHORT G_M56268_IG08
        vmulss   xmm0, xmm0, xmm3
        vmulss   xmm1, xmm2, xmm1
        vsubss   xmm6, xmm0, xmm1
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       SHORT G_M56268_IG13
-                       ;; size=71 bbWeight=0.50 PerfScore 14.00
-G_M56268_IG08:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
-       vmovss   xmm0, dword ptr [(reloc)]      ; static handle
-       vxorps   xmm1, xmm0, xmmword ptr [reloc @RWD00]
-       vucomiss xmm6, xmm1
-       jbe      SHORT G_M56268_IG09
-       xor      ecx, ecx
-       vucomiss xmm0, xmm6
-       seta     cl
-       jmp      SHORT G_M56268_IG10
-                       ;; size=33 bbWeight=0.50 PerfScore 7.12
-G_M56268_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
-       xor      ecx, ecx
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M56268_IG10:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
-       test     ecx, ecx
-       jne      SHORT G_M56268_IG14
-                       ;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M56268_IG11:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
-       lea      rcx, bword ptr [rsi+0x08]
-       ; byrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rdi]
-       ; byrRegs -[rcx]
-       vmovdqu  xmm0, xmmword ptr [rbx]
-       vmovdqu  xmmword ptr [rsi+0x10], xmm0
-       mov      rcx, qword ptr [rbx+0x10]
-       mov      qword ptr [rsi+0x20], rcx
-       mov      qword ptr [rsi+0x28], rbp
-                       ;; size=33 bbWeight=1 PerfScore 11.75
-G_M56268_IG12:        ; bbWeight=1, epilog, nogc, extend
-       vmovaps  xmm6, xmmword ptr [rsp+0x20]
-       add      rsp, 56
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       ret      
-                       ;; size=15 bbWeight=1 PerfScore 7.25
-G_M56268_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; gcrRegs +[rdi]
+       jne      SHORT G_M56268_IG05
        mov      rcx, 0xD1FFAB1E
        mov      edx, 11
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
        ; gcr arg pop 0
-       jmp      SHORT G_M56268_IG08
-                       ;; size=22 bbWeight=0 PerfScore 0.00
-G_M56268_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=106 bbWeight=0 PerfScore 0.00
+G_M56268_IG05:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       vmovss   xmm0, dword ptr [(reloc)]      ; static handle
+       vxorps   xmm1, xmm0, xmmword ptr [reloc @RWD00]
+       vucomiss xmm6, xmm1
+       jbe      SHORT G_M56268_IG06
+       xor      ecx, ecx
+       vucomiss xmm0, xmm6
+       seta     cl
+       jmp      SHORT G_M56268_IG07
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M56268_IG06:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+       xor      ecx, ecx
+                       ;; size=2 bbWeight=0 PerfScore 0.00
+G_M56268_IG07:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       test     ecx, ecx
+       je       SHORT G_M56268_IG09
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M56268_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rbx]
        mov      rcx, 0xD1FFAB1E      ; SixLabors.ImageSharp.Processing.Processors.Transforms.DegenerateTransformException
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      rcx, rbx
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [System.Exception:.ctor():this]
        ; gcrRegs -[rax rcx]
@@ -192,24 +159,48 @@ G_M56268_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_STRCNS
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rbx+0x10]
+       lea      rcx, bword ptr [rsi+0x10]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-       mov      rcx, rbx
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     CORINFO_HELP_THROW
-       ; gcrRegs -[rcx rbx]
+       ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
-       int3     
-                       ;; size=68 bbWeight=0 PerfScore 0.00
+                       ;; size=67 bbWeight=0 PerfScore 0.00
+G_M56268_IG09:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[rsi rdi]
+       ; byrRegs +[rbx]
+       lea      rcx, bword ptr [rsi+0x08]
+       ; byrRegs +[rcx]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
...

-14 (-6.64%) : 33246.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)

@@ -11,22 +11,20 @@
 ;  V00 arg0         [V00,T02] (  7,  8.50)     ref  ->  rbx         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T03] (  4,  3.50)   byref  ->  rsi         single-def
 ;  V02 arg2         [V02,T04] (  4,  3.50)   byref  ->  rdi         single-def
-;  V03 loc0         [V03,T07] (  5,  4   )     int  ->  r14        
+;  V03 loc0         [V03,T07] (  5,  2.50)     int  ->  rbp        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
-;  V05 loc2         [V05,T01] (  6, 18.50)     int  ->  r15        
+;  V05 loc2         [V05,T01] (  6, 17   )     int  ->   r8        
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V08 tmp2         [V08,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp3         [V09,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp4         [V10,T00] (  5, 28   )  ushort  ->  rax         "Inlining Arg"
-;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  rbp         "CSE - aggressive"
+;  V10 tmp4         [V10,T00] (  5, 28   )  ushort  ->  rdx         "Inlining Arg"
+;  V11 cse0         [V11,T05] (  4,  5.50)     int  ->  rcx         "CSE - aggressive"
 ;  V12 cse1         [V12,T06] (  3,  3   )     ref  ->  rbp         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
 G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
-       push     r14
        push     rdi
        push     rsi
        push     rbp
@@ -38,7 +36,7 @@ G_M22854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs +[rsi]
        mov      rdi, r8
        ; byrRegs +[rdi]
-                       ;; size=21 bbWeight=1 PerfScore 7.00
+                       ;; size=17 bbWeight=1 PerfScore 5.00
 G_M22854_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
        mov      rbp, 0xD1FFAB1E
        ; gcrRegs +[rbp]
@@ -60,15 +58,10 @@ G_M22854_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rd
        je       SHORT G_M22854_IG04
                        ;; size=37 bbWeight=1 PerfScore 4.50
 G_M22854_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       mov      ebp, dword ptr [rbx+0x08]
-       test     ebp, ebp
-       je       SHORT G_M22854_IG04
-       xor      r14d, r14d
-       xor      r15d, r15d
-       test     ebp, ebp
-       jle      SHORT G_M22854_IG11
-       jmp      SHORT G_M22854_IG06
-                       ;; size=19 bbWeight=0.50 PerfScore 3.50
+       mov      ecx, dword ptr [rbx+0x08]
+       test     ecx, ecx
+       jne      SHORT G_M22854_IG06
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
 G_M22854_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        ; byrRegs -[rsi rdi]
@@ -80,43 +73,45 @@ G_M22854_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M22854_IG06:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, gcvars, byref, isz
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M22854_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs +[rsi rdi]
-       mov      eax, r15d
-       movzx    rax, word  ptr [rbx+2*rax+0x0C]
-       cmp      eax, 45
+       xor      ebp, ebp
+       xor      r8d, r8d
+       test     ecx, ecx
+       jle      SHORT G_M22854_IG11
+                       ;; size=9 bbWeight=0.50 PerfScore 0.88
+G_M22854_IG07:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       mov      edx, r8d
+       movzx    rdx, word  ptr [rbx+2*rdx+0x0C]
+       cmp      edx, 45
        je       SHORT G_M22854_IG10
                        ;; size=13 bbWeight=4 PerfScore 14.00
-G_M22854_IG07:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       cmp      eax, 0x2013
+G_M22854_IG08:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       cmp      edx, 0x2013
        je       SHORT G_M22854_IG10
-       cmp      eax, 0x2014
+       cmp      edx, 0x2014
        je       SHORT G_M22854_IG10
-       cmp      eax, 0x2015
+       cmp      edx, 0x2015
        je       SHORT G_M22854_IG10
-                       ;; size=21 bbWeight=2 PerfScore 7.50
-G_M22854_IG08:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       inc      r15d
-       cmp      ebp, r15d
-       jg       SHORT G_M22854_IG06
-                       ;; size=8 bbWeight=4 PerfScore 6.00
-G_M22854_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+                       ;; size=24 bbWeight=2 PerfScore 7.50
+G_M22854_IG09:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       inc      r8d
+       cmp      ecx, r8d
+       jg       SHORT G_M22854_IG07
        jmp      SHORT G_M22854_IG11
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M22854_IG10:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
-       mov      r14d, r15d
-                       ;; size=3 bbWeight=2 PerfScore 0.50
+                       ;; size=10 bbWeight=4 PerfScore 14.00
+G_M22854_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
+       mov      ebp, r8d
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       test     r14d, r14d
+       test     ebp, ebp
        jle      SHORT G_M22854_IG04
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       mov      r8d, r14d
+       mov      r8d, ebp
        xor      edx, edx
        call     [System.String:Substring(int,int):System.String:this]
        ; gcrRegs -[rcx] +[rax]
@@ -128,7 +123,7 @@ G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx rsi]
-       lea      edx, [r14+0x01]
+       lea      edx, [rbp+0x01]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.String:Substring(int):System.String:this]
@@ -142,19 +137,17 @@ G_M22854_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx rdi]
        mov      eax, 1
-                       ;; size=59 bbWeight=0.50 PerfScore 6.00
+                       ;; size=57 bbWeight=0.50 PerfScore 6.00
 G_M22854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
-       pop      r15
        ret      
-                       ;; size=13 bbWeight=0.50 PerfScore 2.12
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
 
-; Total bytes of code 211, prolog size 21, PerfScore 54.38, instruction count 75, allocated bytes for code 211 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
+; Total bytes of code 197, prolog size 17, PerfScore 57.00, instruction count 68, allocated bytes for code 197 (MethodHash=b068a6b9) for method System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -162,15 +155,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

-18 (-6.21%) : 634.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

@@ -75,22 +75,43 @@ G_M46385_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
 G_M46385_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       je       SHORT G_M46385_IG04
+       jne      SHORT G_M46385_IG05
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
+G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 36
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        cmp      edi, 1
-       jne      G_M46385_IG16
+       jne      G_M46385_IG17
        movzx    rcx, word  ptr [rbx+0x0C]
        or       ecx, 32
        cmp      ecx, 100
-       jg       G_M46385_IG12
+       jg       SHORT G_M46385_IG06
        cmp      ecx, 98
-       je       G_M46385_IG14
+       je       SHORT G_M46385_IG08
        cmp      ecx, 100
-       jne      G_M46385_IG17
-                       ;; size=50 bbWeight=0.50 PerfScore 5.25
-G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 36
+       jne      G_M46385_IG18
+       jmp      SHORT G_M46385_IG04
+                       ;; size=37 bbWeight=0.50 PerfScore 4.62
+G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       cmp      ecx, 110
+       je       SHORT G_M46385_IG07
+       cmp      ecx, 112
+       je       SHORT G_M46385_IG08
+       cmp      ecx, 120
+       jne      G_M46385_IG18
+       mov      ecx, 68
+       jmp      SHORT G_M46385_IG09
+                       ;; size=26 bbWeight=0.50 PerfScore 3.00
+G_M46385_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 32
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       mov      ecx, 38
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+G_M46385_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -100,15 +121,25 @@ G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
        ; byrRegs +[rcx]
        mov      edx, dword ptr [rbp+0x08]
        test     rbx, rbx
-       jne      G_M46385_IG15
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref
+       jne      SHORT G_M46385_IG11
+                       ;; size=20 bbWeight=1 PerfScore 5.00
+G_M46385_IG10:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref, isz
        ; gcrRegs -[rax rbx]
        xor      r9, r9
        ; byrRegs +[r9]
        xor      r8d, r8d
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       jmp      SHORT G_M46385_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG11:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
+       ; gcrRegs +[rbx]
+       ; byrRegs -[r9]
+       lea      r9, bword ptr [rbx+0x0C]
+       ; byrRegs +[r9]
+       mov      edi, dword ptr [rbx+0x08]
+       mov      r8d, edi
+                       ;; size=10 bbWeight=0.50 PerfScore 1.38
+G_M46385_IG12:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       ; gcrRegs -[rbx]
        mov      bword ptr [rsp+0x30], rcx
        mov      dword ptr [rsp+0x38], edx
        mov      bword ptr [rsp+0x20], r9
@@ -122,17 +153,17 @@ G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rs
        ; byrRegs -[rcx rsi]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M46385_IG09
+       je       SHORT G_M46385_IG14
                        ;; size=47 bbWeight=1 PerfScore 10.00
-G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
+G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
        mov      ecx, dword ptr [rsp+0x40]
        cmp      ecx, dword ptr [rbp+0x08]
        sete     cl
        movzx    rcx, cl
        test     cl, cl
-       jne      SHORT G_M46385_IG10
+       jne      SHORT G_M46385_IG15
                        ;; size=17 bbWeight=0.50 PerfScore 3.25
-G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
@@ -141,11 +172,11 @@ G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46385_IG10:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG15:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        mov      rax, rbp
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46385_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -153,49 +184,19 @@ G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M46385_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs -[rax rbp] +[rbx]
-       ; byrRegs +[rsi]
-       cmp      ecx, 110
-       je       SHORT G_M46385_IG13
-       cmp      ecx, 112
-       je       SHORT G_M46385_IG14
-       cmp      ecx, 120
-       jne      SHORT G_M46385_IG17
-       mov      ecx, 68
-       jmp      G_M46385_IG05
-                       ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 32
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 38
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG15:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
-       ; gcrRegs +[rbp]
-       ; byrRegs +[rcx]
-       lea      r9, bword ptr [rbx+0x0C]
-       ; byrRegs +[r9]
-       mov      edi, dword ptr [rbx+0x08]
-       mov      r8d, edi
-       jmp      G_M46385_IG07
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M46385_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rbp]
-       ; byrRegs -[rcx rsi r9]
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbp]
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46385_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 290, prolog size 18, PerfScore 45.08, instruction count 80, allocated bytes for code 290 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
+; Total bytes of code 272, prolog size 18, PerfScore 46.08, instruction count 81, allocated bytes for code 272 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+35 (+3.60%) : 29561.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -241,7 +241,7 @@ G_M24350_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00C
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
-       jmp      G_M24350_IG29
+       jmp      G_M24350_IG28
                        ;; size=27 bbWeight=0.50 PerfScore 3.75
 G_M24350_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
@@ -255,11 +255,11 @@ G_M24350_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=
        movzx    rdx, byte  ptr [rdx]
        ; byrRegs -[rdx]
        test     edx, edx
-       jne      G_M24350_IG30
+       jne      G_M24350_IG29
                        ;; size=24 bbWeight=2 PerfScore 13.50
 G_M24350_IG14:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rsi+0x38], 0x112A
-       je       G_M24350_IG30
+       je       G_M24350_IG29
        mov      r15, gword ptr [r14+0x08]
        ; gcrRegs +[r15]
        mov      r13d, dword ptr [r15+0x10]
@@ -281,7 +281,7 @@ G_M24350_IG15:        ; bbWeight=2, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefR
        mov      bword ptr [rbp-0xA8], rax
        ; GC ptr vars +{V56}
        test     r12d, r12d
-       jl       G_M24350_IG49
+       jl       G_M24350_IG48
        mov      r8, gword ptr [rax]
        ; gcrRegs +[r8]
        mov      gword ptr [rbp-0xB0], r8
@@ -387,17 +387,17 @@ G_M24350_IG22:        ; bbWeight=2, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefR
        mov      dword ptr [r15+0x10], r13d
        mov      rsi, gword ptr [rsi+0x20]
        test     rsi, rsi
-       je       SHORT G_M24350_IG29
+       je       SHORT G_M24350_IG28
                        ;; size=29 bbWeight=2 PerfScore 23.00
 G_M24350_IG23:        ; bbWeight=1, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r15]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator
        cmp      qword ptr [rsi], rcx
-       je       SHORT G_M24350_IG29
+       je       SHORT G_M24350_IG28
                        ;; size=15 bbWeight=1 PerfScore 4.25
 G_M24350_IG24:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
-       jmp      SHORT G_M24350_IG30
+       jmp      SHORT G_M24350_IG29
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M24350_IG25:        ; bbWeight=4, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rsi]
@@ -412,7 +412,7 @@ G_M24350_IG26:        ; bbWeight=2, gcrefRegs=40CC {rdx rbx rsi rdi r14}, byrefR
        test     rcx, rcx
        je       G_M24350_IG13
                        ;; size=13 bbWeight=2 PerfScore 6.50
-G_M24350_IG27:        ; bbWeight=4, gcrefRegs=40CA {rcx rbx rsi rdi r14}, byrefRegs=0000 {}, byref
+G_M24350_IG27:        ; bbWeight=4, gcrefRegs=40CA {rcx rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
@@ -423,17 +423,13 @@ G_M24350_IG27:        ; bbWeight=4, gcrefRegs=40CA {rcx rbx rsi rdi r14}, byrefR
        ; gcr arg pop 0
        test     eax, eax
        jne      G_M24350_IG13
-                       ;; size=20 bbWeight=4 PerfScore 34.00
-G_M24350_IG28:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       jmp      SHORT G_M24350_IG30
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M24350_IG29:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rsi]
+       jmp      SHORT G_M24350_IG29
+                       ;; size=22 bbWeight=4 PerfScore 42.00
+G_M24350_IG28:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
        jne      SHORT G_M24350_IG25
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M24350_IG30:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M24350_IG29:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rdx, gword ptr [r14+0x08]
        ; gcrRegs +[rdx]
@@ -448,29 +444,18 @@ G_M24350_IG30:        ; bbWeight=0.50, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0
        mov      rdx, gword ptr [rax+0x20]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       jne      SHORT G_M24350_IG31
+       jne      G_M24350_IG43
        xor      rsi, rsi
        ; gcrRegs +[rsi]
-       jmp      SHORT G_M24350_IG32
-                       ;; size=31 bbWeight=0.50 PerfScore 6.50
-G_M24350_IG31:        ; bbWeight=0.50, gcrefRegs=408C {rdx rbx rdi r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax rsi]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-                       ;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M24350_IG32:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
+                       ;; size=33 bbWeight=0.50 PerfScore 5.50
+G_M24350_IG30:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax rdx]
        mov      rdx, gword ptr [r14+0x08]
        ; gcrRegs +[rdx]
        cmp      dword ptr [rdx+0x10], 0
-       jle      G_M24350_IG47
+       jle      G_M24350_IG41
                        ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M24350_IG33:        ; bbWeight=4, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M24350_IG31:        ; bbWeight=4, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        mov      rdx, gword ptr [r14+0x08]
        ; gcrRegs +[rdx]
@@ -494,26 +479,14 @@ G_M24350_IG33:        ; bbWeight=4, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=
        mov      rdx, gword ptr [r15+0x28]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       jne      SHORT G_M24350_IG35
-                       ;; size=45 bbWeight=4 PerfScore 73.00
-G_M24350_IG34:        ; bbWeight=2, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref, isz
+       jne      G_M24350_IG44
+                       ;; size=49 bbWeight=4 PerfScore 73.00
+G_M24350_IG32:        ; bbWeight=2, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        xor      r13, r13
        ; gcrRegs +[r13]
-       jmp      SHORT G_M24350_IG36
-                       ;; size=5 bbWeight=2 PerfScore 4.50
-G_M24350_IG35:        ; bbWeight=2, gcrefRegs=C0CC {rdx rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r13] +[rdx]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
-       ; gcr arg pop 0
-       mov      r13, rax
-       ; gcrRegs +[r13]
-                       ;; size=12 bbWeight=2 PerfScore 7.00
-G_M24350_IG36:        ; bbWeight=4, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+                       ;; size=3 bbWeight=2 PerfScore 0.50
+G_M24350_IG33:        ; bbWeight=4, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
        mov      r8, gword ptr [r15+0x08]
        ; gcrRegs +[r8]
        mov      r9d, dword ptr [r15+0x38]
@@ -524,54 +497,34 @@ G_M24350_IG36:        ; bbWeight=4, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, by
        mov      rax, rdx
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M24350_IG38
-                       ;; size=24 bbWeight=4 PerfScore 38.00
-G_M24350_IG37:        ; bbWeight=2, gcrefRegs=E1CE {rcx rdx rbx rsi rdi r8 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+       jne      G_M24350_IG45
+                       ;; size=28 bbWeight=4 PerfScore 38.00
+G_M24350_IG34:        ; bbWeight=2, gcrefRegs=E1CE {rcx rdx rbx rsi rdi r8 r13 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        xor      r10, r10
        ; gcrRegs +[r10]
-       jmp      SHORT G_M24350_IG39
-                       ;; size=5 bbWeight=2 PerfScore 4.50
-G_M24350_IG38:        ; bbWeight=2, gcrefRegs=E1CF {rax rcx rdx rbx rsi rdi r8 r13 r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r10] +[rax]
-       mov      r10, gword ptr [rax+0x10]
-       ; gcrRegs +[r10]
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M24350_IG39:        ; bbWeight=4, gcrefRegs=E5CE {rcx rdx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+                       ;; size=3 bbWeight=2 PerfScore 0.50
+G_M24350_IG35:        ; bbWeight=4, gcrefRegs=E5CE {rcx rdx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
        test     rdx, rdx
-       jne      SHORT G_M24350_IG41
-                       ;; size=5 bbWeight=4 PerfScore 5.00
-G_M24350_IG40:        ; bbWeight=2, gcrefRegs=E5CA {rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+       jne      G_M24350_IG46
+                       ;; size=9 bbWeight=4 PerfScore 5.00
+G_M24350_IG36:        ; bbWeight=2, gcrefRegs=E5CA {rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        xor      rax, rax
        ; gcrRegs +[rax]
-       jmp      SHORT G_M24350_IG42
-                       ;; size=4 bbWeight=2 PerfScore 4.50
-G_M24350_IG41:        ; bbWeight=2, gcrefRegs=E5CE {rcx rdx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax] +[rdx]
-       mov      rax, gword ptr [rdx+0x18]
-       ; gcrRegs +[rax]
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M24350_IG42:        ; bbWeight=4, gcrefRegs=E5CB {rax rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdx]
+                       ;; size=2 bbWeight=2 PerfScore 0.50
+G_M24350_IG37:        ; bbWeight=4, gcrefRegs=E5CB {rax rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
        mov      rdx, gword ptr [r14+0x08]
        ; gcrRegs +[rdx]
        cmp      dword ptr [rdx+0x10], 0
-       je       SHORT G_M24350_IG44
-                       ;; size=10 bbWeight=4 PerfScore 24.00
-G_M24350_IG43:        ; bbWeight=2, gcrefRegs=E5CB {rax rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+       je       G_M24350_IG47
+                       ;; size=14 bbWeight=4 PerfScore 24.00
+G_M24350_IG38:        ; bbWeight=2, gcrefRegs=E5CB {rax rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M24350_IG45
-                       ;; size=4 bbWeight=2 PerfScore 4.50
-G_M24350_IG44:        ; bbWeight=2, gcrefRegs=E5CB {rax rcx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-                       ;; size=3 bbWeight=2 PerfScore 0.50
-G_M24350_IG45:        ; bbWeight=4, gcrefRegs=E5CF {rax rcx rdx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
+                       ;; size=2 bbWeight=2 PerfScore 0.50
+G_M24350_IG39:        ; bbWeight=4, gcrefRegs=E5CF {rax rcx rdx rbx rsi rdi r8 r10 r13 r14 r15}, byrefRegs=0000 {}, byref
        mov      gword ptr [rsp+0x20], rsi
        ; gcr arg write
        mov      gword ptr [rsp+0x28], r13
@@ -586,7 +539,7 @@ G_M24350_IG45:        ; bbWeight=4, gcrefRegs=E5CF {rax rcx rdx rbx rsi rdi r8 r
        ; gcrRegs -[rcx]
        mov      dword ptr [rsp+0x48], ecx
                        ;; size=31 bbWeight=4 PerfScore 25.00
-G_M24350_IG46:        ; bbWeight=4, gcrefRegs=C18C {rdx rbx rdi r8 r14 r15}, byrefRegs=0000 {}, byref
+G_M24350_IG40:        ; bbWeight=4, gcrefRegs=C18C {rdx rbx rdi r8 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rsi r10 r13]
        mov      dword ptr [rsp+0x50], ecx
        mov      gword ptr [rsp+0x58], rdx
@@ -602,9 +555,9 @@ G_M24350_IG46:        ; bbWeight=4, gcrefRegs=C18C {rdx rbx rdi r8 r14 r15}, byr
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx+0x10], 0
-       jg       G_M24350_IG33
+       jg       G_M24350_IG31
                        ;; size=38 bbWeight=4 PerfScore 47.00
-G_M24350_IG47:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+G_M24350_IG41:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx rbx rdi]
        mov      rcx, r14
        ; gcrRegs +[rcx]
@@ -614,7 +567,7 @@ G_M24350_IG47:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000
        mov      rax, rsi
        ; gcrRegs +[rax]
                        ;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M24350_IG48:        ; bbWeight=0.50, epilog, nogc, extend
+G_M24350_IG42:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 232
...

+4 (+3.77%) : 21036.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)

@@ -19,7 +19,7 @@
 ;
 ; Lcl frame size = 32
 
-G_M5512_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M5512_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
        sub      rsp, 32
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -48,44 +48,48 @@ G_M5512_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M5512_IG09
+       jne      SHORT G_M5512_IG07
                        ;; size=41 bbWeight=2 PerfScore 26.00
 G_M5512_IG04:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rdx, gword ptr [rbx+0x10]
        ; gcrRegs +[rdx]
        cmp      word  ptr [rdx+0x0C], 0x2164
-       je       SHORT G_M5512_IG07
+       je       SHORT G_M5512_IG09
        mov      rbx, gword ptr [rbx+0x08]
                        ;; size=16 bbWeight=2 PerfScore 16.00
 G_M5512_IG05:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        test     rbx, rbx
-       je       SHORT G_M5512_IG07
+       je       SHORT G_M5512_IG09
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M5512_IG06:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; const ptr
        cmp      rbx, gword ptr [rdx]
        jne      SHORT G_M5512_IG03
-                       ;; size=15 bbWeight=4 PerfScore 17.00
+       jmp      SHORT G_M5512_IG11
+                       ;; size=17 bbWeight=4 PerfScore 25.00
 G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
 G_M5512_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M5512_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
+G_M5512_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       jmp      SHORT G_M5512_IG09
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 106, prolog size 5, PerfScore 76.25, instruction count 32, allocated bytes for code 106 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
+; Total bytes of code 110, prolog size 5, PerfScore 85.25, instruction count 34, allocated bytes for code 110 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+42 (+7.50%) : 34303.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 this         [V00,T02] (  5,  3.50)     ref  ->  rdi         this class-hnd single-def <System.Management.Automation.Provider.NavigationCmdletProvider>
 ;  V01 arg1         [V01,T01] ( 17, 10   )     ref  ->  rsi         class-hnd <System.String>
-;  V02 arg2         [V02,T00] ( 19, 10.50)     ref  ->  rbx         class-hnd <System.String>
+;  V02 arg2         [V02,T00] ( 18, 10   )     ref  ->  rbx         class-hnd <System.String>
 ;  V03 arg3         [V03,T03] (  3,  2.50)   ubyte  ->  r14         single-def
 ;* V04 loc0         [V04,T33] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <System.IDisposable>
 ;  V05 loc1         [V05,T04] (  6,  3.50)     ref  ->  rax         class-hnd <System.String>
@@ -88,45 +88,112 @@ G_M32221_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[rbx]
        mov      r14d, r9d
                        ;; size=47 bbWeight=1 PerfScore 12.08
-G_M32221_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rsi, rsi
-       jne      SHORT G_M32221_IG09
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M32221_IG03:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M32221_IG15
+                       ;; size=9 bbWeight=1 PerfScore 1.25
+G_M32221_IG03:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M32221_IG08
+       je       G_M32221_IG14
+                       ;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M32221_IG04:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
-       je       SHORT G_M32221_IG10
-                       ;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M32221_IG04:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M32221_IG16
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG10
+       je       G_M32221_IG16
        test     rsi, rsi
-       jne      SHORT G_M32221_IG11
-                       ;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M32221_IG05:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       test     rbx, rbx
-       je       SHORT G_M32221_IG12
-       cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG12
+       je       G_M32221_IG17
+                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+G_M32221_IG05:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       cmp      dword ptr [rsi+0x08], 0
+       je       G_M32221_IG17
+                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+G_M32221_IG06:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       cmp      dword ptr [rsi+0x08], 0
+       jne      G_M32221_IG19
+                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+G_M32221_IG07:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, rdi
+       ; gcrRegs +[rcx]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
+       call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
+       ; gcrRegs -[rcx rdx rsi] +[rax]
+       ; gcr arg pop 0
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
+       test     r14b, r14b
+       jne      SHORT G_M32221_IG08
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
-       ; gcrRegs -[rcx rdx rbx rsi rdi] +[rax]
+       ; gcrRegs -[rcx rdx rbx rdi]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0.50 PerfScore 4.38
-G_M32221_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
-       jmp      G_M32221_IG23
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+                       ;; size=35 bbWeight=0.50 PerfScore 4.38
+G_M32221_IG08:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
+       test     rbx, rbx
+       jne      G_M32221_IG22
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      r14d, r14d
+                       ;; size=14 bbWeight=0.50 PerfScore 0.88
+G_M32221_IG09:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref, isz
+       mov      r15, rdi
+       ; byrRegs +[r15]
+       mov      r13d, r14d
+       cmp      word  ptr [rbx+0x0C], 92
+       jne      SHORT G_M32221_IG10
+       test     r14d, r14d
+       je       SHORT G_M32221_IG13
+       add      rdi, 2
+       dec      r14d
+       mov      ecx, r14d
+       not      ecx
+       shr      ecx, 31
+       call     [<unknown method>]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[r15]
+       ; gcr arg pop 0
+       mov      r15, rdi
+       ; byrRegs +[r15]
+       mov      r13d, r14d
+                       ;; size=45 bbWeight=0.50 PerfScore 5.38
+G_M32221_IG10:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref
+       ; byrRegs -[rdi]
+       test     rsi, rsi
+       jne      G_M32221_IG23
+       xor      rbx, rbx
+       ; byrRegs +[rbx]
+       xor      edi, edi
+                       ;; size=13 bbWeight=0.50 PerfScore 0.88
+G_M32221_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+       ; gcrRegs -[rsi]
+       mov      bword ptr [rbp-0x40], rbx
+       mov      dword ptr [rbp-0x38], edi
+       mov      bword ptr [rbp-0x50], r15
+       mov      dword ptr [rbp-0x48], r13d
+       lea      rcx, [rbp-0x40]
+       lea      rdx, [rbp-0x50]
+       call     [System.IO.Path:Join(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.String]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rbx r15]
+       ; gcr arg pop 0
+                       ;; size=29 bbWeight=0.50 PerfScore 4.00
+G_M32221_IG12:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+       jmp      G_M32221_IG24
                        ;; size=5 bbWeight=1 PerfScore 2.00
-G_M32221_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M32221_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32221_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M32221_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 0xD1FFAB1E
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -143,36 +210,44 @@ G_M32221_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
                        ;; size=37 bbWeight=0 PerfScore 0.00
-G_M32221_IG09:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi rdi]
        cmp      dword ptr [rsi+0x08], 0
-       jne      SHORT G_M32221_IG11
-       test     rbx, rbx
-       jne      SHORT G_M32221_IG04
-                       ;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M32221_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       jne      G_M32221_IG05
+       jmp      G_M32221_IG04
+                       ;; size=15 bbWeight=0.50 PerfScore 3.00
+G_M32221_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rsi rdi]
        mov      rax, 0xD1FFAB1E
        ; gcrRegs +[rax]
-       jmp      SHORT G_M32221_IG06
+       jmp      SHORT G_M32221_IG12
                        ;; size=12 bbWeight=0.50 PerfScore 1.12
-G_M32221_IG11:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M32221_IG17:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax] +[rbx rsi rdi]
-       cmp      dword ptr [rsi+0x08], 0
-       jne      SHORT G_M32221_IG13
-       jmp      SHORT G_M32221_IG05
-                       ;; size=8 bbWeight=0.50 PerfScore 3.00
-G_M32221_IG12:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
-       test     rsi, rsi
-       je       G_M32221_IG16
-                       ;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       cmp      dword ptr [rsi+0x08], 0
-       je       G_M32221_IG16
        test     rbx, rbx
-       je       SHORT G_M32221_IG14
+       je       SHORT G_M32221_IG18
        cmp      dword ptr [rbx+0x08], 0
-       je       SHORT G_M32221_IG14
+       je       SHORT G_M32221_IG18
+       mov      rcx, rdi
+       ; gcrRegs +[rcx]
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       call     [System.Management.Automation.Provider.NavigationCmdletProvider:NormalizePath(System.String):System.String:this]
+       ; gcrRegs -[rcx rdx rbx rsi rdi] +[rax]
+       ; gcr arg pop 0
+       jmp      SHORT G_M32221_IG12
+                       ;; size=25 bbWeight=0.50 PerfScore 5.38
+G_M32221_IG18:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax] +[rbx rsi rdi]
+       test     rsi, rsi
+       je       G_M32221_IG07
+       jmp      G_M32221_IG06
+                       ;; size=14 bbWeight=0.50 PerfScore 1.62
+G_M32221_IG19:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     rbx, rbx
+       je       SHORT G_M32221_IG20
+       cmp      dword ptr [rbx+0x08], 0
+       je       SHORT G_M32221_IG20
        mov      rdx, 0xD1FFAB1E      ; const ptr
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
@@ -183,7 +258,7 @@ G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M32221_IG14
+       jne      SHORT G_M32221_IG20
        mov      rdx, 0xD1FFAB1E      ; const ptr
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
@@ -194,18 +269,18 @@ G_M32221_IG13:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M32221_IG16
-                       ;; size=85 bbWeight=0.50 PerfScore 11.62
-G_M32221_IG14:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       je       G_M32221_IG07
+                       ;; size=79 bbWeight=0.50 PerfScore 9.62
+G_M32221_IG20:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rdi]
        mov      ecx, dword ptr [rsi+0x08]
        cmp      word  ptr [rsi+2*rcx+0x0A], 92
-       jne      SHORT G_M32221_IG15
+       jne      SHORT G_M32221_IG21
        mov      rax, rsi
        ; gcrRegs +[rax]
-       jmp      G_M32221_IG06
+       jmp      G_M32221_IG12
                        ;; size=19 bbWeight=0.50 PerfScore 4.12
-G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M32221_IG21:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      ecx, 1
        call     <unknown method>
@@ -219,95 +294,21 @@ G_M32221_IG15:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx rsi]
        ; gcr arg pop 0
-       jmp      G_M32221_IG06
+       jmp      G_M32221_IG12
...

smoke_tests.nativeaot.windows.x64.checked.mch

-18 (-6.36%) : 25508.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

@@ -74,22 +74,43 @@ G_M46385_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
 G_M46385_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       je       SHORT G_M46385_IG04
+       jne      SHORT G_M46385_IG05
+                       ;; size=7 bbWeight=0.50 PerfScore 1.62
+G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 36
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        cmp      edi, 1
-       jne      G_M46385_IG16
+       jne      G_M46385_IG17
        movzx    rcx, word  ptr [rbx+0x0C]
        or       ecx, 32
        cmp      ecx, 100
-       jg       G_M46385_IG12
+       jg       SHORT G_M46385_IG06
        cmp      ecx, 98
-       je       G_M46385_IG14
+       je       SHORT G_M46385_IG08
        cmp      ecx, 100
-       jne      G_M46385_IG17
-                       ;; size=50 bbWeight=0.50 PerfScore 5.25
-G_M46385_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 36
+       jne      G_M46385_IG18
+       jmp      SHORT G_M46385_IG04
+                       ;; size=37 bbWeight=0.50 PerfScore 4.62
+G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       cmp      ecx, 110
+       je       SHORT G_M46385_IG07
+       cmp      ecx, 112
+       je       SHORT G_M46385_IG08
+       cmp      ecx, 120
+       jne      G_M46385_IG18
+       mov      ecx, 68
+       jmp      SHORT G_M46385_IG09
+                       ;; size=26 bbWeight=0.50 PerfScore 3.00
+G_M46385_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       mov      ecx, 32
+       jmp      SHORT G_M46385_IG09
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       mov      ecx, 38
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+G_M46385_IG09:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        call     System.String:FastAllocateString(int):System.String
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -99,15 +120,25 @@ G_M46385_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
        ; byrRegs +[rcx]
        mov      edx, dword ptr [rbp+0x08]
        test     rbx, rbx
-       jne      G_M46385_IG15
-                       ;; size=24 bbWeight=1 PerfScore 5.00
-G_M46385_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref
+       jne      SHORT G_M46385_IG11
+                       ;; size=20 bbWeight=1 PerfScore 5.00
+G_M46385_IG10:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0042 {rcx rsi}, byref, isz
        ; gcrRegs -[rax rbx]
        xor      r9, r9
        ; byrRegs +[r9]
        xor      r8d, r8d
-                       ;; size=6 bbWeight=0.50 PerfScore 0.25
-G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       jmp      SHORT G_M46385_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M46385_IG11:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
+       ; gcrRegs +[rbx]
+       ; byrRegs -[r9]
+       lea      r9, bword ptr [rbx+0x0C]
+       ; byrRegs +[r9]
+       mov      edi, dword ptr [rbx+0x08]
+       mov      r8d, edi
+                       ;; size=10 bbWeight=0.50 PerfScore 1.38
+G_M46385_IG12:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rsi r9}, byref, isz
+       ; gcrRegs -[rbx]
        mov      bword ptr [rsp+0x30], rcx
        mov      dword ptr [rsp+0x38], edx
        mov      bword ptr [rsp+0x20], r9
@@ -121,17 +152,17 @@ G_M46385_IG07:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0242 {rcx rs
        ; byrRegs -[rcx rsi]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M46385_IG09
+       je       SHORT G_M46385_IG14
                        ;; size=46 bbWeight=1 PerfScore 8.00
-G_M46385_IG08:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
+G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
        mov      ecx, dword ptr [rsp+0x40]
        cmp      ecx, dword ptr [rbp+0x08]
        sete     cl
        movzx    rcx, cl
        test     cl, cl
-       jne      SHORT G_M46385_IG10
+       jne      SHORT G_M46385_IG15
                        ;; size=17 bbWeight=0.50 PerfScore 3.25
-G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
        lea      rdx, gword ptr [(reloc)]
@@ -140,11 +171,11 @@ G_M46385_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M46385_IG10:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M46385_IG15:        ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
        mov      rax, rbp
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46385_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
        pop      rbp
@@ -152,49 +183,19 @@ G_M46385_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M46385_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs -[rax rbp] +[rbx]
-       ; byrRegs +[rsi]
-       cmp      ecx, 110
-       je       SHORT G_M46385_IG13
-       cmp      ecx, 112
-       je       SHORT G_M46385_IG14
-       cmp      ecx, 120
-       jne      SHORT G_M46385_IG17
-       mov      ecx, 68
-       jmp      G_M46385_IG05
-                       ;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M46385_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 32
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
-       mov      ecx, 38
-       jmp      G_M46385_IG05
-                       ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46385_IG15:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0042 {rcx rsi}, byref
-       ; gcrRegs +[rbp]
-       ; byrRegs +[rcx]
-       lea      r9, bword ptr [rbx+0x0C]
-       ; byrRegs +[r9]
-       mov      edi, dword ptr [rbx+0x08]
-       mov      r8d, edi
-       jmp      G_M46385_IG07
-                       ;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M46385_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rbp]
-       ; byrRegs -[rcx rsi r9]
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbp]
        call     System.Guid:ThrowBadGuidFormatSpecification()
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46385_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     System.Guid:ThrowBadGuidFormatSpecification()
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 283, prolog size 21, PerfScore 44.33, instruction count 81, allocated bytes for code 283 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
+; Total bytes of code 265, prolog size 21, PerfScore 45.33, instruction count 82, allocated bytes for code 265 (MethodHash=c08c4ace) for method System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-33 (-5.47%) : 12933.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)

@@ -21,8 +21,8 @@
 ;  V11 loc6         [V11,T04] (  8,  7   )     int  ->  r13         single-def
 ;  V12 loc7         [V12,T07] ( 11,  5.50)    long  ->  rax         ld-addr-op
 ;* V13 loc8         [V13    ] (  0,  0   )    long  ->  zero-ref    single-def
-;  V14 loc9         [V14,T09] (  3,  4.50)    long  ->  rbx         single-def
-;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  r14        
+;  V14 loc9         [V14,T09] (  3,  4.50)    long  ->  rcx         single-def
+;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  rdx        
 ;* V16 loc11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.RuntimeTypeHandle>
 ;* V17 loc12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    <System.RuntimeMethodHandle>
 ;  V18 OutArgs      [V18    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -38,7 +38,7 @@
 ;* V28 tmp10        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V03._tokenOrOffset (fldOffset=0x8)" P-INDEP
 ;* V29 tmp11        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "field V03._isNativeLayoutSignature (fldOffset=0xc)" P-INDEP
 ;  V30 tmp12        [V30    ] (  5,  4   )    long  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V07._value (fldOffset=0x0)" P-DEP
-;  V31 tmp13        [V31,T02] (  4,  8   )    long  ->  r15         "field V16._value (fldOffset=0x0)" P-INDEP
+;  V31 tmp13        [V31,T02] (  4,  8   )    long  ->   r8         "field V16._value (fldOffset=0x0)" P-INDEP
 ;  V32 tmp14        [V32,T16] (  2,  2   )    long  ->  rbx         single-def "field V17._value (fldOffset=0x0)" P-INDEP
 ;* V33 tmp15        [V33    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <Internal.Runtime.CompilerServices.RuntimeSignature>
 ;  V34 tmp16        [V34    ] (  2,  4   )  struct (16) [rbp-0x80]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Internal.Runtime.CompilerServices.RuntimeSignature>
@@ -140,7 +140,7 @@ G_M51005_IG08:        ; bbWeight=1, extend
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M51005_IG18
+       jne      G_M51005_IG22
                        ;; size=26 bbWeight=1 PerfScore 6.25
 G_M51005_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        test     rsi, rsi
@@ -157,82 +157,49 @@ G_M51005_IG11:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008
        xor      ecx, ecx
        jmp      SHORT G_M51005_IG13
                        ;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M51005_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+G_M51005_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, r13d
        sub      ecx, 1
-       jo       G_M51005_IG19
+       jo       SHORT G_M51005_IG16
        imul     ecx, ecx, 8
-       jo       G_M51005_IG19
-                       ;; size=21 bbWeight=0.50 PerfScore 2.25
+       jo       SHORT G_M51005_IG16
+                       ;; size=13 bbWeight=0.50 PerfScore 2.25
 G_M51005_IG13:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        add      ecx, 48
-       jo       G_M51005_IG19
+       jo       SHORT G_M51005_IG16
        movsxd   rcx, ecx
        call     System.Runtime.InteropServices.NativeMemory:Alloc(ulong):ulong
        ; gcr arg pop 0
        test     rax, rax
-       je       G_M51005_IG21
+       je       SHORT G_M51005_IG15
        mov      qword ptr [rax], r15
        mov      qword ptr [rax+0x08], r14
        movups   xmm0, xmmword ptr [rbx]
        movups   xmmword ptr [rax+0x10], xmm0
        mov      dword ptr [rax+0x20], r13d
        cmp      byte  ptr [rax], al
-       lea      rbx, [rax+0x28]
-       ; byrRegs -[rbx]
-       xor      r14d, r14d
+       lea      rcx, [rax+0x28]
+       xor      edx, edx
        test     r13d, r13d
-       jle      SHORT G_M51005_IG15
+       jle      SHORT G_M51005_IG19
        test     rsi, rsi
-       je       G_M51005_IG22
+       je       SHORT G_M51005_IG18
        cmp      dword ptr [rsi+0x08], r13d
-       jl       G_M51005_IG22
-                       ;; size=77 bbWeight=0.50 PerfScore 11.50
+       jl       SHORT G_M51005_IG18
+                       ;; size=60 bbWeight=0.50 PerfScore 11.50
 G_M51005_IG14:        ; bbWeight=3.96, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, r14d
-       mov      r15, qword ptr [rsi+8*rcx+0x10]
-       movsxd   rcx, r14d
-       mov      qword ptr [rbx+8*rcx], r15
-       inc      r14d
-       cmp      r14d, r13d
+       ; byrRegs -[rbx]
+       mov      r8d, edx
+       mov      r8, qword ptr [rsi+8*r8+0x10]
+       movsxd   r10, edx
+       mov      qword ptr [rcx+8*r10], r8
+       inc      edx
+       cmp      edx, r13d
        jl       SHORT G_M51005_IG14
-                       ;; size=23 bbWeight=3.96 PerfScore 19.80
-G_M51005_IG15:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
-       inc      rax
-       mov      qword ptr [rbp-0x68], rax
-       mov      rcx, gword ptr [rdi+0x48]
-       ; gcrRegs +[rcx]
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M51005_IG16:        ; bbWeight=0.50, nogc, extend
-       movups   xmm0, xmmword ptr [rbp-0x60]
-       movups   xmmword ptr [rbp-0xB0], xmm0
-       movups   xmm0, xmmword ptr [rbp-0x50]
-       movups   xmmword ptr [rbp-0xA0], xmm0
-       movups   xmm0, xmmword ptr [rbp-0x40]
-       movups   xmmword ptr [rbp-0x90], xmm0
-                       ;; size=33 bbWeight=0.50 PerfScore 6.00
-G_M51005_IG17:        ; bbWeight=0.50, extend
-       lea      rdx, [rbp-0xB0]
-       mov      r8, qword ptr [rbp-0x68]
-       cmp      dword ptr [rcx], ecx
-       call     System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:Add(Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle):this
-       ; gcrRegs -[rcx rdi]
-       ; gcr arg pop 0
-                       ;; size=18 bbWeight=0.50 PerfScore 2.75
-G_M51005_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, qword ptr [rbp-0x68]
-       jmp      SHORT G_M51005_IG23
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M51005_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_OVERFLOW
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M51005_IG19
+                       ;; size=24 bbWeight=3.96 PerfScore 27.72
+G_M51005_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi]
        lea      rcx, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -250,21 +217,53 @@ G_M51005_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
                        ;; size=31 bbWeight=0 PerfScore 0.00
-G_M51005_IG22:        ; bbWeight=0.04, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M51005_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_OVERFLOW
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG18:        ; bbWeight=0.04, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
-       cmp      r14d, dword ptr [rsi+0x08]
-       jae      SHORT G_M51005_IG20
-       mov      ecx, r14d
-       mov      r15, qword ptr [rsi+8*rcx+0x10]
-       movsxd   rcx, r14d
-       mov      qword ptr [rbx+8*rcx], r15
-       inc      r14d
-       cmp      r14d, r13d
-       jl       SHORT G_M51005_IG22
-       jmp      G_M51005_IG15
-                       ;; size=34 bbWeight=0.04 PerfScore 0.44
+       cmp      edx, dword ptr [rsi+0x08]
+       jae      SHORT G_M51005_IG17
+       mov      r8d, edx
+       mov      r8, qword ptr [rsi+8*r8+0x10]
+       movsxd   r10, edx
+       mov      qword ptr [rcx+8*r10], r8
+       inc      edx
+       cmp      edx, r13d
+       jl       SHORT G_M51005_IG18
+                       ;; size=27 bbWeight=0.04 PerfScore 0.36
+G_M51005_IG19:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi]
+       inc      rax
+       mov      qword ptr [rbp-0x68], rax
+       mov      rcx, gword ptr [rdi+0x48]
+       ; gcrRegs +[rcx]
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M51005_IG20:        ; bbWeight=0.50, nogc, extend
+       movups   xmm0, xmmword ptr [rbp-0x60]
+       movups   xmmword ptr [rbp-0xB0], xmm0
+       movups   xmm0, xmmword ptr [rbp-0x50]
+       movups   xmmword ptr [rbp-0xA0], xmm0
+       movups   xmm0, xmmword ptr [rbp-0x40]
+       movups   xmmword ptr [rbp-0x90], xmm0
+                       ;; size=33 bbWeight=0.50 PerfScore 6.00
+G_M51005_IG21:        ; bbWeight=0.50, extend
+       lea      rdx, [rbp-0xB0]
+       mov      r8, qword ptr [rbp-0x68]
+       cmp      dword ptr [rcx], ecx
+       call     System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:Add(Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle):this
+       ; gcrRegs -[rcx rdi]
+       ; gcr arg pop 0
+                       ;; size=18 bbWeight=0.50 PerfScore 2.75
+G_M51005_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbx, qword ptr [rbp-0x68]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
 G_M51005_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
        mov      rcx, gword ptr [rbp-0xB8]
        ; gcrRegs +[rcx]
        ; GC ptr vars -{V08}
@@ -320,7 +319,7 @@ G_M51005_IG28:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 603, prolog size 89, PerfScore 119.57, instruction count 167, allocated bytes for code 603 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
+; Total bytes of code 570, prolog size 89, PerfScore 125.41, instruction count 166, allocated bytes for code 570 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-33 (-5.47%) : 4731.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)

@@ -22,8 +22,8 @@
 ;  V11 loc6         [V11,T04] (  8,  7   )     int  ->  r13         single-def
 ;  V12 loc7         [V12,T07] ( 11,  5.50)    long  ->  rax         ld-addr-op
 ;* V13 loc8         [V13    ] (  0,  0   )    long  ->  zero-ref    single-def
-;  V14 loc9         [V14,T09] (  3,  4.50)    long  ->  rbx         single-def
-;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  r14        
+;  V14 loc9         [V14,T09] (  3,  4.50)    long  ->  rcx         single-def
+;  V15 loc10        [V15,T00] ( 12, 20.54)     int  ->  rdx        
 ;* V16 loc11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.RuntimeTypeHandle>
 ;* V17 loc12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    <System.RuntimeMethodHandle>
 ;  V18 OutArgs      [V18    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -39,7 +39,7 @@
 ;* V28 tmp10        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V03._tokenOrOffset (fldOffset=0x8)" P-INDEP
 ;* V29 tmp11        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "field V03._isNativeLayoutSignature (fldOffset=0xc)" P-INDEP
 ;  V30 tmp12        [V30    ] (  5,  4   )    long  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V07._value (fldOffset=0x0)" P-DEP
-;  V31 tmp13        [V31,T02] (  4,  8   )    long  ->  r15         "field V16._value (fldOffset=0x0)" P-INDEP
+;  V31 tmp13        [V31,T02] (  4,  8   )    long  ->   r8         "field V16._value (fldOffset=0x0)" P-INDEP
 ;  V32 tmp14        [V32,T16] (  2,  2   )    long  ->  rbx         single-def "field V17._value (fldOffset=0x0)" P-INDEP
 ;* V33 tmp15        [V33    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <Internal.Runtime.CompilerServices.RuntimeSignature>
 ;  V34 tmp16        [V34    ] (  2,  4   )  struct (16) [rbp-0x80]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Internal.Runtime.CompilerServices.RuntimeSignature>
@@ -141,7 +141,7 @@ G_M51005_IG08:        ; bbWeight=1, extend
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M51005_IG18
+       jne      G_M51005_IG22
                        ;; size=26 bbWeight=1 PerfScore 6.25
 G_M51005_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        test     rsi, rsi
@@ -158,82 +158,49 @@ G_M51005_IG11:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008
        xor      ecx, ecx
        jmp      SHORT G_M51005_IG13
                        ;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M51005_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
+G_M51005_IG12:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      ecx, r13d
        sub      ecx, 1
-       jo       G_M51005_IG19
+       jo       SHORT G_M51005_IG16
        imul     ecx, ecx, 8
-       jo       G_M51005_IG19
-                       ;; size=21 bbWeight=0.50 PerfScore 2.25
+       jo       SHORT G_M51005_IG16
+                       ;; size=13 bbWeight=0.50 PerfScore 2.25
 G_M51005_IG13:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        add      ecx, 48
-       jo       G_M51005_IG19
+       jo       SHORT G_M51005_IG16
        movsxd   rcx, ecx
        call     System.Runtime.InteropServices.NativeMemory:Alloc(ulong):ulong
        ; gcr arg pop 0
        test     rax, rax
-       je       G_M51005_IG21
+       je       SHORT G_M51005_IG15
        mov      qword ptr [rax], r15
        mov      qword ptr [rax+0x08], r14
        movups   xmm0, xmmword ptr [rbx]
        movups   xmmword ptr [rax+0x10], xmm0
        mov      dword ptr [rax+0x20], r13d
        cmp      byte  ptr [rax], al
-       lea      rbx, [rax+0x28]
-       ; byrRegs -[rbx]
-       xor      r14d, r14d
+       lea      rcx, [rax+0x28]
+       xor      edx, edx
        test     r13d, r13d
-       jle      SHORT G_M51005_IG15
+       jle      SHORT G_M51005_IG19
        test     rsi, rsi
-       je       G_M51005_IG22
+       je       SHORT G_M51005_IG18
        cmp      dword ptr [rsi+0x08], r13d
-       jl       G_M51005_IG22
-                       ;; size=77 bbWeight=0.50 PerfScore 11.50
+       jl       SHORT G_M51005_IG18
+                       ;; size=60 bbWeight=0.50 PerfScore 11.50
 G_M51005_IG14:        ; bbWeight=3.96, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, r14d
-       mov      r15, qword ptr [rsi+8*rcx+0x10]
-       movsxd   rcx, r14d
-       mov      qword ptr [rbx+8*rcx], r15
-       inc      r14d
-       cmp      r14d, r13d
+       ; byrRegs -[rbx]
+       mov      r8d, edx
+       mov      r8, qword ptr [rsi+8*r8+0x10]
+       movsxd   r10, edx
+       mov      qword ptr [rcx+8*r10], r8
+       inc      edx
+       cmp      edx, r13d
        jl       SHORT G_M51005_IG14
-                       ;; size=23 bbWeight=3.96 PerfScore 19.80
-G_M51005_IG15:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
-       inc      rax
-       mov      qword ptr [rbp-0x68], rax
-       mov      rcx, gword ptr [rdi+0x48]
-       ; gcrRegs +[rcx]
-                       ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M51005_IG16:        ; bbWeight=0.50, nogc, extend
-       movups   xmm0, xmmword ptr [rbp-0x60]
-       movups   xmmword ptr [rbp-0xB0], xmm0
-       movups   xmm0, xmmword ptr [rbp-0x50]
-       movups   xmmword ptr [rbp-0xA0], xmm0
-       movups   xmm0, xmmword ptr [rbp-0x40]
-       movups   xmmword ptr [rbp-0x90], xmm0
-                       ;; size=33 bbWeight=0.50 PerfScore 6.00
-G_M51005_IG17:        ; bbWeight=0.50, extend
-       lea      rdx, [rbp-0xB0]
-       mov      r8, qword ptr [rbp-0x68]
-       cmp      dword ptr [rcx], ecx
-       call     System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:Add(Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle):this
-       ; gcrRegs -[rcx rdi]
-       ; gcr arg pop 0
-                       ;; size=18 bbWeight=0.50 PerfScore 2.75
-G_M51005_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, qword ptr [rbp-0x68]
-       jmp      SHORT G_M51005_IG23
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M51005_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_OVERFLOW
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M51005_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M51005_IG19
+                       ;; size=24 bbWeight=3.96 PerfScore 27.72
+G_M51005_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi rdi]
        lea      rcx, [(reloc)]      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -251,21 +218,53 @@ G_M51005_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
                        ;; size=31 bbWeight=0 PerfScore 0.00
-G_M51005_IG22:        ; bbWeight=0.04, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M51005_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_OVERFLOW
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       call     CORINFO_HELP_RNGCHKFAIL
+       ; gcr arg pop 0
+                       ;; size=5 bbWeight=0 PerfScore 0.00
+G_M51005_IG18:        ; bbWeight=0.04, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi]
-       cmp      r14d, dword ptr [rsi+0x08]
-       jae      SHORT G_M51005_IG20
-       mov      ecx, r14d
-       mov      r15, qword ptr [rsi+8*rcx+0x10]
-       movsxd   rcx, r14d
-       mov      qword ptr [rbx+8*rcx], r15
-       inc      r14d
-       cmp      r14d, r13d
-       jl       SHORT G_M51005_IG22
-       jmp      G_M51005_IG15
-                       ;; size=34 bbWeight=0.04 PerfScore 0.44
+       cmp      edx, dword ptr [rsi+0x08]
+       jae      SHORT G_M51005_IG17
+       mov      r8d, edx
+       mov      r8, qword ptr [rsi+8*r8+0x10]
+       movsxd   r10, edx
+       mov      qword ptr [rcx+8*r10], r8
+       inc      edx
+       cmp      edx, r13d
+       jl       SHORT G_M51005_IG18
+                       ;; size=27 bbWeight=0.04 PerfScore 0.36
+G_M51005_IG19:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rsi]
+       inc      rax
+       mov      qword ptr [rbp-0x68], rax
+       mov      rcx, gword ptr [rdi+0x48]
+       ; gcrRegs +[rcx]
+                       ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M51005_IG20:        ; bbWeight=0.50, nogc, extend
+       movups   xmm0, xmmword ptr [rbp-0x60]
+       movups   xmmword ptr [rbp-0xB0], xmm0
+       movups   xmm0, xmmword ptr [rbp-0x50]
+       movups   xmmword ptr [rbp-0xA0], xmm0
+       movups   xmm0, xmmword ptr [rbp-0x40]
+       movups   xmmword ptr [rbp-0x90], xmm0
+                       ;; size=33 bbWeight=0.50 PerfScore 6.00
+G_M51005_IG21:        ; bbWeight=0.50, extend
+       lea      rdx, [rbp-0xB0]
+       mov      r8, qword ptr [rbp-0x68]
+       cmp      dword ptr [rcx], ecx
+       call     System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:Add(Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle):this
+       ; gcrRegs -[rcx rdi]
+       ; gcr arg pop 0
+                       ;; size=18 bbWeight=0.50 PerfScore 2.75
+G_M51005_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbx, qword ptr [rbp-0x68]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
 G_M51005_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi rdi]
        mov      rcx, gword ptr [rbp-0xB8]
        ; gcrRegs +[rcx]
        ; GC ptr vars -{V08}
@@ -321,7 +320,7 @@ G_M51005_IG28:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 603, prolog size 89, PerfScore 119.57, instruction count 167, allocated bytes for code 603 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
+; Total bytes of code 570, prolog size 89, PerfScore 125.41, instruction count 166, allocated bytes for code 570 (MethodHash=804938c2) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+7 (+2.92%) : 6704.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)

@@ -17,7 +17,7 @@
 ;  V06 loc4         [V06,T06] (  7, 11   )     int  ->  registers  
 ;  V07 loc5         [V07,T12] (  4,  2.50)    long  ->  registers  
 ;  V08 loc6         [V08,T13] (  4,  2.50)     int  ->  registers  
-;  V09 loc7         [V09,T14] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T14] (  3,  1.50)     int  ->  r10        
 ;  V10 loc8         [V10,T15] (  3,  1.50)    long  ->  rax        
 ;  V11 loc9         [V11,T16] (  2,  1   )    long  ->  r10        
 ;  V12 loc10        [V12,T17] (  2,  1   )     int  ->  rcx        
@@ -78,7 +78,7 @@ G_M9821_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=5 bbWeight=4 PerfScore 5.00
 G_M9821_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      eax, 10
-       jae      G_M9821_IG16
+       jae      G_M9821_IG17
        mov      r11d, eax
        lea      rbx, bword ptr [(reloc)]
        ; byrRegs +[rbx]
@@ -117,18 +117,18 @@ G_M9821_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      ecx, r10d
        add      eax, -9
        test     eax, eax
-       jg       SHORT G_M9821_IG13
+       jg       SHORT G_M9821_IG10
                        ;; size=76 bbWeight=4 PerfScore 55.00
 G_M9821_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      eax, ecx
-       sub      eax, edx
-       je       SHORT G_M9821_IG14
-       cmp      eax, ecx
-       jbe      SHORT G_M9821_IG11
-                       ;; size=10 bbWeight=0.50 PerfScore 1.38
-G_M9821_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       neg      r8d
-                       ;; size=3 bbWeight=0.50 PerfScore 0.12
+       mov      r10d, ecx
+       sub      r10d, edx
+       je       SHORT G_M9821_IG15
+       jmp      SHORT G_M9821_IG13
+                       ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M9821_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r10, rsi
+       jmp      G_M9821_IG04
+                       ;; size=8 bbWeight=2 PerfScore 4.50
 G_M9821_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, r8d
                        ;; size=3 bbWeight=1 PerfScore 0.25
@@ -138,29 +138,33 @@ G_M9821_IG12:        ; bbWeight=1, epilog, nogc, extend
        pop      rsi
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
-G_M9821_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       mov      r10, rsi
-       jmp      G_M9821_IG04
-                       ;; size=8 bbWeight=2 PerfScore 4.50
+G_M9821_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       cmp      r10d, ecx
+       jbe      SHORT G_M9821_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M9821_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       neg      r8d
+       jmp      SHORT G_M9821_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 1.12
+G_M9821_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rax, rsi
        sub      rax, r9
-       jne      SHORT G_M9821_IG15
+       jne      SHORT G_M9821_IG16
        xor      r8d, r8d
        jmp      SHORT G_M9821_IG11
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M9821_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M9821_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      rax, rsi
        jbe      SHORT G_M9821_IG11
-       jmp      SHORT G_M9821_IG10
+       jmp      SHORT G_M9821_IG14
                        ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M9821_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M9821_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 240, prolog size 6, PerfScore 104.88, instruction count 82, allocated bytes for code 240 (MethodHash=418ad9a2) for method System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
+; Total bytes of code 247, prolog size 6, PerfScore 106.88, instruction count 84, allocated bytes for code 247 (MethodHash=418ad9a2) for method System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:

+3 (+4.35%) : 5781.dasm - System.Diagnostics.ProcessManager:IsRemoteMachine(System.String):ubyte (FullOpts)

@@ -8,7 +8,7 @@
 ; control-flow guard enabled
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4.50)     ref  ->  rbx         class-hnd exact single-def <System.String>
+;  V00 arg0         [V00,T00] (  7,  4.50)     ref  ->  rbx         class-hnd exact single-def <System.String>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02,T02] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V03 rat0         [V03,T01] (  2,  4   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
@@ -24,28 +24,34 @@ G_M4104_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M4104_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [(reloc)]
        cmp      qword ptr [rcx-0x08], 0
-       jne      SHORT G_M4104_IG08
-                       ;; size=14 bbWeight=1 PerfScore 4.50
-G_M4104_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       jne      SHORT G_M4104_IG06
        test     rbx, rbx
        je       SHORT G_M4104_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M4104_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+                       ;; size=19 bbWeight=1 PerfScore 5.75
+G_M4104_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M4104_IG07
                        ;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M4104_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M4104_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
                        ;; size=3 bbWeight=1 PerfScore 0.25
-G_M4104_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M4104_IG05:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        jmp      System.Diagnostics.ProcessManager:IsRemoteMachineCore(System.String):ubyte
        ; gcr arg pop 0
                        ;; size=10 bbWeight=1 PerfScore 2.75
-G_M4104_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M4104_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx]
+       call     CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE
+       ; byrRegs +[rax]
+       ; gcr arg pop 0
+       test     rbx, rbx
+       jne      SHORT G_M4104_IG03
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M4104_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rax]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        lea      rdx, gword ptr [(reloc)]
@@ -55,15 +61,8 @@ G_M4104_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {r
        ; gcr arg pop 0
        int3     
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M4104_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
-       call     CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE
-       ; byrRegs +[rax]
-       ; gcr arg pop 0
-       jmp      SHORT G_M4104_IG03
-                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 69, prolog size 8, PerfScore 12.25, instruction count 20, allocated bytes for code 69 (MethodHash=ccb9eff7) for method System.Diagnostics.ProcessManager:IsRemoteMachine(System.String):ubyte (FullOpts)
+; Total bytes of code 72, prolog size 8, PerfScore 12.25, instruction count 21, allocated bytes for code 72 (MethodHash=ccb9eff7) for method System.Diagnostics.ProcessManager:IsRemoteMachine(System.String):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+43 (+4.95%) : 8935.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)

@@ -10,7 +10,7 @@
 ;  V00 this         [V00,T11] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.MulticastDelegate>
 ;  V01 arg1         [V01,T13] (  8,  5   )     ref  ->  rsi         class-hnd single-def <System.Delegate>
 ;  V02 loc0         [V02,T15] (  5,  2.50)     ref  ->  rsi         class-hnd single-def <System.MulticastDelegate>
-;  V03 loc1         [V03,T03] ( 17, 17.50)     ref  ->  r12         class-hnd <System.Delegate[]>
+;  V03 loc1         [V03,T03] ( 17, 17.50)     ref  ->  [rsp+0x20]  class-hnd <System.Delegate[]>
 ;  V04 loc2         [V04,T04] ( 16, 17   )     int  ->  rbp        
 ;  V05 loc3         [V05,T06] ( 17, 16.12)     ref  ->  r14         class-hnd single-def <System.Delegate[]>
 ;  V06 loc4         [V06,T12] (  8,  7.50)     int  ->  r13        
@@ -72,7 +72,7 @@ G_M24678_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
        ; gcrRegs -[rax] +[rsi]
        mov      rcx, qword ptr [rbx]
        cmp      rcx, qword ptr [rsi]
-       jne      G_M24678_IG37
+       jne      G_M24678_IG36
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     System.Delegate:IsDynamicDelegate():ubyte:this
@@ -86,7 +86,7 @@ G_M24678_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M24678_IG38
+       jne      G_M24678_IG37
                        ;; size=40 bbWeight=0.50 PerfScore 5.50
 G_M24678_IG06:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [(reloc)]      ; System.MulticastDelegate
@@ -136,7 +136,7 @@ G_M24678_IG10:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRe
        mov      r15, rax
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      G_M24678_IG17
+       jne      G_M24678_IG16
        lea      r13d, [rbp+0x01]
        movsxd   rdx, r13d
        lea      rcx, [(reloc)]      ; System.Delegate[]
@@ -163,15 +163,15 @@ G_M24678_IG10:        ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRe
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[rcx rdi r8 r14]
        ; gcr arg pop 0
-       jmp      SHORT G_M24678_IG15
+       jmp      SHORT G_M24678_IG14
                        ;; size=86 bbWeight=0.50 PerfScore 7.12
 G_M24678_IG11:        ; bbWeight=0.50, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r14]
        xor      r15d, r15d
        test     ebp, ebp
-       jle      SHORT G_M24678_IG15
+       jle      SHORT G_M24678_IG14
        cmp      dword ptr [r14+0x08], ebp
-       jl       SHORT G_M24678_IG14
+       jl       SHORT G_M24678_IG13
                        ;; size=13 bbWeight=0.50 PerfScore 2.75
 G_M24678_IG12:        ; bbWeight=3.96, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
        mov      r8d, r15d
@@ -186,15 +186,11 @@ G_M24678_IG12:        ; bbWeight=3.96, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0
        ; gcr arg pop 0
        cmp      r15d, ebp
        jl       SHORT G_M24678_IG12
-                       ;; size=27 bbWeight=3.96 PerfScore 20.79
-G_M24678_IG13:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
-       jmp      SHORT G_M24678_IG15
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M24678_IG14:        ; bbWeight=0.04, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[r14]
+       jmp      SHORT G_M24678_IG14
+                       ;; size=29 bbWeight=3.96 PerfScore 28.71
+G_M24678_IG13:        ; bbWeight=0.04, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref, isz
        cmp      r15d, dword ptr [r14+0x08]
-       jae      G_M24678_IG36
+       jae      G_M24678_IG35
        mov      r8d, r15d
        mov      r8, gword ptr [r14+8*r8+0x10]
        ; gcrRegs +[r8]
@@ -207,9 +203,9 @@ G_M24678_IG14:        ; bbWeight=0.04, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0
        ; gcr arg pop 0
        inc      r15d
        cmp      r15d, ebp
-       jl       SHORT G_M24678_IG14
+       jl       SHORT G_M24678_IG13
                        ;; size=41 bbWeight=0.04 PerfScore 0.39
-G_M24678_IG15:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
+G_M24678_IG14:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -218,7 +214,7 @@ G_M24678_IG15:        ; bbWeight=0.50, gcrefRegs=1008 {rbx r12}, byrefRegs=0000
        mov      r8d, r13d
        xor      r9d, r9d
                        ;; size=12 bbWeight=0.50 PerfScore 0.50
-G_M24678_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M24678_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
        pop      rbp
@@ -231,7 +227,7 @@ G_M24678_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        jmp      System.MulticastDelegate:NewMulticastDelegate(System.Delegate[],int,ubyte):System.MulticastDelegate:this
        ; gcr arg pop 0
                        ;; size=21 bbWeight=0.50 PerfScore 3.12
-G_M24678_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M24678_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx r12] +[rsi r14-r15]
        mov      edi, dword ptr [rbx+0x18]
        lea      r13d, [rdi+rbp]
@@ -240,10 +236,10 @@ G_M24678_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C04
        mov      eax, dword ptr [r15+0x08]
        mov      dword ptr [rsp+0x2C], eax
        cmp      eax, r13d
-       jl       G_M24678_IG22
+       jl       G_M24678_IG20
        mov      r12, r15
        test     r14, r14
-       jne      SHORT G_M24678_IG18
+       jne      SHORT G_M24678_IG17
        mov      rcx, r12
        ; gcrRegs +[rcx]
        mov      edx, edi
@@ -253,17 +249,17 @@ G_M24678_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C04
        ; gcrRegs -[rcx r8]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M24678_IG22
-       jmp      SHORT G_M24678_IG23
+       jne      SHORT G_M24678_IG20
+       jmp      SHORT G_M24678_IG21
                        ;; size=54 bbWeight=0.50 PerfScore 6.75
-G_M24678_IG18:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M24678_IG17:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        xor      r10d, r10d
        test     ebp, ebp
-       jle      SHORT G_M24678_IG22
+       jle      SHORT G_M24678_IG20
        cmp      dword ptr [r14+0x08], ebp
-       jl       SHORT G_M24678_IG21
+       jl       SHORT G_M24678_IG19
                        ;; size=13 bbWeight=0.50 PerfScore 2.75
-G_M24678_IG19:        ; bbWeight=3.96, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M24678_IG18:        ; bbWeight=3.96, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      r8d, r10d
        mov      r8, gword ptr [r14+8*r8+0x10]
        ; gcrRegs +[r8]
@@ -275,18 +271,16 @@ G_M24678_IG19:        ; bbWeight=3.96, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byr
        ; gcrRegs -[rcx r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M24678_IG23
+       je       SHORT G_M24678_IG21
        mov      r10d, dword ptr [rsp+0x34]
        inc      r10d
        cmp      r10d, ebp
-       jl       SHORT G_M24678_IG19
-                       ;; size=42 bbWeight=3.96 PerfScore 34.65
-G_M24678_IG20:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M24678_IG22
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M24678_IG21:        ; bbWeight=0.04, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+       jl       SHORT G_M24678_IG18
+       jmp      SHORT G_M24678_IG20
+                       ;; size=44 bbWeight=3.96 PerfScore 42.57
+G_M24678_IG19:        ; bbWeight=0.04, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
        cmp      r10d, dword ptr [r14+0x08]
-       jae      G_M24678_IG36
+       jae      G_M24678_IG35
        mov      r8d, r10d
        mov      r8, gword ptr [r14+8*r8+0x10]
        ; gcrRegs +[r8]
@@ -298,115 +292,134 @@ G_M24678_IG21:        ; bbWeight=0.04, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byr
        ; gcrRegs -[rcx r8]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M24678_IG23
+       je       SHORT G_M24678_IG21
        mov      edx, dword ptr [rsp+0x34]
        inc      edx
        cmp      edx, ebp
        mov      r10d, edx
-       jl       SHORT G_M24678_IG21
+       jl       SHORT G_M24678_IG19
                        ;; size=52 bbWeight=0.04 PerfScore 0.52
-G_M24678_IG22:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref
+G_M24678_IG20:        ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref
        test     r12, r12
-       jne      G_M24678_IG34
-                       ;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M24678_IG23:        ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+       mov      gword ptr [rsp+0x20], r12
+       ; GC ptr vars +{V03}
+       jne      G_M24678_IG33
+                       ;; size=14 bbWeight=0.50 PerfScore 1.12
+G_M24678_IG21:        ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r12]
-       mov      eax, dword ptr [rsp+0x2C]
-       mov      edx, eax
+       ; GC ptr vars -{V03}
+       mov      r12d, dword ptr [rsp+0x2C]
+       mov      edx, r12d
        cmp      edx, r13d
-       jge      SHORT G_M24678_IG25
-                       ;; size=11 bbWeight=0.50 PerfScore 1.25
-G_M24678_IG24:        ; bbWeight=4, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+       jge      SHORT G_M24678_IG23
+                       ;; size=13 bbWeight=0.50 PerfScore 1.25
+G_M24678_IG22:        ; bbWeight=4, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
        add      edx, edx
        cmp      edx, r13d
-       jl       SHORT G_M24678_IG24
+       jl       SHORT G_M24678_IG22
                        ;; size=7 bbWeight=4 PerfScore 6.00
-G_M24678_IG25:        ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M24678_IG23:        ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
        movsxd   rdx, edx
        lea      rcx, [(reloc)]      ; System.Delegate[]
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r12, rax
-       ; gcrRegs +[r12]
-       xor      eax, eax
-       ; gcrRegs -[rax]
+       xor      r10d, r10d
        test     edi, edi
-       jle      SHORT G_M24678_IG29
-       mov      r10d, dword ptr [rsp+0x2C]
-       cmp      r10d, edi
-       jl       SHORT G_M24678_IG28
-                       ;; size=34 bbWeight=0.50 PerfScore 2.88
-G_M24678_IG26:        ; bbWeight=3.96, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
-       mov      r8d, eax
+       jle      SHORT G_M24678_IG26
+       cmp      r12d, edi
+       jl       SHORT G_M24678_IG27
+                       ;; size=27 bbWeight=0.50 PerfScore 2.25
+G_M24678_IG24:        ; bbWeight=3.96, gcrefRegs=C049 {rax rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+       mov      r8d, r10d
        mov      r8, gword ptr [r15+8*r8+0x10]
        ; gcrRegs +[r8]
-       mov      dword ptr [rsp+0x30], eax
-       movsxd   rdx, eax
-       mov      rcx, r12
+       mov      dword ptr [rsp+0x30], r10d
+       movsxd   rdx, r10d
+       mov      gword ptr [rsp+0x20], rax
+       ; GC ptr vars +{V03}
+       mov      rcx, rax
        ; gcrRegs +[rcx]
        call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rcx r8]
+       ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 8,795 3,596 2,086 3,113 -32,353 +20,797
benchmarks.run.windows.x64.checked.mch 1,369 396 217 756 -3,450 +5,522
benchmarks.run_pgo.windows.x64.checked.mch 7,271 3,035 1,051 3,185 -23,838 +16,686
benchmarks.run_tiered.windows.x64.checked.mch 556 135 74 347 -1,491 +1,694
coreclr_tests.run.windows.x64.checked.mch 20,959 15,032 1,625 4,302 -77,940 +17,135
libraries.crossgen2.windows.x64.checked.mch 4,957 814 504 3,639 -6,782 +5,681
libraries.pmi.windows.x64.checked.mch 10,964 3,102 1,967 5,895 -23,289 +20,239
libraries_tests.run.windows.x64.Release.mch 31,014 11,954 7,829 11,231 -136,653 +82,739
librariestestsnotieredcompilation.run.windows.x64.Release.mch 18,898 5,208 2,505 11,185 -42,559 +30,852
realworld.run.windows.x64.checked.mch 1,724 446 244 1,034 -5,643 +2,328
smoke_tests.nativeaot.windows.x64.checked.mch 1,117 229 112 776 -1,179 +1,290
107,624 43,947 18,214 45,463 -355,177 +204,963

Context information

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

jit-analyze output

aspnet.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41763246 (overridden on cmd)
Total bytes of diff: 41751690 (overridden on cmd)
Total bytes of delta: -11556 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         116 : 55573.dasm (2.33 % of base)
         103 : 10122.dasm (2.43 % of base)
          88 : 55914.dasm (10.27 % of base)
          88 : 56857.dasm (10.27 % of base)
          88 : 59956.dasm (10.27 % of base)
          82 : 58690.dasm (1.56 % of base)
          74 : 100828.dasm (6.76 % of base)
          74 : 91525.dasm (6.76 % of base)
          72 : 59491.dasm (1.44 % of base)
          68 : 110130.dasm (0.70 % of base)
          67 : 101225.dasm (1.43 % of base)
          67 : 48563.dasm (1.35 % of base)
          66 : 101576.dasm (5.72 % of base)
          66 : 8334.dasm (1.73 % of base)
          65 : 97147.dasm (1.31 % of base)
          63 : 95905.dasm (5.70 % of base)
          63 : 57311.dasm (1.27 % of base)
          62 : 55876.dasm (8.52 % of base)
          62 : 59907.dasm (8.52 % of base)
          62 : 56834.dasm (8.52 % of base)

Top file improvements (bytes):
        -279 : 90657.dasm (-5.44 % of base)
        -231 : 91182.dasm (-2.16 % of base)
        -172 : 63166.dasm (-2.85 % of base)
        -163 : 46649.dasm (-4.03 % of base)
        -154 : 61640.dasm (-2.52 % of base)
        -118 : 101029.dasm (-1.06 % of base)
        -118 : 52039.dasm (-1.92 % of base)
        -118 : 91769.dasm (-1.07 % of base)
        -107 : 101987.dasm (-0.87 % of base)
        -107 : 93027.dasm (-0.87 % of base)
        -106 : 58094.dasm (-1.79 % of base)
        -105 : 44090.dasm (-5.85 % of base)
        -104 : 45328.dasm (-5.60 % of base)
        -100 : 91263.dasm (-0.91 % of base)
         -90 : 46108.dasm (-4.55 % of base)
         -88 : 45876.dasm (-3.85 % of base)
         -86 : 54110.dasm (-7.12 % of base)
         -84 : 37905.dasm (-7.00 % of base)
         -84 : 42200.dasm (-6.98 % of base)
         -82 : 34085.dasm (-6.82 % of base)

84 total files with Code Size differences (48 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         116 (2.33 % of base) : 55573.dasm - Dapper.SqlMapper+<QueryAsync>d__33`1[System.__Canon]:MoveNext():this (Tier1)
         103 (2.43 % of base) : 10122.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
          88 (10.27 % of base) : 55914.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          88 (10.27 % of base) : 56857.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          88 (10.27 % of base) : 59956.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          82 (1.56 % of base) : 58690.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
          74 (6.76 % of base) : 100828.dasm - Microsoft.Extensions.Internal.PropertyHelper:GetVisibleProperties(System.Type,System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]],System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]]):Microsoft.Extensions.Internal.PropertyHelper[] (Tier1-OSR)
          74 (6.76 % of base) : 91525.dasm - Microsoft.Extensions.Internal.PropertyHelper:GetVisibleProperties(System.Type,System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]],System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]]):Microsoft.Extensions.Internal.PropertyHelper[] (Tier1-OSR)
          72 (1.44 % of base) : 59491.dasm - Dapper.SqlMapper+<QueryAsync>d__33`1[System.__Canon]:MoveNext():this (Tier1)
          68 (0.70 % of base) : 110130.dasm - OrchardCore.Resources.Liquid.ScriptTag+<WriteToAsync>d__1:MoveNext():this (FullOpts)
          67 (1.35 % of base) : 48563.dasm - Dapper.SqlMapper+<QueryAsync>d__33`1[System.__Canon]:MoveNext():this (Tier1)
          67 (1.43 % of base) : 101225.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
          66 (1.73 % of base) : 8334.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoSend>d__28:MoveNext():this (Tier1)
          66 (5.72 % of base) : 101576.dasm - System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)
          65 (1.31 % of base) : 97147.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager+<GetShapeTableAsync>d__11:MoveNext():this (Tier1)
          63 (1.27 % of base) : 57311.dasm - Dapper.SqlMapper+<QueryAsync>d__33`1[System.__Canon]:MoveNext():this (Tier1)
          63 (5.70 % of base) : 95905.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase (Tier1)
          62 (8.52 % of base) : 55876.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          62 (8.52 % of base) : 59907.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          62 (8.52 % of base) : 56834.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)

Top method improvements (bytes):
        -279 (-5.44 % of base) : 90657.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseHeaders:SetValueFast(System.String,Microsoft.Extensions.Primitives.StringValues):this (Tier1)
        -231 (-2.16 % of base) : 91182.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:GetCallbackMethodsForType(System.Type,byref,byref,byref,byref,byref):this (Tier1-OSR)
        -172 (-2.85 % of base) : 63166.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1)
        -163 (-4.03 % of base) : 46649.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (FullOpts)
        -154 (-2.52 % of base) : 61640.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1)
        -118 (-1.92 % of base) : 52039.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1)
        -118 (-1.06 % of base) : 101029.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
        -118 (-1.07 % of base) : 91769.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
        -107 (-0.87 % of base) : 101987.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -107 (-0.87 % of base) : 93027.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -106 (-1.79 % of base) : 58094.dasm - Npgsql.SqlQueryParser:ParseRawQuery(Npgsql.NpgsqlCommand,Npgsql.NpgsqlBatchCommand,ubyte,ubyte):this (Tier1)
        -105 (-5.85 % of base) : 44090.dasm - Microsoft.EntityFrameworkCore.Metadata.Internal.ClrPropertySetterFactory:CreateGeneric[System.__Canon,System.__Canon,System.__Canon,System.__Canon](System.Reflection.MemberInfo,Microsoft.EntityFrameworkCore.Metadata.IPropertyBase):Microsoft.EntityFrameworkCore.Metadata.IClrPropertySetter:this (FullOpts)
        -104 (-5.60 % of base) : 45328.dasm - Microsoft.EntityFrameworkCore.ChangeTracking.Internal.ValueComparerExtensions:ToNullableComparer(Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer,System.Type):Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer (FullOpts)
        -100 (-0.91 % of base) : 91263.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1-OSR)
         -90 (-4.55 % of base) : 46108.dasm - Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor+ShaperProcessingExpressionVisitor:.ctor(Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor,Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression,System.Collections.Generic.ISet`1[System.String],ubyte,ubyte):this (FullOpts)
         -88 (-3.85 % of base) : 45876.dasm - Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor:Expand(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this (FullOpts)
         -86 (-7.12 % of base) : 54110.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)
         -84 (-7.00 % of base) : 37905.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)
         -84 (-6.98 % of base) : 42200.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)
         -82 (-6.82 % of base) : 34085.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)

Top method regressions (percentages):
          88 (10.27 % of base) : 55914.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          88 (10.27 % of base) : 56857.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          88 (10.27 % of base) : 59956.dasm - System.Net.Sockets.NetworkStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (Tier1)
          37 (8.85 % of base) : 56859.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          37 (8.85 % of base) : 55916.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          37 (8.85 % of base) : 59958.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          62 (8.52 % of base) : 55876.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          62 (8.52 % of base) : 59907.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          62 (8.52 % of base) : 56834.dasm - System.Net.Sockets.NetworkStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          36 (8.22 % of base) : 55877.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          36 (8.22 % of base) : 56835.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          36 (8.22 % of base) : 59905.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          19 (7.79 % of base) : 1837.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
          30 (7.33 % of base) : 102452.dasm - OrchardCore.Security.AuthorizationHandlers.PermissionHandler:HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,OrchardCore.Security.PermissionRequirement):System.Threading.Tasks.Task:this (Tier1)
          30 (7.33 % of base) : 93349.dasm - OrchardCore.Security.AuthorizationHandlers.PermissionHandler:HandleRequirementAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,OrchardCore.Security.PermissionRequirement):System.Threading.Tasks.Task:this (Tier1)
          74 (6.76 % of base) : 100828.dasm - Microsoft.Extensions.Internal.PropertyHelper:GetVisibleProperties(System.Type,System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]],System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]]):Microsoft.Extensions.Internal.PropertyHelper[] (Tier1-OSR)
          74 (6.76 % of base) : 91525.dasm - Microsoft.Extensions.Internal.PropertyHelper:GetVisibleProperties(System.Type,System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]],System.Collections.Concurrent.ConcurrentDictionary`2[System.Type,Microsoft.Extensions.Internal.PropertyHelper[]]):Microsoft.Extensions.Internal.PropertyHelper[] (Tier1-OSR)
          19 (6.64 % of base) : 41326.dasm - System.Threading.ThreadPoolWorkQueue:EnqueueAtHighPriority(System.Object):this (Tier1)
          25 (6.54 % of base) : 40949.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          47 (5.93 % of base) : 88783.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (Tier1)

Top method improvements (percentages):
         -15 (-15.15 % of base) : 53577.dasm - Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
         -15 (-15.15 % of base) : 65726.dasm - Npgsql.NpgsqlCommand:<ProcessRawQuery>g__ValidateParameterCount|98_0(Npgsql.NpgsqlBatchCommand) (Tier1)
         -26 (-10.28 % of base) : 99088.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HttpUtilities:IsHostHeaderValid(System.String):ubyte (Tier1)
         -13 (-9.70 % of base) : 76012.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):ubyte (FullOpts)
          -2 (-9.09 % of base) : 93854.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 13956.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 153.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -13 (-8.33 % of base) : 76016.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object) (FullOpts)
         -40 (-8.16 % of base) : 47486.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -40 (-8.16 % of base) : 40195.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -13 (-7.93 % of base) : 75999.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -24 (-7.79 % of base) : 50888.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSenderPool:Return(Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSender):this (Tier1)
         -24 (-7.79 % of base) : 66334.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSenderPool:Return(Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSender):this (Tier1)
         -38 (-7.76 % of base) : 38998.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -38 (-7.76 % of base) : 54371.dasm - System.Threading.Channels.UnboundedChannel`1+UnboundedChannelWriter[System.__Canon]:TryWrite(System.__Canon):ubyte:this (Tier1)
         -13 (-7.69 % of base) : 80360.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -38 (-7.16 % of base) : 49021.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (Tier1)
         -86 (-7.12 % of base) : 54110.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)
         -39 (-7.12 % of base) : 110931.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection:EnsureHostHeaderExists():this (Tier1)
         -84 (-7.00 % of base) : 37905.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry],Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ModelMetadataIdentity,int,byref):ubyte (Tier1)


benchmarks.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 8749663 (overridden on cmd)
Total bytes of diff: 8751735 (overridden on cmd)
Total bytes of delta: 2072 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         291 : 17578.dasm (8.47 % of base)
         245 : 10642.dasm (7.54 % of base)
         230 : 28136.dasm (6.79 % of base)
         177 : 16968.dasm (8.67 % of base)
         165 : 1029.dasm (3.56 % of base)
         130 : 3512.dasm (6.92 % of base)
         117 : 15086.dasm (6.89 % of base)
         117 : 15268.dasm (7.46 % of base)
         117 : 16554.dasm (6.78 % of base)
         107 : 2882.dasm (3.62 % of base)
          93 : 4685.dasm (7.89 % of base)
          89 : 16221.dasm (6.38 % of base)
          78 : 15316.dasm (2.44 % of base)
          78 : 19294.dasm (1.51 % of base)
          78 : 15260.dasm (1.66 % of base)
          77 : 2884.dasm (4.04 % of base)
          73 : 16208.dasm (7.57 % of base)
          70 : 1755.dasm (5.59 % of base)
          69 : 3672.dasm (2.00 % of base)
          69 : 18450.dasm (5.90 % of base)

Top file improvements (bytes):
        -159 : 5371.dasm (-7.96 % of base)
         -87 : 11224.dasm (-4.30 % of base)
         -80 : 20813.dasm (-1.32 % of base)
         -78 : 5369.dasm (-2.87 % of base)
         -68 : 19909.dasm (-2.55 % of base)
         -66 : 27739.dasm (-0.63 % of base)
         -65 : 18358.dasm (-1.92 % of base)
         -62 : 23661.dasm (-7.81 % of base)
         -59 : 6045.dasm (-2.48 % of base)
         -51 : 24702.dasm (-7.85 % of base)
         -49 : 14865.dasm (-0.73 % of base)
         -49 : 8691.dasm (-7.10 % of base)
         -44 : 23181.dasm (-3.21 % of base)
         -42 : 16364.dasm (-2.87 % of base)
         -42 : 19919.dasm (-4.18 % of base)
         -41 : 21675.dasm (-1.52 % of base)
         -41 : 22933.dasm (-1.69 % of base)
         -35 : 7301.dasm (-0.20 % of base)
         -34 : 25410.dasm (-0.39 % of base)
         -34 : 7314.dasm (-0.39 % of base)

64 total files with Code Size differences (33 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
         291 (8.47 % of base) : 17578.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
         245 (7.54 % of base) : 10642.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
         230 (6.79 % of base) : 28136.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
         177 (8.67 % of base) : 16968.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (FullOpts)
         165 (3.56 % of base) : 1029.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.SyncReadWriteAdapter]:MoveNext():this (FullOpts)
         130 (6.92 % of base) : 3512.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
         117 (6.89 % of base) : 15086.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsync>d__4:MoveNext():this (FullOpts)
         117 (6.78 % of base) : 16554.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsyncWithCancellationToken>d__8:MoveNext():this (FullOpts)
         117 (7.46 % of base) : 15268.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         107 (3.62 % of base) : 2882.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (FullOpts)
          93 (7.89 % of base) : 4685.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          89 (6.38 % of base) : 16221.dasm - System.Formats.Tar.TarHelpers+<AdvanceStreamAsync>d__8:MoveNext():this (FullOpts)
          78 (1.51 % of base) : 19294.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          78 (2.44 % of base) : 15316.dasm - System.Formats.Tar.TarHeader+<WriteAsPaxAsync>d__93:MoveNext():this (FullOpts)
          78 (1.66 % of base) : 15260.dasm - System.Security.Cryptography.CryptoStream+<WriteAsyncCore>d__53:MoveNext():this (FullOpts)
          77 (4.04 % of base) : 2884.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (FullOpts)
          73 (7.57 % of base) : 16208.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
          70 (5.59 % of base) : 1755.dasm - System.Text.Json.Serialization.ReadBufferState+<ReadFromStreamAsync>d__11:MoveNext():this (FullOpts)
          69 (5.90 % of base) : 18450.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (FullOpts)
          69 (2.00 % of base) : 3672.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -159 (-7.96 % of base) : 5371.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -87 (-4.30 % of base) : 11224.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -80 (-1.32 % of base) : 20813.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
         -78 (-2.87 % of base) : 5369.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -68 (-2.55 % of base) : 19909.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForSourceAssembly(Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],int,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref) (FullOpts)
         -66 (-0.63 % of base) : 27739.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         -65 (-1.92 % of base) : 18358.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
         -62 (-7.81 % of base) : 23661.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -59 (-2.48 % of base) : 6045.dasm - BenchmarksGame.KNucleotide_9:Bench(BenchmarksGame.NucleotideHelpers,ubyte):ubyte (FullOpts)
         -51 (-7.85 % of base) : 24702.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[int],System.Collections.Immutable.ImmutableList`1+Builder[int],int,int,ubyte):this (FullOpts)
         -49 (-0.73 % of base) : 14865.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (FullOpts)
         -49 (-7.10 % of base) : 8691.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -44 (-3.21 % of base) : 23181.dasm - System.Text.Base64Encoding:GetBytes(ubyte[],int,int,ubyte[],int):int:this (FullOpts)
         -42 (-2.87 % of base) : 16364.dasm - AssignRect:first_assignments(int[,],short[,]):int (FullOpts)
         -42 (-4.18 % of base) : 19919.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -41 (-1.52 % of base) : 21675.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:DefaultVisit(Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
         -41 (-1.69 % of base) : 22933.dasm - Microsoft.CodeAnalysis.CSharp.InMethodBinder:LookupSymbolsInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref):this (FullOpts)
         -35 (-0.20 % of base) : 7301.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -34 (-0.39 % of base) : 7314.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
         -34 (-0.39 % of base) : 25410.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)

Top method regressions (percentages):
          63 (9.12 % of base) : 16219.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
         177 (8.67 % of base) : 16968.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (FullOpts)
         291 (8.47 % of base) : 17578.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
          93 (7.89 % of base) : 4685.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          54 (7.75 % of base) : 17584.dasm - System.Threading.Tasks.ValueTaskPerfTest+<AwaitTcsAsValueTask>d__21:MoveNext():this (FullOpts)
          73 (7.57 % of base) : 16208.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
         245 (7.54 % of base) : 10642.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
         117 (7.46 % of base) : 15268.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         130 (6.92 % of base) : 3512.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
         117 (6.89 % of base) : 15086.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsync>d__4:MoveNext():this (FullOpts)
         230 (6.79 % of base) : 28136.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
         117 (6.78 % of base) : 16554.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<Setup_SyncReadAsyncWithCancellationToken>d__8:MoveNext():this (FullOpts)
          89 (6.38 % of base) : 16221.dasm - System.Formats.Tar.TarHelpers+<AdvanceStreamAsync>d__8:MoveNext():this (FullOpts)
          69 (5.90 % of base) : 18450.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (FullOpts)
          63 (5.90 % of base) : 15335.dasm - System.Formats.Tar.TarWriter+<WriteFinalRecordsAsync>d__23:MoveNext():this (FullOpts)
          56 (5.63 % of base) : 15178.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedTask_ConfigureAwait>d__9:MoveNext():this (FullOpts)
          56 (5.63 % of base) : 14917.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedTask>d__8:MoveNext():this (FullOpts)
          56 (5.63 % of base) : 16049.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedValueTaskSource_ConfigureAwait>d__11:MoveNext():this (FullOpts)
          56 (5.63 % of base) : 15619.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromCompletedValueTaskSource>d__10:MoveNext():this (FullOpts)
          56 (5.61 % of base) : 17077.dasm - System.Threading.Tasks.ValueTaskPerfTest+<CreateAndAwait_FromYieldingAsyncMethod>d__12:MoveNext():this (FullOpts)

Top method improvements (percentages):
        -159 (-7.96 % of base) : 5371.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -51 (-7.85 % of base) : 24702.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[int],System.Collections.Immutable.ImmutableList`1+Builder[int],int,int,ubyte):this (FullOpts)
         -62 (-7.81 % of base) : 23661.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -23 (-7.67 % of base) : 19180.dasm - Microsoft.Extensions.Primitives.StringSegment:TrimEnd():Microsoft.Extensions.Primitives.StringSegment:this (FullOpts)
         -49 (-7.10 % of base) : 8691.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -18 (-6.21 % of base) : 634.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -16 (-5.35 % of base) : 636.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
         -29 (-4.33 % of base) : 6629.dasm - System.IO.Pipelines.Pipe:PrepareFlushUnsynchronized(byref,byref,System.Threading.CancellationToken):this (FullOpts)
         -87 (-4.30 % of base) : 11224.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -42 (-4.18 % of base) : 19919.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
          -2 (-3.92 % of base) : 18839.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:GetRotation(System.Collections.Generic.SortedSet`1+Node[System.__Canon],System.Collections.Generic.SortedSet`1+Node[System.__Canon]):ubyte:this (FullOpts)
         -18 (-3.61 % of base) : 1024.dasm - System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this (FullOpts)
         -31 (-3.61 % of base) : 16334.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         -14 (-3.43 % of base) : 539.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -44 (-3.21 % of base) : 23181.dasm - System.Text.Base64Encoding:GetBytes(ubyte[],int,int,ubyte[],int):int:this (FullOpts)
         -29 (-3.19 % of base) : 5803.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Populate():this (FullOpts)
         -15 (-3.14 % of base) : 20014.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+UsingsFromOptionsAndDiagnostics:Complete(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Threading.CancellationToken):this (FullOpts)
         -18 (-3.07 % of base) : 7580.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteBlockExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (FullOpts)
          -8 (-3.07 % of base) : 11571.dasm - System.Xml.NameTable:Add(System.String):System.String:this (FullOpts)
         -14 (-2.89 % of base) : 271.dasm - System.Reflection.RuntimeAssembly:GetType(System.String,ubyte,ubyte):System.Type:this (FullOpts)


benchmarks.run_pgo.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34741684 (overridden on cmd)
Total bytes of diff: 34734532 (overridden on cmd)
Total bytes of delta: -7152 (-0.02 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         856 : 26907.dasm (28.83 % of base)
         112 : 70501.dasm (14.53 % of base)
         112 : 85281.dasm (14.53 % of base)
         112 : 30992.dasm (14.53 % of base)
         112 : 87939.dasm (14.53 % of base)
         109 : 84413.dasm (5.46 % of base)
         104 : 97579.dasm (8.84 % of base)
         103 : 94982.dasm (8.75 % of base)
          94 : 44871.dasm (12.19 % of base)
          94 : 49071.dasm (12.19 % of base)
          91 : 94000.dasm (7.42 % of base)
          89 : 55910.dasm (21.60 % of base)
          89 : 74989.dasm (21.60 % of base)
          89 : 53729.dasm (21.60 % of base)
          88 : 92027.dasm (7.34 % of base)
          84 : 70548.dasm (11.60 % of base)
          84 : 50063.dasm (11.60 % of base)
          84 : 50064.dasm (11.67 % of base)
          84 : 49072.dasm (11.60 % of base)
          84 : 56500.dasm (11.60 % of base)

Top file improvements (bytes):
        -511 : 32142.dasm (-37.06 % of base)
        -455 : 32152.dasm (-33.88 % of base)
        -252 : 53011.dasm (-34.19 % of base)
        -252 : 53049.dasm (-34.19 % of base)
        -202 : 83055.dasm (-9.83 % of base)
        -173 : 76179.dasm (-8.29 % of base)
        -151 : 83070.dasm (-6.91 % of base)
        -147 : 46739.dasm (-6.07 % of base)
        -146 : 42541.dasm (-6.05 % of base)
        -130 : 54125.dasm (-3.90 % of base)
        -115 : 84684.dasm (-5.10 % of base)
        -106 : 91502.dasm (-2.41 % of base)
         -94 : 88770.dasm (-4.92 % of base)
         -94 : 84685.dasm (-3.93 % of base)
         -91 : 36482.dasm (-2.12 % of base)
         -87 : 86191.dasm (-2.13 % of base)
         -85 : 88039.dasm (-2.08 % of base)
         -80 : 98182.dasm (-2.88 % of base)
         -78 : 98178.dasm (-2.17 % of base)
         -66 : 79048.dasm (-7.80 % of base)

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

Top method regressions (bytes):
         856 (28.83 % of base) : 26907.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
         112 (14.53 % of base) : 70501.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
         112 (14.53 % of base) : 85281.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
         112 (14.53 % of base) : 30992.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
         112 (14.53 % of base) : 87939.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
         109 (5.46 % of base) : 84413.dasm - System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (Tier1)
         104 (8.84 % of base) : 97579.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
         103 (8.75 % of base) : 94982.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          94 (12.19 % of base) : 44871.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          94 (12.19 % of base) : 49071.dasm - System.Globalization.CompareInfo:Compare(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          91 (7.42 % of base) : 94000.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          89 (21.60 % of base) : 55910.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          89 (21.60 % of base) : 74989.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          89 (21.60 % of base) : 53729.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          88 (7.34 % of base) : 92027.dasm - System.Number+Grisu3:TryRunDouble(double,int,byref):ubyte (Tier1)
          84 (11.60 % of base) : 70548.dasm - System.Globalization.CompareInfo:CompareStringCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          84 (11.60 % of base) : 50063.dasm - System.Globalization.CompareInfo:CompareStringCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          84 (11.60 % of base) : 49072.dasm - System.Globalization.CompareInfo:CompareStringCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          84 (11.60 % of base) : 56500.dasm - System.Globalization.CompareInfo:CompareStringCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          84 (11.67 % of base) : 50064.dasm - System.Globalization.CompareInfo:NlsCompareString(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)

Top method improvements (bytes):
        -511 (-37.06 % of base) : 32142.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -455 (-33.88 % of base) : 32152.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -252 (-34.19 % of base) : 53011.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -252 (-34.19 % of base) : 53049.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -202 (-9.83 % of base) : 83055.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass38_0+<<ConcurrentReadWrite>b__0>d:MoveNext():this (Tier1-OSR)
        -173 (-8.29 % of base) : 76179.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
        -151 (-6.91 % of base) : 83070.dasm - System.Net.Security.Tests.SslStreamTests+<ConcurrentReadWrite>d__38:MoveNext():this (Tier1-OSR)
        -147 (-6.07 % of base) : 46739.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
        -146 (-6.05 % of base) : 42541.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsync>d__7:MoveNext():this (Tier1-OSR)
        -130 (-3.90 % of base) : 54125.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
        -115 (-5.10 % of base) : 84684.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass40_0+<<ConcurrentReadWriteLargeBuffer>b__0>d:MoveNext():this (Tier1-OSR)
        -106 (-2.41 % of base) : 91502.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
         -94 (-4.92 % of base) : 88770.dasm - Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark+<Parse_SequentialAsync>d__15:MoveNext():this (Tier1-OSR)
         -94 (-3.93 % of base) : 84685.dasm - System.Net.Security.Tests.SslStreamTests+<ConcurrentReadWriteLargeBuffer>d__40:MoveNext():this (Tier1-OSR)
         -91 (-2.12 % of base) : 36482.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest:SendToThenReceiveFrom():this (Tier1-OSR)
         -87 (-2.13 % of base) : 86191.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
         -85 (-2.08 % of base) : 88039.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
         -80 (-2.88 % of base) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
         -78 (-2.17 % of base) : 98178.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0+<<ProducerConsumer>b__0>d[System.__Canon]:MoveNext():this (Tier1-OSR)
         -66 (-7.80 % of base) : 79048.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

Top method regressions (percentages):
         856 (28.83 % of base) : 26907.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
          89 (21.60 % of base) : 55910.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          89 (21.60 % of base) : 74989.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          89 (21.60 % of base) : 53729.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          72 (17.60 % of base) : 33222.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 81384.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 8491.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 96195.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 33426.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 42575.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 44714.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 22095.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 49796.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 34271.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 75526.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 77314.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 78146.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 82438.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 86350.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          71 (17.23 % of base) : 87635.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)

Top method improvements (percentages):
        -511 (-37.06 % of base) : 32142.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -252 (-34.19 % of base) : 53011.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -252 (-34.19 % of base) : 53049.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -455 (-33.88 % of base) : 32152.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
          -4 (-11.11 % of base) : 7634.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
        -202 (-9.83 % of base) : 83055.dasm - System.Net.Security.Tests.SslStreamTests+<>c__DisplayClass38_0+<<ConcurrentReadWrite>b__0>d:MoveNext():this (Tier1-OSR)
         -26 (-9.42 % of base) : 72327.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ThisParameterSymbol:get_RefKind():ubyte:this (Tier1)
          -2 (-9.09 % of base) : 100047.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 75842.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
        -173 (-8.29 % of base) : 76179.dasm - System.Net.Security.Tests.SslStreamTests+<WriteReadAsync>d__33:MoveNext():this (Tier1-OSR)
         -66 (-7.80 % of base) : 79048.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
          -7 (-6.93 % of base) : 67866.dasm - Microsoft.CodeAnalysis.SyntaxList`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this (Tier1)
        -151 (-6.91 % of base) : 83070.dasm - System.Net.Security.Tests.SslStreamTests+<ConcurrentReadWrite>d__38:MoveNext():this (Tier1-OSR)
         -51 (-6.48 % of base) : 97751.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -51 (-6.48 % of base) : 74575.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -16 (-6.32 % of base) : 83355.dasm - System.Collections.Perf_FrozenDictionary_String:TryGetValue_True_Dictionary():ubyte:this (Tier1-OSR)
        -147 (-6.07 % of base) : 46739.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
        -146 (-6.05 % of base) : 42541.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsync>d__7:MoveNext():this (Tier1-OSR)
         -48 (-5.76 % of base) : 79029.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -40 (-5.58 % of base) : 56157.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)


benchmarks.run_tiered.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 12662284 (overridden on cmd)
Total bytes of diff: 12662487 (overridden on cmd)
Total bytes of delta: 203 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         283 : 32403.dasm (8.95 % of base)
         174 : 46023.dasm (4.11 % of base)
         158 : 31529.dasm (8.12 % of base)
         127 : 51442.dasm (7.16 % of base)
          77 : 34745.dasm (4.04 % of base)
          69 : 17578.dasm (2.04 % of base)
          69 : 34587.dasm (5.90 % of base)
          68 : 25048.dasm (4.95 % of base)
          51 : 32917.dasm (3.77 % of base)
          49 : 51455.dasm (3.09 % of base)
          42 : 30608.dasm (3.51 % of base)
          42 : 35054.dasm (2.34 % of base)
          42 : 15610.dasm (2.77 % of base)
          41 : 16138.dasm (2.92 % of base)
          31 : 47784.dasm (2.29 % of base)
          31 : 31000.dasm (1.87 % of base)
          31 : 49769.dasm (1.82 % of base)
          25 : 47904.dasm (1.40 % of base)
          22 : 32320.dasm (0.26 % of base)
          19 : 46621.dasm (1.59 % of base)

Top file improvements (bytes):
        -457 : 25130.dasm (-33.43 % of base)
        -147 : 33238.dasm (-15.91 % of base)
         -65 : 33770.dasm (-1.88 % of base)
         -50 : 46985.dasm (-6.39 % of base)
         -42 : 30263.dasm (-2.87 % of base)
         -35 : 14462.dasm (-0.20 % of base)
         -33 : 50032.dasm (-0.32 % of base)
         -30 : 52355.dasm (-0.30 % of base)
         -26 : 32557.dasm (-0.63 % of base)
         -25 : 48124.dasm (-1.89 % of base)
         -19 : 50030.dasm (-0.34 % of base)
         -18 : 52305.dasm (-1.25 % of base)
         -18 : 41880.dasm (-0.60 % of base)
         -18 : 53361.dasm (-1.85 % of base)
         -16 : 3486.dasm (-5.35 % of base)
         -16 : 42018.dasm (-1.57 % of base)
         -16 : 14788.dasm (-0.63 % of base)
         -14 : 25133.dasm (-0.91 % of base)
         -14 : 33857.dasm (-3.43 % of base)
         -14 : 48375.dasm (-2.89 % of base)

55 total files with Code Size differences (29 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
         283 (8.95 % of base) : 32403.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
         174 (4.11 % of base) : 46023.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
         158 (8.12 % of base) : 31529.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         127 (7.16 % of base) : 51442.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (Tier1)
          77 (4.04 % of base) : 34745.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (Tier1)
          69 (5.90 % of base) : 34587.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
          69 (2.04 % of base) : 17578.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (Tier1)
          68 (4.95 % of base) : 25048.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
          51 (3.77 % of base) : 32917.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWriteAsync>d__8:MoveNext():this (Tier1)
          49 (3.09 % of base) : 51455.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          42 (3.51 % of base) : 30608.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
          42 (2.77 % of base) : 15610.dasm - System.IO.Tests.Perf_RandomAccess_NoBuffering+<WriteGatherAsync>d__16:MoveNext():this (Tier1)
          42 (2.34 % of base) : 35054.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier1)
          41 (2.92 % of base) : 16138.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
          31 (1.82 % of base) : 49769.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier1-OSR)
          31 (2.29 % of base) : 47784.dasm - System.IO.Tests.Perf_RandomAccess_NoBuffering+<ReadScatterAsync>d__15:MoveNext():this (Tier1)
          31 (1.87 % of base) : 31000.dasm - System.IO.Tests.Perf_RandomAccess+<ReadScatterAsync>d__21:MoveNext():this (Tier1)
          25 (1.40 % of base) : 47904.dasm - Benchstone.BenchF.Romber:Test():ubyte:this (Tier1-OSR)
          22 (0.26 % of base) : 32320.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
          19 (1.59 % of base) : 46621.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)

Top method improvements (bytes):
        -457 (-33.43 % of base) : 25130.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -147 (-15.91 % of base) : 33238.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -65 (-1.88 % of base) : 33770.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (Tier0-FullOpts)
         -50 (-6.39 % of base) : 46985.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -42 (-2.87 % of base) : 30263.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier1)
         -35 (-0.20 % of base) : 14462.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -33 (-0.32 % of base) : 50032.dasm - (dynamicClass):_DynamicMethod3(byref,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
         -30 (-0.30 % of base) : 52355.dasm - (dynamicClass):_DynamicMethod3(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerItem (FullOpts)
         -26 (-0.63 % of base) : 32557.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
         -25 (-1.89 % of base) : 48124.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,ubyte) (Tier1-OSR)
         -19 (-0.34 % of base) : 50030.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
         -18 (-0.60 % of base) : 41880.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:LoadMembers():this (Tier1)
         -18 (-1.25 % of base) : 52305.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (Tier1)
         -18 (-1.85 % of base) : 53361.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
         -16 (-1.57 % of base) : 42018.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetRuntimeMember(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],byref,Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)
         -16 (-0.63 % of base) : 14788.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (Tier0-FullOpts)
         -16 (-5.35 % of base) : 3486.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
         -14 (-0.91 % of base) : 25133.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1)
         -14 (-2.89 % of base) : 48375.dasm - System.Reflection.RuntimeAssembly:GetType(System.String,ubyte,ubyte):System.Type:this (Tier1)
         -14 (-3.43 % of base) : 33857.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)

Top method regressions (percentages):
         283 (8.95 % of base) : 32403.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
         158 (8.12 % of base) : 31529.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<ReadAsyncWithCancellationToken>d__11:MoveNext():this (Tier1-OSR)
         127 (7.16 % of base) : 51442.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (Tier1)
          69 (5.90 % of base) : 34587.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1)
          68 (4.95 % of base) : 25048.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1)
         174 (4.11 % of base) : 46023.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
          77 (4.04 % of base) : 34745.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (Tier1)
          51 (3.77 % of base) : 32917.dasm - System.IO.Pipes.Tests.Perf_PipeTest+<ReadWriteAsync>d__8:MoveNext():this (Tier1)
          42 (3.51 % of base) : 30608.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
           2 (3.28 % of base) : 8415.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (Tier1)
           4 (3.10 % of base) : 48453.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier1)
          49 (3.09 % of base) : 51455.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (Tier1)
          41 (2.92 % of base) : 16138.dasm - System.IO.Tests.Perf_RandomAccess+<ReadAsync>d__16:MoveNext():this (Tier1)
           2 (2.90 % of base) : 17634.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (Tier1)
           7 (2.88 % of base) : 34417.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier1)
          42 (2.77 % of base) : 15610.dasm - System.IO.Tests.Perf_RandomAccess_NoBuffering+<WriteGatherAsync>d__16:MoveNext():this (Tier1)
          42 (2.34 % of base) : 35054.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier1)
          18 (2.32 % of base) : 30264.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1)
          31 (2.29 % of base) : 47784.dasm - System.IO.Tests.Perf_RandomAccess_NoBuffering+<ReadScatterAsync>d__15:MoveNext():this (Tier1)
          69 (2.04 % of base) : 17578.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (Tier1)

Top method improvements (percentages):
        -457 (-33.43 % of base) : 25130.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -147 (-15.91 % of base) : 33238.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -50 (-6.39 % of base) : 46985.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -16 (-5.35 % of base) : 3486.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
         -14 (-3.43 % of base) : 33857.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          -8 (-3.07 % of base) : 48392.dasm - System.Xml.NameTable:Add(System.String):System.String:this (Tier1)
         -14 (-2.89 % of base) : 48375.dasm - System.Reflection.RuntimeAssembly:GetType(System.String,ubyte,ubyte):System.Type:this (Tier1)
         -42 (-2.87 % of base) : 30263.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier1)
          -6 (-2.62 % of base) : 3398.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)
          -4 (-2.56 % of base) : 9764.dasm - System.IO.Path:CombineInternal(System.String,System.String):System.String (Tier1)
          -3 (-1.91 % of base) : 3036.dasm - System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[ushort]):ubyte (Tier1)
         -25 (-1.89 % of base) : 48124.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String,byref,ubyte) (Tier1-OSR)
         -65 (-1.88 % of base) : 33770.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (Tier0-FullOpts)
         -18 (-1.85 % of base) : 53361.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
         -12 (-1.80 % of base) : 41963.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Tier1)
          -2 (-1.64 % of base) : 46664.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (Tier1)
          -2 (-1.64 % of base) : 2607.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier1)
          -2 (-1.64 % of base) : 26198.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
          -1 (-1.61 % of base) : 9714.dasm - System.IO.PathInternal:EndsWithPeriodOrSpace(System.String):ubyte (Tier1)
         -16 (-1.57 % of base) : 42018.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetRuntimeMember(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],byref,Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbol (Tier1)


coreclr_tests.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 392866349 (overridden on cmd)
Total bytes of diff: 392805544 (overridden on cmd)
Total bytes of delta: -60805 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         291 : 480908.dasm (8.47 % of base)
         200 : 366317.dasm (5.42 % of base)
         132 : 506561.dasm (6.96 % of base)
         122 : 370834.dasm (3.29 % of base)
         104 : 463765.dasm (0.96 % of base)
          87 : 198578.dasm (6.10 % of base)
          78 : 475561.dasm (1.51 % of base)
          64 : 370873.dasm (3.55 % of base)
          62 : 476097.dasm (3.93 % of base)
          61 : 366879.dasm (3.33 % of base)
          61 : 464425.dasm (2.05 % of base)
          59 : 572520.dasm (1.52 % of base)
          58 : 368839.dasm (2.01 % of base)
          58 : 375310.dasm (0.88 % of base)
          57 : 475611.dasm (1.91 % of base)
          52 : 227920.dasm (4.49 % of base)
          48 : 246948.dasm (2.71 % of base)
          48 : 360159.dasm (2.71 % of base)
          48 : 234128.dasm (2.71 % of base)
          48 : 268480.dasm (2.71 % of base)

Top file improvements (bytes):
        -511 : 230925.dasm (-37.06 % of base)
        -266 : 372272.dasm (-3.98 % of base)
        -252 : 228079.dasm (-34.19 % of base)
        -252 : 228064.dasm (-34.19 % of base)
        -228 : 369914.dasm (-3.42 % of base)
        -153 : 277430.dasm (-21.49 % of base)
        -153 : 513431.dasm (-21.52 % of base)
        -146 : 281078.dasm (-36.68 % of base)
        -115 : 367314.dasm (-3.98 % of base)
        -101 : 371253.dasm (-3.64 % of base)
         -90 : 558135.dasm (-1.29 % of base)
         -86 : 264484.dasm (-1.86 % of base)
         -86 : 271960.dasm (-1.86 % of base)
         -85 : 286810.dasm (-1.84 % of base)
         -85 : 481364.dasm (-4.20 % of base)
         -84 : 369132.dasm (-7.10 % of base)
         -83 : 370805.dasm (-4.65 % of base)
         -82 : 337063.dasm (-2.10 % of base)
         -82 : 336994.dasm (-2.10 % of base)
         -82 : 560074.dasm (-2.10 % of base)

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

Top method regressions (bytes):
         291 (8.47 % of base) : 480908.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
         200 (5.42 % of base) : 366317.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         132 (6.96 % of base) : 506561.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
         122 (3.29 % of base) : 370834.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+InstantiatedTypeKey,byref):ubyte:this (Tier1)
         104 (0.96 % of base) : 463765.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)
          87 (6.10 % of base) : 198578.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.Func`2[System.Reflection.AssemblyName,System.Reflection.Assembly],System.Func`4[System.Reflection.Assembly,System.String,ubyte,System.Type],System.Reflection.Assembly,ubyte,ubyte,ubyte):System.Type (Instrumented Tier1)
          78 (1.51 % of base) : 475561.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          64 (3.55 % of base) : 370873.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+MethodForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          62 (3.93 % of base) : 476097.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          61 (3.33 % of base) : 366879.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          61 (2.05 % of base) : 464425.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
          59 (1.52 % of base) : 572520.dasm - Internal.IL.Stubs.UnsafeIntrinsics:EmitIL(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
          58 (2.01 % of base) : 368839.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey,byref):ubyte:this (Tier1)
          58 (0.88 % of base) : 375310.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
          57 (1.91 % of base) : 475611.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          52 (4.49 % of base) : 227920.dasm - Huffman:Run():double:this (Tier1)
          48 (2.71 % of base) : 246948.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier1)
          48 (2.71 % of base) : 360159.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier1)
          48 (2.71 % of base) : 234128.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier1)
          48 (2.71 % of base) : 268480.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier1)

Top method improvements (bytes):
        -511 (-37.06 % of base) : 230925.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -266 (-3.98 % of base) : 372272.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
        -252 (-34.19 % of base) : 228079.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -252 (-34.19 % of base) : 228064.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -228 (-3.42 % of base) : 369914.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
        -153 (-21.52 % of base) : 513431.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
        -153 (-21.49 % of base) : 277430.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
        -146 (-36.68 % of base) : 281078.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -115 (-3.98 % of base) : 367314.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
        -101 (-3.64 % of base) : 371253.dasm - Internal.JitInterface.CorInfoImpl:getMethodAttribsInternal(Internal.TypeSystem.MethodDesc):uint:this (Tier1)
         -90 (-1.29 % of base) : 558135.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         -86 (-1.86 % of base) : 264484.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
         -86 (-1.86 % of base) : 271960.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
         -85 (-4.20 % of base) : 481364.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -85 (-1.84 % of base) : 286810.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
         -84 (-7.10 % of base) : 369132.dasm - System.Threading.Tasks.Task:Run(System.Func`1[System.Threading.Tasks.Task],System.Threading.CancellationToken):System.Threading.Tasks.Task (Tier1)
         -83 (-4.65 % of base) : 370805.dasm - Internal.TypeSystem.MetadataVirtualMethodAlgorithm:FindMatchingVirtualMethodOnTypeByNameAndSig(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.DefType,ubyte,System.Func`3[Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc,ubyte]):Internal.TypeSystem.MethodDesc (Tier1)
         -82 (-2.10 % of base) : 560074.dasm - StrSwitchFinalTest:Run():int:this (FullOpts)
         -82 (-2.10 % of base) : 337063.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)
         -82 (-2.10 % of base) : 336994.dasm - StrSwitchFinalTest:Run():int:this (Tier0-FullOpts)

Top method regressions (percentages):
          39 (25.83 % of base) : 385490.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          33 (21.85 % of base) : 385907.dasm - testout1:Sub_Funclet_221():int (FullOpts)
          12 (14.12 % of base) : 281299.dasm - System.Reflection.TypeNameParser:SkipWhiteSpace():this (Tier1)
          30 (13.70 % of base) : 288048.dasm - testout1:Test1(int):int (Tier1-OSR)
          30 (13.70 % of base) : 288050.dasm - testout1:Test2(int):int (Tier1-OSR)
          21 (12.43 % of base) : 385380.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          21 (12.43 % of base) : 385418.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          21 (12.43 % of base) : 385492.dasm - testout1:Sub_Funclet_223():int (FullOpts)
          45 (9.93 % of base) : 374199.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
          15 (9.43 % of base) : 385487.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          15 (9.43 % of base) : 385904.dasm - testout1:Sub_Funclet_218():int (FullOpts)
          16 (8.89 % of base) : 385871.dasm - testout1:Sub_Funclet_182():int (FullOpts)
          16 (8.89 % of base) : 385454.dasm - testout1:Sub_Funclet_182():int (FullOpts)
          15 (8.88 % of base) : 385797.dasm - testout1:Sub_Funclet_107():int (FullOpts)
          15 (8.88 % of base) : 385835.dasm - testout1:Sub_Funclet_145():int (FullOpts)
          15 (8.88 % of base) : 385909.dasm - testout1:Sub_Funclet_223():int (FullOpts)
         291 (8.47 % of base) : 480908.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
          13 (8.13 % of base) : 385417.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          13 (8.13 % of base) : 385834.dasm - testout1:Sub_Funclet_144():int (FullOpts)
          10 (7.81 % of base) : 198883.dasm - System.Reflection.TypeNameParser:get_Peek():int:this (Tier1)

Top method improvements (percentages):
        -511 (-37.06 % of base) : 230925.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -146 (-36.68 % of base) : 281078.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -252 (-34.19 % of base) : 228079.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -252 (-34.19 % of base) : 228064.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -153 (-21.52 % of base) : 513431.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
        -153 (-21.49 % of base) : 277430.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -20 (-12.12 % of base) : 386409.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -20 (-12.12 % of base) : 386825.dasm - testout1:Sub_Funclet_221():int (FullOpts)
         -56 (-9.09 % of base) : 394038.dasm - Program:TestEntryPoint():int (FullOpts)
          -2 (-9.09 % of base) : 357237.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 372484.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
          -2 (-9.09 % of base) : 272585.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(ulong,System.Object):System.Object (Tier1)
         -36 (-8.87 % of base) : 193785.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object,System.Object) (FullOpts)
         -14 (-8.09 % of base) : 192536.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Action`1[ubyte],System.Object) (FullOpts)
          -2 (-8.00 % of base) : 366085.dasm - System.Reflection.Metadata.SignatureHeader:get_Kind():ubyte:this (Tier1)
          -2 (-8.00 % of base) : 370763.dasm - System.Reflection.Metadata.SignatureHeader:get_Kind():ubyte:this (Tier1)
         -20 (-7.94 % of base) : 236828.dasm - BinderTracingTests.BinderTracingTest+CustomALC:Load(System.Reflection.AssemblyName):System.Reflection.Assembly:this (Tier1)
         -14 (-7.87 % of base) : 234251.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -56 (-7.80 % of base) : 215616.dasm - System.IO.Strategies.BufferedFileStreamStrategy:WriteSpan(System.ReadOnlySpan`1[ubyte],System.ArraySegment`1[ubyte]):this (Tier1)
         -56 (-7.80 % of base) : 374175.dasm - System.IO.Strategies.BufferedFileStreamStrategy:WriteSpan(System.ReadOnlySpan`1[ubyte],System.ArraySegment`1[ubyte]):this (Tier1)


libraries.crossgen2.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39442575 (overridden on cmd)
Total bytes of diff: 39441474 (overridden on cmd)
Total bytes of delta: -1101 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         161 : 103294.dasm (0.52 % of base)
         138 : 26272.dasm (4.35 % of base)
         137 : 171233.dasm (1.46 % of base)
         129 : 25842.dasm (9.61 % of base)
         127 : 25311.dasm (4.31 % of base)
         126 : 26276.dasm (4.57 % of base)
         120 : 25896.dasm (4.46 % of base)
          92 : 21587.dasm (7.91 % of base)
          90 : 25303.dasm (4.45 % of base)
          87 : 25309.dasm (9.08 % of base)
          87 : 25942.dasm (5.76 % of base)
          84 : 25894.dasm (4.78 % of base)
          80 : 25849.dasm (9.38 % of base)
          79 : 26266.dasm (3.83 % of base)
          76 : 26013.dasm (9.46 % of base)
          72 : 26270.dasm (5.78 % of base)
          69 : 25539.dasm (2.16 % of base)
          63 : 25526.dasm (4.98 % of base)
          61 : 25520.dasm (6.12 % of base)
          61 : 194478.dasm (2.30 % of base)

Top file improvements (bytes):
        -179 : 148343.dasm (-4.82 % of base)
        -159 : 36791.dasm (-8.26 % of base)
        -155 : 168647.dasm (-2.87 % of base)
        -122 : 131121.dasm (-3.11 % of base)
        -120 : 192153.dasm (-2.99 % of base)
        -116 : 62164.dasm (-4.19 % of base)
         -92 : 96830.dasm (-4.91 % of base)
         -87 : 35353.dasm (-3.93 % of base)
         -71 : 134361.dasm (-3.13 % of base)
         -70 : 110385.dasm (-1.15 % of base)
         -67 : 61854.dasm (-5.74 % of base)
         -67 : 154155.dasm (-3.24 % of base)
         -63 : 122491.dasm (-3.04 % of base)
         -63 : 116961.dasm (-3.19 % of base)
         -57 : 85202.dasm (-3.71 % of base)
         -56 : 192154.dasm (-7.50 % of base)
         -52 : 232000.dasm (-3.64 % of base)
         -46 : 64080.dasm (-3.97 % of base)
         -45 : 121131.dasm (-1.57 % of base)
         -44 : 209473.dasm (-6.04 % of base)

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

Top method regressions (bytes):
         161 (0.52 % of base) : 103294.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
         138 (4.35 % of base) : 26272.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (FullOpts)
         137 (1.46 % of base) : 171233.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)
         129 (9.61 % of base) : 25842.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
         127 (4.31 % of base) : 25311.dasm - System.IO.BufferedStream+<ReadFromUnderlyingStreamAsync>d__48:MoveNext():this (FullOpts)
         126 (4.57 % of base) : 26276.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (FullOpts)
         120 (4.46 % of base) : 25896.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (FullOpts)
          92 (7.91 % of base) : 21587.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          90 (4.45 % of base) : 25303.dasm - System.IO.BufferedStream+<CopyToAsyncCore>d__68:MoveNext():this (FullOpts)
          87 (9.08 % of base) : 25309.dasm - System.IO.BufferedStream+<FlushWriteAsync>d__40:MoveNext():this (FullOpts)
          87 (5.76 % of base) : 25942.dasm - System.IO.StreamWriter+<<FlushAsyncInternal>g__Core|76_0>d:MoveNext():this (FullOpts)
          84 (4.78 % of base) : 25894.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (FullOpts)
          80 (9.38 % of base) : 25849.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
          79 (3.83 % of base) : 26266.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<CopyToAsyncCore>d__57:MoveNext():this (FullOpts)
          76 (9.46 % of base) : 26013.dasm - System.IO.TextReader+<ReadBlockAsyncInternal>d__23:MoveNext():this (FullOpts)
          72 (5.78 % of base) : 26270.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<FlushAsyncInternal>d__55:MoveNext():this (FullOpts)
          69 (2.16 % of base) : 25539.dasm - System.IO.File+<WriteToFileAsync>d__110:MoveNext():this (FullOpts)
          63 (4.98 % of base) : 25526.dasm - System.IO.File+<InternalReadAllTextAsync>d__88:MoveNext():this (FullOpts)
          61 (2.30 % of base) : 194478.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
          61 (6.12 % of base) : 25520.dasm - System.IO.File+<InternalReadAllBytesAsync>d__92:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -179 (-4.82 % of base) : 148343.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
        -159 (-8.26 % of base) : 36791.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
        -155 (-2.87 % of base) : 168647.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
        -122 (-3.11 % of base) : 131121.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -120 (-2.99 % of base) : 192153.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
        -116 (-4.19 % of base) : 62164.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateTupleLiteralConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -92 (-4.91 % of base) : 96830.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindQueryOperatorCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.String,Microsoft.CodeAnalysis.VisualBasic.BoundMethodGroup,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -87 (-3.93 % of base) : 35353.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -71 (-3.13 % of base) : 134361.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:GenerateMembersElement(System.Object,System.Xml.Serialization.XmlMembersMapping):this (FullOpts)
         -70 (-1.15 % of base) : 110385.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
         -67 (-5.74 % of base) : 61854.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
         -67 (-3.24 % of base) : 154155.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,ubyte):int:this (FullOpts)
         -63 (-3.19 % of base) : 116961.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -63 (-3.04 % of base) : 122491.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol+ComClassData+SynthesizedComInterface:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbol,int]]):this (FullOpts)
         -57 (-3.71 % of base) : 85202.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:MergeEquivalentTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,short,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
         -56 (-7.50 % of base) : 192154.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -52 (-3.64 % of base) : 232000.dasm - System.IO.Ports.SerialStream:.ctor(System.String,int,int,int,int,int,int,int,ubyte,ubyte,ubyte,ubyte):this (FullOpts)
         -46 (-3.97 % of base) : 64080.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AnalyzeArguments(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.ArgumentAnalysisResult (FullOpts)
         -45 (-1.57 % of base) : 121131.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForRetargetingAssembly(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],int,byref,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol) (FullOpts)
         -44 (-6.04 % of base) : 209473.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)

Top method regressions (percentages):
         129 (9.61 % of base) : 25842.dasm - System.IO.Stream+<<CopyToAsync>g__Core|27_0>d:MoveNext():this (FullOpts)
          76 (9.46 % of base) : 26013.dasm - System.IO.TextReader+<ReadBlockAsyncInternal>d__23:MoveNext():this (FullOpts)
          80 (9.38 % of base) : 25849.dasm - System.IO.Stream+<ReadAtLeastAsyncCore>d__46:MoveNext():this (FullOpts)
          87 (9.08 % of base) : 25309.dasm - System.IO.BufferedStream+<FlushWriteAsync>d__40:MoveNext():this (FullOpts)
          21 (7.92 % of base) : 192478.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          92 (7.91 % of base) : 21587.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          31 (6.68 % of base) : 206347.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
          31 (6.68 % of base) : 187482.dasm - System.Configuration.ClientConfigurationHost:OpenExeConfiguration(System.Configuration.ConfigurationFileMap,ubyte,int,System.String):System.Configuration.Configuration (FullOpts)
           4 (6.45 % of base) : 68706.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
          61 (6.12 % of base) : 25520.dasm - System.IO.File+<InternalReadAllBytesAsync>d__92:MoveNext():this (FullOpts)
          13 (6.05 % of base) : 159103.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<MarkReachableBlocks>g__dispatchExceptionThroughCatches|36_4(Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion,int,byref) (FullOpts)
          13 (6.05 % of base) : 141447.dasm - Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraphBuilder:<MarkReachableBlocks>g__dispatchExceptionThroughCatches|36_4(Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion,int,byref) (FullOpts)
          48 (5.83 % of base) : 26145.dasm - System.IO.TextWriter+<<WriteLineAsync>g__WriteLineAsyncCore|66_0>d:MoveNext():this (FullOpts)
          72 (5.78 % of base) : 26270.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<FlushAsyncInternal>d__55:MoveNext():this (FullOpts)
          87 (5.76 % of base) : 25942.dasm - System.IO.StreamWriter+<<FlushAsyncInternal>g__Core|76_0>d:MoveNext():this (FullOpts)
          63 (4.98 % of base) : 25526.dasm - System.IO.File+<InternalReadAllTextAsync>d__88:MoveNext():this (FullOpts)
          84 (4.78 % of base) : 25894.dasm - System.IO.StreamReader+<ReadBufferAsync>d__72:MoveNext():this (FullOpts)
         126 (4.57 % of base) : 26276.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (FullOpts)
          16 (4.52 % of base) : 132059.dasm - System.Xml.Xsl.XsltOld.CallTemplateAction:CompileContent(System.Xml.Xsl.XsltOld.Compiler):this (FullOpts)
         120 (4.46 % of base) : 25896.dasm - System.IO.StreamReader+<ReadLineAsyncInternal>d__63:MoveNext():this (FullOpts)

Top method improvements (percentages):
        -159 (-8.26 % of base) : 36791.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -39 (-7.82 % of base) : 135159.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts)
         -56 (-7.50 % of base) : 192154.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -35 (-7.43 % of base) : 85827.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)
          -3 (-6.82 % of base) : 134109.dasm - System.Xml.Schema.Preprocessor:GetParentSchema(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchema (FullOpts)
         -32 (-6.63 % of base) : 24827.dasm - System.Reflection.Emit.RuntimeModuleBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -18 (-6.12 % of base) : 16939.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -44 (-6.04 % of base) : 209473.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -27 (-5.77 % of base) : 92365.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Cursor:MoveToNextSibling():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Cursor:this (FullOpts)
         -67 (-5.74 % of base) : 61854.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundConversionOperation(Microsoft.CodeAnalysis.CSharp.BoundConversion,ubyte):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
         -23 (-5.04 % of base) : 139256.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -23 (-5.04 % of base) : 156976.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -40 (-4.95 % of base) : 217036.dasm - System.Diagnostics.PerformanceCounterCategory:CheckValidCounterLayout(System.Diagnostics.CounterCreationDataCollection) (FullOpts)
         -92 (-4.91 % of base) : 96830.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindQueryOperatorCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.String,Microsoft.CodeAnalysis.VisualBasic.BoundMethodGroup,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -18 (-4.89 % of base) : 15338.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
        -179 (-4.82 % of base) : 148343.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[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):this (FullOpts)
         -16 (-4.61 % of base) : 186202.dasm - System.Runtime.CompilerServices.RuleCache`1[System.__Canon]:MoveRule(System.__Canon,int):this (FullOpts)
         -39 (-4.52 % of base) : 37262.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():ubyte:this (FullOpts)
         -21 (-4.43 % of base) : 157261.dasm - Microsoft.CodeAnalysis.GeneratorDriverCache:AddOrUpdateMostRecentlyUsed(System.String,Microsoft.CodeAnalysis.GeneratorDriver):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -21 (-4.43 % of base) : 139553.dasm - Microsoft.CodeAnalysis.GeneratorDriverCache:AddOrUpdateMostRecentlyUsed(System.String,Microsoft.CodeAnalysis.GeneratorDriver):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)


libraries.pmi.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

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

Detail diffs



Top file regressions (bytes):
         189 : 101483.dasm (4.76 % of base)
         170 : 105616.dasm (7.33 % of base)
         148 : 108721.dasm (0.42 % of base)
         144 : 228482.dasm (5.85 % of base)
         135 : 115882.dasm (1.50 % of base)
         122 : 293803.dasm (6.39 % of base)
         117 : 242762.dasm (6.15 % of base)
         115 : 132866.dasm (4.94 % of base)
         107 : 246994.dasm (4.47 % of base)
         104 : 147702.dasm (0.96 % of base)
          98 : 132844.dasm (3.67 % of base)
          93 : 135192.dasm (1.95 % of base)
          93 : 229368.dasm (1.14 % of base)
          91 : 167598.dasm (0.32 % of base)
          90 : 297207.dasm (6.59 % of base)
          88 : 36973.dasm (1.68 % of base)
          88 : 124542.dasm (1.43 % of base)
          86 : 154452.dasm (7.05 % of base)
          86 : 194301.dasm (7.06 % of base)
          85 : 297205.dasm (6.03 % of base)

Top file improvements (bytes):
        -165 : 153592.dasm (-4.55 % of base)
        -165 : 153599.dasm (-4.37 % of base)
        -164 : 167600.dasm (-3.63 % of base)
        -153 : 15750.dasm (-21.55 % of base)
        -140 : 123751.dasm (-1.75 % of base)
        -127 : 128655.dasm (-2.60 % of base)
        -108 : 60447.dasm (-2.85 % of base)
        -107 : 130247.dasm (-3.36 % of base)
        -107 : 299713.dasm (-3.04 % of base)
         -99 : 234517.dasm (-2.63 % of base)
         -96 : 128656.dasm (-2.56 % of base)
         -90 : 173459.dasm (-1.29 % of base)
         -89 : 298451.dasm (-2.68 % of base)
         -86 : 127599.dasm (-2.46 % of base)
         -85 : 235644.dasm (-4.20 % of base)
         -82 : 101604.dasm (-3.07 % of base)
         -82 : 128657.dasm (-1.73 % of base)
         -79 : 97773.dasm (-2.45 % of base)
         -78 : 99187.dasm (-4.27 % of base)
         -77 : 60995.dasm (-2.09 % of base)

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

Top method regressions (bytes):
         189 (4.76 % of base) : 101483.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindArgumentsAndNames(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentSyntax],byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
         170 (7.33 % of base) : 105616.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckForOverloadsErrors(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
         148 (0.42 % of base) : 108721.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
         144 (5.85 % of base) : 228482.dasm - System.Net.Http.MultipartContent+<SerializeToStreamAsyncCore>d__24:MoveNext():this (FullOpts)
         135 (1.50 % of base) : 115882.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
         122 (6.39 % of base) : 293803.dasm - System.Net.Quic.QuicConnection+<DisposeAsync>d__49:MoveNext():this (FullOpts)
         117 (6.15 % of base) : 242762.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         115 (4.94 % of base) : 132866.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteXmlDeclarationAsync>d__95:MoveNext():this (FullOpts)
         107 (4.47 % of base) : 246994.dasm - System.Text.Json.JsonDocument+<ReadToEndAsync>d__78:MoveNext():this (FullOpts)
         104 (0.96 % of base) : 147702.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)
          98 (3.67 % of base) : 132844.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteDocTypeAsync>d__98:MoveNext():this (FullOpts)
          93 (1.14 % of base) : 229368.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__89:MoveNext():this (FullOpts)
          93 (1.95 % of base) : 135192.dasm - System.Xml.XmlTextReaderImpl+<SkipDtdAsync>d__568:MoveNext():this (FullOpts)
          91 (0.32 % of base) : 167598.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          90 (6.59 % of base) : 297207.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__44:MoveNext():this (FullOpts)
          88 (1.43 % of base) : 124542.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArguments(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Binder,byref,Microsoft.CodeAnalysis.SyntaxNode,ubyte,byref) (FullOpts)
          88 (1.68 % of base) : 36973.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2+<StoreOutputItemsNonReorderedWithIterationAsync>d__48[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
          86 (7.05 % of base) : 154452.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          86 (7.06 % of base) : 194301.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          85 (6.03 % of base) : 297205.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__43:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -165 (-4.55 % of base) : 153592.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
        -165 (-4.37 % of base) : 153599.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[ubyte]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
        -164 (-3.63 % of base) : 167600.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
        -153 (-21.55 % of base) : 15750.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
        -140 (-1.75 % of base) : 123751.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateCallOrGet(Microsoft.CodeAnalysis.VisualBasic.BoundLateMemberAccess,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -127 (-2.60 % of base) : 128655.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForRetargetingAssembly(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],int,byref,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol) (FullOpts)
        -108 (-2.85 % of base) : 60447.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateTupleLiteralConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -107 (-3.36 % of base) : 130247.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol+ComClassData+SynthesizedComInterface:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbol,int]]):this (FullOpts)
        -107 (-3.04 % of base) : 299713.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
         -99 (-2.63 % of base) : 234517.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         -96 (-2.56 % of base) : 128656.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],int,byref,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol) (FullOpts)
         -90 (-1.29 % of base) : 173459.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
         -89 (-2.68 % of base) : 298451.dasm - System.Reflection.DispatchProxyGenerator+ProxyBuilder:AddMethodImpl(System.Reflection.MethodInfo,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -86 (-2.46 % of base) : 127599.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousTypeToStringMethodSymbol:GetBoundMethodBody(Microsoft.CodeAnalysis.VisualBasic.TypeCompilationState,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.VisualBasic.BoundBlock:this (FullOpts)
         -85 (-4.20 % of base) : 235644.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -82 (-3.07 % of base) : 101604.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindQueryOperatorCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,System.String,Microsoft.CodeAnalysis.VisualBasic.BoundMethodGroup,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -82 (-1.73 % of base) : 128657.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:SetupReferencesForSourceAssembly(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],int,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol][],byref,byref) (FullOpts)
         -79 (-2.45 % of base) : 97773.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
         -78 (-4.27 % of base) : 99187.dasm - System.Speech.Internal.Synthesis.ConvertTextFrag:ToSapi(System.Collections.Generic.List`1[System.Speech.Synthesis.TtsEngine.TextFragment],byref):ubyte (FullOpts)
         -77 (-2.09 % of base) : 60995.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeconstructSubpatterns(Microsoft.CodeAnalysis.CSharp.Syntax.PositionalPatternClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundDeconstructValuePlaceholder],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundPositionalSubpattern],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)

Top method regressions (percentages):
          65 (9.41 % of base) : 280381.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
          16 (8.21 % of base) : 242968.dasm - System.Security.Cryptography.ECDsa:SignData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,int):int:this (FullOpts)
          16 (7.37 % of base) : 292320.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
         170 (7.33 % of base) : 105616.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckForOverloadsErrors(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          18 (7.29 % of base) : 167947.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          12 (7.14 % of base) : 183022.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
          86 (7.06 % of base) : 194301.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          86 (7.05 % of base) : 154452.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          83 (6.96 % of base) : 228861.dasm - System.Net.Http.DecompressionHandler+DeflateDecompressedContent+ZLibOrDeflateStream+PeekFirstByteReadStream+<CopyToAsync>d__14:MoveNext():this (FullOpts)
          90 (6.59 % of base) : 297207.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__44:MoveNext():this (FullOpts)
          69 (6.52 % of base) : 120274.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlDeclarationSyntax:Update(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlDeclarationOptionSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlDeclarationOptionSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlDeclarationOptionSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlDeclarationSyntax:this (FullOpts)
          22 (6.41 % of base) : 140414.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileSingleKey(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.Key],System.Xml.Xsl.Qil.QilIterator,System.Xml.Xsl.Qil.QilIterator):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
         122 (6.39 % of base) : 293803.dasm - System.Net.Quic.QuicConnection+<DisposeAsync>d__49:MoveNext():this (FullOpts)
          20 (6.37 % of base) : 291873.dasm - System.Net.Mail.MailMessage:.ctor(System.String,System.String):this (FullOpts)
           5 (6.33 % of base) : 69524.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
          19 (6.31 % of base) : 275861.dasm - System.Diagnostics.ActivityLink:Equals(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
          11 (6.25 % of base) : 270820.dasm - Microsoft.CSharp.CSharpModifierAttributeConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)
          67 (6.15 % of base) : 228476.dasm - System.Net.Http.MultipartContent+ContentReadStream+<DisposeAsync>d__7:MoveNext():this (FullOpts)
         117 (6.15 % of base) : 242762.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
          23 (6.13 % of base) : 298801.dasm - System.Reflection.Emit.ModuleBuilderImpl:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)

Top method improvements (percentages):
        -153 (-21.55 % of base) : 15750.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -30 (-10.14 % of base) : 242831.dasm - System.Security.Cryptography.DSA:TrySignData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)
         -28 (-9.18 % of base) : 164436.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
         -28 (-9.18 % of base) : 204251.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
         -30 (-8.88 % of base) : 279754.dasm - System.Formats.Asn1.AsnDecoder:TryReadCharacterStringBytes(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,System.Formats.Asn1.Asn1Tag,byref,byref):ubyte (FullOpts)
         -51 (-8.03 % of base) : 132342.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts)
         -51 (-7.85 % of base) : 209164.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[ubyte]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[ubyte],System.Collections.Immutable.ImmutableList`1+Builder[ubyte],int,int,ubyte):this (FullOpts)
         -62 (-7.81 % of base) : 209151.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this (FullOpts)
         -35 (-7.31 % of base) : 88102.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (FullOpts)
         -21 (-7.29 % of base) : 266513.dasm - Microsoft.Extensions.Primitives.StringSegment:TrimEnd():Microsoft.Extensions.Primitives.StringSegment:this (FullOpts)
         -34 (-7.17 % of base) : 168700.dasm - Newtonsoft.Json.JsonReader:ReadAsDateTime():System.Nullable`1[System.DateTime]:this (FullOpts)
         -28 (-7.12 % of base) : 124516.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:ReportOverloadResolutionFailedOrLateBound(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],int,ubyte,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression]):Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+OverloadResolutionResult (FullOpts)
         -49 (-7.10 % of base) : 296644.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (FullOpts)
         -55 (-7.06 % of base) : 6439.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
         -52 (-6.88 % of base) : 59646.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts)
          -4 (-6.78 % of base) : 23333.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[double](double,double,System.String) (FullOpts)
         -24 (-6.67 % of base) : 275863.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
         -45 (-6.67 % of base) : 135598.dasm - System.Xml.XmlWellFormedWriter+AttributeValueCache:WriteEntityRef(System.String):this (FullOpts)
         -35 (-6.45 % of base) : 88100.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckTypeConstraints(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref):ubyte (FullOpts)
         -17 (-6.25 % of base) : 127320.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)


libraries_tests.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 279034285 (overridden on cmd)
Total bytes of diff: 278980371 (overridden on cmd)
Total bytes of delta: -53914 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         739 : 457288.dasm (5.87 % of base)
         709 : 80288.dasm (5.53 % of base)
         484 : 622691.dasm (4.06 % of base)
         404 : 353653.dasm (3.33 % of base)
         392 : 328314.dasm (2.86 % of base)
         334 : 179637.dasm (2.72 % of base)
         233 : 91920.dasm (3.18 % of base)
         214 : 413170.dasm (2.07 % of base)
         209 : 541114.dasm (5.48 % of base)
         175 : 657302.dasm (1.90 % of base)
         168 : 415893.dasm (3.62 % of base)
         160 : 91062.dasm (3.29 % of base)
         133 : 173094.dasm (2.43 % of base)
         130 : 590582.dasm (3.90 % of base)
         130 : 621320.dasm (2.45 % of base)
         127 : 443384.dasm (0.85 % of base)
         126 : 631015.dasm (1.75 % of base)
         126 : 52532.dasm (2.83 % of base)
         125 : 90230.dasm (5.12 % of base)
         124 : 173664.dasm (4.82 % of base)

Top file improvements (bytes):
       -1011 : 168852.dasm (-41.52 % of base)
       -1010 : 619561.dasm (-41.29 % of base)
        -914 : 628922.dasm (-7.57 % of base)
        -878 : 169381.dasm (-7.53 % of base)
        -608 : 57756.dasm (-3.90 % of base)
        -470 : 175183.dasm (-5.50 % of base)
        -427 : 57906.dasm (-2.44 % of base)
        -409 : 377761.dasm (-2.77 % of base)
        -364 : 65375.dasm (-3.44 % of base)
        -350 : 620052.dasm (-10.25 % of base)
        -324 : 310007.dasm (-3.56 % of base)
        -295 : 457319.dasm (-10.25 % of base)
        -294 : 109012.dasm (-10.26 % of base)
        -284 : 90689.dasm (-8.06 % of base)
        -282 : 196358.dasm (-9.88 % of base)
        -282 : 341866.dasm (-9.88 % of base)
        -282 : 384843.dasm (-9.88 % of base)
        -282 : 659555.dasm (-9.88 % of base)
        -282 : 543859.dasm (-9.88 % of base)
        -282 : 84006.dasm (-9.88 % of base)

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

Top method regressions (bytes):
         739 (5.87 % of base) : 457288.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         709 (5.53 % of base) : 80288.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         484 (4.06 % of base) : 622691.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
         404 (3.33 % of base) : 353653.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         392 (2.86 % of base) : 328314.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         334 (2.72 % of base) : 179637.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         233 (3.18 % of base) : 91920.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,int,int):ubyte (Tier1)
         214 (2.07 % of base) : 413170.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String):this (Tier1)
         209 (5.48 % of base) : 541114.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)
         175 (1.90 % of base) : 657302.dasm - Microsoft.CodeAnalysis.Formatting.AbstractSyntaxFormatting:GetFormattingResult(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Text.TextSpan],Microsoft.CodeAnalysis.Formatting.SyntaxFormattingOptions,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Formatting.Rules.AbstractFormattingRule],System.Threading.CancellationToken):Microsoft.CodeAnalysis.Formatting.IFormattingResult:this (Tier1)
         168 (3.62 % of base) : 415893.dasm - System.Xml.Serialization.XmlSerializationReader:ReadSerializable(System.Xml.Serialization.IXmlSerializable,ubyte):System.Xml.Serialization.IXmlSerializable:this (Tier1)
         160 (3.29 % of base) : 91062.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         133 (2.43 % of base) : 173094.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,int,ubyte,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,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax:this (Tier1)
         130 (2.45 % of base) : 621320.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLocal(Microsoft.CodeAnalysis.CSharp.BoundLocal):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         130 (3.90 % of base) : 590582.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:WriteEscapedJavaScriptString(System.IO.TextWriter,System.String,ushort,ubyte,ubyte[],int,Newtonsoft.Json.IArrayPool`1[ushort],byref) (Tier1)
         127 (0.85 % of base) : 443384.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (Tier1)
         126 (1.75 % of base) : 631015.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetInvocationEscapeWithUpdatedRules(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],uint,ubyte):uint:this (Tier1)
         126 (2.83 % of base) : 52532.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (Tier1)
         125 (5.12 % of base) : 90230.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (Tier1)
         124 (4.82 % of base) : 173664.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:Free():this (Tier1)

Top method improvements (bytes):
       -1011 (-41.52 % of base) : 168852.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
       -1010 (-41.29 % of base) : 619561.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
        -914 (-7.57 % of base) : 628922.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (Tier1)
        -878 (-7.53 % of base) : 169381.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (Tier1)
        -608 (-3.90 % of base) : 57756.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -470 (-5.50 % of base) : 175183.dasm - Microsoft.Cci.MetadataWriter:WriteInstructions(System.Reflection.Metadata.Blob,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):this (Tier1)
        -427 (-2.44 % of base) : 57906.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
        -409 (-2.77 % of base) : 377761.dasm - Systen.Net.Mail.Tests.LoopbackSmtpServer+<HandleConnectionAsync>d__62:MoveNext():this (Tier1)
        -364 (-3.44 % of base) : 65375.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructInvocationExpression(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
        -350 (-10.25 % of base) : 620052.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (Tier1)
        -324 (-3.56 % of base) : 310007.dasm - System.IO.Tests.VirtualDrive_SymbolicLinks:VirtualDrive_SymbolicLinks_WithIndirection(ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier1)
        -295 (-10.25 % of base) : 457319.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -294 (-10.26 % of base) : 109012.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -284 (-8.06 % of base) : 90689.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArgumentsAndParamsArray(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Nullable`1[System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Location]]],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (Tier1)
        -282 (-9.88 % of base) : 196358.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -282 (-9.88 % of base) : 341866.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -282 (-9.88 % of base) : 384843.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -282 (-9.88 % of base) : 659555.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -282 (-9.88 % of base) : 543859.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
        -282 (-9.88 % of base) : 84006.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)

Top method regressions (percentages):
          44 (12.05 % of base) : 125772.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 127936.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 258119.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 297539.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 327577.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 377149.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 380009.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 408859.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 457271.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          44 (12.05 % of base) : 664861.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          49 (11.40 % of base) : 202707.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.DefaultFrozenSet`1+GSW[System.__Canon]]:IsSubsetOfSetWithCompatibleComparer(System.Collections.Generic.IReadOnlySet`1[System.__Canon]):ubyte:this (Tier1-OSR)
          41 (10.49 % of base) : 301609.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          41 (10.49 % of base) : 388441.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          41 (10.49 % of base) : 667176.dasm - Xunit.Sdk.MessageBus:QueueMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier1)
          29 (10.07 % of base) : 432975.dasm - System.Xml.Schema.Preprocessor:GetIncludedSet(System.Xml.Schema.XmlSchema,System.Collections.ArrayList) (Tier1)
          30 (9.43 % of base) : 302041.dasm - System.IO.Compression.DeflateStream:ReadAsyncMemory(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          24 (9.27 % of base) : 486054.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
          24 (9.27 % of base) : 309971.dasm - System.IO.Path:Join(System.String,System.String,System.String):System.String (Tier1)
          29 (8.95 % of base) : 177430.dasm - System.Reflection.AssemblyNameParser:ParsePKT(System.String,ubyte):ubyte[]:this (Tier1)
          47 (8.80 % of base) : 354467.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (Tier1)

Top method improvements (percentages):
       -1011 (-41.52 % of base) : 168852.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
       -1010 (-41.29 % of base) : 619561.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ParseAdditionalSources(Microsoft.CodeAnalysis.ISourceGenerator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.GeneratedSyntaxTree]:this (Tier1)
        -153 (-21.55 % of base) : 288834.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (Tier0-FullOpts)
         -49 (-18.28 % of base) : 282825.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
         -45 (-15.36 % of base) : 280422.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
         -44 (-14.97 % of base) : 63085.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -44 (-14.97 % of base) : 90936.dasm - Roslyn.Utilities.UnicodeCharacterUtilities:IsValidIdentifier(System.String):ubyte (Tier1)
         -27 (-13.99 % of base) : 275870.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,System.Object):System.Object (FullOpts)
         -27 (-12.80 % of base) : 276008.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.types.type07b.type07b.Parent,int,System.Object):System.Object (FullOpts)
         -27 (-12.68 % of base) : 282809.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Collections.Generic.List`1[System.Collections.Generic.List`1[int]],System.Object):System.Object (FullOpts)
         -23 (-12.23 % of base) : 280404.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage13a.usage13a.Parent,System.Object):System.Object (FullOpts)
         -23 (-12.23 % of base) : 282408.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms09b.prms09b.Parent,System.Object):System.Object (FullOpts)
         -23 (-12.17 % of base) : 278877.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.declaration.decl05a.decl05a.Parent,System.Object):System.Object (FullOpts)
         -27 (-11.84 % of base) : 275505.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.dlgate.lambda14a.lambda14a.Foo,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.69 % of base) : 280234.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04d.usage04d.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.69 % of base) : 276339.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage10a.usage10a.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.54 % of base) : 273909.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.inheritance.inherit13c.inherit13c.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.49 % of base) : 274149.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.dlgate.evnt23c.evnt23c.Foo,System.Object,System.Object):System.Object (FullOpts)
         -33 (-11.42 % of base) : 274299.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,long):System.Object (FullOpts)
         -23 (-11.39 % of base) : 280713.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Nullable`1[ubyte],System.Object):System.Object (FullOpts)


librariestestsnotieredcompilation.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 133435993 (overridden on cmd)
Total bytes of diff: 133424286 (overridden on cmd)
Total bytes of delta: -11707 (-0.01 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         430 : 296053.dasm (11.76 % of base)
         246 : 308381.dasm (6.64 % of base)
         163 : 20333.dasm (3.85 % of base)
         149 : 309337.dasm (4.70 % of base)
         149 : 309365.dasm (4.70 % of base)
         149 : 309154.dasm (4.67 % of base)
         149 : 309215.dasm (4.74 % of base)
         149 : 43573.dasm (2.33 % of base)
         149 : 49224.dasm (2.33 % of base)
         132 : 135248.dasm (1.93 % of base)
         127 : 135577.dasm (4.57 % of base)
         119 : 308703.dasm (4.52 % of base)
         117 : 225534.dasm (6.45 % of base)
         115 : 179125.dasm (4.94 % of base)
         113 : 24129.dasm (4.54 % of base)
         112 : 164112.dasm (8.66 % of base)
         111 : 138502.dasm (6.02 % of base)
         107 : 275653.dasm (4.70 % of base)
         105 : 135137.dasm (5.30 % of base)
         104 : 25088.dasm (0.96 % of base)

Top file improvements (bytes):
        -206 : 299149.dasm (-3.94 % of base)
        -187 : 209511.dasm (-5.50 % of base)
        -164 : 5464.dasm (-3.40 % of base)
        -156 : 45187.dasm (-2.38 % of base)
        -153 : 121547.dasm (-21.55 % of base)
        -152 : 173933.dasm (-10.40 % of base)
        -148 : 173753.dasm (-10.20 % of base)
        -130 : 51044.dasm (-2.06 % of base)
        -107 : 21645.dasm (-3.10 % of base)
        -103 : 278388.dasm (-2.26 % of base)
        -103 : 257059.dasm (-2.26 % of base)
        -102 : 52721.dasm (-1.86 % of base)
        -102 : 47284.dasm (-1.87 % of base)
         -97 : 182636.dasm (-2.43 % of base)
         -92 : 291743.dasm (-2.42 % of base)
         -90 : 131180.dasm (-4.01 % of base)
         -90 : 286963.dasm (-2.72 % of base)
         -89 : 185553.dasm (-2.98 % of base)
         -85 : 204645.dasm (-4.20 % of base)
         -79 : 86793.dasm (-2.45 % of base)

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

Top method regressions (bytes):
         430 (11.76 % of base) : 296053.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         246 (6.64 % of base) : 308381.dasm - System.Threading.Channels.Tests.ChannelTestBase+<ReadAllAsync_DualConcurrentEnumeration_AllItemsEnumerated>d__72:MoveNext():this (FullOpts)
         163 (3.85 % of base) : 20333.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         149 (2.33 % of base) : 43573.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         149 (2.33 % of base) : 49224.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
         149 (4.67 % of base) : 309154.dasm - System.Threading.RateLimiting.Test.ConcurrencyLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         149 (4.74 % of base) : 309215.dasm - System.Threading.RateLimiting.Test.FixedWindowRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         149 (4.70 % of base) : 309337.dasm - System.Threading.RateLimiting.Test.SlidingWindowRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__8:MoveNext():this (FullOpts)
         149 (4.70 % of base) : 309365.dasm - System.Threading.RateLimiting.Test.TokenBucketRateLimiterTests+<DropsMultipleOldestWhenQueuingMoreThanLimit_NewestFirst>d__7:MoveNext():this (FullOpts)
         132 (1.93 % of base) : 135248.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWithAppend>d__17:MoveNext():this (FullOpts)
         127 (4.57 % of base) : 135577.dasm - System.IO.Pipelines.Tests.PipePoolTests+<AdvanceToEndReturnsAllButOneBlockIfWritingBeforeAdvance>d__1:MoveNext():this (FullOpts)
         119 (4.52 % of base) : 308703.dasm - System.Threading.RateLimiting.Test.TokenBucketRateLimiterTests+<ReplenishWorksWithTicksOverInt32Max>d__43:MoveNext():this (FullOpts)
         117 (6.45 % of base) : 225534.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
         115 (4.94 % of base) : 179125.dasm - System.Xml.XmlEncodedRawTextWriter+<WriteXmlDeclarationAsync>d__95:MoveNext():this (FullOpts)
         113 (4.54 % of base) : 24129.dasm - Microsoft.CodeAnalysis.FindSymbols.FindReferencesSearchEngine+<>c__DisplayClass20_0+<<ProcessDocumentAsync>g__ProcessDocumentAsync|0>d:MoveNext():this (FullOpts)
         112 (8.66 % of base) : 164112.dasm - System.Net.StreamFramer+<WriteMessageAsync>d__10`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
         111 (6.02 % of base) : 138502.dasm - System.IO.Tests.MemoryStreamTests+<DerivedMemoryStream_ReadWriteAsyncMemoryCalled_ReadWriteAsyncArrayUsed>d__8:MoveNext():this (FullOpts)
         107 (4.70 % of base) : 275653.dasm - System.Text.Json.JsonDocument+<ReadToEndAsync>d__78:MoveNext():this (FullOpts)
         105 (5.30 % of base) : 135137.dasm - System.IO.Pipelines.Tests.PipeLengthTests+<LengthIsBasedOnPreviouslyExamined>d__10:MoveNext():this (FullOpts)
         104 (0.96 % of base) : 25088.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)

Top method improvements (bytes):
        -206 (-3.94 % of base) : 299149.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30855_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -187 (-5.50 % of base) : 209511.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
        -164 (-3.40 % of base) : 5464.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)
        -156 (-2.38 % of base) : 45187.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -153 (-21.55 % of base) : 121547.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
        -152 (-10.40 % of base) : 173933.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterTypeWithArrayPropertyHavingChoice:Write3_Item(System.String,System.String,SerializationTypes.TypeWithArrayPropertyHavingChoice,ubyte,ubyte):this (FullOpts)
        -148 (-10.20 % of base) : 173753.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write2_wrapper(System.Object[]):this (FullOpts)
        -130 (-2.06 % of base) : 51044.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -107 (-3.10 % of base) : 21645.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
        -103 (-2.26 % of base) : 278388.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<<FloatingPointConstants_Pass>g__PerformFloatingPointSerialization|38_0>d:MoveNext():this (FullOpts)
        -103 (-2.26 % of base) : 257059.dasm - System.Text.Json.Serialization.Tests.NumberHandlingTests+<<FloatingPointConstants_Pass>g__PerformFloatingPointSerialization|38_0>d:MoveNext():this (FullOpts)
        -102 (-1.86 % of base) : 52721.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetFieldType(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -102 (-1.87 % of base) : 47284.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbolFromDeclarator:GetFieldType(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         -97 (-2.43 % of base) : 182636.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestInvalid(System.String[],System.String,System.String[]):int:this (FullOpts)
         -92 (-2.42 % of base) : 291743.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2805_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -90 (-4.01 % of base) : 131180.dasm - System.IO.Tests.Enumeration.ExampleTests:TestGetFilesWithExtensions():this (FullOpts)
         -90 (-2.72 % of base) : 286963.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex256_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -89 (-2.98 % of base) : 185553.dasm - System.Reflection.DispatchProxyGenerator+ProxyBuilder:AddMethodImpl(System.Reflection.MethodInfo,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         -85 (-4.20 % of base) : 204645.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
         -79 (-2.45 % of base) : 86793.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)

Top method regressions (percentages):
         430 (11.76 % of base) : 296053.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
          65 (9.41 % of base) : 123431.dasm - System.Formats.Tar.TarHelpers+<SkipBlockAlignmentPaddingAsync>d__29:MoveNext():this (FullOpts)
          67 (8.99 % of base) : 136000.dasm - System.IO.Pipelines.Tests.StreamPipeReaderTests+ThrowAfterZeroByteReadStream+<ReadAsync>d__4:MoveNext():this (FullOpts)
         112 (8.66 % of base) : 164112.dasm - System.Net.StreamFramer+<WriteMessageAsync>d__10`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          24 (8.36 % of base) : 160395.dasm - System.Net.Mime.HeaderCollection:Set(System.String,System.String):this (FullOpts)
          16 (7.37 % of base) : 160594.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
          16 (7.37 % of base) : 161173.dasm - System.Net.Mime.HeaderCollection:Add(System.String,System.String):this (FullOpts)
          18 (7.29 % of base) : 58618.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ArrayHasChanged():ubyte:this (FullOpts)
          15 (6.85 % of base) : 72127.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (FullOpts)
          15 (6.85 % of base) : 73340.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (FullOpts)
         246 (6.64 % of base) : 308381.dasm - System.Threading.Channels.Tests.ChannelTestBase+<ReadAllAsync_DualConcurrentEnumeration_AllItemsEnumerated>d__72:MoveNext():this (FullOpts)
          90 (6.60 % of base) : 318357.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__44:MoveNext():this (FullOpts)
         117 (6.45 % of base) : 225534.dasm - System.Security.Cryptography.CryptoStream+<FlushFinalBlockAsync>d__30:MoveNext():this (FullOpts)
          73 (6.39 % of base) : 317836.dasm - System.Web.HttpUtility+HttpQSCollection:ToString():System.String:this (FullOpts)
          20 (6.37 % of base) : 160355.dasm - System.Net.Mail.MailMessage:.ctor(System.String,System.String):this (FullOpts)
          85 (6.25 % of base) : 318359.dasm - System.Xml.Linq.XContainer+<ReadContentFromAsync>d__43:MoveNext():this (FullOpts)
          55 (6.19 % of base) : 252122.dasm - System.Text.Json.SourceGeneration.Tests.AsyncStreamSerializerWrapper+<DeserializeWrapper>d__6`1[System.Text.Json.Serialization.Tests.Point_2D_With_ExtData]:MoveNext():this (FullOpts)
          50 (6.14 % of base) : 270877.dasm - System.Text.Json.Serialization.Tests.JsonSerializerWrapper+AsyncStreamSerializerWrapper+<DeserializeWrapper>d__16`1[System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[int]]]:MoveNext():this (FullOpts)
          23 (6.13 % of base) : 188173.dasm - System.Reflection.Emit.ModuleBuilderImpl:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
         111 (6.02 % of base) : 138502.dasm - System.IO.Tests.MemoryStreamTests+<DerivedMemoryStream_ReadWriteAsyncMemoryCalled_ReadWriteAsyncArrayUsed>d__8:MoveNext():this (FullOpts)

Top method improvements (percentages):
        -153 (-21.55 % of base) : 121547.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -49 (-18.28 % of base) : 113684.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,System.Object):System.Object (FullOpts)
         -45 (-15.36 % of base) : 119936.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.param001.param001.MyClass,System.Object,System.Object) (FullOpts)
         -27 (-13.99 % of base) : 118800.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,System.Object):System.Object (FullOpts)
         -23 (-13.45 % of base) : 108926.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object):System.Object (FullOpts)
         -27 (-12.68 % of base) : 113673.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Collections.Generic.List`1[System.Collections.Generic.List`1[int]],System.Object):System.Object (FullOpts)
         -23 (-12.23 % of base) : 116380.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage13d.usage13d.Parent,System.Object):System.Object (FullOpts)
         -23 (-12.23 % of base) : 116219.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.prms.prms09b.prms09b.Parent,System.Object):System.Object (FullOpts)
         -23 (-12.17 % of base) : 118199.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.declaration.decl05a.decl05a.Parent,System.Object):System.Object (FullOpts)
         -28 (-11.91 % of base) : 107273.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.inheritance.inherit13a.inherit13a.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.84 % of base) : 119137.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.dlgate.lambda14a.lambda14a.Foo,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.69 % of base) : 111523.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04d.usage04d.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.69 % of base) : 111939.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage10a.usage10a.Parent,System.Object,System.Object):System.Object (FullOpts)
         -27 (-11.49 % of base) : 113805.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.dlgate.evnt23c.evnt23c.Foo,System.Object,System.Object):System.Object (FullOpts)
         -33 (-11.42 % of base) : 108599.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,long):System.Object (FullOpts)
         -23 (-11.39 % of base) : 111023.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Nullable`1[ubyte],System.Object):System.Object (FullOpts)
         -27 (-11.25 % of base) : 112951.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda003.lambda003.Test+D1,System.Object):System.Object (FullOpts)
         -38 (-11.24 % of base) : 109217.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,int,int,int,System.Object):ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.formalParameter.cnstrctor007.cnstrctor007.MyType1 (FullOpts)
         -24 (-11.21 % of base) : 111606.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.String,System.Object):System.Object (FullOpts)
         -23 (-11.17 % of base) : 113366.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.dlgate.lambda13a.lambda13a.Foo,System.Object):System.Object (FullOpts)


realworld.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 14170685 (overridden on cmd)
Total bytes of diff: 14167370 (overridden on cmd)
Total bytes of delta: -3315 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         174 : 18092.dasm (4.02 % of base)
          93 : 14027.dasm (8.06 % of base)
          78 : 19652.dasm (1.51 % of base)
          74 : 11632.dasm (4.81 % of base)
          62 : 14791.dasm (3.93 % of base)
          57 : 19693.dasm (1.91 % of base)
          56 : 16238.dasm (1.27 % of base)
          55 : 18873.dasm (0.19 % of base)
          52 : 3238.dasm (7.08 % of base)
          47 : 17895.dasm (1.07 % of base)
          46 : 25280.dasm (1.66 % of base)
          42 : 34303.dasm (7.50 % of base)
          35 : 17327.dasm (0.89 % of base)
          35 : 29561.dasm (3.60 % of base)
          33 : 21671.dasm (1.86 % of base)
          31 : 17973.dasm (0.40 % of base)
          29 : 25527.dasm (2.08 % of base)
          28 : 16788.dasm (0.82 % of base)
          27 : 35496.dasm (1.82 % of base)
          24 : 16630.dasm (2.68 % of base)

Top file improvements (bytes):
        -459 : 8845.dasm (-3.87 % of base)
        -246 : 11821.dasm (-6.06 % of base)
        -155 : 17432.dasm (-1.93 % of base)
        -153 : 2333.dasm (-20.08 % of base)
        -125 : 16648.dasm (-1.47 % of base)
        -108 : 28405.dasm (-2.93 % of base)
         -80 : 23724.dasm (-1.32 % of base)
         -76 : 16897.dasm (-2.66 % of base)
         -68 : 21668.dasm (-2.62 % of base)
         -62 : 27732.dasm (-7.81 % of base)
         -60 : 1410.dasm (-0.33 % of base)
         -52 : 7732.dasm (-2.44 % of base)
         -51 : 18645.dasm (-1.39 % of base)
         -50 : 27528.dasm (-0.61 % of base)
         -44 : 26993.dasm (-2.55 % of base)
         -44 : 7295.dasm (-2.26 % of base)
         -44 : 24980.dasm (-2.26 % of base)
         -43 : 16481.dasm (-0.81 % of base)
         -43 : 35491.dasm (-3.68 % of base)
         -42 : 29506.dasm (-4.18 % of base)

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

Top method regressions (bytes):
         174 (4.02 % of base) : 18092.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          93 (8.06 % of base) : 14027.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          78 (1.51 % of base) : 19652.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetKeywordKind(System.String):ushort (FullOpts)
          74 (4.81 % of base) : 11632.dasm - FSharp.Compiler.LexFilter:|TyparsCloseOp|_|$cont@519(Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[ubyte,FSharp.Compiler.Parser+token][],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Parser+token]]] (FullOpts)
          62 (3.93 % of base) : 14791.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          57 (1.91 % of base) : 19693.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:GetContextualKeywordKind(System.String):ushort (FullOpts)
          56 (1.27 % of base) : 16238.dasm - Microsoft.ML.Transforms.ValueToKeyMappingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Runtime.IChannel,Microsoft.ML.Transforms.ValueToKeyMappingTransformer+ColInfo[],Microsoft.ML.IDataView,Microsoft.ML.Transforms.ValueToKeyMappingEstimator+ColumnOptionsBase[],Microsoft.ML.IDataView,ubyte):Microsoft.ML.Transforms.ValueToKeyMappingTransformer+TermMap[] (FullOpts)
          55 (0.19 % of base) : 18873.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          52 (7.08 % of base) : 3238.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:GetPathToDotNetFrameworkImlpementationAssemblies@57(System.String):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          47 (1.07 % of base) : 17895.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (FullOpts)
          46 (1.66 % of base) : 25280.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
          42 (7.50 % of base) : 34303.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)
          35 (3.60 % of base) : 29561.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          35 (0.89 % of base) : 17327.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyWithCore[float,float](byref,byref,Microsoft.ML.Internal.Utilities.VBufferUtils+PairManipulator`2[float,float],ubyte) (FullOpts)
          33 (1.86 % of base) : 21671.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:InitializeNewSymbols(System.Collections.Generic.List`1[int],Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]],Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.CSharp.Symbols.MissingAssemblySymbol]) (FullOpts)
          31 (0.40 % of base) : 17973.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__89:MoveNext():this (FullOpts)
          29 (2.08 % of base) : 25527.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetParamArrayArgument(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],System.Collections.Immutable.ImmutableArray`1[System.String],int,int,Microsoft.CodeAnalysis.CSharp.Conversions,byref):Microsoft.CodeAnalysis.TypedConstant (FullOpts)
          28 (0.82 % of base) : 16788.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
          27 (1.82 % of base) : 35496.dasm - System.Management.Automation.CommandDiscovery:LookupCommandInfo(System.String,int,int,int,System.Management.Automation.ExecutionContext):System.Management.Automation.CommandInfo (FullOpts)
          24 (2.68 % of base) : 16630.dasm - Microsoft.ML.Data.RoleMappedSchema:.ctor(Microsoft.ML.DataViewSchema,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.IReadOnlyList`1[Microsoft.ML.DataViewSchema+Column]]):this (FullOpts)

Top method improvements (bytes):
        -459 (-3.87 % of base) : 8845.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
        -246 (-6.06 % of base) : 11821.dasm - FSharp.Compiler.Parser:tryMkSynMemberDefnMember@1863(ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],FSharp.Compiler.Text.Range,FSharp.Compiler.Syntax.SynPat,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMemberKind,FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],FSharp.Compiler.Text.Range,FSharp.Compiler.Xml.PreXmlDoc,Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.PropertyKeyword],ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],System.Tuple`2[FSharp.Compiler.Syntax.SynPat,FSharp.Compiler.Text.Range],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range],FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberDefn] (FullOpts)
        -155 (-1.93 % of base) : 17432.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
        -153 (-20.08 % of base) : 2333.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
        -125 (-1.47 % of base) : 16648.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainCore(Microsoft.ML.Runtime.IChannel,Microsoft.ML.Data.RoleMappedData,Microsoft.ML.Trainers.LinearModelParameters,int):System.__Canon:this (FullOpts)
        -108 (-2.93 % of base) : 28405.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateTupleLiteralConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -80 (-1.32 % of base) : 23724.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
         -76 (-2.66 % of base) : 16897.dasm - Microsoft.ML.Data.SchemaDefinition:Create(System.Type,int):Microsoft.ML.Data.SchemaDefinition (FullOpts)
         -68 (-2.62 % of base) : 21668.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForSourceAssembly(Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],int,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref) (FullOpts)
         -62 (-7.81 % of base) : 27732.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableList`1+Builder[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],int,int,ubyte):this (FullOpts)
         -60 (-0.33 % of base) : 1410.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         -52 (-2.44 % of base) : 7732.dasm - FSharp.Compiler.NameResolution:CheckForTypeLegitimacyAndMultipleGenericTypeAmbiguities(Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]],FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.Text.Range):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]] (FullOpts)
         -51 (-1.39 % of base) : 18645.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingTransformer:GetVocabularyDictionary(Microsoft.ML.Runtime.IHostEnvironment):Microsoft.ML.Transforms.Text.WordEmbeddingTransformer+Model:this (FullOpts)
         -50 (-0.61 % of base) : 27528.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindInterpolatedString(Microsoft.CodeAnalysis.CSharp.Syntax.InterpolatedStringExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -44 (-2.26 % of base) : 7295.dasm - FSharp.Compiler.ParseAndCheckInputs:ProcessMetaCommand@572[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],FSharp.Compiler.CompilerConfig+TcConfigBuilder,System.String,ubyte,System.__Canon,FSharp.Compiler.Syntax.ParsedHashDirective):System.__Canon (FullOpts)
         -44 (-2.55 % of base) : 26993.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:ComputeBoundDecisionDagNodes(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DecisionDag,Microsoft.CodeAnalysis.CSharp.BoundLeafDecisionDagNode):this (FullOpts)
         -44 (-2.26 % of base) : 24980.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEEventSymbol:GetAssociatedField(Roslyn.Utilities.MultiDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:this (FullOpts)
         -43 (-0.81 % of base) : 16481.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)
         -43 (-3.68 % of base) : 35491.dasm - System.Management.Automation.PipelineOps:InvokePipeline(System.Object,ubyte,System.Management.Automation.CommandParameterInternal[][],System.Management.Automation.Language.CommandBaseAst[],System.Management.Automation.CommandRedirection[][],System.Management.Automation.Language.FunctionContext) (FullOpts)
         -42 (-4.18 % of base) : 29506.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)

Top method regressions (percentages):
          93 (8.06 % of base) : 14027.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          42 (7.50 % of base) : 34303.dasm - System.Management.Automation.Provider.NavigationCmdletProvider:MakePath(System.String,System.String,ubyte):System.String:this (FullOpts)
          52 (7.08 % of base) : 3238.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:GetPathToDotNetFrameworkImlpementationAssemblies@57(System.String):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          74 (4.81 % of base) : 11632.dasm - FSharp.Compiler.LexFilter:|TyparsCloseOp|_|$cont@519(Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Collections.FSharpList`1[ushort],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[ubyte,FSharp.Compiler.Parser+token][],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Parser+token]]] (FullOpts)
         174 (4.02 % of base) : 18092.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          62 (3.93 % of base) : 14791.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
           4 (3.77 % of base) : 21036.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          35 (3.60 % of base) : 29561.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          19 (3.56 % of base) : 28227.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:CheckForDeconstructionAssignmentToSelf(Microsoft.CodeAnalysis.CSharp.BoundTupleExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
           6 (3.33 % of base) : 27799.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+AndSequence:ComputeSelectedTest():Microsoft.CodeAnalysis.CSharp.BoundDagTest:this (FullOpts)
           2 (3.28 % of base) : 28904.dasm - System.Linq.Enumerable+RangeIterator:MoveNext():ubyte:this (FullOpts)
          23 (3.22 % of base) : 35664.dasm - System.Management.Automation.AnalysisCacheData+<<QueueSerialization>b__11_0>d:MoveNext():this (FullOpts)
          15 (2.99 % of base) : 33431.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
           7 (2.88 % of base) : 2414.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           6 (2.78 % of base) : 24498.dasm - Microsoft.CodeAnalysis.AttributeData:<IsTargetEarlyAttribute>g__namespaceMatch|25_0(Microsoft.CodeAnalysis.Symbols.INamespaceSymbolInternal,System.String,int):ubyte (FullOpts)
          24 (2.68 % of base) : 16630.dasm - Microsoft.ML.Data.RoleMappedSchema:.ctor(Microsoft.ML.DataViewSchema,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.IReadOnlyList`1[Microsoft.ML.DataViewSchema+Column]]):this (FullOpts)
           3 (2.56 % of base) : 32400.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEmbeddedAttributeSymbolBase:GetMembers(System.String):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          13 (2.55 % of base) : 74.dasm - System.RuntimeTypeHandle:CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType):System.Object (FullOpts)
          20 (2.49 % of base) : 5022.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          12 (2.46 % of base) : 28976.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NonNegativeIntValueSetFactory:Related(int,int):Microsoft.CodeAnalysis.CSharp.IValueSet`1[int]:this (FullOpts)

Top method improvements (percentages):
        -153 (-20.08 % of base) : 2333.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericEqualityObj(ubyte,System.Collections.IEqualityComparer,System.Object,System.Object):ubyte (FullOpts)
         -62 (-7.81 % of base) : 27732.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableList`1+Builder[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],int,int,ubyte):this (FullOpts)
         -27 (-6.91 % of base) : 15802.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor:.ctor(System.Numerics.Matrix3x2,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler,SixLabors.ImageSharp.Size):this (FullOpts)
         -14 (-6.64 % of base) : 33246.dasm - System.Management.Automation.CmdletInfo:SplitCmdletName(System.String,byref,byref):ubyte (FullOpts)
         -18 (-6.21 % of base) : 634.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
        -246 (-6.06 % of base) : 11821.dasm - FSharp.Compiler.Parser:tryMkSynMemberDefnMember@1863(ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],FSharp.Compiler.Text.Range,FSharp.Compiler.Syntax.SynPat,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMemberKind,FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],FSharp.Compiler.Text.Range,FSharp.Compiler.Xml.PreXmlDoc,Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpRef`1[ubyte],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.PropertyKeyword],ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],System.Tuple`2[FSharp.Compiler.Syntax.SynPat,FSharp.Compiler.Text.Range],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynReturnInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range],FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberDefn] (FullOpts)
         -12 (-5.66 % of base) : 5231.dasm - FSharp.Compiler.Xml.XmlDocumentationInfo:TryCreateFromFile(System.String):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Xml.XmlDocumentationInfo] (FullOpts)
         -20 (-5.45 % of base) : 33023.dasm - System.Runtime.CompilerServices.RuleCache`1[System.__Canon]:MoveRule(System.__Canon,int):this (FullOpts)
         -16 (-5.35 % of base) : 636.dasm - System.String:Concat(System.String,System.String,System.String):System.String (FullOpts)
         -23 (-5.23 % of base) : 21660.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -18 (-4.48 % of base) : 24740.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -42 (-4.18 % of base) : 29506.dasm - Microsoft.CodeAnalysis.Compilation:ConstructModuleSerializationProperties(Microsoft.CodeAnalysis.Emit.EmitOptions,System.String,System.Guid):Microsoft.Cci.ModulePropertiesForSerialization:this (FullOpts)
         -10 (-3.92 % of base) : 12727.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks+CheckEntityDefn@2342-2:Invoke(FSharp.Compiler.Infos+ParamData):ubyte:this (FullOpts)
         -18 (-3.91 % of base) : 23858.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
        -459 (-3.87 % of base) : 8845.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
         -43 (-3.68 % of base) : 35491.dasm - System.Management.Automation.PipelineOps:InvokePipeline(System.Object,ubyte,System.Management.Automation.CommandParameterInternal[][],System.Management.Automation.Language.CommandBaseAst[],System.Management.Automation.CommandRedirection[][],System.Management.Automation.Language.FunctionContext) (FullOpts)
         -18 (-3.61 % of base) : 18088.dasm - System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this (FullOpts)
          -3 (-3.57 % of base) : 33320.dasm - System.Management.Automation.DisplayEntry:.ctor(System.String,int):this (FullOpts)
         -18 (-3.53 % of base) : 26164.dasm - Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
         -14 (-3.43 % of base) : 539.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)


smoke_tests.nativeaot.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 5091660 (overridden on cmd)
Total bytes of diff: 5091771 (overridden on cmd)
Total bytes of delta: 111 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         113 : 18365.dasm (9.96 % of base)
         113 : 15557.dasm (9.96 % of base)
         113 : 20985.dasm (9.96 % of base)
         112 : 3363.dasm (9.72 % of base)
         112 : 374.dasm (9.78 % of base)
          43 : 8935.dasm (4.95 % of base)
          28 : 8652.dasm (2.46 % of base)
          28 : 14360.dasm (2.46 % of base)
          13 : 15735.dasm (0.75 % of base)
          13 : 21060.dasm (0.75 % of base)
          13 : 14505.dasm (0.77 % of base)
          13 : 31483.dasm (2.36 % of base)
          13 : 31583.dasm (2.36 % of base)
          13 : 3493.dasm (0.75 % of base)
          13 : 513.dasm (0.75 % of base)
          13 : 18466.dasm (0.75 % of base)
          12 : 17195.dasm (0.67 % of base)
          12 : 2048.dasm (0.68 % of base)
          12 : 22456.dasm (0.67 % of base)
          12 : 5271.dasm (0.68 % of base)

Top file improvements (bytes):
         -33 : 12933.dasm (-5.47 % of base)
         -33 : 4731.dasm (-5.47 % of base)
         -27 : 16949.dasm (-2.90 % of base)
         -27 : 19605.dasm (-2.90 % of base)
         -27 : 5794.dasm (-2.93 % of base)
         -27 : 1824.dasm (-2.93 % of base)
         -27 : 22234.dasm (-2.90 % of base)
         -21 : 22560.dasm (-3.32 % of base)
         -21 : 6679.dasm (-3.37 % of base)
         -21 : 19858.dasm (-3.32 % of base)
         -21 : 2150.dasm (-3.37 % of base)
         -21 : 17253.dasm (-3.32 % of base)
         -18 : 25508.dasm (-6.36 % of base)
         -18 : 30036.dasm (-2.74 % of base)
         -18 : 4523.dasm (-3.25 % of base)
         -18 : 16329.dasm (-3.25 % of base)
         -18 : 19049.dasm (-3.25 % of base)
         -18 : 21638.dasm (-3.25 % of base)
         -18 : 1156.dasm (-3.25 % of base)
         -16 : 16421.dasm (-2.59 % of base)

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

Top method regressions (bytes):
         113 (9.96 % of base) : 18365.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         113 (9.96 % of base) : 15557.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         113 (9.96 % of base) : 20985.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         112 (9.72 % of base) : 3363.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         112 (9.78 % of base) : 374.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          43 (4.95 % of base) : 8935.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)
          28 (2.46 % of base) : 8652.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          28 (2.46 % of base) : 14360.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          13 (2.36 % of base) : 31483.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)
          13 (2.36 % of base) : 31583.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)
          13 (0.75 % of base) : 15735.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          13 (0.75 % of base) : 21060.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          13 (0.77 % of base) : 14505.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          13 (0.75 % of base) : 3493.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          13 (0.75 % of base) : 513.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          13 (0.75 % of base) : 18466.dasm - System.Text.UTF32Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
          12 (0.67 % of base) : 17195.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.68 % of base) : 2048.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.67 % of base) : 22456.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)
          12 (0.68 % of base) : 5271.dasm - System.Array:CopyImplPrimitiveTypeWithWidening(System.Array,int,System.Array,int,int,ubyte) (FullOpts)

Top method improvements (bytes):
         -33 (-5.47 % of base) : 12933.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -33 (-5.47 % of base) : 4731.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -27 (-2.90 % of base) : 16949.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -27 (-2.90 % of base) : 19605.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -27 (-2.93 % of base) : 5794.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -27 (-2.93 % of base) : 1824.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -27 (-2.90 % of base) : 22234.dasm - System.Runtime.TypeCast:TypeParametersAreCompatible(int,Internal.Runtime.MethodTableList,Internal.Runtime.MethodTableList,ulong,ubyte,ulong):ubyte (FullOpts)
         -21 (-3.32 % of base) : 22560.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.37 % of base) : 6679.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.32 % of base) : 19858.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.37 % of base) : 2150.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.32 % of base) : 17253.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -18 (-6.36 % of base) : 25508.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -18 (-3.25 % of base) : 4523.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 16329.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 19049.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 21638.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 1156.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-2.74 % of base) : 30036.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
         -16 (-2.59 % of base) : 16421.dasm - System.Runtime.CompilerServices.ClassConstructorRunner+Cctor:GetCctor(ulong):System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle (FullOpts)

Top method regressions (percentages):
         113 (9.96 % of base) : 18365.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         113 (9.96 % of base) : 15557.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         113 (9.96 % of base) : 20985.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         112 (9.78 % of base) : 374.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         112 (9.72 % of base) : 3363.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
          43 (4.95 % of base) : 8935.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)
           3 (4.35 % of base) : 5781.dasm - System.Diagnostics.ProcessManager:IsRemoteMachine(System.String):ubyte (FullOpts)
           7 (2.92 % of base) : 11913.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           7 (2.92 % of base) : 6704.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
          10 (2.89 % of base) : 1481.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          10 (2.89 % of base) : 16573.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          10 (2.89 % of base) : 19221.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          10 (2.89 % of base) : 4889.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          10 (2.89 % of base) : 21977.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           2 (2.74 % of base) : 13983.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
           2 (2.50 % of base) : 8608.dasm - System.Threading.DeferredDisposableLifetime`1[System.__Canon]:Dispose(System.__Canon):this (FullOpts)
          28 (2.46 % of base) : 8652.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          28 (2.46 % of base) : 14360.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (FullOpts)
          13 (2.36 % of base) : 31483.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)
          13 (2.36 % of base) : 31583.dasm - ReflectionTest+TestInstanceFields:Run() (FullOpts)

Top method improvements (percentages):
         -18 (-6.36 % of base) : 25508.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)
         -33 (-5.47 % of base) : 12933.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -33 (-5.47 % of base) : 4731.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:GetRuntimeMethodHandleForComponents(System.RuntimeTypeHandle,long,Internal.Runtime.CompilerServices.RuntimeSignature,System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (FullOpts)
         -21 (-3.37 % of base) : 6679.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.37 % of base) : 2150.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.32 % of base) : 22560.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.32 % of base) : 19858.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -21 (-3.32 % of base) : 17253.dasm - System.Runtime.CompilerServices.GenericCache`2[System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value]:TrySet(System.Runtime.TypeLoaderExports+Key,System.Runtime.TypeLoaderExports+Value):this (FullOpts)
         -18 (-3.25 % of base) : 4523.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 1156.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 16329.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 19049.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
         -18 (-3.25 % of base) : 21638.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
          -8 (-3.15 % of base) : 31923.dasm - Generics+TestDelegateVirtualMethod:Generic[System.__Canon]() (FullOpts)
          -8 (-3.15 % of base) : 9928.dasm - Generics+TestDelegateVirtualMethod:Generic[System.__Canon]() (FullOpts)
         -10 (-2.99 % of base) : 19669.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -10 (-2.99 % of base) : 4866.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -10 (-2.99 % of base) : 1358.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -10 (-2.99 % of base) : 22338.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)
         -10 (-2.99 % of base) : 17015.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (FullOpts)