Assembly Diffs

osx arm64

Diffs are based on 2,229,935 contexts (927,360 MinOpts, 1,302,575 FullOpts).

MISSED contexts: 6,082 (0.27%)

Overall (-3,444 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,381,132 +836
benchmarks.run_tiered.osx.arm64.checked.mch 15,560,996 -612
coreclr_tests.run.osx.arm64.checked.mch 483,504,168 +60
libraries.crossgen2.osx.arm64.checked.mch 55,672,992 -236
libraries.pmi.osx.arm64.checked.mch 78,467,696 +256
libraries_tests.run.osx.arm64.Release.mch 311,685,436 -3,840
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 161,180,744 +36
realworld.run.osx.arm64.checked.mch 14,668,164 +56

FullOpts (-3,444 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 17,936,932 +836
benchmarks.run_tiered.osx.arm64.checked.mch 4,048,448 -612
coreclr_tests.run.osx.arm64.checked.mch 152,037,760 +60
libraries.crossgen2.osx.arm64.checked.mch 55,671,364 -236
libraries.pmi.osx.arm64.checked.mch 78,346,568 +256
libraries_tests.run.osx.arm64.Release.mch 109,946,536 -3,840
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 148,043,212 +36
realworld.run.osx.arm64.checked.mch 14,099,756 +56

Example diffs

benchmarks.run_pgo.osx.arm64.checked.mch

-16 (-7.02%) : 21685.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 (-6.90%) : 21683.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@ ; ; V00 arg0 [V00,T03] ( 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,198.99) int -> x8 ; V04 loc2 [V04,T12] ( 2,198.99) int -> x13
-; V05 loc3 [V05,T20] ( 8, 0.54) int -> x4
+; V05 loc3 [V05,T20] ( 5, 0.54) int -> x4
; V06 loc4 [V06,T16] ( 6,101.03) int -> x2 ; V07 loc5 [V07,T05] ( 6,398.99) int -> x1 ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" @@ -96,13 +96,12 @@ G_M3571_IG07: ; bbWeight=99.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b G_M3571_IG08: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w2, w2, #1 cmp w2, w3
- bgt G_M3571_IG11 - b G_M3571_IG04 - ;; size=16 bbWeight=0.50 PerfScore 1.51
+ ble G_M3571_IG04 + ;; size=12 bbWeight=0.50 PerfScore 1.01
G_M3571_IG09: ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w4, w4, #1 cmp w4, w3
- bgt G_M3571_IG12
+ bgt G_M3571_IG11
b G_M3571_IG03 ;; size=16 bbWeight=0.01 PerfScore 0.03 G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -110,20 +109,13 @@ G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M3571_IG11: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - add w4, w4, #1 - cmp w4, w3 - ble G_M3571_IG03 - ;; size=12 bbWeight=0 PerfScore 0.00 -G_M3571_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x0]
+G_M3571_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 232, prolog size 24, PerfScore 3200.23, instruction count 58, allocated bytes for code 232 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
+; Total bytes of code 216, prolog size 24, PerfScore 3199.73, instruction count 54, allocated bytes for code 216 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
; ============================================================ Unwind Info: @@ -134,7 +126,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-5.17%) : 68317.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)

@@ -15,7 +15,7 @@ ;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T09] ( 2, 4 ) ref -> x3 class-hnd single-def "impAppendStmt" <int[]>
-; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x19 "Inline return value spill temp"
+; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x9 "Inline return value spill temp"
; V07 tmp3 [V07,T08] ( 4, 4.03) byref -> x3 single-def "Inline stloc first use temp" ; V08 tmp4 [V08,T00] ( 3, 6.03) long -> x4 "Inlining Arg" ; V09 tmp5 [V09,T07] ( 4, 4.04) int -> x5 "Inline stloc first use temp" @@ -23,17 +23,16 @@ ; V11 tmp7 [V11,T04] ( 5, 5.03) byref -> x7 "Inline stloc first use temp" ; V12 tmp8 [V12,T06] ( 5, 4.05) int -> x8 "Inline stloc first use temp" ; V13 tmp9 [V13,T11] ( 2, 2.03) long -> x9 "Inline stloc first use temp"
-; V14 tmp10 [V14,T10] ( 3, 2.99) long -> x19 "Inline stloc first use temp"
+; V14 tmp10 [V14,T10] ( 3, 2.99) long -> x9 "Inline stloc first use temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M34926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M34926_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref ; gcrRegs +[x2] ; byrRegs +[x0] @@ -71,8 +70,8 @@ G_M34926_IG03: ; bbWeight=1.01, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x ;; size=36 bbWeight=1.01 PerfScore 11.66 G_M34926_IG04: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0089 {x0 x3 x7}, byref, isz ldr x9, [x7, #0x10]
- eor x19, x9, x1 - cmp x19, #1
+ eor x9, x9, x1 + cmp x9, #1
bhi G_M34926_IG08 ;; size=16 bbWeight=0.99 PerfScore 4.97 G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x7}, byref, isz @@ -84,7 +83,7 @@ G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x ;; size=16 bbWeight=0.99 PerfScore 14.40 G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz ; byrRegs -[x7]
- cmp w19, #1
+ cmp w9, #1
bne G_M34926_IG10 mov x1, x2 ; gcrRegs +[x1] @@ -94,10 +93,9 @@ G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 3.00 G_M34926_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M34926_IG08: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, gcvars, byref, isz ; gcrRegs +[x2] ; byrRegs +[x0 x3] @@ -106,8 +104,8 @@ G_M34926_IG08: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=000 G_M34926_IG09: ; bbWeight=1.01, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, byref, isz add w6, w6, #1 add w5, w5, w6
- ldr w7, [x3, #0x04] - and w5, w5, w7
+ ldr w9, [x3, #0x04] + and w5, w5, w9
cmp w6, #8 blt G_M34926_IG03 ;; size=24 bbWeight=1.01 PerfScore 6.08 @@ -123,23 +121,22 @@ G_M34926_IG10: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, ; gcr arg pop 0 ;; size=20 bbWeight=0.01 PerfScore 0.04 G_M34926_IG11: ; bbWeight=0.01, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=0.01 PerfScore 0.03
+ ;; size=8 bbWeight=0.01 PerfScore 0.01
-; Total bytes of code 232, prolog size 12, PerfScore 64.19, instruction count 58, allocated bytes for code 232 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
+; Total bytes of code 220, prolog size 8, PerfScore 61.18, instruction count 55, allocated bytes for code 220 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 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) @@ -150,10 +147,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+20 (+9.43%) : 71932.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>cDisplayClass10_0[System.Canon]:b__0():this (Tier1-OSR)

@@ -12,7 +12,7 @@ ; ; V00 this [V00,T11] ( 5, 201.99) ref -> x19 this class-hnd single-def <System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]> ; V01 loc0 [V01,T04] ( 4, 299.98) int -> x20
-; V02 loc1 [V02,T14] ( 1, 1 ) ref -> [fp+0x40] ld-addr-op class-hnd tier0-frame <System.__Canon>
+; V02 loc1 [V02,T14] ( 1, 1 ) ref -> [fp+0x60] ld-addr-op class-hnd tier0-frame <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3,1199.88) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]> ;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Barrier> @@ -28,33 +28,35 @@ ; V15 tmp12 [V15,T02] ( 6, 599.40) int -> x4 "Inline stloc first use temp" ; V16 tmp13 [V16,T06] ( 3, 299.97) int -> x5 "Inline stloc first use temp" ;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V18 tmp15 [V18,T12] ( 3, 200.16) int -> x7 "Inline stloc first use temp"
+; V18 tmp15 [V18,T12] ( 3, 200.16) int -> x5 "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref "field V06._source (fldOffset=0x0)" P-INDEP ;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref "field V07._source (fldOffset=0x0)" P-INDEP ;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref "field V09._source (fldOffset=0x0)" P-INDEP ;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref "field V10._source (fldOffset=0x0)" P-INDEP
-; V23 cse0 [V23,T07] ( 3, 299.79) byref -> x6 "CSE - aggressive" -; V24 cse1 [V24,T08] ( 3, 299.79) byref -> x5 "CSE - aggressive"
+; V23 cse0 [V23,T07] ( 3, 299.79) byref -> x22 "CSE - aggressive" +; V24 cse1 [V24,T08] ( 3, 299.79) byref -> x21 "CSE - aggressive"
; V25 cse2 [V25,T09] ( 3, 299.79) byref -> x3 hoist "CSE - aggressive"
-; V26 cse3 [V26,T10] ( 3, 299.43) int -> x7 "CSE - aggressive"
+; V26 cse3 [V26,T10] ( 3, 299.43) int -> x23 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M39530_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x40]! + stp x19, x20, [sp, #0x18] + stp x21, x22, [sp, #0x28] + str x23, [sp, #0x38]
mov fp, sp
- ldr x19, [fp, #0x50]
+ ldr x19, [fp, #0x70]
; gcrRegs +[x19]
- ldr w20, [fp, #0x4C] - ;; size=20 bbWeight=0.01 PerfScore 0.06
+ ldr w20, [fp, #0x6C] + ;; size=28 bbWeight=0.01 PerfScore 0.08
G_M39530_IG02: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x0, [x19, #0x08] ; gcrRegs +[x0] ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M39530_IG10
+ bge G_M39530_IG11
;; size=16 bbWeight=0.01 PerfScore 0.07 G_M39530_IG03: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x10] @@ -75,30 +77,28 @@ G_M39530_IG04: ; bbWeight=99.99, gcrefRegs=80007 {x0 x1 x2 x19}, byrefReg and w5, w4, w5 ldr w6, [x2, #0x08] cmp w5, w6
- bhs G_M39530_IG09
+ bhs G_M39530_IG10
ubfiz x5, x5, #4, #32 add x5, x5, #16
- add x5, x2, x5 - ; byrRegs +[x5] - add x6, x5, #8 - ; byrRegs +[x6] - ldar w7, [x6] - sub w7, w7, w4 - cbnz w7, G_M39530_IG06
+ add x21, x2, x5 + ; byrRegs +[x21] + add x22, x21, #8 + ; byrRegs +[x22] + ldar w5, [x22] + sub w5, w5, w4 + cbnz w5, G_M39530_IG06
;; size=52 bbWeight=99.99 PerfScore 1799.82
-G_M39530_IG05: ; bbWeight=99.81, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0068 {x3 x5 x6}, byref, isz - add w7, w4, #1 - mov w8, w4 - casal w8, w7, [x3] - cmp w8, w4
+G_M39530_IG05: ; bbWeight=99.81, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=600008 {x3 x21 x22}, byref, isz + add w23, w4, #1 + mov w5, w4 + casal w5, w23, [x3] + cmp w5, w4
bne G_M39530_IG04
- str xzr, [x5] - stlr w7, [x6] - b G_M39530_IG08 - ;; size=32 bbWeight=99.81 PerfScore 848.39
+ b G_M39530_IG09 + ;; size=24 bbWeight=99.81 PerfScore 648.77
G_M39530_IG06: ; bbWeight=0.18, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz
- ; byrRegs -[x5-x6] - tbz w7, #31, G_M39530_IG04
+ ; byrRegs -[x21-x22] + tbz w5, #31, G_M39530_IG04
;; size=4 bbWeight=0.18 PerfScore 0.18 G_M39530_IG07: ; bbWeight=399.96, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x1-x2] @@ -119,33 +119,42 @@ G_M39530_IG08: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {} ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M39530_IG10
+ bge G_M39530_IG11
b G_M39530_IG03 ;; size=24 bbWeight=99.99 PerfScore 899.91
-G_M39530_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M39530_IG09: ; bbWeight=99.81, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref + ; byrRegs +[x21-x22] + str xzr, [x21] + stlr w23, [x22] + b G_M39530_IG08 + ;; size=12 bbWeight=99.81 PerfScore 299.43 +G_M39530_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
+ ; byrRegs -[x21-x22]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M39530_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+G_M39530_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldr x23, [sp, #0x38] + ldp x21, x22, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x40
add sp, sp, #64 ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 212, prolog size 20, PerfScore 6948.10, instruction count 53, allocated bytes for code 212 (MethodHash=64006595) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
+; Total bytes of code 232, prolog size 28, PerfScore 7047.94, instruction count 58, allocated bytes for code 232 (MethodHash=64006595) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ 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) @@ -153,10 +162,13 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 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]!
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56] + E6 save_next + C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] + 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
04 alloc_s #4 (0x04); sub sp, sp, #64 (0x040) E4 end E4 end E4 end
+ E4 end

+48 (+11.43%) : 64349.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)

@@ -10,11 +10,11 @@ ; 2 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T04] ( 8,102.00) ref -> [fp+0xE0] this class-hnd EH-live single-def tier0-frame <Microsoft.CodeAnalysis.PEModule>
+; V00 this [V00,T04] ( 9,102.00) ref -> [fp+0xE0] this class-hnd EH-live single-def tier0-frame <Microsoft.CodeAnalysis.PEModule>
; V01 loc0 [V01 ] ( 8,500.99) struct (16) [fp+0xD0] do-not-enreg[XSFR] multireg-ret addr-exposed ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator> ; V02 loc1 [V02 ] ( 1, 1 ) struct (16) [fp+0xC0] do-not-enreg[XS] addr-exposed ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttributeHandleCollection> ;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.CustomAttributeHandle>
-; V04 loc3 [V04,T02] ( 3,199.99) int -> x20
+; V04 loc3 [V04,T02] ( 5,199.99) int -> x20
;* V05 loc4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.TypeDefinitionHandle> ; V06 loc5 [V06,T06] ( 4, 1 ) struct (16) [fp+0x98] do-not-enreg[SFR] multireg-ret ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttribute> ;* V07 loc6 [V07,T15] ( 0, 0 ) ubyte -> zero-ref @@ -31,14 +31,14 @@ ;* V18 tmp10 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle> ;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V20 tmp12 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
-;* V21 tmp13 [V21,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V21 tmp13 [V21,T05] ( 2, 0 ) ubyte -> x1 "Inline return value spill temp"
;* V22 tmp14 [V22 ] ( 0, 0 ) int -> zero-ref "field V03._rowId (fldOffset=0x0)" P-INDEP ; V23 tmp15 [V23,T12] ( 2, 0 ) int -> x1 "field V05._rowId (fldOffset=0x0)" P-INDEP ; V24 tmp16 [V24,T13] ( 2, 0 ) int -> x0 "field V10._vToken (fldOffset=0x0)" P-INDEP ;* V25 tmp17 [V25 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._reader (fldOffset=0x0)" P-INDEP ;* V26 tmp18 [V26 ] ( 0, 0 ) int -> zero-ref single-def "field V13._firstRowId (fldOffset=0x8)" P-INDEP ;* V27 tmp19 [V27 ] ( 0, 0 ) int -> zero-ref single-def "field V13._lastRowId (fldOffset=0xc)" P-INDEP
-; V28 tmp20 [V28,T01] ( 5,199.99) int -> x19 "field V14._rowId (fldOffset=0x0)" P-INDEP
+; V28 tmp20 [V28,T01] ( 6,199.99) int -> x19 "field V14._rowId (fldOffset=0x0)" P-INDEP
; V29 tmp21 [V29,T03] ( 2,199.99) int -> x19 "field V16._rowId (fldOffset=0x0)" P-INDEP ;* V30 tmp22 [V30 ] ( 0, 0 ) int -> zero-ref "field V18._rowId (fldOffset=0x0)" P-INDEP ; V31 tmp23 [V31,T14] ( 2, 0 ) int -> x1 "field V20._rowId (fldOffset=0x0)" P-INDEP @@ -60,18 +60,16 @@ G_M13056_IG01: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000 ;; size=24 bbWeight=0.00 PerfScore 0.03 G_M13056_IG02: ; bbWeight=0.00, gcVars=0000000000000010 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars +{V00 V04}
- b G_M13056_IG05
+ b G_M13056_IG04
;; size=4 bbWeight=0.00 PerfScore 0.00 G_M13056_IG03: ; bbWeight=100.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ldr x1, [fp, #0xD0] // [V01 loc0] ; gcrRegs +[x1] ldr x1, [x1, #0xD1FFAB1E]
- cbnz x1, G_M13056_IG08
+ cbnz x1, G_M13056_IG07
ldr w1, [fp, #0xDC] // [V01 loc0+0x0c] ; gcrRegs -[x1] and w19, w1, #0xD1FFAB1E
- ;; size=20 bbWeight=100.00 PerfScore 849.96 -G_M13056_IG04: ; bbWeight=100.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
mov w1, w19 movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -82,20 +80,56 @@ G_M13056_IG04: ; bbWeight=100.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, ; gcr arg pop 0 sxtw w20, w0 cmn w20, #1
+ bne G_M13056_IG08 + ;; size=56 bbWeight=100.00 PerfScore 1649.92 +G_M13056_IG04: ; bbWeight=100, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xE0] // [V00 this] ; gcrRegs +[x0]
- bne G_M13056_IG06 - ;; size=40 bbWeight=100.00 PerfScore 999.95 -G_M13056_IG05: ; bbWeight=100, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
ldp w2, w1, [fp, #0xD8] // [V01 loc0+0x08], [V01 loc0+0x0c] cmp w1, w2
- bge G_M13056_IG07
+ bge G_M13056_IG06
add w1, w1, #1 str w1, [fp, #0xDC] // [V01 loc0+0x0c] b G_M13056_IG03
- ;; size=24 bbWeight=100 PerfScore 600.00
+ ;; size=28 bbWeight=100 PerfScore 800.00 +G_M13056_IG05: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + cbnz w1, G_M13056_IG03 + b G_M13056_IG09 + ;; size=8 bbWeight=0 PerfScore 0.00
G_M13056_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ mov w1, #0xD1FFAB1E + str w1, [fp, #0xDC] // [V01 loc0+0x0c] + mov w1, wzr + b G_M13056_IG05 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M13056_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + add x0, fp, #208 // [V01 loc0] + movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator:GetCurrentCustomAttributeIndirect():System.Reflection.Metadata.CustomAttributeHandle:this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #1 LSL #32 + ldr x1, [x1] + blr x1 + ; gcr arg pop 0 + sxtw w19, w0 + ldr x0, [fp, #0xE0] // [V00 this] + ; gcrRegs +[x0] + mov w1, w19 + movz x2, #0xD1FFAB1E // code for <unknown method> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + ldr x2, [x2] + blr x2 + ; gcrRegs -[x0] + ; gcr arg pop 0 + sxtw w20, w0 + cmn w20, #1 + beq G_M13056_IG04 + ;; size=68 bbWeight=0 PerfScore 0.00 +G_M13056_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #2
+ ldr x0, [fp, #0xE0] // [V00 this] + ; gcrRegs +[x0]
strb w1, [x0, #0x65] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PEModule:get_MetadataReader():System.Reflection.Metadata.MetadataReader:this movk x1, #0xD1FFAB1E LSL #16 @@ -145,29 +179,8 @@ G_M13056_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] ; gcr arg pop 0 b G_M13056_IG11
- ;; size=160 bbWeight=0 PerfScore 0.00 -G_M13056_IG07: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs +[x0] - mov w1, #0xD1FFAB1E - str w1, [fp, #0xDC] // [V01 loc0+0x0c] - b G_M13056_IG09 - ;; size=12 bbWeight=0 PerfScore 0.00 -G_M13056_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0] - add x0, fp, #208 // [V01 loc0] - movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator:GetCurrentCustomAttributeIndirect():System.Reflection.Metadata.CustomAttributeHandle:this - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr x1, [x1] - blr x1 - ; gcr arg pop 0 - sxtw w19, w0 - ldr x0, [fp, #0xE0] // [V00 this] - ; gcrRegs +[x0] - b G_M13056_IG04 - ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=164 bbWeight=0 PerfScore 0.00
G_M13056_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov w0, #1 ldr x19, [fp, #0xE0] // [V00 this] ; gcrRegs +[x19] @@ -211,7 +224,7 @@ G_M13056_IG15: ; bbWeight=0, funclet epilog, nogc, extend ret lr ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 420, prolog size 24, PerfScore 2449.94, instruction count 105, allocated bytes for code 420 (MethodHash=ddc4ccff) for method Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
+; Total bytes of code 468, prolog size 24, PerfScore 2449.95, instruction count 117, allocated bytes for code 468 (MethodHash=ddc4ccff) for method Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -222,7 +235,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 107 (0x0006b) Actual length = 428 (0x0001ac)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+12.82%) : 59178.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Canon]:Enqueue(System.Canon):this (Tier1)

@@ -9,116 +9,128 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T02] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]>
+; V00 this [V00,T02] ( 4, 4.00) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 4.00) ref -> x1 class-hnd single-def <System.__Canon> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V04 tmp2 [V04,T00] ( 4, 8.34) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]> ; V05 tmp3 [V05,T05] ( 3, 3.34) ref -> x3 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-; V06 tmp4 [V06,T01] ( 6, 7.02) int -> x14 "Inline stloc first use temp" -; V07 tmp5 [V07,T04] ( 3, 3.51) int -> x15 "Inline stloc first use temp"
+; V06 tmp4 [V06,T01] ( 6, 7.02) int -> x5 "Inline stloc first use temp" +; V07 tmp5 [V07,T04] ( 3, 3.51) int -> x6 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V09 tmp7 [V09,T10] ( 3, 2.34) int -> x6 "Inline stloc first use temp"
-; V10 cse0 [V10,T06] ( 3, 3.34) byref -> x5 "CSE - aggressive" -; V11 cse1 [V11,T07] ( 3, 3.34) byref -> x12 "CSE - aggressive"
+; V10 cse0 [V10,T06] ( 3, 3.34) byref -> x19 "CSE - aggressive" +; V11 cse1 [V11,T07] ( 3, 3.34) byref -> x14 "CSE - aggressive"
; V12 cse2 [V12,T08] ( 3, 3.34) byref -> x4 hoist "CSE - aggressive"
-; V13 cse3 [V13,T09] ( 3, 3.34) int -> x6 "CSE - aggressive"
+; V13 cse3 [V13,T09] ( 3, 3.34) int -> x20 "CSE - aggressive"
; ; Lcl frame size = 0 G_M15407_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M15407_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref ; gcrRegs +[x0-x1]
- add x14, x0, #16 - ; byrRegs +[x14] - ldar x2, [x14]
+ add x2, x0, #16 + ; byrRegs +[x2] + ldar x2, [x2]
; gcrRegs +[x2]
+ ; byrRegs -[x2]
ldr x3, [x2, #0x08] ; gcrRegs +[x3] add x4, x2, #0xD1FFAB1E ; byrRegs +[x4] ;; size=16 bbWeight=1 PerfScore 7.00 G_M15407_IG03: ; bbWeight=1.17, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, byref, isz
- ; byrRegs -[x14] - ldar w14, [x4] - ldr w15, [x2, #0x18] - and w15, w14, w15 - ldr w12, [x3, #0x08] - cmp w15, w12 - bhs G_M15407_IG10 - ubfiz x15, x15, #4, #32 - add x15, x15, #16 - add x12, x3, x15 - ; byrRegs +[x12] - add x5, x12, #8 - ; byrRegs +[x5] - ldar w15, [x5] - sub w6, w15, w14 - cbnz w6, G_M15407_IG07
+ ldar w5, [x4] + ldr w6, [x2, #0x18] + and w6, w5, w6 + ldr w7, [x3, #0x08] + cmp w6, w7 + bhs G_M15407_IG12 + ubfiz x6, x6, #4, #32 + add x6, x6, #16 + add x14, x3, x6 + ; byrRegs +[x14] + add x19, x14, #8 + ; byrRegs +[x19] + ldar w6, [x19] + sub w6, w6, w5 + cbnz w6, G_M15407_IG06
;; size=52 bbWeight=1.17 PerfScore 21.06
-G_M15407_IG04: ; bbWeight=1.17, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=1030 {x4 x5 x12}, byref, isz - add w6, w14, #1 - mov w15, w14 - casal w15, w6, [x4] - cmp w15, w14
+G_M15407_IG04: ; bbWeight=1.17, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=84010 {x4 x14 x19}, byref, isz + add w20, w5, #1 + mov w6, w5 + casal w6, w20, [x4] + cmp w6, w5
bne G_M15407_IG03 ;; size=20 bbWeight=1.17 PerfScore 6.43
-G_M15407_IG05: ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=1020 {x5 x12}, byref
+G_M15407_IG05: ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=84000 {x14 x19}, byref
; gcrRegs -[x0 x2-x3] ; byrRegs -[x4]
- mov x14, x12 - ; byrRegs +[x14]
+ b G_M15407_IG08 + ;; size=4 bbWeight=1.00 PerfScore 1.00 +G_M15407_IG06: ; bbWeight=0.00, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, byref, isz + ; gcrRegs +[x0 x2-x3] + ; byrRegs -[x14 x19] +[x4] + tbz w6, #31, G_M15407_IG03 + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M15407_IG07: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref + ; gcrRegs -[x2-x3] + ; byrRegs -[x4] + b G_M15407_IG09 + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M15407_IG08: ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=84000 {x14 x19}, byref + ; gcrRegs -[x0] + ; byrRegs +[x14 x19]
mov x15, x1 ; gcrRegs +[x15] bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x1 x15]
- ; byrRegs -[x12 x14] - stlr w6, [x5] - ;; size=16 bbWeight=1.00 PerfScore 3.00 -G_M15407_IG06: ; bbWeight=1.00, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=1.00 PerfScore 2.00 -G_M15407_IG07: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, gcvars, byref, isz - ; gcrRegs +[x0-x3] - ; byrRegs -[x5] +[x4] - tbz w6, #31, G_M15407_IG03 - ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M15407_IG08: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref - ; gcrRegs -[x2-x3] - ; byrRegs -[x4]
+ ; byrRegs -[x14] + stlr w20, [x19] + b G_M15407_IG11 + ;; size=16 bbWeight=1.00 PerfScore 3.50 +G_M15407_IG09: ; bbWeight=1.00, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref + ; gcrRegs +[x0-x1] + ; byrRegs -[x19]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 ldr x2, [x2]
- ;; size=16 bbWeight=1 PerfScore 4.50 -G_M15407_IG09: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+ ;; size=16 bbWeight=1.00 PerfScore 4.50 +G_M15407_IG10: ; bbWeight=1.00, epilog, nogc, extend + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x2 ; gcr arg pop 0
- ;; size=8 bbWeight=1 PerfScore 2.00 -G_M15407_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=12 bbWeight=1.00 PerfScore 3.00 +G_M15407_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x0-x1]
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20 + ret lr + ;; size=12 bbWeight=1.00 PerfScore 3.00 +G_M15407_IG12: ; 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 156, prolog size 8, PerfScore 47.50, instruction count 39, allocated bytes for code 156 (MethodHash=96c6c3d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
+; Total bytes of code 176, prolog size 12, PerfScore 53.00, instruction count 44, allocated bytes for code 176 (MethodHash=96c6c3d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ 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) @@ -129,7 +141,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]!
+ 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

benchmarks.run_tiered.osx.arm64.checked.mch

-24 (-1.10%) : 44438.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)

@@ -30,8 +30,8 @@ ;* V19 loc15 [V19 ] ( 0, 0 ) ubyte -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[int]> ; V21 loc17 [V21,T28] ( 3, 96 ) int -> [fp-0x9C] spill-single-def ptr
-; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x13 -; V23 loc19 [V23,T01] ( 7,1344 ) int -> x1
+; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x14 +; V23 loc19 [V23,T01] ( 7,1344 ) int -> x13
; V24 loc20 [V24,T02] ( 3, 832 ) int -> x0 ;# V25 OutArgs [V25 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V26 tmp1 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> @@ -40,15 +40,15 @@ ; V29 tmp4 [V29,T12] ( 4, 256 ) int -> x7 "impSpillLclRefs" ; V30 tmp5 [V30,T13] ( 4, 256 ) int -> x1 "impSpillLclRefs" ; V31 tmp6 [V31,T15] ( 2, 256 ) int -> x10 "dup spill"
-; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x0 "impSpillLclRefs"
+; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x1 "impSpillLclRefs"
; V33 tmp8 [V33,T49] ( 2, 32 ) int -> [fp-0xA0] spill-single-def ptr "impAppendStmt" ;* V34 tmp9 [V34 ] ( 0, 0 ) int -> zero-ref ptr ; V35 tmp10 [V35,T37] ( 4, 64 ) int -> x0 "impSpillLclRefs" ; V36 tmp11 [V36,T38] ( 4, 64 ) int -> x13 "impSpillLclRefs" ; V37 tmp12 [V37,T34] ( 5, 80 ) int -> x13 "dup spill" ; V38 tmp13 [V38,T39] ( 4, 64 ) int -> x13 "impSpillLclRefs"
-; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x1 "impSpillLclRefs" -; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x1 "impSpillLclRefs"
+; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x0 "impSpillLclRefs" +; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x0 "impSpillLclRefs"
; V41 tmp16 [V41,T30] ( 3, 96 ) int -> x1 ; V42 tmp17 [V42,T52] ( 4, 16 ) int -> x25 "impSpillLclRefs" ;* V43 tmp18 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]> @@ -310,10 +310,10 @@ G_M9731_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x23, [fp, #-0x78] // [V01 arg1] ; byrRegs +[x23] ldr w24, [fp, #-0x70] // [V01 arg1+0x08]
- cbz w22, G_M9731_IG68
+ cbz w22, G_M9731_IG69
;; size=20 bbWeight=1 PerfScore 9.00 G_M9731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref, isz
- cbz w24, G_M9731_IG68
+ cbz w24, G_M9731_IG69
ldrh w0, [x21] cmp w0, #42 bne G_M9731_IG08 @@ -393,7 +393,7 @@ G_M9731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2A00000 {x21 G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 x25}, byref, isz ; byrRegs -[x21] cmp w24, w26
- blt G_M9731_IG68
+ blt G_M9731_IG69
mov x0, x23 ; byrRegs +[x0] sxtw w1, w24 @@ -410,7 +410,7 @@ G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 blr x5 ; byrRegs -[x0 x2 x23 x25] ; gcr arg pop 0
- b G_M9731_IG63
+ b G_M9731_IG64
;; size=60 bbWeight=0.50 PerfScore 5.75 G_M9731_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref ; byrRegs +[x21 x23] @@ -437,7 +437,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 add w1, w25, #1 sxtw w27, w1 cmp w25, w24
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldrh w1, [x23, w25, UXTW #2] sxtw w25, w1 b G_M9731_IG12 @@ -445,7 +445,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 G_M9731_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 x23 x28}, byref, isz sub w6, w26, #1 cmp w6, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w1, [x3, w6, UXTW #2] cmp w1, w5 beq G_M9731_IG21 @@ -469,7 +469,7 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 str w0, [fp, #-0x80] // [V06 loc2] str w4, [fp, #-0xC8] // [V182 tmp157] cmp w1, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181} ldr w1, [x3, w1, UXTW #2] @@ -477,14 +477,14 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 add w1, w1, w1, LSR #31 asr w10, w1, #1 cmp w10, w22
- bge G_M9731_IG51
+ bge G_M9731_IG52
;; size=48 bbWeight=16 PerfScore 192.00 G_M9731_IG14: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref, isz ; byrRegs -[x3] lsl w11, w10, #1 str w11, [fp, #-0x94] // [V16 loc12] cmp w10, w22
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str w10, [fp, #-0x7C] // [V05 loc1] ldrh w13, [x21, w10, UXTW #2] str w13, [fp, #-0x8C] // [V11 loc7] @@ -513,7 +513,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xCC] // [V244 tmp219] ldr w5, [fp, #-0xC4] // [V180 tmp155] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -548,7 +548,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xD0] // [V248 tmp223] ldr w5, [fp, #-0xC8] // [V182 tmp157] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -579,29 +579,29 @@ G_M9731_IG16: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V18 ; GC ptr vars -{V247} ldr w13, [fp, #-0x8C] // [V11 loc7] cmp w13, #42
- beq G_M9731_IG28
+ beq G_M9731_IG30
;; size=12 bbWeight=64 PerfScore 224.00 G_M9731_IG17: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz tst w19, #255 beq G_M9731_IG26 cmp w13, #60 bne G_M9731_IG26
- mov w13, wzr
+ mov w14, wzr
cbnz w6, G_M9731_IG24 cmp w25, #46 bne G_M9731_IG23
- sxtw w1, w27 - cmp w1, w24
+ sxtw w13, w27 + cmp w13, w24
bge G_M9731_IG23 ;; size=44 bbWeight=32 PerfScore 256.00 G_M9731_IG18: ; bbWeight=256, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- cmp w1, w24 - bhs G_M9731_IG70 - ldrh w0, [x23, w1, UXTW #2] - cmp w0, #46
+ cmp w13, w24 + bhs G_M9731_IG71 + ldrh w1, [x23, w13, UXTW #2] + cmp w1, #46
beq G_M9731_IG22
- add w1, w1, #1 - cmp w1, w24
+ add w13, w13, #1 + cmp w13, w24
blt G_M9731_IG18 ;; size=32 bbWeight=256 PerfScore 2048.00 G_M9731_IG19: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref @@ -612,18 +612,18 @@ G_M9731_IG20: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, g ; GC ptr vars -{V181} str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181}
- b G_M9731_IG61
+ b G_M9731_IG62
;; size=8 bbWeight=2 PerfScore 4.00 G_M9731_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref ; byrRegs -[x21 x23 x28] ; GC ptr vars -{V181} ldr w5, [fp, #-0x90] // [V15 loc11]
- b G_M9731_IG62
+ b G_M9731_IG63
;; size=8 bbWeight=1 PerfScore 3.00 G_M9731_IG22: ; bbWeight=32, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref ; byrRegs -[x3] +[x21 x23 x28] ; GC ptr vars +{V09 V181}
- mov w13, #1
+ mov w14, #1
;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref cmp w25, #46 @@ -634,174 +634,170 @@ G_M9731_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x mov w1, #1 ;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- orr w1, w1, w13 - cbz w1, G_M9731_IG29 - b G_M9731_IG28
+ orr w1, w1, w14 + cbz w1, G_M9731_IG31 + b G_M9731_IG30
;; size=12 bbWeight=32 PerfScore 80.00 G_M9731_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz ldr w11, [fp, #-0x94] // [V16 loc12] add w11, w11, #2 tst w19, #255
- beq G_M9731_IG37
+ beq G_M9731_IG38
cmp w13, #62
- bne G_M9731_IG27 - cbnz w6, G_M9731_IG30
+ bne G_M9731_IG28 + cbnz w6, G_M9731_IG32
cmp w25, #46
- beq G_M9731_IG30 - b G_M9731_IG34 - ;; size=40 bbWeight=32 PerfScore 288.00 -G_M9731_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz - cmp w13, #34 - bne G_M9731_IG37 - cbnz w6, G_M9731_IG30 - b G_M9731_IG35 - ;; size=16 bbWeight=32 PerfScore 112.00
+ beq G_M9731_IG32 + ;; size=36 bbWeight=32 PerfScore 256.00 +G_M9731_IG27: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG36 + ;; size=4 bbWeight=8 PerfScore 8.00
G_M9731_IG28: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+ cmp w13, #34 + bne G_M9731_IG38 + cbnz w6, G_M9731_IG32 + ;; size=12 bbWeight=32 PerfScore 80.00 +G_M9731_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG37 + ;; size=4 bbWeight=8 PerfScore 8.00 +G_M9731_IG30: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] add w13, w7, #1 cmp w7, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] str w11, [x28, w7, UXTW #2] str w13, [fp, #-0x84] // [V07 loc3] str w11, [fp, #-0x94] // [V16 loc12] ;; size=32 bbWeight=32 PerfScore 288.00
-G_M9731_IG29: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+G_M9731_IG31: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] sxtw w1, w7 add w7, w1, #1 cmp w1, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] ...

-4 (-0.44%) : 28530.dasm - System.Collections.Concurrent.ConcurrentDictionary2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)

@@ -193,20 +193,20 @@ G_M37192_IG08: ; bbWeight=15.84, gcrefRegs=11F80000 {x19 x20 x21 x22 x23 bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14 x28]
- ldr w14, [x20, #0x08]
+ ldr w1, [x20, #0x08]
ldr w28, [fp, #0xE8] // [V20 loc16]
- cmp w28, w14
+ cmp w28, w1
bhs G_M37192_IG13
- add x14, x20, #16 - ; byrRegs +[x14] - ubfiz x15, x28, #2, #32 - add x5, x14, x15
+ add x1, x20, #16 + ; byrRegs +[x1] + ubfiz x0, x28, #2, #32 + add x5, x1, x0
; byrRegs +[x5]
- ldr w14, [x5] - ; byrRegs -[x14] - adds w14, w14, #1
+ ldr w1, [x5] + ; byrRegs -[x1] + adds w1, w1, #1
bvs G_M37192_IG11
- str w14, [x5]
+ str w1, [x5]
ldr x28, [fp, #0xF8] // [V18 loc14] ; gcrRegs +[x28] cbnz x28, G_M37192_IG05 @@ -237,11 +237,12 @@ G_M37192_IG10: ; bbWeight=0.50, gcrefRegs=1880000 {x19 x23 x24}, byrefReg mov x15, x19 ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x0 x15 x19 x23-x24]
+ ; gcrRegs -[x15 x19 x23-x24]
; byrRegs -[x14] b G_M37192_IG21 ;; size=56 bbWeight=0.50 PerfScore 13.00 G_M37192_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00 @@ -353,20 +354,20 @@ G_M37192_IG19: ; bbWeight=0.16, gcrefRegs=11F80000 {x19 x20 x21 x22 x23 x bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x0 x15] ; byrRegs -[x14 x28]
- ldr w0, [x20, #0x08]
+ ldr w14, [x20, #0x08]
ldr w28, [fp, #0xE8] // [V20 loc16]
- cmp w28, w0
+ cmp w28, w14
bhs G_M37192_IG13
- add x0, x20, #16 - ; byrRegs +[x0] - ubfiz x1, x28, #2, #32 - add x5, x0, x1
+ add x14, x20, #16 + ; byrRegs +[x14] + ubfiz x15, x28, #2, #32 + add x5, x14, x15
; byrRegs +[x5]
- ldr w0, [x5] - ; byrRegs -[x0] - adds w0, w0, #1
+ ldr w14, [x5] + ; byrRegs -[x14] + adds w14, w14, #1
bvs G_M37192_IG11
- str w0, [x5]
+ str w14, [x5]
ldr x28, [fp, #0xF8] // [V18 loc14] ; gcrRegs +[x28] cbnz x28, G_M37192_IG16 @@ -380,10 +381,8 @@ G_M37192_IG20: ; bbWeight=0.04, gcVars=0000000000200000 {V00}, gcrefRegs= bgt G_M37192_IG14 b G_M37192_IG10 ;; size=16 bbWeight=0.04 PerfScore 0.12
-G_M37192_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x24] - ldr x0, [fp, #0xD1FFAB1E] // [V00 this] - ; gcrRegs +[x0]
+G_M37192_IG21: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19-x24] +[x0]
ldr w1, [fp, #0xD1FFAB1E] // [V04 loc0] movz x2, #0xD1FFAB1E // code for System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:ReleaseLocks(int):this movk x2, #0xD1FFAB1E LSL #16 @@ -393,7 +392,7 @@ G_M37192_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x2 ; gcrRegs -[x0] ; gcr arg pop 0
- ;; size=28 bbWeight=1 PerfScore 9.50
+ ;; size=24 bbWeight=1 PerfScore 7.50
G_M37192_IG22: ; bbWeight=1, epilog, nogc, extend ldp x27, x28, [sp, #0x60] ldp x25, x26, [sp, #0x50] @@ -440,7 +439,7 @@ G_M37192_IG25: ; bbWeight=0, funclet epilog, nogc, extend ret lr ;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 900, prolog size 52, PerfScore 1522.28, instruction count 225, allocated bytes for code 900 (MethodHash=aa026eb7) for method System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)
+; Total bytes of code 896, prolog size 52, PerfScore 1520.28, instruction count 224, allocated bytes for code 896 (MethodHash=aa026eb7) for method System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -451,7 +450,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 201 (0x000c9) Actual length = 804 (0x000324)
+ Function Length : 200 (0x000c8) Actual length = 800 (0x000320)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-0.41%) : 42587.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)

@@ -69,7 +69,7 @@ ; V58 cse0 [V58,T16] ( 3, 12 ) long -> x8 "CSE - aggressive" ; V59 cse1 [V59,T09] ( 2, 16 ) int -> x3 "CSE - aggressive" ; V60 cse2 [V60,T17] ( 3, 12 ) long -> x1 "CSE - aggressive"
-; V61 cse3 [V61,T19] ( 3, 10 ) long -> x3 "CSE - aggressive"
+; V61 cse3 [V61,T19] ( 3, 10 ) long -> x0 "CSE - aggressive"
; V62 rat0 [V62,T30] ( 3, 96 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 168 @@ -289,23 +289,22 @@ G_M52237_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M52237_IG18: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x20] ldr x1, [x20]
- movz x3, #0xD1FFAB1E - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #1 LSL #32 - cmp x1, x3
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + cmp x1, x0
beq G_M52237_IG20 ;; size=24 bbWeight=4 PerfScore 24.00 G_M52237_IG19: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref mov x1, x20 ; gcrRegs +[x1]
- mov x0, x3
bl CORINFO_HELP_UNBOX ; gcrRegs -[x1] ; gcr arg pop 0
- ;; size=12 bbWeight=2 PerfScore 4.00
+ ;; size=8 bbWeight=2 PerfScore 3.00
G_M52237_IG20: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ldrb w1, [x20, #0x08] - str w1, [fp, #0x7C] // [V09 loc5]
+ ldrb w0, [x20, #0x08] + str w0, [fp, #0x7C] // [V09 loc5]
;; size=8 bbWeight=4 PerfScore 16.00 G_M52237_IG21: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x19-x20] @@ -476,7 +475,7 @@ RWD00 dq 0070004F00730049h, 006E006F00690074h RWD16 dq 006900740070004Fh, 006C0061006E006Fh
-; Total bytes of code 976, prolog size 60, PerfScore 1437.50, instruction count 244, allocated bytes for code 976 (MethodHash=9e6933f2) for method Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
+; Total bytes of code 972, prolog size 60, PerfScore 1436.50, instruction count 243, allocated bytes for code 972 (MethodHash=9e6933f2) for method Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
; ============================================================ Unwind Info: @@ -487,7 +486,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 198 (0x000c6) Actual length = 792 (0x000318)
+ Function Length : 197 (0x000c5) Actual length = 788 (0x000314)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+1.08%) : 40315.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -56,16 +56,22 @@ G_M4144_IG02: ; bbWeight=0.01, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, ldr w9, [x1, #0x10] b G_M4144_IG12 ;; size=24 bbWeight=0.01 PerfScore 0.11
-G_M4144_IG03: ; bbWeight=2, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG03: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref + ldr w10, [x1, #0x1C] + add w4, w10, w9 + sub w4, w4, #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, w10 cmp w4, w5
- bge G_M4144_IG07
+ 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,25 +84,23 @@ 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
+G_M4144_IG07: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 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
+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 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
+ bge G_M4144_IG08 + b G_M4144_IG05 + ;; size=16 bbWeight=8 PerfScore 24.00
G_M4144_IG10: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref mov w4, w11 ;; size=4 bbWeight=1 PerfScore 0.50 @@ -163,11 +167,8 @@ G_M4144_IG15: ; bbWeight=8, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by bge G_M4144_IG11 ;; size=24 bbWeight=8 PerfScore 48.00 G_M4144_IG16: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
- ldr w10, [x1, #0x1C] - add w4, w10, w9 - sub w4, w4, #1 - b G_M4144_IG08 - ;; size=16 bbWeight=1 PerfScore 5.00
+ b G_M4144_IG03 + ;; size=4 bbWeight=1 PerfScore 1.00
G_M4144_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x1-x2] bl CORINFO_HELP_RNGCHKFAIL @@ -175,7 +176,7 @@ G_M4144_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 372, prolog size 24, PerfScore 1039.72, instruction count 93, allocated bytes for code 372 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
+; Total bytes of code 376, prolog size 24, PerfScore 1047.72, instruction count 94, allocated bytes for code 376 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
; ============================================================ Unwind Info: @@ -186,7 +187,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
+ 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)

+4 (+1.43%) : 26198.dasm - System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (Tier1)

@@ -14,10 +14,10 @@ ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Security.Cryptography.Oid> ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T06] ( 4, 8 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.OidEnumerator>
-; V06 tmp2 [V06,T02] ( 5, 16 ) int -> x20 "Inlining Arg"
+; V06 tmp2 [V06,T02] ( 6, 16 ) int -> x20 "Inlining Arg"
; V07 tmp3 [V07,T03] ( 3, 12 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Security.Cryptography.OidCollection> ;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V09 tmp5 [V09,T07] ( 3, 8 ) int -> x22 "Inlining Arg"
+; V09 tmp5 [V09,T07] ( 4, 8 ) int -> x22 "Inlining Arg"
;* V10 tmp6 [V10,T12] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V11 tmp7 [V11,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" @@ -125,6 +125,7 @@ G_M10593_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { bl CORINFO_HELP_RNGCHKFAIL ;; size=4 bbWeight=0 PerfScore 0.00 G_M10593_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ cmp w20, w22
mov w0, #0xD1FFAB1E movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -143,9 +144,9 @@ G_M10593_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x3 ; gcrRegs -[x2] brk_unix #0
- ;; size=56 bbWeight=0 PerfScore 0.00
+ ;; size=60 bbWeight=0 PerfScore 0.00
-; Total bytes of code 280, prolog size 16, PerfScore 174.50, instruction count 70, allocated bytes for code 280 (MethodHash=ee8bd69e) for method System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (Tier1)
+; Total bytes of code 284, prolog size 16, PerfScore 174.50, instruction count 71, allocated bytes for code 284 (MethodHash=ee8bd69e) for method System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -156,7 +157,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 70 (0x00046) Actual length = 280 (0x000118)
+ Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.07%) : 44033.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)

@@ -10,307 +10,307 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <BenchmarksGame.FannkuchRedux_2> ; V01 arg1 [V01,T15] ( 13, 66 ) int -> x1 single-def
-; V02 loc0 [V02,T10] ( 17, 96.05) ref -> x0 class-hnd exact <int[]>
+; V02 loc0 [V02,T10] ( 17, 96.05) ref -> x2 class-hnd exact <int[]>
; V03 loc1 [V03,T34] ( 5, 3.05) ref -> x7 class-hnd exact <int[]>
-; V04 loc2 [V04,T25] ( 6, 20.73) ref -> x5 class-hnd exact <int[]> -; V05 loc3 [V05,T24] ( 4, 21 ) int -> x4
+; V04 loc2 [V04,T25] ( 6, 20.73) ref -> x6 class-hnd exact <int[]> +; V05 loc3 [V05,T24] ( 4, 21 ) int -> x5
; V06 loc4 [V06,T38] ( 3, 2.50) int -> x20 ; V07 loc5 [V07,T35] ( 3, 3 ) int -> x19
-; V08 loc6 [V08,T16] ( 2, 64 ) int -> x2
+; V08 loc6 [V08,T16] ( 2, 64 ) int -> x3
;* V09 loc7 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 loc8 [V10,T21] ( 9, 38 ) int -> x3 -; V11 loc9 [V11,T31] ( 6, 11.50) int -> x6 -; V12 loc10 [V12,T27] ( 13, 18.58) int -> x6 -; V13 loc11 [V13,T26] ( 3, 20 ) int -> x11 -; V14 loc12 [V14,T11] ( 6, 82 ) int -> x14 -; V15 loc13 [V15,T12] ( 6, 82 ) int -> x3 -; V16 loc14 [V16,T22] ( 2, 32 ) int -> x15 -; V17 loc15 [V17,T33] ( 2, 8 ) int -> x4 -; V18 loc16 [V18,T14] ( 6, 80 ) int -> x6 -; V19 loc17 [V19,T00] ( 23,376.88) int -> x13 -; V20 loc18 [V20,T07] ( 5,132 ) int -> x6 -; V21 loc19 [V21,T01] ( 16,289.27) int -> x3
+; V10 loc8 [V10,T21] ( 9, 38 ) int -> x4 +; V11 loc9 [V11,T31] ( 6, 11.50) int -> x0 +; V12 loc10 [V12,T27] ( 13, 18.58) int -> x0 +; V13 loc11 [V13,T26] ( 3, 20 ) int -> x8 +; V14 loc12 [V14,T11] ( 6, 82 ) int -> x9 +; V15 loc13 [V15,T12] ( 6, 82 ) int -> x4 +; V16 loc14 [V16,T22] ( 2, 32 ) int -> x13 +; V17 loc15 [V17,T33] ( 2, 8 ) int -> x5 +; V18 loc16 [V18,T14] ( 6, 80 ) int -> x25 +; V19 loc17 [V19,T00] ( 23,376.88) int -> x26 +; V20 loc18 [V20,T07] ( 5,132 ) int -> x4 +; V21 loc19 [V21,T01] ( 16,289.27) int -> x0
;# V22 OutArgs [V22 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V23 tmp1 [V23,T23] ( 2, 32 ) int -> x4 "Strict ordering of exceptions for Array store" -; V24 tmp2 [V24,T02] ( 6,256.00) int -> x12 "Strict ordering of exceptions for Array store"
+; V23 tmp1 [V23,T23] ( 2, 32 ) int -> x5 "Strict ordering of exceptions for Array store" +; V24 tmp2 [V24,T02] ( 6,256.00) int -> x8 "Strict ordering of exceptions for Array store"
; V25 tmp3 [V25,T32] ( 4, 8 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V26 tmp4 [V26,T29] ( 2, 16 ) int -> x11 "Strict ordering of exceptions for Array store" -; V27 tmp5 [V27,T28] ( 4, 16 ) int -> x14 "Strict ordering of exceptions for Array store" -; V28 tmp6 [V28,T17] ( 2, 64 ) int -> x21 "Strict ordering of exceptions for Array store" -; V29 cse0 [V29,T05] ( 3,158.40) long -> x3 "CSE - aggressive" -; V30 cse1 [V30,T18] ( 3, 48 ) long -> x12 "CSE - aggressive" -; V31 cse2 [V31,T19] ( 3, 48 ) long -> xip0 "CSE - aggressive" -; V32 cse3 [V32,T30] ( 3, 11.88) long -> x11 "CSE - moderate" -; V33 cse4 [V33,T40] ( 3, 0.12) long -> x11 "CSE - conservative" -; V34 cse5 [V34,T06] ( 17,139.27) int -> x11 multi-def "CSE - aggressive" -; V35 cse6 [V35,T04] ( 11,164.01) byref -> x9 hoist "CSE - aggressive" -; V36 cse7 [V36,T03] ( 4,250.91) int -> x14 "CSE - aggressive" -; V37 cse8 [V37,T09] ( 6,100.01) byref -> x8 hoist "CSE - aggressive" -; V38 cse9 [V38,T13] ( 9, 80.01) byref -> x10 hoist "CSE - aggressive" -; V39 cse10 [V39,T20] ( 8, 43.08) int -> x13 hoist multi-def "CSE - aggressive" -; V40 cse11 [V40,T08] ( 4,126.72) int -> x13 "CSE - aggressive" -; V41 cse12 [V41,T36] ( 4, 2.56) int -> x14 "CSE - moderate" -; V42 cse13 [V42,T37] ( 4, 2.53) int -> x14 "CSE - moderate" -; V43 cse14 [V43,T39] ( 4, 1.28) int -> x13 "CSE - moderate"
+; V26 tmp4 [V26,T29] ( 2, 16 ) int -> x4 "Strict ordering of exceptions for Array store" +; V27 tmp5 [V27,T28] ( 4, 16 ) int -> x9 "Strict ordering of exceptions for Array store" +; V28 tmp6 [V28,T17] ( 2, 64 ) int -> x12 "Strict ordering of exceptions for Array store" +; V29 cse0 [V29,T05] ( 3,158.40) long -> x0 "CSE - aggressive" +; V30 cse1 [V30,T18] ( 3, 48 ) long -> x11 "CSE - aggressive" +; V31 cse2 [V31,T19] ( 3, 48 ) long -> x14 "CSE - aggressive" +; V32 cse3 [V32,T30] ( 3, 11.88) long -> x8 "CSE - moderate" +; V33 cse4 [V33,T40] ( 3, 0.12) long -> x8 "CSE - conservative" +; V34 cse5 [V34,T06] ( 17,139.27) int -> x24 multi-def "CSE - aggressive" +; V35 cse6 [V35,T04] ( 11,164.01) byref -> x22 hoist "CSE - aggressive" +; V36 cse7 [V36,T03] ( 4,250.91) int -> x4 "CSE - aggressive" +; V37 cse8 [V37,T09] ( 6,100.01) byref -> x21 hoist "CSE - aggressive" +; V38 cse9 [V38,T13] ( 9, 80.01) byref -> x23 hoist "CSE - aggressive" +; V39 cse10 [V39,T20] ( 8, 43.08) int -> registers hoist multi-def "CSE - aggressive" +; V40 cse11 [V40,T08] ( 4,126.72) int -> x26 "CSE - aggressive" +; V41 cse12 [V41,T36] ( 4, 2.56) int -> x4 "CSE - moderate" +; V42 cse13 [V42,T37] ( 4, 2.53) int -> x4 "CSE - moderate" +; V43 cse14 [V43,T39] ( 4, 1.28) int -> x26 "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M61974_IG01: ; bbWeight=0.01, 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, #-0x50]! + stp x19, x20, [sp, #0x10] + stp x21, x22, [sp, #0x20] + stp x23, x24, [sp, #0x30] + stp x25, x26, [sp, #0x40]
mov fp, sp
- ldr w1, [fp, #0xD4] - ldp x7, x0, [fp, #0xC0] - ; gcrRegs +[x0 x7] - ldr x5, [fp, #0xB8] - ; gcrRegs +[x5] - ldp w20, w4, [fp, #0xB0] - ldp w2, w19, [fp, #0xA8] - ldr w3, [fp, #0xA0] - ldr w6, [fp, #0x98] - ;; size=44 bbWeight=0.01 PerfScore 0.18 -G_M61974_IG02: ; bbWeight=0.01, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0000 {}, byref - add x8, x5, #16 - ; byrRegs +[x8] - add x9, x0, #16 - ; byrRegs +[x9] - add x10, x7, #16 - ; byrRegs +[x10] - b G_M61974_IG23
+ ldr w1, [fp, #0xF4] + ldp x7, x2, [fp, #0xE0] + ; gcrRegs +[x2 x7] + ldr x6, [fp, #0xD8] + ; gcrRegs +[x6] + ldp w20, w5, [fp, #0xD0] + ldp w3, w19, [fp, #0xC8] + ldr w4, [fp, #0xC0] + ldr w0, [fp, #0xB8] + ;; size=52 bbWeight=0.01 PerfScore 0.20 +G_M61974_IG02: ; bbWeight=0.01, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=0000 {}, byref + add x21, x6, #16 + ; byrRegs +[x21] + add x22, x2, #16 + ; byrRegs +[x22] + add x23, x7, #16 + ; byrRegs +[x23] + b G_M61974_IG22
;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M61974_IG03: ; bbWeight=2, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w3, [x0, #0x10] - cbnz w3, G_M61974_IG22
+G_M61974_IG03: ; bbWeight=2, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w4, [x2, #0x10] + cbnz w4, G_M61974_IG21
;; size=8 bbWeight=2 PerfScore 8.00
-G_M61974_IG04: ; bbWeight=8, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - cmp w4, #1
+G_M61974_IG04: ; bbWeight=8, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + cmp w5, #1
bne G_M61974_IG06 ;; size=8 bbWeight=8 PerfScore 12.00
-G_M61974_IG05: ; bbWeight=4, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w11, [x0, #0x08] - cmp w11, #1 - bls G_M61974_IG37 - ldp w11, w4, [x0, #0x10] - stp w4, w11, [x0, #0x10] - movn w4, #0
+G_M61974_IG05: ; bbWeight=4, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w24, [x2, #0x08] + cmp w24, #1 + bls G_M61974_IG36 + ldp w4, w5, [x2, #0x10] + stp w5, w4, [x2, #0x10] + movn w5, #0
b G_M61974_IG03 ;; size=28 bbWeight=4 PerfScore 40.00
-G_M61974_IG06: ; bbWeight=8, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w11, [x0, #0x08] - cmp w11, #1 - bls G_M61974_IG37 - ldr w6, [x0, #0x14] - cmp w11, #2 - bls G_M61974_IG37 - ldr w4, [x0, #0x18] - stp w4, w6, [x0, #0x14] - mov w4, #1 - mov w13, #2
+G_M61974_IG06: ; bbWeight=8, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w24, [x2, #0x08] + cmp w24, #1 + bls G_M61974_IG36 + ldr w25, [x2, #0x14] + cmp w24, #2 + bls G_M61974_IG36 + ldr w5, [x2, #0x18] + stp w5, w25, [x2, #0x14] + mov w5, #1 + mov w26, #2
cmp w1, #2 ble G_M61974_IG03
- cbz x5, G_M61974_IG15
+ cbz x6, G_M61974_IG15
tbnz w1, #31, G_M61974_IG15
- ldr w6, [x5, #0x08] - cmp w6, w1
+ ldr w4, [x6, #0x08] + cmp w4, w1
blt G_M61974_IG15 ;; size=68 bbWeight=8 PerfScore 176.00
-G_M61974_IG07: ; bbWeight=63.36, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ubfiz x3, x13, #2, #32 - ldr w6, [x8, x3] - cbnz w6, G_M61974_IG21 - cmp w13, w2 - beq G_M61974_IG35
+G_M61974_IG07: ; bbWeight=63.36, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ubfiz x0, x26, #2, #32 + ldr w4, [x21, x0] + cbnz w4, G_M61974_IG20 + cmp w26, w3 + beq G_M61974_IG34
;; size=20 bbWeight=63.36 PerfScore 411.84
-G_M61974_IG08: ; bbWeight=31.68, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - str w13, [x8, x3] - ldr w6, [x0, #0x10] - mov w3, wzr - tbnz w13, #31, G_M61974_IG13
+G_M61974_IG08: ; bbWeight=31.68, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + str w26, [x21, x0] + ldr w25, [x2, #0x10] + mov w0, wzr + tbnz w26, #31, G_M61974_IG13
;; size=16 bbWeight=31.68 PerfScore 174.24
-G_M61974_IG09: ; bbWeight=7.92, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - cmp w11, w13
+G_M61974_IG09: ; bbWeight=7.92, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + cmp w24, w26
ble G_M61974_IG12 ;; size=8 bbWeight=7.92 PerfScore 11.88
-G_M61974_IG10: ; bbWeight=62.73, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - add w14, w3, #1 - cmp w14, w11 - bhs G_M61974_IG37 - ldr w12, [x9, w14, UXTW #2] - str w12, [x9, w3, UXTW #2] - sxtw w3, w14 - cmp w3, w13
+G_M61974_IG10: ; bbWeight=62.73, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + add w4, w0, #1 + cmp w4, w24 + bhs G_M61974_IG36 + ldr w8, [x22, w4, UXTW #2] + str w8, [x22, w0, UXTW #2] + sxtw w0, w4 + cmp w0, w26
ble G_M61974_IG10 ;; size=32 bbWeight=62.73 PerfScore 501.81
-G_M61974_IG11: ; bbWeight=7.92, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref
+G_M61974_IG11: ; bbWeight=31.68, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref
b G_M61974_IG13
- ;; size=4 bbWeight=7.92 PerfScore 7.92 -G_M61974_IG12: ; bbWeight=0.63, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - add w14, w3, #1 - cmp w14, w11
...

coreclr_tests.run.osx.arm64.checked.mch

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

@@ -11,10 +11,10 @@ ; ; V00 arg0 [V00,T04] ( 9,500.50) 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.07, 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.57, 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 (-6.90%) : 463958.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@ ; ; V00 arg0 [V00,T03] ( 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,198.99) int -> x8 ; V04 loc2 [V04,T12] ( 2,198.99) int -> x13
-; V05 loc3 [V05,T20] ( 8, 0.54) int -> x4
+; V05 loc3 [V05,T20] ( 5, 0.54) int -> x4
; V06 loc4 [V06,T16] ( 6,101.03) int -> x2 ; V07 loc5 [V07,T05] ( 6,398.99) int -> x1 ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" @@ -96,13 +96,12 @@ G_M3571_IG07: ; bbWeight=99.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b G_M3571_IG08: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w2, w2, #1 cmp w2, w3
- bgt G_M3571_IG11 - b G_M3571_IG04 - ;; size=16 bbWeight=0.50 PerfScore 1.51
+ ble G_M3571_IG04 + ;; size=12 bbWeight=0.50 PerfScore 1.01
G_M3571_IG09: ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w4, w4, #1 cmp w4, w3
- bgt G_M3571_IG12
+ bgt G_M3571_IG11
b G_M3571_IG03 ;; size=16 bbWeight=0.01 PerfScore 0.03 G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -110,20 +109,13 @@ G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M3571_IG11: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - add w4, w4, #1 - cmp w4, w3 - ble G_M3571_IG03 - ;; size=12 bbWeight=0 PerfScore 0.00 -G_M3571_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x0]
+G_M3571_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 232, prolog size 24, PerfScore 3200.23, instruction count 58, allocated bytes for code 232 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
+; Total bytes of code 216, prolog size 24, PerfScore 3199.72, instruction count 54, allocated bytes for code 216 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
; ============================================================ Unwind Info: @@ -134,7 +126,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-5.17%) : 338178.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)

@@ -15,7 +15,7 @@ ;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T09] ( 2, 4 ) ref -> x3 class-hnd single-def "impAppendStmt" <int[]>
-; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x19 "Inline return value spill temp"
+; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x9 "Inline return value spill temp"
; V07 tmp3 [V07,T08] ( 4, 4.74) byref -> x3 single-def "Inline stloc first use temp" ; V08 tmp4 [V08,T00] ( 3, 6.74) long -> x4 "Inlining Arg" ; V09 tmp5 [V09,T06] ( 4, 5.11) int -> x5 "Inline stloc first use temp" @@ -23,17 +23,16 @@ ; V11 tmp7 [V11,T02] ( 5, 6.09) byref -> x7 "Inline stloc first use temp" ; V12 tmp8 [V12,T05] ( 5, 5.47) int -> x8 "Inline stloc first use temp" ; V13 tmp9 [V13,T11] ( 2, 2.74) long -> x9 "Inline stloc first use temp"
-; V14 tmp10 [V14,T10] ( 3, 2.98) long -> x19 "Inline stloc first use temp"
+; V14 tmp10 [V14,T10] ( 3, 2.98) long -> x9 "Inline stloc first use temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M34926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M34926_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref ; gcrRegs +[x2] ; byrRegs +[x0] @@ -71,8 +70,8 @@ G_M34926_IG03: ; bbWeight=1.37, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x ;; size=36 bbWeight=1.37 PerfScore 15.73 G_M34926_IG04: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0089 {x0 x3 x7}, byref, isz ldr x9, [x7, #0x10]
- eor x19, x9, x1 - cmp x19, #1
+ eor x9, x9, x1 + cmp x9, #1
bhi G_M34926_IG08 ;; size=16 bbWeight=0.99 PerfScore 4.96 G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x7}, byref, isz @@ -84,7 +83,7 @@ G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x ;; size=16 bbWeight=0.99 PerfScore 14.38 G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz ; byrRegs -[x7]
- cmp w19, #1
+ cmp w9, #1
bne G_M34926_IG10 mov x1, x2 ; gcrRegs +[x1] @@ -94,10 +93,9 @@ G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 3.00 G_M34926_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M34926_IG08: ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, gcvars, byref, isz ; gcrRegs +[x2] ; byrRegs +[x0 x3] @@ -106,8 +104,8 @@ G_M34926_IG08: ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=000 G_M34926_IG09: ; bbWeight=1.37, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, byref, isz add w6, w6, #1 add w5, w5, w6
- ldr w7, [x3, #0x04] - and w5, w5, w7
+ ldr w9, [x3, #0x04] + and w5, w5, w9
cmp w6, #8 blt G_M34926_IG03 ;; size=24 bbWeight=1.37 PerfScore 8.22 @@ -123,23 +121,22 @@ G_M34926_IG10: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, ; gcr arg pop 0 ;; size=20 bbWeight=0.01 PerfScore 0.05 G_M34926_IG11: ; bbWeight=0.01, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=0.01 PerfScore 0.03
+ ;; size=8 bbWeight=0.01 PerfScore 0.02
-; Total bytes of code 232, prolog size 12, PerfScore 70.74, instruction count 58, allocated bytes for code 232 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
+; Total bytes of code 220, prolog size 8, PerfScore 67.72, instruction count 55, allocated bytes for code 220 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 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) @@ -150,10 +147,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

+48 (+22.64%) : 254258.dasm - ILGEN0x1db2cfa3:Method0x8618f02c(ushort,double,short,byte):int (FullOpts)

@@ -7,10 +7,10 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 3, 2.50) ushort -> x20 single-def -; V01 arg1 [V01,T08] ( 3, 3 ) double -> [fp+0x18] single-def
+; V00 arg0 [V00,T01] ( 5, 3.50) ushort -> x20 single-def +; V01 arg1 [V01,T08] ( 5, 4.50) double -> [fp+0x18] single-def
;* V02 arg2 [V02 ] ( 0, 0 ) short -> zero-ref single-def
-; V03 arg3 [V03,T00] ( 3, 3 ) byte -> x19
+; V03 arg3 [V03,T00] ( 6, 6 ) byte -> x19
;* V04 loc0 [V04,T11] ( 0, 0 ) double -> zero-ref ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref @@ -32,14 +32,14 @@ ;* V22 tmp17 [V22 ] ( 0, 0 ) double -> zero-ref ;* V23 tmp18 [V23 ] ( 0, 0 ) float -> zero-ref ;* V24 tmp19 [V24 ] ( 0, 0 ) float -> zero-ref
-;* V25 tmp20 [V25,T04] ( 0, 0 ) int -> zero-ref
+; V25 tmp20 [V25,T04] ( 3, 2 ) int -> x0
;* V26 tmp21 [V26 ] ( 0, 0 ) float -> zero-ref ;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref ;* V28 tmp23 [V28 ] ( 0, 0 ) float -> zero-ref ;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref ;* V30 tmp25 [V30,T14] ( 0, 0 ) float -> zero-ref
-;* V31 tmp26 [V31,T05] ( 0, 0 ) int -> zero-ref -;* V32 tmp27 [V32,T06] ( 0, 0 ) int -> zero-ref
+; V31 tmp26 [V31,T05] ( 2, 2 ) int -> x0 +; V32 tmp27 [V32,T06] ( 2, 2 ) int -> x1
;* V33 tmp28 [V33 ] ( 0, 0 ) float -> zero-ref ;* V34 tmp29 [V34 ] ( 0, 0 ) float -> zero-ref ;* V35 tmp30 [V35 ] ( 0, 0 ) float -> zero-ref @@ -57,7 +57,7 @@ ;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref ;* V48 tmp43 [V48 ] ( 0, 0 ) float -> zero-ref ;* V49 tmp44 [V49 ] ( 0, 0 ) float -> zero-ref
-;* V50 tmp45 [V50,T07] ( 0, 0 ) int -> zero-ref
+; V50 tmp45 [V50,T07] ( 2, 1 ) int -> x0
;* V51 tmp46 [V51 ] ( 0, 0 ) double -> zero-ref ; V52 cse0 [V52,T02] ( 3, 3 ) long -> x21 "CSE - aggressive" ; V53 cse1 [V53,T03] ( 3, 3 ) long -> x22 "CSE - aggressive" @@ -107,42 +107,59 @@ G_M36522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, sxtb w0, w19 mov w1, #7 subs w0, w1, w0
- blo G_M36522_IG08
+ blo G_M36522_IG10
ldr d16, [@RWD00]
+ mov w0, #3
ldr d0, [fp, #0x18] // [V01 arg1] fcmp d0, d16
+ csel w19, w19, w0, ls + fcmp d0, d16
bhi G_M36522_IG04
- ;; size=128 bbWeight=1 PerfScore 23.00
+ ;; size=140 bbWeight=1 PerfScore 25.00
G_M36522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxth w0, w20
b G_M36522_IG05
- ;; size=4 bbWeight=0.50 PerfScore 0.50
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M36522_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov w0, #2 uxth w1, w20 cmp w1, #0
- beq G_M36522_IG07
+ beq G_M36522_IG09
udiv w0, w0, w1
- ;; size=20 bbWeight=0.50 PerfScore 6.75 -G_M36522_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxth w1, w20 + mneg w0, w0, w1 + add w0, w0, #2 + ;; size=32 bbWeight=0.50 PerfScore 8.25 +G_M36522_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + sxtb w1, w19 + cmp w0, w1 + bhi G_M36522_IG07 + ;; size=12 bbWeight=1 PerfScore 2.00 +G_M36522_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ldr d16, [@RWD08] + fcmp d0, d16 + ;; size=8 bbWeight=0.50 PerfScore 1.50 +G_M36522_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #3 ;; size=4 bbWeight=1 PerfScore 0.50
-G_M36522_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M36522_IG08: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20] ldp fp, lr, [sp], #0x40 ret lr ;; size=16 bbWeight=1 PerfScore 4.00
-G_M36522_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M36522_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_THROWDIVZERO ;; size=4 bbWeight=0 PerfScore 0.00
-G_M36522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M36522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_OVERFLOW brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00 RWD00 dq B3E5A6C0C2213032h ; -1.07789489e-58
+RWD08 dq 0027489EA903E70Eh ; 6.47598595e-308
-; Total bytes of code 212, prolog size 16, PerfScore 40.25, instruction count 53, allocated bytes for code 212 (MethodHash=7dff7155) for method ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
+; Total bytes of code 260, prolog size 16, PerfScore 47.50, instruction count 65, allocated bytes for code 260 (MethodHash=7dff7155) for method ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
; ============================================================ Unwind Info: @@ -153,7 +170,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ Function Length : 65 (0x00041) Actual length = 260 (0x000104)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+46.15%) : 254280.dasm - ILGEN0x4601be46:Method0x9c86375f(ulong,ubyte):int (FullOpts)

@@ -8,19 +8,19 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 3, 3 ) long -> x0 ld-addr-op single-def
-;* V01 arg1 [V01,T01] ( 0, 0 ) ubyte -> zero-ref ld-addr-op single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 ld-addr-op single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V04 loc2 [V04,T04] ( 0, 0 ) short -> zero-ref ;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref
+; V07 tmp1 [V07,T03] ( 2, 2 ) int -> x2
;* V08 tmp2 [V08,T05] ( 0, 0 ) double -> zero-ref ;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref ;* V10 tmp4 [V10 ] ( 0, 0 ) int -> zero-ref ;* V11 tmp5 [V11 ] ( 0, 0 ) long -> zero-ref ;* V12 tmp6 [V12 ] ( 0, 0 ) double -> zero-ref
-;* V13 cse0 [V13,T02] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
+; V13 cse0 [V13,T02] ( 3, 3 ) int -> x1 "CSE - aggressive"
; ; Lcl frame size = 0 @@ -29,22 +29,28 @@ G_M16983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M16983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - movk x1, #0xD1FFAB1E LSL #48 - movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32 - str x1, [x2]
+ movk x2, #0xD1FFAB1E LSL #32 + movk x2, #0xD1FFAB1E LSL #48 + movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + str x2, [x3] + uxtb w1, w1 + mov w2, #4 + movn w3, #0 + cmp w1, #6 + csel w2, w2, w3, ge + cmp w2, w1
sxth w0, w0
- ;; size=36 bbWeight=1 PerfScore 5.00
+ ;; size=60 bbWeight=1 PerfScore 8.00
G_M16983_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 8.50, instruction count 13, allocated bytes for code 52 (MethodHash=0155bda8) for method ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=0155bda8) for method ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
; ============================================================ Unwind Info: @@ -55,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ 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)

+32 (+160.00%) : 254471.dasm - ILGEN0x2dda4eb5:Method0xa084659a():ushort (FullOpts)

@@ -9,8 +9,8 @@ ; ;* V00 loc0 [V00,T02] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1 [V02,T00] ( 0, 0 ) ref -> zero-ref single-def "arr expr" -;* V03 cse0 [V03,T01] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V02 tmp1 [V02,T00] ( 2, 4 ) ref -> x0 single-def "arr expr" +; V03 cse0 [V03,T01] ( 2, 2 ) long -> x0 "CSE - aggressive"
; ; Lcl frame size = 0 @@ -19,14 +19,24 @@ G_M5817_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M5817_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + mov x1, #41 + bl CORINFO_HELP_NEWARR_1_VC + ; gcrRegs +[x0] + ldr d16, [x0, #0x48] + fmov d17, #7.0000 + fcmp d16, d17
mov w0, #100
- ;; size=4 bbWeight=1 PerfScore 0.50
+ ; gcrRegs -[x0] + ;; size=36 bbWeight=1 PerfScore 8.00
G_M5817_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=cc10e946) for method ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 11.50, instruction count 13, allocated bytes for code 52 (MethodHash=cc10e946) for method ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
; ============================================================ Unwind Info: @@ -37,7 +47,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 5 (0x00005) Actual length = 20 (0x000014)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- 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

-32 (-3.98%) : 201442.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)

@@ -32,26 +32,24 @@ ; V20 tmp13 [V20,T12] ( 2, 4 ) ref -> x0 single-def "argument with side effect" ; V21 PSPSym [V21,T17] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" ; V22 cse0 [V22,T15] ( 5, 3 ) byref -> x24 multi-def "CSE - aggressive"
-; V23 cse1 [V23,T04] ( 6, 9.04) long -> x27 hoist multi-def "CSE - aggressive" -; V24 cse2 [V24,T05] ( 6, 9.04) long -> x28 hoist multi-def "CSE - aggressive" -; V25 cse3 [V25,T01] ( 3, 11.88) long -> x0 "CSE - aggressive" -; V26 cse4 [V26,T18] ( 3, 0.12) long -> x14 "CSE - conservative" -; V27 cse5 [V27,T06] ( 6, 8 ) int -> x25 "CSE - aggressive"
+; V23 cse1 [V23,T04] ( 6, 9.04) long -> x2 hoist multi-def "CSE - aggressive" +; V24 cse2 [V24,T05] ( 6, 9.04) long -> registers hoist multi-def "CSE - aggressive" +; V25 cse3 [V25,T01] ( 3, 11.88) long -> x4 "CSE - aggressive" +; V26 cse4 [V26,T18] ( 3, 0.12) long -> x4 "CSE - conservative" +; V27 cse5 [V27,T06] ( 6, 8 ) int -> x0 "CSE - aggressive"
; V28 cse6 [V28,T11] ( 4, 5.04) byref -> registers hoist multi-def "CSE - aggressive"
-; V29 cse7 [V29,T14] ( 4, 3.04) int -> x26 "CSE - aggressive"
+; V29 cse7 [V29,T14] ( 4, 3.04) int -> x11 "CSE - aggressive"
; ; Lcl frame size = 32 G_M1015_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x80]!
+ stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x30] stp x21, x22, [sp, #0x40] stp x23, x24, [sp, #0x50]
- stp x25, x26, [sp, #0x60] - stp x27, x28, [sp, #0x70]
mov fp, sp stp xzr, xzr, [fp, #0x10] // [V10 tmp3], [V09 tmp2]
- add x5, sp, #128
+ add x5, sp, #96
str x5, [fp, #0x28] // [V21 PSPSym] mov x19, x0 ; gcrRegs +[x19] @@ -62,7 +60,7 @@ G_M1015_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {} mov x20, x3 ; gcrRegs +[x20] mov w23, w4
- ;; size=60 bbWeight=1 PerfScore 11.50
+ ;; size=52 bbWeight=1 PerfScore 9.50
G_M1015_IG02: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] @@ -137,57 +135,57 @@ G_M1015_IG03: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs blr x12 ; gcrRegs -[x15] ; byrRegs -[x14]
- ldr w25, [x21, #0x08] - ldr w26, [x20, #0x08] - cmp w25, w26
+ ldr w0, [x21, #0x08] + ldr w11, [x20, #0x08] + cmp w0, w11
bne G_M1015_IG11 mov w1, wzr
- cmp w25, #0
+ cmp w0, #0
ble G_M1015_IG05
- cmp w26, w25
+ cmp w11, w0
blt G_M1015_IG09
- add x26, x21, #16 - ; byrRegs +[x26] - adrp x0, [HIGH RELOC #0xD1FFAB1E] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ldr x27, [x0] - adrp x0, [HIGH RELOC #0xD1FFAB1E] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ldr x28, [x0]
+ add x11, x21, #16 + ; byrRegs +[x11] + adrp x2, [HIGH RELOC #0xD1FFAB1E] + add x2, x2, [LOW RELOC #0xD1FFAB1E] + ldr x2, [x2] + adrp x3, [HIGH RELOC #0xD1FFAB1E] + add x3, x3, [LOW RELOC #0xD1FFAB1E] + ldr x3, [x3]
;; size=168 bbWeight=1 PerfScore 47.50
-G_M1015_IG04: ; bbWeight=3.96, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=5000000 {x24 x26}, byref, isz
+G_M1015_IG04: ; bbWeight=3.96, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1000800 {x11 x24}, byref, isz
; gcrRegs -[x21]
- ubfiz x0, x1, #3, #32 - ldr x11, [x26, x0] - ; gcrRegs +[x11] - add x11, x11, x27 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ldr x11, [x11, #0x30] - ; gcrRegs +[x11] - ; byrRegs -[x11] - ldr x11, [x11, x28] - cbz x11, G_M1015_IG08 - add x11, x20, #16 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ldr x0, [x11, x0] - ; gcrRegs +[x0] - add x0, x0, x27 - ; gcrRegs -[x0] - ; byrRegs +[x0] - ldr x0, [x0, #0x30] - ; gcrRegs +[x0] - ; byrRegs -[x0] - ldr x0, [x0, x28] - cbz x0, G_M1015_IG08
+ ubfiz x4, x1, #3, #32 + ldr x5, [x11, x4] + ; gcrRegs +[x5] + add x5, x5, x2 + ; gcrRegs -[x5] + ; byrRegs +[x5] + ldr x5, [x5, #0x30] + ; gcrRegs +[x5] + ; byrRegs -[x5] + ldr x5, [x5, x3] + cbz x5, G_M1015_IG08 + add x5, x20, #16 + ; gcrRegs -[x5] + ; byrRegs +[x5] + ldr x4, [x5, x4] + ; gcrRegs +[x4] + add x4, x4, x2 + ; gcrRegs -[x4] + ; byrRegs +[x4] + ldr x4, [x4, #0x30] + ; gcrRegs +[x4] + ; byrRegs -[x4] + ldr x4, [x4, x3] + cbz x4, G_M1015_IG08
add w1, w1, #1
- cmp w25, w1
+ cmp w0, w1
bgt G_M1015_IG04 ;; size=60 bbWeight=3.96 PerfScore 97.02 G_M1015_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=1000000 {x24}, byref, isz
- ; gcrRegs -[x0 x20] - ; byrRegs -[x11 x26]
+ ; gcrRegs -[x4 x20] + ; byrRegs -[x5 x11]
mov x0, x19 ; gcrRegs +[x0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -202,9 +200,9 @@ G_M1015_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=1000000 ;; size=28 bbWeight=1 PerfScore 7.00 G_M1015_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1000000 {x24}, byref ; gcrRegs -[x15 x22]
- adrp x14, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x14, x14, [LOW RELOC #0xD1FFAB1E] - ldr x14, [x14]
+ adrp x15, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x15, x15, [LOW RELOC #0xD1FFAB1E] + ldr x14, [x15]
ldr x15, [x14] ; gcrRegs +[x15] ;; size=16 bbWeight=0.50 PerfScore 3.50 @@ -239,49 +237,49 @@ G_M1015_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref G_M1015_IG09: ; bbWeight=0.04, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=1000000 {x24}, byref, isz ; gcrRegs +[x19-x22] ; byrRegs +[x24]
- add x15, x21, #16 - ; byrRegs +[x15] - ubfiz x14, x1, #3, #32 - ldr x15, [x15, x14] - ; gcrRegs +[x15] - ; byrRegs -[x15] - adrp x12, [HIGH RELOC #0xD1FFAB1E] - add x12, x12, [LOW RELOC #0xD1FFAB1E] - ldr x27, [x12] - add x15, x15, x27 - ; gcrRegs -[x15] - ; byrRegs +[x15] - ldr x15, [x15, #0x30] - ; gcrRegs +[x15] - ; byrRegs -[x15] - adrp x12, [HIGH RELOC #0xD1FFAB1E] - add x12, x12, [LOW RELOC #0xD1FFAB1E] - ldr x28, [x12] - ldr x15, [x15, x28] - cbz x15, G_M1015_IG08 - cmp w1, w26
+ add x2, x21, #16 + ; byrRegs +[x2] + ubfiz x4, x1, #3, #32 + ldr x3, [x2, x4] + ; gcrRegs +[x3] + adrp x2, [HIGH RELOC #0xD1FFAB1E] + ; byrRegs -[x2] + add x2, x2, [LOW RELOC #0xD1FFAB1E] + ldr x2, [x2] + add x3, x3, x2 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ldr x3, [x3, #0x30] + ; gcrRegs +[x3] + ; byrRegs -[x3] + adrp x5, [HIGH RELOC #0xD1FFAB1E] + add x5, x5, [LOW RELOC #0xD1FFAB1E] + ldr x5, [x5] + ldr x3, [x3, x5] + cbz x3, G_M1015_IG08 + cmp w1, w11
bhs G_M1015_IG10
- add x15, x20, #16 - ; gcrRegs -[x15] - ; byrRegs +[x15] - ldr x14, [x15, x14] - ; gcrRegs +[x14] - add x14, x14, x27 - ; gcrRegs -[x14] - ; byrRegs +[x14] - ldr x14, [x14, #0x30] - ; gcrRegs +[x14] - ; byrRegs -[x14] - ldr x14, [x14, x28] - cbz x14, G_M1015_IG08
+ add x3, x20, #16 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ldr x3, [x3, x4] + ; gcrRegs +[x3] + ; byrRegs -[x3] + add x2, x3, x2 + ; byrRegs +[x2] + ldr x2, [x2, #0x30] + ; gcrRegs +[x2] + ; byrRegs -[x2] + ldr x2, [x2, x5] + cbz x2, G_M1015_IG08
add w1, w1, #1
- cmp w25, w1
+ cmp w0, w1
bgt G_M1015_IG09 b G_M1015_IG05 ;; size=100 bbWeight=0.04 PerfScore 1.42 G_M1015_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14 x19-x22] - ; byrRegs -[x15 x24]
+ ; gcrRegs -[x2-x3 x19-x22] + ; byrRegs -[x24]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address add x0, x0, [LOW RELOC #0xD1FFAB1E] ldr x0, [x0] @@ -319,24 +317,20 @@ G_M1015_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000000 {x24}, b ; gcr arg pop 0 ;; size=32 bbWeight=1 PerfScore 13.50 G_M1015_IG13: ; bbWeight=1, epilog, nogc, extend
- ldp x27, x28, [sp, #0x70] - ldp x25, x26, [sp, #0x60]
ldp x23, x24, [sp, #0x50] ...

-24 (-2.86%) : 162384.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)

@@ -11,12 +11,12 @@ ; ; V00 this [V00,T08] ( 8, 15.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.Text.SourceText> ; V01 arg1 [V01,T13] ( 6, 8 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.Text.SourceText>
-; V02 loc0 [V02,T11] ( 7, 10.52) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>> -; V03 loc1 [V03,T10] ( 9, 10.68) ref -> [fp+0x10] class-hnd EH-live spill-single-def <<unknown class>>
+; V02 loc0 [V02,T11] ( 7, 10.52) ref -> [fp+0x20] class-hnd EH-live spill-single-def <<unknown class>> +; V03 loc1 [V03,T10] ( 9, 10.68) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>>
; V04 loc2 [V04,T03] ( 7, 24.50) int -> x23 ; V05 loc3 [V05,T02] ( 9, 40 ) int -> x26
-; V06 loc4 [V06,T00] ( 11, 68.32) int -> x1 -; V07 loc5 [V07,T21] ( 3, 1.50) ubyte -> x19
+; V06 loc4 [V06,T00] ( 11, 68.32) int -> x0 +; V07 loc5 [V07,T21] ( 3, 1.50) ubyte -> x23
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V09 tmp1 [V09 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" ; V10 tmp2 [V10,T15] ( 3, 8 ) int -> x26 "Inline return value spill temp" @@ -28,33 +28,32 @@ ; V16 tmp8 [V16,T25] ( 2, 0 ) ref -> x0 single-def "argument with side effect" ; V17 tmp9 [V17,T19] ( 2, 2 ) ref -> x0 single-def "argument with side effect" ; V18 tmp10 [V18,T20] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V19 PSPSym [V19,T22] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V19 PSPSym [V19,T22] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
; V20 cse0 [V20,T16] ( 8, 2.50) byref -> x22 multi-def "CSE - aggressive"
-; V21 cse1 [V21,T01] ( 3, 47.52) long -> x0 "CSE - aggressive" -; V22 cse2 [V22,T23] ( 3, 0.48) long -> x0 "CSE - conservative" -; V23 cse3 [V23,T06] ( 4, 18.02) byref -> x24 hoist multi-def "CSE - aggressive" -; V24 cse4 [V24,T07] ( 4, 18.02) byref -> x27 hoist multi-def "CSE - aggressive"
+; V21 cse1 [V21,T01] ( 3, 47.52) long -> x4 "CSE - aggressive" +; V22 cse2 [V22,T23] ( 3, 0.48) long -> x4 "CSE - conservative" +; V23 cse3 [V23,T06] ( 4, 18.02) byref -> x11 hoist multi-def "CSE - aggressive" +; V24 cse4 [V24,T07] ( 4, 18.02) byref -> x3 hoist multi-def "CSE - aggressive"
; V25 cse5 [V25,T12] ( 4, 10.16) int -> x25 "CSE - aggressive" ; V26 cse6 [V26,T14] ( 6, 10 ) long -> x21 "CSE - aggressive" ; V27 cse7 [V27,T09] ( 3, 12 ) long -> x24 "CSE - aggressive" ;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M16886_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x28] - stp x21, x22, [sp, #0x38] - stp x23, x24, [sp, #0x48] - stp x25, x26, [sp, #0x58] - str x27, [sp, #0x68]
+ stp x19, x20, [sp, #0x30] + stp x21, x22, [sp, #0x40] + stp x23, x24, [sp, #0x50] + stp x25, x26, [sp, #0x60]
mov fp, sp add x2, sp, #112
- str x2, [fp, #0x20] // [V19 PSPSym]
+ str x2, [fp, #0x28] // [V19 PSPSym]
mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; gcrRegs +[x20]
- ;; size=44 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M16886_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz cbnz x20, G_M16886_IG05 ;; size=4 bbWeight=1 PerfScore 1.00 @@ -63,14 +62,13 @@ G_M16886_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M16886_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldr x27, [sp, #0x68] - ldp x25, x26, [sp, #0x58] - ldp x23, x24, [sp, #0x48] - ldp x21, x22, [sp, #0x38] - ldp x19, x20, [sp, #0x28]
+ ldp x25, x26, [sp, #0x60] + ldp x23, x24, [sp, #0x50] + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x70 ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M16886_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[x19-x20] cmp x19, x20 @@ -78,14 +76,13 @@ G_M16886_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 mov w0, #1 ;; size=12 bbWeight=0.50 PerfScore 1.00 G_M16886_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x27, [sp, #0x68] - ldp x25, x26, [sp, #0x58] - ldp x23, x24, [sp, #0x48] - ldp x21, x22, [sp, #0x38] - ldp x19, x20, [sp, #0x28]
+ ldp x25, x26, [sp, #0x60] + ldp x23, x24, [sp, #0x50] + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x70 ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz mov x0, x19 ; gcrRegs +[x0] @@ -124,7 +121,7 @@ G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 ldr x1, [x11] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x18] // [V02 loc0]
+ str x0, [fp, #0x20] // [V02 loc0]
; GC ptr vars +{V02} ldr x0, [x22, #0xD1FFAB1E] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -133,7 +130,7 @@ G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 ldr x2, [x11] blr x2 ; gcr arg pop 0
- str x0, [fp, #0x10] // [V03 loc1]
+ str x0, [fp, #0x18] // [V03 loc1]
; GC ptr vars +{V03} ;; size=132 bbWeight=0.50 PerfScore 22.75 G_M16886_IG08: ; bbWeight=0.50, gcVars=0000000000000C00 {V02 V03}, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, gcvars, byref, isz @@ -158,7 +155,7 @@ G_M16886_IG09: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs -[x0] ; gcr arg pop 0 sub w24, w0, w23
- ldr x1, [fp, #0x18] // [V02 loc0]
+ ldr x1, [fp, #0x20] // [V02 loc0]
; gcrRegs +[x1] ldr w25, [x1, #0x08] sxtw w26, w25 @@ -177,7 +174,7 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs +[x0] mov w4, w26 mov w1, w23
- ldr x2, [fp, #0x18] // [V02 loc0]
+ ldr x2, [fp, #0x20] // [V02 loc0]
; gcrRegs +[x2] adrp x24, [HIGH RELOC #0xD1FFAB1E] // function address add x24, x24, [LOW RELOC #0xD1FFAB1E] @@ -191,7 +188,7 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs +[x0] mov w4, w26 mov w1, w23
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2] mov x11, x24 mov w3, wzr @@ -199,45 +196,45 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 blr x5 ; gcrRegs -[x0 x2] ; gcr arg pop 0
- mov w1, wzr
+ mov w0, wzr
cmp w26, #0 ble G_M16886_IG15 ;; size=84 bbWeight=4 PerfScore 80.00 G_M16886_IG13: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2] cbz x2, G_M16886_IG18 cmp w25, w26 blt G_M16886_IG18
- ldr w0, [x2, #0x08] - cmp w0, w26 - blt G_M16886_IG18 - ldr x3, [fp, #0x18] // [V02 loc0] - ; gcrRegs +[x3] - add x24, x3, #16 - ; byrRegs +[x24] - add x27, x2, #16 - ; byrRegs +[x27] - ;; size=40 bbWeight=2 PerfScore 24.00 -G_M16886_IG14: ; bbWeight=15.84, gcrefRegs=180000 {x19 x20}, byrefRegs=9400000 {x22 x24 x27}, byref, isz - ; gcrRegs -[x2-x3] - ubfiz x0, x1, #1, #32 - ldrh w11, [x24, x0] - ldrh w0, [x27, x0] - cmp w11, w0 - bne G_M16886_IG20 - add w1, w1, #1
+ ldr w1, [x2, #0x08]
cmp w1, w26
+ blt G_M16886_IG18 + ldr x1, [fp, #0x20] // [V02 loc0] + ; gcrRegs +[x1] + add x11, x1, #16 + ; byrRegs +[x11] + add x3, x2, #16 + ; byrRegs +[x3] + ;; size=40 bbWeight=2 PerfScore 24.00 +G_M16886_IG14: ; bbWeight=15.84, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=400808 {x3 x11 x22}, byref, isz + ubfiz x4, x0, #1, #32 + ldrh w5, [x11, x4] + ldrh w4, [x3, x4] + cmp w5, w4 + bne G_M16886_IG20 + add w0, w0, #1 + cmp w0, w26
blt G_M16886_IG14 ;; size=32 bbWeight=15.84 PerfScore 166.32 G_M16886_IG15: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
- ; byrRegs -[x24 x27]
+ ; gcrRegs -[x1-x2] + ; byrRegs -[x3 x11]
add w23, w23, w26 mov x0, x19 ; gcrRegs +[x0] mov x11, x21
- ldr x1, [x11] - blr x1
+ ldr x3, [x11] + blr x3
; gcrRegs -[x0] ; gcr arg pop 0 cmp w0, w23 @@ -245,9 +242,9 @@ G_M16886_IG15: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ;; size=28 bbWeight=4 PerfScore 28.00 G_M16886_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref ; gcrRegs -[x19-x20]
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2]
- mov w19, #1
+ mov w23, #1
b G_M16886_IG21 ;; size=12 bbWeight=0.50 PerfScore 1.75 G_M16886_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -262,38 +259,39 @@ G_M16886_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref G_M16886_IG18: ; bbWeight=0.02, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=400000 {x22}, byref ; gcrRegs +[x2 x19-x20] ; byrRegs +[x22]
- ldr x3, [fp, #0x18] // [V02 loc0] - ; gcrRegs +[x3] - add x24, x3, #16 - ; byrRegs +[x24] - add x27, x2, #16 - ; byrRegs +[x27]
+ ldr x1, [fp, #0x20] // [V02 loc0] + ; gcrRegs +[x1] + add x11, x1, #16 + ; byrRegs +[x11] + add x3, x2, #16 + ; byrRegs +[x3]
;; size=12 bbWeight=0.02 PerfScore 0.06
-G_M16886_IG19: ; bbWeight=0.16, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=9400000 {x22 x24 x27}, byref, isz - ; gcrRegs -[x3] - cmp w1, w25
+G_M16886_IG19: ; bbWeight=0.16, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=400808 {x3 x11 x22}, byref, isz
...

-12 (-2.13%) : 62762.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=17A80000 {x19 x21 x23 x24 x25 x26 str w3, [fp, #0x30] // [V11 loc1] mov w4, wzr cmp w2, #0
- ble G_M49290_IG11 - cbz x23, G_M49290_IG10
+ ble G_M49290_IG10 + cbz x23, G_M49290_IG09
ldr wzr, [x24, #0x08] ldr w0, [x23, #0x08] cmp w0, w2
- blt G_M49290_IG12
+ blt G_M49290_IG11
;; size=48 bbWeight=1 PerfScore 16.00 G_M49290_IG03: ; bbWeight=3.96, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz mov x0, x22 @@ -150,30 +150,27 @@ G_M49290_IG07: ; bbWeight=3.96, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x add w3, w3, #1 ldr w4, [fp, #0x34] // [V10 loc0] cmp w3, w4
- blt G_M49290_IG09 - ;; size=20 bbWeight=3.96 PerfScore 23.76
+ mov w4, w3 + blt G_M49290_IG03 + ;; size=24 bbWeight=3.96 PerfScore 25.74
G_M49290_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] ldr w3, [fp, #0x30] // [V11 loc1]
- b G_M49290_IG18
+ b G_M49290_IG16
;; size=8 bbWeight=1 PerfScore 3.00
-G_M49290_IG09: ; bbWeight=1.98, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref
+G_M49290_IG09: ; bbWeight=0.50, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27]
- mov w4, w3 - b G_M49290_IG03 - ;; size=8 bbWeight=1.98 PerfScore 2.97 -G_M49290_IG10: ; bbWeight=0.50, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - b G_M49290_IG12
+ b G_M49290_IG11
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M49290_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] ldr w3, [fp, #0x30] // [V11 loc1]
- b G_M49290_IG18
+ b G_M49290_IG16
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M49290_IG12: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
+G_M49290_IG11: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27] mov x0, x22 @@ -185,9 +182,9 @@ G_M49290_IG12: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x ldr x5, [x11] blr x5 ; byrRegs -[x0]
- cbnz w0, G_M49290_IG22
+ cbnz w0, G_M49290_IG19
;; size=32 bbWeight=0.04 PerfScore 0.32
-G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
+G_M49290_IG12: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
add x0, x24, #16 ; byrRegs +[x0] ldr w8, [fp, #0x2C] // [V12 loc2] @@ -196,7 +193,7 @@ G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x ldr w0, [x23, #0x08] ; byrRegs -[x0] cmp w8, w0
- bhs G_M49290_IG23
+ bhs G_M49290_IG20
mov w0, #24 mov x1, #16 str w8, [fp, #0x2C] // [V12 loc2] @@ -204,13 +201,13 @@ G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x add x0, x23, x0 ; byrRegs +[x0] ;; size=44 bbWeight=0.02 PerfScore 0.35
-G_M49290_IG14: ; bbWeight=0.02, nogc, extend
+G_M49290_IG13: ; bbWeight=0.02, nogc, extend
ldp x1, x2, [x0] stp x1, x2, [fp, #0x10] ldr x1, [x0, #0x10] str x1, [fp, #0x20] ;; size=16 bbWeight=0.02 PerfScore 0.18
-G_M49290_IG15: ; bbWeight=0.02, isz, extend
+G_M49290_IG14: ; bbWeight=0.02, isz, extend
str x28, [sp] // [V13 OutArgs] mov x0, x19 ; gcrRegs +[x0] @@ -232,26 +229,24 @@ G_M49290_IG15: ; bbWeight=0.02, isz, extend blr x9 ; gcrRegs -[x0 x2-x3 x5-x6] ; byrRegs -[x1 x7]
- cbnz w0, G_M49290_IG21 - mov w0, wzr - ;; size=56 bbWeight=0.02 PerfScore 0.22 -G_M49290_IG16: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz - ldr w8, [fp, #0x2C] // [V12 loc2] - add w8, w8, #1
+ ldr w3, [fp, #0x30] // [V11 loc1] + cbnz w0, G_M49290_IG15 + mov w3, wzr + ;; size=60 bbWeight=0.02 PerfScore 0.26 +G_M49290_IG15: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz + ldr w0, [fp, #0x2C] // [V12 loc2] + add w0, w0, #1
ldr w2, [fp, #0x34] // [V10 loc0]
- cmp w8, w2 - mov w4, w8 - blt G_M49290_IG20
+ cmp w0, w2 + mov w4, w0 + blt G_M49290_IG18
;; size=24 bbWeight=0.04 PerfScore 0.26
-G_M49290_IG17: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27]
- mov w3, w0 - ;; size=4 bbWeight=0.02 PerfScore 0.01 -G_M49290_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w3 ;; size=4 bbWeight=1 PerfScore 0.50
-G_M49290_IG19: ; bbWeight=1, epilog, nogc, extend
+G_M49290_IG17: ; bbWeight=1, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -261,21 +256,17 @@ G_M49290_IG19: ; bbWeight=1, epilog, nogc, extend add sp, sp, #144 ret lr ;; size=32 bbWeight=1 PerfScore 7.50
-G_M49290_IG20: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, gcvars, byref
+G_M49290_IG18: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, gcvars, byref
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27]
- str w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG12
+ str w3, [fp, #0x30] // [V11 loc1] + b G_M49290_IG11
;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M49290_IG21: ; bbWeight=0.01, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - ldr w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG16 - ;; size=8 bbWeight=0.01 PerfScore 0.03 -G_M49290_IG22: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - ldr w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG16
+G_M49290_IG19: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref + ldr w3, [fp, #0x30] // [V11 loc1] + b G_M49290_IG15
;; size=8 bbWeight=0.02 PerfScore 0.06
-G_M49290_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address @@ -285,7 +276,7 @@ G_M49290_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_unix #0 ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 40, PerfScore 165.27, instruction count 141, allocated bytes for code 564 (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 552, prolog size 40, PerfScore 164.28, instruction count 138, allocated bytes for code 552 (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: @@ -296,7 +287,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 141 (0x0008d) Actual length = 564 (0x000234)
+ Function Length : 138 (0x0008a) Actual length = 552 (0x000228)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+3.98%) : 219954.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)

@@ -18,41 +18,42 @@ ; V06 loc4 [V06,T03] ( 3, 48 ) ref -> x26 class-hnd <System.Diagnostics.Process> ; V07 loc5 [V07,T17] ( 2, 2 ) ubyte -> [fp+0x24] do-not-enreg[Z] EH-live ; V08 loc6 [V08,T14] ( 6, 6 ) ref -> x1 class-hnd <System.Diagnostics.Process[]>
-; V09 loc7 [V09,T02] ( 10, 66 ) int -> x19
+; V09 loc7 [V09,T02] ( 10, 66 ) int -> x25
;* V10 loc8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Diagnostics.Process> ;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V12 tmp1 [V12,T16] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ; V13 tmp2 [V13,T04] ( 2, 32 ) ref -> x0 "argument with side effect" ; V14 PSPSym [V14,T18] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[V] "PSPSym" ; V15 cse0 [V15,T00] ( 6, 98 ) long -> x24 hoist multi-def "CSE - aggressive"
-; V16 cse1 [V16,T08] ( 4, 18 ) byref -> x21 hoist multi-def "CSE - aggressive" -; V17 cse2 [V17,T07] ( 6, 20 ) int -> x20 multi-def "CSE - aggressive"
+; V16 cse1 [V16,T08] ( 4, 18 ) byref -> x27 hoist multi-def "CSE - aggressive" +; V17 cse2 [V17,T07] ( 6, 20 ) int -> x26 multi-def "CSE - aggressive"
; V18 cse3 [V18,T01] ( 2, 72 ) long -> x25 hoist "CSE - aggressive" ; V19 cse4 [V19,T10] ( 3, 18 ) long -> x21 "CSE - aggressive"
-; V20 cse5 [V20,T09] ( 4, 18 ) long -> x22 hoist multi-def "CSE - aggressive"
+; V20 cse5 [V20,T09] ( 4, 18 ) long -> x28 hoist multi-def "CSE - aggressive"
; V21 cse6 [V21,T12] ( 2, 9 ) long -> x20 hoist "CSE - aggressive" ; V22 cse7 [V22,T13] ( 2, 9 ) long -> x23 hoist "CSE - aggressive" ; ; Lcl frame size = 64 G_M8719_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x90]!
+ stp fp, lr, [sp, #-0xA0]!
stp x19, x20, [sp, #0x50] stp x21, x22, [sp, #0x60] stp x23, x24, [sp, #0x70] stp x25, x26, [sp, #0x80]
+ stp x27, x28, [sp, #0x90]
mov fp, sp add x9, fp, #24 movi v16.16b, #0 stp q16, q16, [x9] stp xzr, xzr, [x9, #0x20]
- add x2, sp, #144
+ add x2, sp, #160
str x2, [fp, #0x48] // [V14 PSPSym] mov x20, x0 ; gcrRegs +[x20] mov x19, x1 ; gcrRegs +[x19]
- ;; size=56 bbWeight=1 PerfScore 11.00
+ ;; size=60 bbWeight=1 PerfScore 12.00
G_M8719_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz mov x0, x20 ; gcrRegs +[x0] @@ -69,13 +70,14 @@ G_M8719_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {} mov w0, #1 ;; size=36 bbWeight=1 PerfScore 8.00 G_M8719_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr add x0, x0, [LOW RELOC #0xD1FFAB1E] @@ -224,32 +226,32 @@ G_M8719_IG15: ; bbWeight=1, nogc, extend G_M8719_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ldr x1, [fp, #0x18] // [V02 loc0] ; gcrRegs +[x1]
- mov w19, wzr - ldr w20, [x1, #0x08] - cmp w20, #0
+ mov w25, wzr + ldr w26, [x1, #0x08] + cmp w26, #0
ble G_M8719_IG23
- add x21, x1, #16 - ; byrRegs +[x21] - adrp x22, [HIGH RELOC #0xD1FFAB1E] - add x22, x22, [LOW RELOC #0xD1FFAB1E]
+ add x27, x1, #16 + ; byrRegs +[x27] + adrp x28, [HIGH RELOC #0xD1FFAB1E] + add x28, x28, [LOW RELOC #0xD1FFAB1E]
;; size=32 bbWeight=1 PerfScore 8.50
-G_M8719_IG17: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M8719_IG17: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000000 {x27}, gcvars, byref, isz
; gcrRegs -[x1] ; GC ptr vars -{V02}
- ldr x0, [x21, w19, UXTW #3]
+ ldr x0, [x27, w25, UXTW #3]
; gcrRegs +[x0]
- mov x11, x22
+ mov x11, x28
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- add w19, w19, #1 - cmp w20, w19
+ add w25, w25, #1 + cmp w26, w25
bgt G_M8719_IG17 ;; size=32 bbWeight=8 PerfScore 100.00 G_M8719_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x21]
+ ; byrRegs -[x27]
b G_M8719_IG23 ;; size=4 bbWeight=1 PerfScore 1.00 G_M8719_IG19: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref @@ -265,33 +267,36 @@ G_M8719_IG21: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {} ldr w0, [fp, #0x24] // [V07 loc5] ;; size=4 bbWeight=1 PerfScore 2.00 G_M8719_IG22: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG23: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, wzr ;; size=4 bbWeight=1 PerfScore 0.50 G_M8719_IG24: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG25: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20] stp x21, x22, [sp, #0x30] stp x23, x24, [sp, #0x40] stp x25, x26, [sp, #0x50]
- add x3, fp, #144
+ stp x27, x28, [sp, #0x60] + add x3, fp, #160
str x3, [sp, #0x18]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M8719_IG26: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars +{V02} adrp x1, [HIGH RELOC #0xD1FFAB1E] // System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Process] @@ -306,71 +311,74 @@ G_M8719_IG26: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 10.00 G_M8719_IG27: ; bbWeight=1, funclet epilog, nogc, extend
+ ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50] ldp x23, x24, [sp, #0x40] ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=24 bbWeight=1 PerfScore 16.00
+ ;; size=28 bbWeight=1 PerfScore 19.00
G_M8719_IG28: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20] stp x21, x22, [sp, #0x30] stp x23, x24, [sp, #0x40] stp x25, x26, [sp, #0x50]
- add x3, fp, #144
+ stp x27, x28, [sp, #0x60] + add x3, fp, #160
str x3, [sp, #0x18]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M8719_IG29: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz ldr x1, [fp, #0x18] // [V02 loc0] ; gcrRegs +[x1]
- mov w19, wzr - ldr w20, [x1, #0x08] - cmp w20, #0
+ mov w25, wzr + ldr w26, [x1, #0x08] + cmp w26, #0
ble G_M8719_IG31
- add x21, x1, #16 - ; byrRegs +[x21] - adrp x22, [HIGH RELOC #0xD1FFAB1E] - add x22, x22, [LOW RELOC #0xD1FFAB1E]
+ add x27, x1, #16 + ; byrRegs +[x27] + adrp x28, [HIGH RELOC #0xD1FFAB1E] + add x28, x28, [LOW RELOC #0xD1FFAB1E]
;; size=32 bbWeight=1 PerfScore 8.50
-G_M8719_IG30: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M8719_IG30: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000000 {x27}, gcvars, byref, isz
; gcrRegs -[x1] ; GC ptr vars -{V02}
- ldr x0, [x21, w19, UXTW #3]
+ ldr x0, [x27, w25, UXTW #3]
; gcrRegs +[x0]
- mov x11, x22
+ mov x11, x28
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- add w19, w19, #1 - cmp w20, w19
+ add w25, w25, #1 + cmp w26, w25
bgt G_M8719_IG30 ;; size=32 bbWeight=8 PerfScore 100.00 G_M8719_IG31: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
- ; byrRegs -[x21]
+ ; byrRegs -[x27] + ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50] ldp x23, x24, [sp, #0x40] ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=24 bbWeight=1 PerfScore 16.00
+ ;; size=28 bbWeight=1 PerfScore 19.00
-; Total bytes of code 804, prolog size 56, PerfScore 1434.00, instruction count 201, allocated bytes for code 804 (MethodHash=4aa4ddf0) for method System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
+; Total bytes of code 836, prolog size 60, PerfScore 1446.00, instruction count 209, allocated bytes for code 836 (MethodHash=4aa4ddf0) for method System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0 ...

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

@@ -23,14 +23,14 @@ G_M12753_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ;; 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_IG07
;; 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_IG05
cmp w11, #188
- bne G_M12753_IG04
+ bne G_M12753_IG07
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] @@ -41,14 +41,10 @@ G_M12753_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ;; size=44 bbWeight=4 PerfScore 60.00 G_M12753_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- mov x0, xzr
+ b G_M12753_IG07 + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M12753_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; 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
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] @@ -56,12 +52,21 @@ 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_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M12753_IG06: ; bbWeight=0.50, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.50 PerfScore 1.00 +G_M12753_IG07: ; 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_IG08: ; 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 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 100, prolog size 8, PerfScore 69.25, instruction count 25, allocated bytes for code 100 (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 : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+4.30%) : 176594.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)

@@ -13,55 +13,56 @@ ; V01 arg1 [V01,T00] ( 33, 83.50) int -> x1 ; V02 arg2 [V02,T10] ( 5, 3.50) byref -> x2 single-def ; V03 loc0 [V03,T16] ( 3, 2 ) int -> x3
-; V04 loc1 [V04,T17] ( 2, 1 ) int -> x5
+; V04 loc1 [V04,T17] ( 2, 1 ) int -> x4
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V07 tmp2 [V07,T03] ( 3, 24 ) ushort -> x3 "Inlining Arg"
+; V07 tmp2 [V07,T03] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V08 tmp3 [V08,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T04] ( 3, 24 ) ushort -> x5 "Inlining Arg"
+; V09 tmp4 [V09,T04] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V10 tmp5 [V10,T18] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V11 tmp6 [V11,T15] ( 3, 3 ) ushort -> x6 "Inlining Arg"
+; V11 tmp6 [V11,T15] ( 3, 3 ) ushort -> x11 "Inlining Arg"
;* V12 tmp7 [V12,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V13 tmp8 [V13,T05] ( 3, 24 ) ushort -> x6 "Inlining Arg"
+; V13 tmp8 [V13,T05] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V14 tmp9 [V14,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V15 tmp10 [V15,T06] ( 3, 24 ) ushort -> x7 "Inlining Arg" -; V16 cse0 [V16,T09] ( 3, 12 ) int -> x6 "CSE - aggressive" -; V17 cse1 [V17,T08] ( 5, 13 ) int -> registers multi-def "CSE - aggressive" -; V18 cse2 [V18,T01] ( 13, 46.50) int -> x11 hoist "CSE - aggressive" -; V19 cse3 [V19,T02] ( 9, 25.50) byref -> registers multi-def "CSE - aggressive"
+; V15 tmp10 [V15,T06] ( 3, 24 ) ushort -> x5 "Inlining Arg" +; V16 cse0 [V16,T09] ( 3, 12 ) int -> x11 "CSE - aggressive" +; V17 cse1 [V17,T08] ( 5, 13 ) int -> x11 multi-def "CSE - aggressive" +; V18 cse2 [V18,T01] ( 13, 46.50) int -> x19 hoist "CSE - aggressive" +; V19 cse3 [V19,T02] ( 9, 25.50) byref -> x20 multi-def "CSE - aggressive"
; ; Lcl frame size = 0 G_M63854_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M63854_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref ; gcrRegs +[x0] ; byrRegs +[x2]
- ldr w11, [x0, #0x08]
+ ldr w19, [x0, #0x08]
b G_M63854_IG04 ;; size=8 bbWeight=1 PerfScore 4.00 G_M63854_IG03: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00 G_M63854_IG04: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w11, w1
+ cmp w19, w1
ble G_M63854_IG06 ;; size=8 bbWeight=8 PerfScore 12.00 G_M63854_IG05: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- add x3, x0, #12 - ; byrRegs +[x3] - ldrh w3, [x3, w1, UXTW #2] - ; byrRegs -[x3] - cmp w3, #32
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG03
- cmp w3, #9
+ cmp w11, #9
beq G_M63854_IG03 ;; size=32 bbWeight=4 PerfScore 32.00 G_M63854_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
+ ; byrRegs -[x20]
sxtw w3, w1 b G_M63854_IG08 ;; size=8 bbWeight=1 PerfScore 1.50 @@ -69,25 +70,25 @@ G_M63854_IG07: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, by add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00 G_M63854_IG08: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w11, w1
+ cmp w19, w1
ble G_M63854_IG10 ;; size=8 bbWeight=8 PerfScore 12.00 G_M63854_IG09: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- add x4, x0, #12 - ; byrRegs +[x4] - ldrh w5, [x4, w1, UXTW #2] - cmp w5, #61
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #61
beq G_M63854_IG10
- cmp w5, #32
+ cmp w11, #32
beq G_M63854_IG10
- cmp w5, #9
+ cmp w11, #9
bne G_M63854_IG07 ;; size=40 bbWeight=4 PerfScore 38.00 G_M63854_IG10: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- ; byrRegs -[x4] - cmp w11, w1
+ ; byrRegs -[x20] + cmp w19, w1
bne G_M63854_IG13 ;; size=8 bbWeight=4 PerfScore 6.00 G_M63854_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref @@ -97,78 +98,80 @@ G_M63854_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, b ; gcrRegs +[x0] ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M63854_IG12: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M63854_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, gcvars, byref, isz
- sub w5, w1, w3 - cmp w1, w11
+ sub w4, w1, w3 + cmp w1, w19
bhs G_M63854_IG23
- add x4, x0, #12 - ; byrRegs +[x4] - ldrh w6, [x4, w1, UXTW #2] - cmp w6, #32
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG15
- cmp w6, #9
+ cmp w11, #9
bne G_M63854_IG20 b G_M63854_IG15 ;; size=40 bbWeight=0.50 PerfScore 4.75
-G_M63854_IG14: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref
+G_M63854_IG14: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref
add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00
-G_M63854_IG15: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG15: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
ble G_M63854_IG16
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - cmp w6, #32
+ ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG14
- cmp w6, #9
+ cmp w11, #9
beq G_M63854_IG14 ;; size=36 bbWeight=4 PerfScore 36.00
-G_M63854_IG16: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG16: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
beq G_M63854_IG17
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - cmp w6, #61
+ ldrh w5, [x20, w1, UXTW #2] + cmp w5, #61
beq G_M63854_IG20 ;; size=28 bbWeight=0.50 PerfScore 3.75 G_M63854_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref ; gcrRegs -[x0]
- ; byrRegs -[x4]
+ ; byrRegs -[x20]
str w1, [x2] mov x0, xzr ; gcrRegs +[x0] ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M63854_IG18: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00 -G_M63854_IG19: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, gcvars, byref - ; byrRegs +[x4]
+ ;; size=12 bbWeight=0.50 PerfScore 1.50 +G_M63854_IG19: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, gcvars, byref + ; byrRegs +[x20]
add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00
-G_M63854_IG20: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG20: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
ble G_M63854_IG21
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - sxtw w7, w6 - cmp w7, #32
+ ldrh w11, [x20, w1, UXTW #2] + sxtw w5, w11 + cmp w5, #32
beq G_M63854_IG19
- cmp w7, #9
+ cmp w5, #9
beq G_M63854_IG19
- cmp w6, #61
+ cmp w11, #61
beq G_M63854_IG19 ;; size=48 bbWeight=4 PerfScore 44.00 G_M63854_IG21: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
- ; byrRegs -[x4]
+ ; byrRegs -[x20]
str w1, [x2]
- mov w2, w5
+ mov w2, w4
; byrRegs -[x2] mov w1, w3 adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -176,10 +179,11 @@ G_M63854_IG21: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, ldr x3, [x11] ;; size=24 bbWeight=0.50 PerfScore 3.00 G_M63854_IG22: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3 ; gcr arg pop 0
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M63854_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address @@ -190,18 +194,18 @@ G_M63854_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { brk_unix #0 ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 372, prolog size 8, PerfScore 207.00, instruction count 93, allocated bytes for code 372 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
...

libraries.pmi.osx.arm64.checked.mch

-4 (-3.57%) : 63058.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-4 (-3.57%) : 67066.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)

@@ -13,8 +13,8 @@ ; V02 loc1 [V02,T01] ( 5, 17 ) int -> x1 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+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,T00] ( 6, 44 ) ushort -> x0 "Inlining Arg" -; V06 cse0 [V06,T04] ( 2, 5 ) byref -> x3 hoist "CSE - aggressive"
+; V05 tmp2 [V05,T00] ( 6, 44 ) ushort -> x3 "Inlining Arg" +; V06 cse0 [V06,T04] ( 2, 5 ) byref -> x0 hoist "CSE - aggressive"
; V07 cse1 [V07,T02] ( 3, 6 ) int -> x2 "CSE - aggressive" ; ; Lcl frame size = 0 @@ -28,51 +28,48 @@ G_M7834_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref mov w1, wzr ldr w2, [x0, #0x08] cmp w2, #0
- ble G_M7834_IG09 - add x3, x0, #12 - ; byrRegs +[x3] - ;; size=20 bbWeight=1 PerfScore 5.50 -G_M7834_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+ ble G_M7834_IG06 + add x0, x0, #12
; gcrRegs -[x0]
- ldrh w0, [x3, w1, UXTW #2]
+ ; byrRegs +[x0] + ;; size=20 bbWeight=1 PerfScore 5.50 +G_M7834_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz + ldrh w3, [x0, w1, UXTW #2]
mov w4, #133 mov w5, #0xD1FFAB1E
- cmp w0, #13 - ccmp w0, #10, z, ne - ccmp w0, w4, z, ne - ccmp w0, w5, z, ne - beq G_M7834_IG07
+ cmp w3, #13 + ccmp w3, #10, z, ne + ccmp w3, w4, z, ne + ccmp w3, w5, z, ne + beq G_M7834_IG08
;; size=32 bbWeight=4 PerfScore 28.00
-G_M7834_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M7834_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
mov w4, #0xD1FFAB1E
- cmp w0, w4 - beq G_M7834_IG07
+ cmp w3, w4 + beq G_M7834_IG08
;; size=12 bbWeight=2 PerfScore 4.00
-G_M7834_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M7834_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
add w1, w1, #1 cmp w2, w1 bgt G_M7834_IG03 ;; size=12 bbWeight=4 PerfScore 8.00 G_M7834_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x3] - b G_M7834_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M7834_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M7834_IG08: ; bbWeight=2, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=2 PerfScore 4.00 -G_M7834_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; byrRegs -[x0]
mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M7834_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M7834_IG07: ; bbWeight=0.50, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.50 PerfScore 1.00 +G_M7834_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1 + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M7834_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 53.75, instruction count 28, allocated bytes for code 112 (MethodHash=c046e165) for method Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 49.50, instruction count 27, allocated bytes for code 108 (MethodHash=c046e165) for method Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -83,7 +80,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-28 (-3.37%) : 217286.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>cDisplayClass11_0[ubyte]:gexecuteExecutableCodeActions|2():this (FullOpts)

@@ -22,20 +22,20 @@ ;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.DeclarationInfo[]> ;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]> ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]>
-; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x4 "Inline stloc first use temp"
+; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x3 "Inline stloc first use temp"
; V15 tmp8 [V15,T06] ( 5, 5.50) ref -> x19 "field V01.array (fldOffset=0x0)" P-INDEP ; V16 tmp9 [V16,T08] ( 2, 4.50) ref -> x1 single-def "field V03._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x5 "field V03._index (fldOffset=0x8)" P-INDEP -; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x6 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
+; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x4 "field V03._index (fldOffset=0x8)" P-INDEP +; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x5 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref "field V04.<DeclaredSymbol>k__BackingField (fldOffset=0x8)" P-INDEP
-; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x4 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
+; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x3 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
; V21 tmp14 [V21,T11] ( 5, 2 ) ref -> [fp+0x18] do-not-enreg[H] EH-live "field V05.array (fldOffset=0x0)" P-INDEP
-; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x20 "field V06.array (fldOffset=0x0)" P-INDEP
+; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x21 "field V06.array (fldOffset=0x0)" P-INDEP
; V23 tmp16 [V23,T12] ( 3, 1.50) ref -> x1 single-def "field V09.array (fldOffset=0x0)" P-INDEP ; V24 tmp17 [V24,T13] ( 2, 1 ) ref -> x1 single-def "field V10._array (fldOffset=0x0)" P-INDEP ;* V25 tmp18 [V25,T15] ( 0, 0 ) int -> zero-ref single-def "field V10._index (fldOffset=0x8)" P-INDEP ;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref "field V12.array (fldOffset=0x0)" P-INDEP
-; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x4 "BlockOp address local"
+; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x3 "BlockOp address local"
; V28 PSPSym [V28,T14] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym" ; V29 cse0 [V29,T07] ( 3, 5 ) int -> x2 "CSE - aggressive" ; @@ -103,96 +103,95 @@ G_M3645_IG05: ; bbWeight=0.50, gcVars=0000000000000002 {V00}, gcrefRegs=0 ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x3, x0 - ; gcrRegs +[x3] - str x3, [fp, #0x20] // [V02 loc1]
+ str x0, [fp, #0x20] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=108 bbWeight=0.50 PerfScore 14.00 -G_M3645_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=104 bbWeight=0.50 PerfScore 13.75 +G_M3645_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x28] // [V00 this] - ; gcrRegs +[x0] - ldr x1, [x0, #0x68]
+ ldr x20, [fp, #0x28] // [V00 this] + ; gcrRegs +[x20] + ldr x1, [x20, #0x68]
; gcrRegs +[x1] ldr w2, [x1, #0x08]
+ mov w3, wzr
mov w4, wzr
- mov w5, wzr
cmp w2, #0 ble G_M3645_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.25
-G_M3645_IG07: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - mov w6, #24 - mov x7, #16 - umaddl x4, w4, w6, x7 - add x4, x1, x4 - ; byrRegs +[x4] - ldr x6, [x4]
+G_M3645_IG07: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + mov w5, #24 + mov x6, #16 + umaddl x3, w3, w5, x6 + add x3, x1, x3 + ; byrRegs +[x3] + ldr x5, [x3] + ; gcrRegs +[x5] + ldr x3, [x3, #0x10] + ; gcrRegs +[x3] + ; byrRegs -[x3] + ldr x6, [x20, #0x50]
; gcrRegs +[x6]
- ldr x4, [x4, #0x10] - ; gcrRegs +[x4] - ; byrRegs -[x4] - ldr x7, [x0, #0x50] - ; gcrRegs +[x7] - cmp x6, x7
+ cmp x5, x6
beq G_M3645_IG09 ;; size=36 bbWeight=4 PerfScore 68.00
-G_M3645_IG08: ; bbWeight=2, gcrefRegs=8005B {x0 x1 x3 x4 x6 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x7] - ldr x7, [x0, #0x48] - ; gcrRegs +[x7] - cmp x6, x7
+G_M3645_IG08: ; bbWeight=2, gcrefRegs=18002A {x1 x3 x5 x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x6] + ldr x6, [x20, #0x48] + ; gcrRegs +[x6] + cmp x5, x6
bne G_M3645_IG10 ;; size=12 bbWeight=2 PerfScore 9.00
-G_M3645_IG09: ; bbWeight=2, gcrefRegs=001B {x0 x1 x3 x4}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x6-x7 x19] - mov x19, x4
+G_M3645_IG09: ; bbWeight=2, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x5-x6 x19] + mov x19, x3
; gcrRegs +[x19]
- ldr w4, [x19, #0x08] - ; gcrRegs -[x4] - cbnz w4, G_M3645_IG12
+ ldr w3, [x19, #0x08] + ; gcrRegs -[x3] + cbnz w3, G_M3645_IG12
;; size=12 bbWeight=2 PerfScore 9.00
-G_M3645_IG10: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - add w4, w5, #1 - sxtw w5, w4 - cmp w2, w5
+G_M3645_IG10: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + add w3, w4, #1 + sxtw w4, w3 + cmp w2, w4
bgt G_M3645_IG07 ;; size=16 bbWeight=4 PerfScore 10.00
-G_M3645_IG11: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+G_M3645_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
+ mov x0, x20 + ; gcrRegs +[x0]
mov x1, x19 ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4]
+ movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3]
; GC ptr vars -{V00}
- blr x4 - ; gcrRegs -[x0-x3 x19]
+ blr x3 + ; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0 b G_M3645_IG17
- ;; size=32 bbWeight=0.50 PerfScore 3.75 -G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x0 x3 x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.75 +G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19-x20]
; GC ptr vars +{V00}
- ldrb w1, [x0, #0x42] - ldrb w2, [x0, #0x44]
+ ldrb w1, [x20, #0x42] + ldrb w2, [x20, #0x44]
orr w1, w1, w2 cbz w1, G_M3645_IG13
- ldr x0, [x0, #0x08] - ldr x20, [fp, #0x28] // [V00 this] - ; gcrRegs +[x20]
+ ldr x0, [x20, #0x08] + ; gcrRegs +[x0]
ldr x1, [x20, #0x18] ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ubyte]]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3]
+ movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ubyte]]) + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x2]
; gcr arg pop 0 ldp x0, x1, [x20, #0x10] ; gcrRegs +[x0-x1] @@ -205,32 +204,28 @@ G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRe blr x3 ; gcrRegs -[x0-x2] ; gcr arg pop 0
- mov x0, x20 - ; gcrRegs +[x0] - ldr x3, [fp, #0x20] // [V02 loc1] - ; gcrRegs +[x3] - ;; size=88 bbWeight=0.50 PerfScore 17.75 -G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x20] - ldrb w2, [x0, #0x43] - ldrb w1, [x0, #0x44]
+ ;; size=76 bbWeight=0.50 PerfScore 16.25 +G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ldrb w2, [x20, #0x43] + ldrb w1, [x20, #0x44]
orr w2, w2, w1 cbz w2, G_M3645_IG11
- ldr x2, [x0, #0x70]
+ ldr x2, [x20, #0x70]
; gcrRegs +[x2]
- ldr x1, [x0, #0x28]
+ ldr x1, [x20, #0x28]
; gcrRegs +[x1] mov x0, x19
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x1-x3]
+ ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x1-x2]
; gcr arg pop 0 str x0, [fp, #0x18] // [V21 tmp14] ; GC ptr vars +{V21}
- ldr x0, [fp, #0x28] // [V00 this]
+ mov x0, x20
ldr x1, [fp, #0x18] // [V21 tmp14] ; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -240,22 +235,22 @@ G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=000 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- mov x20, x0 - ; gcrRegs +[x20] - ldr w2, [x20, #0x08] - ldp x3, x0, [fp, #0x20] // [V02 loc1], [V00 this] - ; gcrRegs +[x3]
+ mov x21, x0 + ; gcrRegs +[x21] + ldr w2, [x21, #0x08]
cbz w2, G_M3645_IG11
- ;; size=96 bbWeight=0.50 PerfScore 18.75 -G_M3645_IG14: ; bbWeight=0.50, gcrefRegs=180009 {x0 x3 x19 x20}, byrefRegs=0000 {}, byref, isz - ldrb w2, [x0, #0x43]
+ ;; size=92 bbWeight=0.50 PerfScore 16.50 +G_M3645_IG14: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + ldrb w2, [x20, #0x43]
...

+12 (+27.27%) : 305817.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)

@@ -96,8 +96,8 @@ ;* V85 tmp70 [V85 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ulong]> ;* V86 tmp71 [V86 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ulong]> ;* V87 tmp72 [V87 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V88 tmp73 [V88,T00] ( 2, 1 ) byref -> [fp+0x18] single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V89 tmp74 [V89,T01] ( 1, 1 ) int -> x2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V88 tmp73 [V88,T00] ( 2, 1 ) byref -> [fp+0x10] single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V89 tmp74 [V89,T01] ( 2, 1 ) int -> [fp+0x1C] single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V90 tmp75 [V90 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP ;* V91 tmp76 [V91 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP ;* V92 tmp77 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP @@ -110,13 +110,16 @@ G_M1352_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]! mov fp, sp
- str x1, [fp, #0x18] // [V88 tmp73]
+ str x1, [fp, #0x10] // [V88 tmp73]
; GC ptr vars +{V88}
- ;; size=12 bbWeight=0 PerfScore 0.00
+ str w2, [fp, #0x1C] // [V89 tmp74] + ;; size=16 bbWeight=0 PerfScore 0.00
G_M1352_IG02: ; bbWeight=0, gcVars=0000000000000001 {V88}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr x1, [fp, #0x18] // [V88 tmp73]
+ ldr x1, [fp, #0x10] // [V88 tmp73]
; byrRegs +[x1] ldrsb wzr, [x1]
+ ldr w2, [fp, #0x1C] // [V89 tmp74] + cmp w2, #128
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowUnreachableException() movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -125,9 +128,9 @@ G_M1352_IG02: ; bbWeight=0, gcVars=0000000000000001 {V88}, gcrefRegs=0000 blr x0 ; byrRegs -[x1] brk_unix #0
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 0.00, instruction count 11, allocated bytes for code 44 (MethodHash=d8e4fab7) for method System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 0.00, instruction count 14, allocated bytes for code 56 (MethodHash=d8e4fab7) for method System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
; ============================================================ Unwind Info: @@ -138,7 +141,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ---- No epilogs ---- Unwind codes ----

+12 (+27.27%) : 305834.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)

@@ -175,8 +175,8 @@ ;* V164 tmp147 [V164 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ulong]> ;* V165 tmp148 [V165 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ulong]> ;* V166 tmp149 [V166 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V167 tmp150 [V167,T00] ( 2, 1 ) byref -> [fp+0x18] single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V168 tmp151 [V168,T01] ( 1, 1 ) int -> x2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V167 tmp150 [V167,T00] ( 2, 1 ) byref -> [fp+0x10] single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V168 tmp151 [V168,T01] ( 2, 1 ) int -> [fp+0x1C] single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V169 tmp152 [V169 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP ;* V170 tmp153 [V170 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ;* V171 tmp154 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP @@ -189,13 +189,16 @@ G_M26443_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x20]! mov fp, sp
- str x1, [fp, #0x18] // [V167 tmp150]
+ str x1, [fp, #0x10] // [V167 tmp150]
; GC ptr vars +{V167}
- ;; size=12 bbWeight=0 PerfScore 0.00
+ str w2, [fp, #0x1C] // [V168 tmp151] + ;; size=16 bbWeight=0 PerfScore 0.00
G_M26443_IG02: ; bbWeight=0, gcVars=0000000000000001 {V167}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr x1, [fp, #0x18] // [V167 tmp150]
+ ldr x1, [fp, #0x10] // [V167 tmp150]
; byrRegs +[x1] ldrsb wzr, [x1]
+ ldr w2, [fp, #0x1C] // [V168 tmp151] + cmp w2, #0xD1FFAB1E
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowUnreachableException() movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -204,9 +207,9 @@ G_M26443_IG02: ; bbWeight=0, gcVars=0000000000000001 {V167}, gcrefRegs=00 blr x0 ; byrRegs -[x1] brk_unix #0
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 44, prolog size 8, PerfScore 0.00, instruction count 11, allocated bytes for code 44 (MethodHash=f22d98b4) for method System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 0.00, instruction count 14, allocated bytes for code 56 (MethodHash=f22d98b4) for method System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
; ============================================================ Unwind Info: @@ -217,7 +220,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ---- No epilogs ---- Unwind codes ----

+28 (+35.00%) : 259373.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (FullOpts)

@@ -15,38 +15,51 @@ ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref ;* V05 tmp2 [V05,T03] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Object> ;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V07 rat0 [V07,T02] ( 0, 0 ) ref -> zero-ref "Spilling to split statement for tree"
+; V07 rat0 [V07,T02] ( 2, 2 ) ref -> x19 "Spilling to split statement for tree"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M52904_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_M52904_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0-x1]
- cbz x1, G_M52904_IG04
+ cbz x1, G_M52904_IG05
;; size=4 bbWeight=1 PerfScore 1.00 G_M52904_IG03: ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz ldr w1, [x1, #0x10] ; gcrRegs -[x1]
- tbnz w1, #0, G_M52904_IG04 - ldr xzr, [x0, #0x08]
+ tbnz w1, #0, G_M52904_IG05 + ldr x19, [x0, #0x08] + ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 ldr w0, [x0]
- tbz w0, #0, G_M52904_IG06
+ tbz w0, #0, G_M52904_IG07
;; size=32 bbWeight=0.50 PerfScore 6.25
-G_M52904_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52904_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + cmp x19, x0 + ;; size=20 bbWeight=0.50 PerfScore 2.50 +G_M52904_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0 x19]
mov w0, wzr ;; size=4 bbWeight=1 PerfScore 0.50
-G_M52904_IG05: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+G_M52904_IG06: ; bbWeight=1, epilog, nogc, extend + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00 -G_M52904_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=12 bbWeight=1 PerfScore 4.00 +G_M52904_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -55,18 +68,18 @@ G_M52904_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { b G_M52904_IG04 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 80, prolog size 8, PerfScore 11.25, instruction count 20, allocated bytes for code 80 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 16.75, instruction count 27, allocated bytes for code 108 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (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 : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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) @@ -74,7 +87,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

libraries_tests.run.osx.arm64.Release.mch

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

@@ -10,13 +10,13 @@ ; 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,T02] ( 9, 14.24) ref -> x19 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T02] ( 8, 16.34) ref -> x19 class-hnd single-def <System.__Canon[]>
; V02 loc0 [V02,T07] ( 3, 2.01) ref -> x21 class-hnd single-def <System.__Canon[]> ; V03 loc1 [V03,T09] ( 4, 0.17) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T08] ( 5, 0.32) int -> x22
-; V05 loc3 [V05,T03] ( 6, 15.21) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T01] ( 9, 20.29) int -> x24 -; V07 loc5 [V07,T00] ( 5, 22.33) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T03] ( 6, 17.31) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T00] ( 6, 22.40) int -> x24 +; V07 loc5 [V07,T01] ( 5, 22.33) 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, 9.06) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> @@ -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.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -59,39 +59,28 @@ G_M50755_IG04: ; bbWeight=0.99, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.99 PerfScore 4.96
-G_M50755_IG05: ; bbWeight=4.21, 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=4.21 PerfScore 31.59 -G_M50755_IG06: ; bbWeight=33.70, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG15 - ;; size=4 bbWeight=33.70 PerfScore 33.70 -G_M50755_IG07: ; bbWeight=0.01, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x23]
+G_M50755_IG05: ; bbWeight=0.01, 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_IG15
;; size=16 bbWeight=0.01 PerfScore 0.04
-G_M50755_IG08: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.07, 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_IG15
;; size=12 bbWeight=0.07 PerfScore 0.33
-G_M50755_IG09: ; bbWeight=0.07, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=0.07, 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_IG14
;; size=16 bbWeight=0.07 PerfScore 0.36
-G_M50755_IG10: ; bbWeight=4.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08: ; bbWeight=4.53, 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=4.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byref movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- bne G_M50755_IG13
+ bne G_M50755_IG10
;; size=32 bbWeight=4.53 PerfScore 43.02
-G_M50755_IG11: ; bbWeight=4.21, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09: ; bbWeight=4.21, 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=4.21, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- beq G_M50755_IG05 - ;; size=28 bbWeight=4.21 PerfScore 27.38 -G_M50755_IG12: ; bbWeight=1.05, 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.05 PerfScore 1.05 -G_M50755_IG13: ; bbWeight=4.53, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ cmp x1, x0 + bne G_M50755_IG11 + b G_M50755_IG13 + ;; size=48 bbWeight=4.21 PerfScore 63.18 +G_M50755_IG10: ; bbWeight=4.53, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0] mov x1, x23 ; gcrRegs +[x1] @@ -129,16 +120,20 @@ G_M50755_IG13: ; bbWeight=4.53, 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_IG13
;; size=24 bbWeight=4.53 PerfScore 52.08
-G_M50755_IG14: ; bbWeight=4.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11: ; bbWeight=4.53, 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 - ;; size=20 bbWeight=4.53 PerfScore 27.17 -G_M50755_IG15: ; bbWeight=2.11, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ bgt G_M50755_IG08 + ;; size=16 bbWeight=4.53 PerfScore 22.64 +G_M50755_IG12: ; bbWeight=0.08, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG14 + ;; size=4 bbWeight=0.08 PerfScore 0.08 +G_M50755_IG13: ; bbWeight=4.21, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x19 ; gcrRegs +[x0] @@ -147,14 +142,14 @@ G_M50755_IG15: ; bbWeight=2.11, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=2.11 PerfScore 5.26 -G_M50755_IG16: ; bbWeight=0.08, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=4.21 PerfScore 10.53 +G_M50755_IG14: ; bbWeight=0.08, 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.08 PerfScore 0.40
-G_M50755_IG17: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG15: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] add x14, x20, #8 ; byrRegs +[x14] @@ -164,23 +159,15 @@ G_M50755_IG17: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.01 PerfScore 0.02
-G_M50755_IG18: ; bbWeight=0.01, epilog, nogc, extend
+G_M50755_IG16: ; bbWeight=0.01, 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.01 PerfScore 0.04
-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 238.89, 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 209.17, 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 +178,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%) : 209400.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,13 +10,13 @@ ; 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,T02] ( 9, 11.33) ref -> x19 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T02] ( 8, 12.86) ref -> x19 class-hnd single-def <System.__Canon[]>
; V02 loc0 [V02,T07] ( 3, 2.02) ref -> x21 class-hnd single-def <System.__Canon[]> ; V03 loc1 [V03,T09] ( 4, 0.23) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T08] ( 5, 0.41) int -> x22
-; V05 loc3 [V05,T03] ( 6, 11.17) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T01] ( 9, 15.05) int -> x24 -; V07 loc5 [V07,T00] ( 5, 16.50) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T03] ( 6, 12.70) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T00] ( 6, 16.57) int -> x24 +; V07 loc5 [V07,T01] ( 5, 16.50) 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, 6.72) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> @@ -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.98, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -59,39 +59,28 @@ G_M50755_IG04: ; bbWeight=0.98, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.98 PerfScore 4.89
-G_M50755_IG05: ; bbWeight=3.06, 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=3.06 PerfScore 22.93 -G_M50755_IG06: ; bbWeight=24.46, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG15 - ;; size=4 bbWeight=24.46 PerfScore 24.46 -G_M50755_IG07: ; bbWeight=0.02, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x23]
+G_M50755_IG05: ; bbWeight=0.02, 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_IG15
;; size=16 bbWeight=0.02 PerfScore 0.11
-G_M50755_IG08: ; bbWeight=0.08, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.08, 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_IG15
;; size=12 bbWeight=0.08 PerfScore 0.37
-G_M50755_IG09: ; bbWeight=0.08, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=0.08, 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_IG14
;; size=16 bbWeight=0.08 PerfScore 0.40
-G_M50755_IG10: ; bbWeight=3.36, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08: ; bbWeight=3.36, 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=3.36, gcrefRegs=B80000 {x19 x20 x21 x23}, byref movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- bne G_M50755_IG13
+ bne G_M50755_IG10
;; size=32 bbWeight=3.36 PerfScore 31.92
-G_M50755_IG11: ; bbWeight=3.06, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09: ; bbWeight=3.06, 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=3.06, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, by movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- beq G_M50755_IG05 - ;; size=28 bbWeight=3.06 PerfScore 19.87 -G_M50755_IG12: ; bbWeight=0.76, 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=0.76 PerfScore 0.76 -G_M50755_IG13: ; bbWeight=3.36, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ cmp x1, x0 + bne G_M50755_IG11 + b G_M50755_IG13 + ;; size=48 bbWeight=3.06 PerfScore 45.86 +G_M50755_IG10: ; bbWeight=3.36, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0] mov x1, x23 ; gcrRegs +[x1] @@ -129,16 +120,20 @@ G_M50755_IG13: ; bbWeight=3.36, 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_IG13
;; size=24 bbWeight=3.36 PerfScore 38.63
-G_M50755_IG14: ; bbWeight=3.36, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11: ; bbWeight=3.36, 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 - ;; size=20 bbWeight=3.36 PerfScore 20.16 -G_M50755_IG15: ; bbWeight=1.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ bgt G_M50755_IG08 + ;; size=16 bbWeight=3.36 PerfScore 16.80 +G_M50755_IG12: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG14 + ;; size=4 bbWeight=0.10 PerfScore 0.10 +G_M50755_IG13: ; bbWeight=3.06, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x19 ; gcrRegs +[x0] @@ -147,14 +142,14 @@ G_M50755_IG15: ; bbWeight=1.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=1.53 PerfScore 3.82 -G_M50755_IG16: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=3.06 PerfScore 7.64 +G_M50755_IG14: ; bbWeight=0.10, 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.10 PerfScore 0.50
-G_M50755_IG17: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG15: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] add x14, x20, #8 ; byrRegs +[x14] @@ -164,23 +159,15 @@ G_M50755_IG17: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.02 PerfScore 0.04
-G_M50755_IG18: ; bbWeight=0.02, epilog, nogc, extend
+G_M50755_IG16: ; bbWeight=0.02, 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.02 PerfScore 0.11
-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 180.43, 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 158.83, 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 +178,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)

-20 (-6.25%) : 272873.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,13 +10,13 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 9, 3.82) ref -> x20 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T01] ( 8, 3.98) ref -> x20 class-hnd single-def <System.__Canon[]>
; V02 loc0 [V02,T02] ( 3, 2.02) ref -> x21 class-hnd single-def <System.__Canon[]> ; V03 loc1 [V03,T08] ( 4, 0.15) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T07] ( 5, 0.24) int -> x22
-; V05 loc3 [V05,T05] ( 6, 0.87) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T03] ( 9, 1.46) int -> x24 -; V07 loc5 [V07,T04] ( 5, 0.95) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T04] ( 6, 1.03) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T03] ( 6, 1.61) int -> x24 +; V07 loc5 [V07,T05] ( 5, 0.95) 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,T09] ( 2, 0 ) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> @@ -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, [x19, #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.98, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -59,39 +59,28 @@ G_M50755_IG04: ; bbWeight=0.98, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.98 PerfScore 4.88
-G_M50755_IG05: ; bbWeight=0.32, 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_IG11 - ;; size=16 bbWeight=0.32 PerfScore 2.37 -G_M50755_IG06: ; bbWeight=2.53, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG12 - ;; size=4 bbWeight=2.53 PerfScore 2.53 -G_M50755_IG07: ; bbWeight=0.02, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x23]
+G_M50755_IG05: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19-x21]
mov w22, wzr ldr w1, [x21, #0x08] cmp w1, #0
- ble G_M50755_IG14
+ ble G_M50755_IG13
;; size=16 bbWeight=0.02 PerfScore 0.12
-G_M50755_IG08: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
add x1, x21, #16 ; byrRegs +[x1] ldr x23, [x1, w22, UXTW #3] ; gcrRegs +[x23]
- cbz x23, G_M50755_IG14
+ cbz x23, G_M50755_IG13
;; size=12 bbWeight=0.04 PerfScore 0.17
-G_M50755_IG09: ; bbWeight=0.03, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=0.03, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x1] mov w24, wzr ldr w1, [x20, #0x08] cmp w1, #0
- ble G_M50755_IG13
+ ble G_M50755_IG12
;; size=16 bbWeight=0.03 PerfScore 0.17
-G_M50755_IG10: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16 ; byrRegs +[x1] ldr x0, [x1, w24, UXTW #3] @@ -102,7 +91,7 @@ G_M50755_IG10: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byref movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- bne G_M50755_IG16
+ bne G_M50755_IG15
mov x1, x23 ; gcrRegs +[x1] ldr x1, [x1] @@ -111,17 +100,25 @@ G_M50755_IG10: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byref movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- beq G_M50755_IG05 - ;; size=60 bbWeight=0.32 PerfScore 5.06 -G_M50755_IG11: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ bne G_M50755_IG09 + ldr x1, [x23, #0x50] + ldr x0, [x0, #0x50]
; gcrRegs -[x0]
+ cmp x1, x0 + beq G_M50755_IG11 + ;; size=76 bbWeight=0.32 PerfScore 7.43 +G_M50755_IG09: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1
- ldr w0, [x20, #0x08] - cmp w0, w24 - ble G_M50755_IG13 - b G_M50755_IG10 - ;; size=20 bbWeight=0.32 PerfScore 1.90 -G_M50755_IG12: ; bbWeight=0.16, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ ldr w1, [x20, #0x08] + cmp w1, w24 + bgt G_M50755_IG08 + ;; size=16 bbWeight=0.32 PerfScore 1.58 +G_M50755_IG10: ; bbWeight=0.06, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG12 + ;; size=4 bbWeight=0.06 PerfScore 0.06 +G_M50755_IG11: ; bbWeight=0.32, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x20 ; gcrRegs +[x0] @@ -130,14 +127,14 @@ G_M50755_IG12: ; bbWeight=0.16, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=0.16 PerfScore 0.40 -G_M50755_IG13: ; bbWeight=0.06, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=0.32 PerfScore 0.79 +G_M50755_IG12: ; bbWeight=0.06, 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.06 PerfScore 0.29
-G_M50755_IG14: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG13: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] add x14, x19, #8 ; byrRegs +[x14] @@ -147,14 +144,14 @@ G_M50755_IG14: ; bbWeight=0.02, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.02 PerfScore 0.05
-G_M50755_IG15: ; bbWeight=0.02, epilog, nogc, extend
+G_M50755_IG14: ; bbWeight=0.02, 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.02 PerfScore 0.12
-G_M50755_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50755_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x0 x19-x21 x23] mov x1, x23 ; gcrRegs +[x1] @@ -164,15 +161,11 @@ G_M50755_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- cbnz w0, G_M50755_IG12 - add w24, w24, #1 - ldr w0, [x20, #0x08] - cmp w0, w24 - bgt G_M50755_IG10 - b G_M50755_IG13 - ;; size=44 bbWeight=0 PerfScore 0.00
+ cbnz w0, G_M50755_IG11 + b G_M50755_IG09 + ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 320, prolog size 28, PerfScore 29.51, instruction count 80, allocated bytes for code 320 (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 27.11, 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: @@ -183,7 +176,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ 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)

+28 (+17.95%) : 617643.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.CancellationToken]:Enqueue(System.Threading.CancellationToken):this (Tier1)

@@ -14,59 +14,85 @@ ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V04 tmp2 [V04,T00] ( 4, 8.02) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.CancellationToken]>
-; V05 tmp3 [V05,T04] ( 5, 4.92) ref -> x3 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> -; V06 tmp4 [V06,T02] ( 6, 5.77) int -> x14 "Inline stloc first use temp" -; V07 tmp5 [V07,T06] ( 3, 3.04) int -> x15 "Inline stloc first use temp"
+; V05 tmp3 [V05,T04] ( 5, 4.92) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> +; V06 tmp4 [V06,T02] ( 6, 5.77) int -> x4 "Inline stloc first use temp" +; V07 tmp5 [V07,T06] ( 3, 3.04) int -> x5 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T09] ( 3, 2.12) int -> x6 "Inline stloc first use temp"
+; V09 tmp7 [V09,T09] ( 3, 2.12) int -> x5 "Inline stloc first use temp"
; V10 tmp8 [V10,T03] ( 3, 2.95) ref -> x1 single-def "field V01._source (fldOffset=0x0)" P-INDEP
-; V11 cse0 [V11,T05] ( 4, 3.92) long -> x5 "CSE - aggressive" -; V12 cse1 [V12,T07] ( 3, 2.92) byref -> x4 hoist "CSE - aggressive" -; V13 cse2 [V13,T10] ( 2, 2.02) int -> x12 "CSE - aggressive" -; V14 cse3 [V14,T08] ( 3, 2.78) int -> x6 "CSE - aggressive"
+; V11 cse0 [V11,T05] ( 4, 3.92) long -> x20 "CSE - aggressive" +; V12 cse1 [V12,T07] ( 3, 2.92) byref -> x3 hoist "CSE - aggressive" +; V13 cse2 [V13,T10] ( 2, 2.02) int -> x6 "CSE - aggressive" +; V14 cse3 [V14,T08] ( 3, 2.78) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M43759_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M43759_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref ; gcrRegs +[x0-x1] ldapur x2, [x0, #0x10] ; gcrRegs +[x2]
- ldr x3, [x2, #0x08] - ; gcrRegs +[x3] - add x4, x2, #0xD1FFAB1E - ; byrRegs +[x4]
+ ldr x19, [x2, #0x08] + ; gcrRegs +[x19] + add x3, x2, #0xD1FFAB1E + ; byrRegs +[x3]
;; size=12 bbWeight=1 PerfScore 6.50
-G_M43759_IG03: ; bbWeight=1.01, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, byref, isz - ldapr w14, [x4] - ldr w15, [x2, #0x18] - and w15, w14, w15 - ldr w12, [x3, #0x08] - cmp w15, w12 - bhs G_M43759_IG10 - ubfiz x15, x15, #4, #32 - add x5, x15, #16 - add x15, x3, x5 - ; byrRegs +[x15] - ldapr w15, [x15] - ; byrRegs -[x15] - sub w6, w15, w14 - cbnz w6, G_M43759_IG07
+G_M43759_IG03: ; bbWeight=1.01, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz + ldapr w4, [x3] + ldr w5, [x2, #0x18] + and w5, w4, w5 + ldr w6, [x19, #0x08] + cmp w5, w6 + bhs G_M43759_IG11 + ubfiz x5, x5, #4, #32 + add x20, x5, #16 + add x5, x19, x20 + ; byrRegs +[x5] + ldapr w5, [x5] + ; byrRegs -[x5] + sub w5, w5, w4 + cbnz w5, G_M43759_IG06
;; size=48 bbWeight=1.01 PerfScore 17.71
-G_M43759_IG04: ; bbWeight=0.91, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, byref, isz - add w6, w14, #1 - mov w15, w14 - casal w15, w6, [x4] - cmp w15, w14
+G_M43759_IG04: ; bbWeight=0.91, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz + add w21, w4, #1 + mov w5, w4 + casal w5, w21, [x3] + cmp w5, w4
bne G_M43759_IG03 ;; size=20 bbWeight=0.91 PerfScore 5.02
-G_M43759_IG05: ; bbWeight=0.95, gcrefRegs=000A {x1 x3}, byrefRegs=0000 {}, byref
+G_M43759_IG05: ; bbWeight=0.90, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x2]
- ; byrRegs -[x4] - add x14, x3, x5
+ ; byrRegs -[x3] + b G_M43759_IG09 + ;; size=4 bbWeight=0.90 PerfScore 0.90 +G_M43759_IG06: ; bbWeight=0.10, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz + ; gcrRegs +[x0 x2] + ; byrRegs +[x3] + tbz w5, #31, G_M43759_IG03 + ;; size=4 bbWeight=0.10 PerfScore 0.10 +G_M43759_IG07: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref + ; gcrRegs -[x2 x19] + ; byrRegs -[x3] + movz x2, #0xD1FFAB1E // code for <unknown method> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + ldr x2, [x2] + ;; size=16 bbWeight=1 PerfScore 4.50 +G_M43759_IG08: ; bbWeight=1, 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=1 PerfScore 5.00 +G_M43759_IG09: ; bbWeight=0.95, gcVars=0000000000000000 {}, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0] +[x19] + add x14, x19, x20
; byrRegs +[x14] add x14, x14, #8 mov x15, x1 @@ -74,51 +100,36 @@ G_M43759_IG05: ; bbWeight=0.95, gcrefRegs=000A {x1 x3}, byrefRegs=0000 {} bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x1 x15] ; byrRegs -[x14]
- add x2, x3, x5 - ; byrRegs +[x2] - stlr w6, [x2]
+ add x0, x19, x20 + ; byrRegs +[x0] + stlr w21, [x0]
;; size=24 bbWeight=0.95 PerfScore 3.80
-G_M43759_IG06: ; bbWeight=0.95, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+G_M43759_IG10: ; bbWeight=0.95, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
ret lr
- ;; size=8 bbWeight=0.95 PerfScore 1.90 -G_M43759_IG07: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0010 {x4}, gcvars, byref, isz - ; gcrRegs +[x0-x2] - ; byrRegs -[x2] +[x4] - tbz w6, #31, G_M43759_IG03 - ;; size=4 bbWeight=0.10 PerfScore 0.10 -G_M43759_IG08: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref - ; gcrRegs -[x2-x3] - ; byrRegs -[x4] - movz x2, #0xD1FFAB1E // code for <unknown method> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #1 LSL #32 - ldr x2, [x2] - ;; size=16 bbWeight=1 PerfScore 4.50 -G_M43759_IG09: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - br x2 - ; gcr arg pop 0 - ;; size=8 bbWeight=1 PerfScore 2.00 -G_M43759_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0-x1]
+ ;; size=16 bbWeight=0.95 PerfScore 4.75 +G_M43759_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x19] + ; byrRegs -[x0]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 8, PerfScore 43.03, instruction count 39, allocated bytes for code 156 (MethodHash=45c55510) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.CancellationToken]:Enqueue(System.Threading.CancellationToken):this (Tier1)
+; Total bytes of code 184, prolog size 16, PerfScore 51.78, instruction count 46, allocated bytes for code 184 (MethodHash=45c55510) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.CancellationToken]:Enqueue(System.Threading.CancellationToken):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -129,7 +140,9 @@ 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 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]!
E4 end E4 end

+28 (+19.44%) : 530596.dasm - System.Collections.Concurrent.ConcurrentQueue`1[int]:Enqueue(int):this (Tier1)

@@ -18,18 +18,20 @@ ; V06 tmp4 [V06,T03] ( 6, 5.97) int -> x5 "Inline stloc first use temp" ; V07 tmp5 [V07,T05] ( 3, 3 ) int -> x6 "Inline stloc first use temp" ;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T10] ( 3, 2.01) int -> x8 "Inline stloc first use temp" -; V10 cse0 [V10,T06] ( 3, 3.00) byref -> x7 "CSE - aggressive" -; V11 cse1 [V11,T07] ( 3, 3.00) byref -> x6 "CSE - aggressive"
+; V09 tmp7 [V09,T10] ( 3, 2.01) int -> x6 "Inline stloc first use temp" +; V10 cse0 [V10,T06] ( 3, 3.00) byref -> x20 "CSE - aggressive" +; V11 cse1 [V11,T07] ( 3, 3.00) byref -> x19 "CSE - aggressive"
; V12 cse2 [V12,T08] ( 3, 2.99) byref -> x4 hoist "CSE - aggressive"
-; V13 cse3 [V13,T09] ( 3, 2.98) int -> x8 "CSE - aggressive"
+; V13 cse3 [V13,T09] ( 3, 2.98) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M7919_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M7919_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] ldapur x2, [x0, #0x10] @@ -48,37 +50,27 @@ G_M7919_IG03: ; bbWeight=1, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0010 {x4 bhs G_M7919_IG10 ubfiz x6, x6, #3, #32 add x6, x6, #16
- add x6, x3, x6 - ; byrRegs +[x6] - add x7, x6, #4 - ; byrRegs +[x7] - ldapr w8, [x7] - sub w8, w8, w5 - cbnz w8, G_M7919_IG07
+ add x19, x3, x6 + ; byrRegs +[x19] + add x20, x19, #4 + ; byrRegs +[x20] + ldapr w6, [x20] + sub w6, w6, w5 + cbnz w6, G_M7919_IG05
;; size=52 bbWeight=1 PerfScore 18.00
-G_M7919_IG04: ; bbWeight=0.99, gcrefRegs=000D {x0 x2 x3}, byrefRegs=00D0 {x4 x6 x7}, byref, isz - add w8, w5, #1 - mov w9, w5 - casal w9, w8, [x4] - cmp w9, w5
+G_M7919_IG04: ; bbWeight=0.99, gcrefRegs=000D {x0 x2 x3}, byrefRegs=180010 {x4 x19 x20}, byref, isz + add w21, w5, #1 + mov w6, w5 + casal w6, w21, [x4] + cmp w6, w5
bne G_M7919_IG03
- ;; size=20 bbWeight=0.99 PerfScore 5.45 -G_M7919_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=00C0 {x6 x7}, byref - ; gcrRegs -[x0 x2-x3] - ; byrRegs -[x4] - str w1, [x6] - stlr w8, [x7] - ;; size=8 bbWeight=1.00 PerfScore 1.99 -G_M7919_IG06: ; bbWeight=1.00, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=1.00 PerfScore 1.99 -G_M7919_IG07: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0010 {x4}, gcvars, byref, isz - ; gcrRegs +[x0 x2-x3] - ; byrRegs -[x6-x7] +[x4] - tbz w8, #31, G_M7919_IG03
+ b G_M7919_IG08 + ;; size=24 bbWeight=0.99 PerfScore 6.44 +G_M7919_IG05: ; bbWeight=0.01, gcrefRegs=000D {x0 x2 x3}, byrefRegs=0010 {x4}, byref, isz + ; byrRegs -[x19-x20] + tbz w6, #31, G_M7919_IG03
;; size=4 bbWeight=0.01 PerfScore 0.01
-G_M7919_IG08: ; bbWeight=1.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+G_M7919_IG06: ; bbWeight=1.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x2-x3] ; byrRegs -[x4] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -86,30 +78,44 @@ G_M7919_IG08: ; bbWeight=1.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, by movk x2, #1 LSL #32 ldr x2, [x2] ;; size=16 bbWeight=1.00 PerfScore 4.50
-G_M7919_IG09: ; bbWeight=1.00, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+G_M7919_IG07: ; bbWeight=1.00, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
br x2 ; gcr arg pop 0
- ;; size=8 bbWeight=1.00 PerfScore 2.00 -G_M7919_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M7919_IG08: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, gcvars, byref
; gcrRegs -[x0]
+ ; byrRegs +[x19-x20] + str w1, [x19] + stlr w21, [x20] + ;; size=8 bbWeight=1.00 PerfScore 1.99 +G_M7919_IG09: ; bbWeight=1.00, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 4.98 +G_M7919_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; byrRegs -[x19-x20]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 8, PerfScore 41.94, instruction count 36, allocated bytes for code 144 (MethodHash=ce54e110) for method System.Collections.Concurrent.ConcurrentQueue`1[int]:Enqueue(int):this (Tier1)
+; Total bytes of code 172, prolog size 16, PerfScore 50.91, instruction count 43, allocated bytes for code 172 (MethodHash=ce54e110) for method System.Collections.Concurrent.ConcurrentQueue`1[int]:Enqueue(int):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
+ 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) @@ -120,7 +126,9 @@ 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 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]!
E4 end E4 end

+32 (+20.51%) : 615127.dasm - System.Collections.Concurrent.ConcurrentQueue1[System.Collections.Generic.KeyValuePair2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)

@@ -9,116 +9,123 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
+; V00 this [V00,T01] ( 4, 3.99) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Collections.Generic.KeyValuePair`2[int,long]> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V04 tmp2 [V04,T00] ( 4, 8 ) ref -> x3 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
-; V05 tmp3 [V05,T06] ( 5, 4.98) ref -> x4 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> -; V06 tmp4 [V06,T02] ( 6, 5.96) int -> x6 "Inline stloc first use temp" -; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x7 "Inline stloc first use temp"
+; V05 tmp3 [V05,T04] ( 5, 4.98) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> +; V06 tmp4 [V06,T02] ( 6, 5.96) int -> x5 "Inline stloc first use temp" +; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x6 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T11] ( 3, 2.01) int -> x8 "Inline stloc first use temp" -; V10 tmp8 [V10,T04] ( 3, 2.99) int -> x1 single-def "field V01.key (fldOffset=0x0)" P-INDEP -; V11 tmp9 [V11,T05] ( 3, 2.99) long -> x2 single-def "field V01.value (fldOffset=0x8)" P-INDEP -; V12 tmp10 [V12,T03] ( 3, 5.94) byref -> x3 single-def "BlockOp address local" -; V13 cse0 [V13,T07] ( 4, 3.98) long -> x7 "CSE - aggressive" -; V14 cse1 [V14,T09] ( 3, 2.99) byref -> x5 hoist "CSE - aggressive" -; V15 cse2 [V15,T12] ( 2, 2 ) int -> x8 "CSE - aggressive" -; V16 cse3 [V16,T10] ( 3, 2.97) int -> x8 "CSE - aggressive"
+; V09 tmp7 [V09,T11] ( 3, 2.01) int -> x6 "Inline stloc first use temp" +; V10 tmp8 [V10,T05] ( 3, 2.98) int -> x1 single-def "field V01.key (fldOffset=0x0)" P-INDEP +; V11 tmp9 [V11,T06] ( 3, 2.98) long -> x2 single-def "field V01.value (fldOffset=0x8)" P-INDEP +; V12 tmp10 [V12,T03] ( 3, 5.94) byref -> x0 single-def "BlockOp address local" +; V13 cse0 [V13,T07] ( 4, 3.98) long -> x20 "CSE - aggressive" +; V14 cse1 [V14,T09] ( 3, 2.99) byref -> x4 hoist "CSE - aggressive" +; V15 cse2 [V15,T12] ( 2, 2 ) int -> x7 "CSE - aggressive" +; V16 cse3 [V16,T10] ( 3, 2.97) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53455_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M53455_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] ldapur x3, [x0, #0x10] ; gcrRegs +[x3]
- ldr x4, [x3, #0x08] - ; gcrRegs +[x4] - add x5, x3, #0xD1FFAB1E - ; byrRegs +[x5] - ;; size=12 bbWeight=1 PerfScore 6.50 -G_M53455_IG03: ; bbWeight=1, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, byref, isz - ldapr w6, [x5] - ldr w7, [x3, #0x18] - and w7, w6, w7 - ldr w8, [x4, #0x08] - cmp w7, w8 - bhs G_M53455_IG10 - mov w8, #24 - mov x9, #16 - umaddl x7, w7, w8, x9 - add x8, x4, x7 - ; byrRegs +[x8] - ldapr w8, [x8] - ; byrRegs -[x8] - sub w8, w8, w6 - cbnz w8, G_M53455_IG07 - ;; size=52 bbWeight=1 PerfScore 22.00 -G_M53455_IG04: ; bbWeight=0.99, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, byref, isz - add w8, w6, #1 - mov w9, w6 - casal w9, w8, [x5] - cmp w9, w6 - bne G_M53455_IG03 - ;; size=20 bbWeight=0.99 PerfScore 5.43 -G_M53455_IG05: ; bbWeight=0.99, gcrefRegs=0010 {x4}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x3] - ; byrRegs -[x5] - add x3, x4, x7 - ; byrRegs +[x3] - str w1, [x3, #0x08] - str x2, [x3, #0x10] - add x4, x4, x7 - ; gcrRegs -[x4]
+ ldr x19, [x3, #0x08] + ; gcrRegs +[x19] + add x4, x3, #0xD1FFAB1E
; byrRegs +[x4]
- stlr w8, [x4] - ;; size=20 bbWeight=0.99 PerfScore 3.96 -G_M53455_IG06: ; bbWeight=0.99, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=0.99 PerfScore 1.98 -G_M53455_IG07: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, gcvars, byref, isz - ; gcrRegs +[x0 x3-x4] - ; byrRegs -[x3-x4] +[x5] - tbz w8, #31, G_M53455_IG03
+ ;; size=12 bbWeight=1 PerfScore 6.50 +G_M53455_IG03: ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + ldapr w5, [x4] + ldr w6, [x3, #0x18] + and w6, w5, w6 + ldr w7, [x19, #0x08] + cmp w6, w7 + bhs G_M53455_IG11 + mov w7, #24 + mov x8, #16 + umaddl x20, w6, w7, x8 + add x6, x19, x20 + ; byrRegs +[x6] + ldapr w6, [x6] + ; byrRegs -[x6] + sub w6, w6, w5 + cbnz w6, G_M53455_IG05 + ;; size=52 bbWeight=1 PerfScore 22.00 +G_M53455_IG04: ; bbWeight=0.99, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + add w21, w5, #1 + mov w6, w5 + casal w6, w21, [x4] + cmp w6, w5 + bne G_M53455_IG03 + b G_M53455_IG07 + ;; size=24 bbWeight=0.99 PerfScore 6.42 +G_M53455_IG05: ; bbWeight=0.01, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + tbz w6, #31, G_M53455_IG03
;; size=4 bbWeight=0.01 PerfScore 0.01
-G_M53455_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs -[x3-x4] - ; byrRegs -[x5]
+G_M53455_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs -[x3 x19] + ; byrRegs -[x4] + b G_M53455_IG09 + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M53455_IG07: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] +[x19] + add x0, x19, x20 + ; byrRegs +[x0] + str w1, [x0, #0x08] + str x2, [x0, #0x10] + add x0, x19, x20 + stlr w21, [x0] + ;; size=20 bbWeight=0.99 PerfScore 3.96 +G_M53455_IG08: ; bbWeight=0.99, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0.99 PerfScore 4.95 +G_M53455_IG09: ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x19] +[x0] + ; byrRegs -[x0]
movz x3, #0xD1FFAB1E // code for <unknown method> movk x3, #0xD1FFAB1E LSL #16 movk x3, #1 LSL #32 ldr x3, [x3]
- ;; size=16 bbWeight=1 PerfScore 4.50 -G_M53455_IG09: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+ ;; size=16 bbWeight=0.99 PerfScore 4.45 +G_M53455_IG10: ; bbWeight=0.99, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
br x3 ; gcr arg pop 0
- ;; size=8 bbWeight=1 PerfScore 2.00 -G_M53455_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=16 bbWeight=0.99 PerfScore 4.94 +G_M53455_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 8, PerfScore 47.89, instruction count 39, allocated bytes for code 156 (MethodHash=d16f2f30) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
+; Total bytes of code 188, prolog size 16, PerfScore 57.73, instruction count 47, allocated bytes for code 188 (MethodHash=d16f2f30) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -129,7 +136,9 @@ 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 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]!
E4 end E4 end

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-4 (-3.57%) : 10675.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-4 (-3.57%) : 50412.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-28 (-3.45%) : 10578.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>cDisplayClass11_0[ushort]:gexecuteExecutableCodeActions|2():this (FullOpts)

@@ -22,20 +22,20 @@ ;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.DeclarationInfo[]> ;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]> ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]>
-; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x4 "Inline stloc first use temp"
+; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x3 "Inline stloc first use temp"
; V15 tmp8 [V15,T06] ( 5, 5.50) ref -> x19 "field V01.array (fldOffset=0x0)" P-INDEP ; V16 tmp9 [V16,T08] ( 2, 4.50) ref -> x1 single-def "field V03._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x5 "field V03._index (fldOffset=0x8)" P-INDEP -; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x6 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
+; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x4 "field V03._index (fldOffset=0x8)" P-INDEP +; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x5 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref "field V04.<DeclaredSymbol>k__BackingField (fldOffset=0x8)" P-INDEP
-; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x4 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
+; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x3 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
; V21 tmp14 [V21,T11] ( 5, 2 ) ref -> [fp+0x18] do-not-enreg[H] EH-live "field V05.array (fldOffset=0x0)" P-INDEP
-; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x20 "field V06.array (fldOffset=0x0)" P-INDEP
+; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x21 "field V06.array (fldOffset=0x0)" P-INDEP
; V23 tmp16 [V23,T12] ( 3, 1.50) ref -> x1 single-def "field V09.array (fldOffset=0x0)" P-INDEP ; V24 tmp17 [V24,T13] ( 2, 1 ) ref -> x1 single-def "field V10._array (fldOffset=0x0)" P-INDEP ;* V25 tmp18 [V25,T15] ( 0, 0 ) int -> zero-ref single-def "field V10._index (fldOffset=0x8)" P-INDEP ;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref "field V12.array (fldOffset=0x0)" P-INDEP
-; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x4 "BlockOp address local"
+; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x3 "BlockOp address local"
; V28 PSPSym [V28,T14] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym" ; V29 cse0 [V29,T07] ( 3, 5 ) int -> x2 "CSE - aggressive" ; @@ -97,96 +97,95 @@ G_M10501_IG05: ; bbWeight=0.50, gcVars=0000000000000002 {V00}, gcrefRegs= ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x3, x0 - ; gcrRegs +[x3] - str x3, [fp, #0x20] // [V02 loc1]
+ str x0, [fp, #0x20] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=88 bbWeight=0.50 PerfScore 12.50 -G_M10501_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=84 bbWeight=0.50 PerfScore 12.25 +G_M10501_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x28] // [V00 this] - ; gcrRegs +[x0] - ldr x1, [x0, #0x68]
+ ldr x20, [fp, #0x28] // [V00 this] + ; gcrRegs +[x20] + ldr x1, [x20, #0x68]
; gcrRegs +[x1] ldr w2, [x1, #0x08]
+ mov w3, wzr
mov w4, wzr
- mov w5, wzr
cmp w2, #0 ble G_M10501_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.25
-G_M10501_IG07: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - mov w6, #24 - mov x7, #16 - umaddl x4, w4, w6, x7 - add x4, x1, x4 - ; byrRegs +[x4] - ldr x6, [x4]
+G_M10501_IG07: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + mov w5, #24 + mov x6, #16 + umaddl x3, w3, w5, x6 + add x3, x1, x3 + ; byrRegs +[x3] + ldr x5, [x3] + ; gcrRegs +[x5] + ldr x3, [x3, #0x10] + ; gcrRegs +[x3] + ; byrRegs -[x3] + ldr x6, [x20, #0x50]
; gcrRegs +[x6]
- ldr x4, [x4, #0x10] - ; gcrRegs +[x4] - ; byrRegs -[x4] - ldr x7, [x0, #0x50] - ; gcrRegs +[x7] - cmp x6, x7
+ cmp x5, x6
beq G_M10501_IG09 ;; size=36 bbWeight=4 PerfScore 68.00
-G_M10501_IG08: ; bbWeight=2, gcrefRegs=8005B {x0 x1 x3 x4 x6 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x7] - ldr x7, [x0, #0x48] - ; gcrRegs +[x7] - cmp x6, x7
+G_M10501_IG08: ; bbWeight=2, gcrefRegs=18002A {x1 x3 x5 x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x6] + ldr x6, [x20, #0x48] + ; gcrRegs +[x6] + cmp x5, x6
bne G_M10501_IG10 ;; size=12 bbWeight=2 PerfScore 9.00
-G_M10501_IG09: ; bbWeight=2, gcrefRegs=001B {x0 x1 x3 x4}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x6-x7 x19] - mov x19, x4
+G_M10501_IG09: ; bbWeight=2, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x5-x6 x19] + mov x19, x3
; gcrRegs +[x19]
- ldr w4, [x19, #0x08] - ; gcrRegs -[x4] - cbnz w4, G_M10501_IG12
+ ldr w3, [x19, #0x08] + ; gcrRegs -[x3] + cbnz w3, G_M10501_IG12
;; size=12 bbWeight=2 PerfScore 9.00
-G_M10501_IG10: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - add w4, w5, #1 - sxtw w5, w4 - cmp w2, w5
+G_M10501_IG10: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + add w3, w4, #1 + sxtw w4, w3 + cmp w2, w4
bgt G_M10501_IG07 ;; size=16 bbWeight=4 PerfScore 10.00
-G_M10501_IG11: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+G_M10501_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
+ mov x0, x20 + ; gcrRegs +[x0]
mov x1, x19 ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4]
+ movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3]
; GC ptr vars -{V00}
- blr x4 - ; gcrRegs -[x0-x3 x19]
+ blr x3 + ; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0 b G_M10501_IG17
- ;; size=32 bbWeight=0.50 PerfScore 3.75 -G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x0 x3 x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.75 +G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19-x20]
; GC ptr vars +{V00}
- ldrb w1, [x0, #0x42] - ldrb w2, [x0, #0x44]
+ ldrb w1, [x20, #0x42] + ldrb w2, [x20, #0x44]
orr w1, w1, w2 cbz w1, G_M10501_IG13
- ldr x0, [x0, #0x08] - ldr x20, [fp, #0x28] // [V00 this] - ; gcrRegs +[x20]
+ ldr x0, [x20, #0x08] + ; gcrRegs +[x0]
ldr x1, [x20, #0x18] ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ushort]]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3]
+ movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ushort]]) + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x2]
; gcr arg pop 0 ldp x0, x1, [x20, #0x10] ; gcrRegs +[x0-x1] @@ -199,32 +198,28 @@ G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefR blr x3 ; gcrRegs -[x0-x2] ; gcr arg pop 0
- mov x0, x20 - ; gcrRegs +[x0] - ldr x3, [fp, #0x20] // [V02 loc1] - ; gcrRegs +[x3] - ;; size=88 bbWeight=0.50 PerfScore 17.75 -G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x20] - ldrb w2, [x0, #0x43] - ldrb w1, [x0, #0x44]
+ ;; size=76 bbWeight=0.50 PerfScore 16.25 +G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ldrb w2, [x20, #0x43] + ldrb w1, [x20, #0x44]
orr w2, w2, w1 cbz w2, G_M10501_IG11
- ldr x2, [x0, #0x70]
+ ldr x2, [x20, #0x70]
; gcrRegs +[x2]
- ldr x1, [x0, #0x28]
+ ldr x1, [x20, #0x28]
; gcrRegs +[x1] mov x0, x19
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #1 LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x1-x3]
+ ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #1 LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x1-x2]
; gcr arg pop 0 str x0, [fp, #0x18] // [V21 tmp14] ; GC ptr vars +{V21}
- ldr x0, [fp, #0x28] // [V00 this]
+ mov x0, x20
ldr x1, [fp, #0x18] // [V21 tmp14] ; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -234,22 +229,22 @@ G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=00 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- mov x20, x0 - ; gcrRegs +[x20] - ldr w2, [x20, #0x08] - ldp x3, x0, [fp, #0x20] // [V02 loc1], [V00 this] - ; gcrRegs +[x3]
+ mov x21, x0 + ; gcrRegs +[x21] + ldr w2, [x21, #0x08]
cbz w2, G_M10501_IG11
- ;; size=96 bbWeight=0.50 PerfScore 18.75 -G_M10501_IG14: ; bbWeight=0.50, gcrefRegs=180009 {x0 x3 x19 x20}, byrefRegs=0000 {}, byref, isz - ldrb w2, [x0, #0x43]
+ ;; size=92 bbWeight=0.50 PerfScore 16.50 +G_M10501_IG14: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + ldrb w2, [x20, #0x43]
...

+4 (+9.09%) : 92087.dasm - System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)

@@ -35,6 +35,7 @@ G_M15830_IG02: ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {} ; gcrRegs -[x1 x15] ; byrRegs -[x14] ldr w14, [x2, #0x08]
+ cmp w14, #3
add x14, x0, #16 ; byrRegs +[x14] mov x15, x2 @@ -42,13 +43,13 @@ G_M15830_IG02: ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {} bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x2 x15] ; byrRegs -[x14]
- ;; size=28 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M15830_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 44, prolog size 8, PerfScore 10.50, instruction count 11, allocated bytes for code 44 (MethodHash=434ac229) for method System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 11.00, instruction count 12, allocated bytes for code 48 (MethodHash=434ac229) for method System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+9.76%) : 201991.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)

@@ -148,7 +148,7 @@ ;* V137 tmp137 [V137 ] ( 0, 0 ) long -> zero-ref single-def "field V45._upper (fldOffset=0x8)" P-INDEP ;* V138 tmp138 [V138 ] ( 0, 0 ) long -> zero-ref single-def "field V46._lower (fldOffset=0x0)" P-INDEP ;* V139 tmp139 [V139 ] ( 0, 0 ) long -> zero-ref single-def "field V46._upper (fldOffset=0x8)" P-INDEP
-; V140 tmp140 [V140,T11] ( 2, 2 ) long -> x1 single-def "field V59._lower (fldOffset=0x0)" P-INDEP
+; V140 tmp140 [V140,T11] ( 2, 2 ) long -> x2 single-def "field V59._lower (fldOffset=0x0)" P-INDEP
;* V141 tmp141 [V141 ] ( 0, 0 ) long -> zero-ref single-def "field V59._upper (fldOffset=0x8)" P-INDEP ;* V142 tmp142 [V142 ] ( 0, 0 ) long -> zero-ref single-def "field V60._lower (fldOffset=0x0)" P-INDEP ;* V143 tmp143 [V143 ] ( 0, 0 ) long -> zero-ref single-def "field V60._upper (fldOffset=0x8)" P-INDEP @@ -162,7 +162,7 @@ ;* V151 tmp151 [V151 ] ( 0, 0 ) long -> zero-ref single-def "field V66._upper (fldOffset=0x8)" P-INDEP ;* V152 tmp152 [V152 ] ( 0, 0 ) long -> zero-ref single-def "field V67._lower (fldOffset=0x0)" P-INDEP ;* V153 tmp153 [V153 ] ( 0, 0 ) long -> zero-ref single-def "field V67._upper (fldOffset=0x8)" P-INDEP
-;* V154 tmp154 [V154,T12] ( 0, 0 ) long -> zero-ref single-def "field V80._lower (fldOffset=0x0)" P-INDEP
+; V154 tmp154 [V154,T12] ( 2, 2 ) long -> x0 single-def "field V80._lower (fldOffset=0x0)" P-INDEP
;* V155 tmp155 [V155 ] ( 0, 0 ) long -> zero-ref single-def "field V80._upper (fldOffset=0x8)" P-INDEP ;* V156 tmp156 [V156 ] ( 0, 0 ) long -> zero-ref single-def "field V81._lower (fldOffset=0x0)" P-INDEP ;* V157 tmp157 [V157 ] ( 0, 0 ) long -> zero-ref single-def "field V81._upper (fldOffset=0x8)" P-INDEP @@ -176,7 +176,7 @@ ;* V165 tmp165 [V165 ] ( 0, 0 ) long -> zero-ref single-def "field V87._upper (fldOffset=0x8)" P-INDEP ;* V166 tmp166 [V166 ] ( 0, 0 ) long -> zero-ref single-def "field V88._lower (fldOffset=0x0)" P-INDEP ;* V167 tmp167 [V167 ] ( 0, 0 ) long -> zero-ref single-def "field V88._upper (fldOffset=0x8)" P-INDEP
-;* V168 tmp168 [V168,T13] ( 0, 0 ) long -> zero-ref single-def "field V101._lower (fldOffset=0x0)" P-INDEP
+; V168 tmp168 [V168,T13] ( 2, 2 ) long -> x1 single-def "field V101._lower (fldOffset=0x0)" P-INDEP
;* V169 tmp169 [V169 ] ( 0, 0 ) long -> zero-ref single-def "field V101._upper (fldOffset=0x8)" P-INDEP ;* V170 tmp170 [V170 ] ( 0, 0 ) long -> zero-ref single-def "field V102._lower (fldOffset=0x0)" P-INDEP ;* V171 tmp171 [V171 ] ( 0, 0 ) long -> zero-ref single-def "field V102._upper (fldOffset=0x8)" P-INDEP @@ -185,8 +185,8 @@ ;* V174 tmp174 [V174 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V105.hasValue (fldOffset=0x0)" P-INDEP ;* V175 tmp175 [V175 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V105.value (fldOffset=0x1)" P-INDEP ; V176 tmp176 [V176,T37] ( 9, 0 ) struct ( 8) [fp+0x18] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-; V177 cse0 [V177,T00] ( 2, 2 ) long -> x1 "CSE - aggressive" -; V178 cse1 [V178,T01] ( 2, 2 ) long -> x0 "CSE - aggressive"
+; V177 cse0 [V177,T00] ( 4, 4 ) long -> x1 "CSE - aggressive" +; V178 cse1 [V178,T01] ( 3, 3 ) long -> x0 "CSE - aggressive"
; V179 cse2 [V179,T02] ( 3, 3 ) long -> x1 "CSE - aggressive" ;* V180 cse3 [V180,T36] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; @@ -245,9 +245,9 @@ G_M40196_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr d16, [@RWD08] cnt v16.8b, v16.8b addv b16, v16.8b
- umov w0, v16.b[0] - add x1, x1, w0, UXTW - cmp x1, #1
+ umov w2, v16.b[0] + add x2, x1, w2, UXTW + cmp x2, #1
bne G_M40196_IG10 ;; size=52 bbWeight=1 PerfScore 14.50 G_M40196_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -259,7 +259,15 @@ G_M40196_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M40196_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cbnz w2, G_M40196_IG15
- ;; size=4 bbWeight=1 PerfScore 1.00
+ ldr d16, [@RWD16] + cnt v16.8b, v16.8b + addv b16, v16.8b + umov w2, v16.b[0] + add x0, x0, w2, UXTW + cmp x0, #1 + add x1, x1, x1 + cmp x1, #1 + ;; size=36 bbWeight=1 PerfScore 9.50
G_M40196_IG12: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -312,9 +320,10 @@ G_M40196_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ;; size=48 bbWeight=0 PerfScore 0.00 RWD00 dq 0000000000000001h RWD08 dq 7FFFFFFFFFFFFFFFh
+RWD16 dq 8000000000000000h
-; Total bytes of code 328, prolog size 8, PerfScore 43.50, instruction count 82, allocated bytes for code 328 (MethodHash=59ac62fb) for method System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
+; Total bytes of code 360, prolog size 8, PerfScore 52.00, instruction count 90, allocated bytes for code 360 (MethodHash=59ac62fb) for method System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
; ============================================================ Unwind Info: @@ -325,7 +334,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 82 (0x00052) Actual length = 328 (0x000148)
+ Function Length : 90 (0x0005a) Actual length = 360 (0x000168)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+10.20%) : 178097.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)

@@ -12,7 +12,7 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ;* V03 tmp2 [V03,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp3 [V04,T00] ( 7, 20 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
+; V04 tmp3 [V04,T00] ( 8, 22 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
;* V05 tmp4 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.Emit.TypeBuilderImpl> ;* V07 tmp6 [V07,T08] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.TypeBuilderImpl> @@ -52,7 +52,12 @@ G_M32453_IG04: ; bbWeight=2, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000 ; gcrRegs +[x0 x20] cmp x0, x20 beq G_M32453_IG07
- ;; size=8 bbWeight=2 PerfScore 3.00
+ ldr x1, [x0] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + cmp x1, x2 + ;; size=28 bbWeight=2 PerfScore 13.00
G_M32453_IG05: ; bbWeight=4, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ldr x1, [x0] ldr x1, [x1, #0xA0] @@ -116,7 +121,7 @@ G_M32453_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { brk_unix #0 ;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 12, PerfScore 62.75, instruction count 49, allocated bytes for code 196 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
+; Total bytes of code 216, prolog size 12, PerfScore 72.75, instruction count 54, allocated bytes for code 216 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
; ============================================================ Unwind Info: @@ -127,7 +132,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.osx.arm64.checked.mch

-4 (-1.23%) : 18311.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)

@@ -47,7 +47,7 @@ G_M43028_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldr w21, [x20, #0x08] mov w22, wzr cmp w21, #0
- ble G_M43028_IG13
+ ble G_M43028_IG10
cbz x19, G_M43028_IG07 ldr w0, [x19, #0x08] cmp w0, w21 @@ -71,7 +71,7 @@ G_M43028_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=800000 { ; gcrRegs +[x26] cmp x24, x26 ccmp w25, #1, 0, eq
- bne G_M43028_IG11
+ bne G_M43028_IG12
;; size=48 bbWeight=3.96 PerfScore 67.32 G_M43028_IG04: ; bbWeight=1.98, gcrefRegs=80002 {x1 x19}, byrefRegs=800000 {x23}, byref, isz ; gcrRegs -[x24 x26] @@ -86,23 +86,23 @@ G_M43028_IG04: ; bbWeight=1.98, gcrefRegs=80002 {x1 x19}, byrefRegs=80000 ; gcr arg pop 0 ldr w0, [x0, #0x08] ; gcrRegs -[x0]
- cbnz w0, G_M43028_IG11
+ cbnz w0, G_M43028_IG12
;; size=28 bbWeight=1.98 PerfScore 28.71 G_M43028_IG05: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz add w22, w22, #1 cmp w22, w21 blt G_M43028_IG03 ;; size=12 bbWeight=3.96 PerfScore 7.92
-G_M43028_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M43028_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] ; byrRegs -[x23]
- b G_M43028_IG13 - ;; size=4 bbWeight=1 PerfScore 1.00
+ b G_M43028_IG10 + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M43028_IG07: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x19-x20] ldr w0, [x19, #0x08] cmp w22, w0
- bhs G_M43028_IG15
+ bhs G_M43028_IG14
mov w0, #24 mov x1, #16 umaddl x0, w22, w0, x1 @@ -117,7 +117,7 @@ G_M43028_IG07: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs +[x26] cmp x24, x26 ccmp w25, #1, 0, eq
- bne G_M43028_IG11
+ bne G_M43028_IG12
;; size=56 bbWeight=0.04 PerfScore 0.94 G_M43028_IG08: ; bbWeight=0.02, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x24 x26] @@ -132,7 +132,7 @@ G_M43028_IG08: ; bbWeight=0.02, gcrefRegs=180002 {x1 x19 x20}, byrefRegs= ; gcr arg pop 0 ldr w0, [x0, #0x08] ; gcrRegs -[x0]
- cbnz w0, G_M43028_IG11
+ cbnz w0, G_M43028_IG12
;; size=28 bbWeight=0.02 PerfScore 0.29 G_M43028_IG09: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz add w22, w22, #1 @@ -141,23 +141,9 @@ G_M43028_IG09: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ;; size=12 bbWeight=0.04 PerfScore 0.08 G_M43028_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19-x20]
- b G_M43028_IG13 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M43028_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, wzr - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M43028_IG12: ; 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 - ret lr - ;; size=24 bbWeight=0.50 PerfScore 3.00 -G_M43028_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43028_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M43028_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -165,13 +151,24 @@ G_M43028_IG14: ; bbWeight=0.50, epilog, nogc, extend ldp fp, lr, [sp], #0x50 ret lr ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M43028_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M43028_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M43028_IG13: ; 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 + ret lr + ;; size=24 bbWeight=0.50 PerfScore 3.00 +G_M43028_IG14: ; 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 324, prolog size 32, PerfScore 130.76, instruction count 81, allocated bytes for code 324 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
+; Total bytes of code 320, prolog size 32, PerfScore 129.76, instruction count 80, allocated bytes for code 320 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -182,7 +179,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 81 (0x00051) Actual length = 324 (0x000144)
+ Function Length : 80 (0x00050) Actual length = 320 (0x000140)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-0.84%) : 23077.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:g_findMostSpecificImplementationInBases|921(Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],byref,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)

@@ -274,7 +274,6 @@ G_M19054_IG04: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRe str x1, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111} cbz x28, G_M19054_IG33
- ldr x1, [fp, #0x30] // [V111 tmp93]
mov x0, x28 ldr x0, [x0] ; gcrRegs -[x0] @@ -285,9 +284,9 @@ G_M19054_IG04: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRe bne G_M19054_IG05 ldr w0, [x28, #0x20] cbz w0, G_M19054_IG33
- ;; size=80 bbWeight=2 PerfScore 43.00 -G_M19054_IG05: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz - ; GC ptr vars -{V111}
+ ;; size=76 bbWeight=2 PerfScore 39.00 +G_M19054_IG05: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz + ; gcrRegs -[x1]
mov w2, wzr ldr x0, [x24, #0x08] ; gcrRegs +[x0] @@ -296,13 +295,11 @@ G_M19054_IG05: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, cmp w0, #0 ble G_M19054_IG12 ;; size=20 bbWeight=2 PerfScore 16.00
-G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
+G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
ldr x0, [x24, #0x08] ; gcrRegs +[x0] ldr w3, [x0, #0x10] cmp w2, w3
- str x1, [fp, #0x30] // [V111 tmp93] - ; GC ptr vars +{V111}
bge G_M19054_IG50 ldr x0, [x0, #0x08] ldr w3, [x0, #0x08] @@ -335,7 +332,7 @@ G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28} movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 bl CORINFO_HELP_NEWSFAST
- ; gcrRegs -[x1 x4-x6] +[x0]
+ ; gcrRegs -[x4-x6] +[x0]
add x14, x0, #8 ; byrRegs +[x14] ldr x15, [fp, #0x20] // [V126 tmp108] @@ -386,7 +383,7 @@ G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28} ldr x2, [fp, #0x60] // [V12 loc7] ; gcrRegs +[x2] cbnz x2, G_M19054_IG08
- ;; size=240 bbWeight=16 PerfScore 1360.00
+ ;; size=236 bbWeight=16 PerfScore 1344.00
G_M19054_IG07: ; bbWeight=8, gcVars=00000000000000000020000000070000 {V13 V111 V126 V127}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz ; gcrRegs -[x2] ; GC ptr vars -{V12 V125} @@ -466,20 +463,14 @@ G_M19054_IG08: ; bbWeight=16, gcrefRegs=19900004 {x2 x20 x23 x24 x27 x28} ; gcrRegs -[x15] cmp w14, w15 mov w2, w14
- ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1]
blt G_M19054_IG06
- ;; size=68 bbWeight=16 PerfScore 408.00 -G_M19054_IG09: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref
+ ;; size=64 bbWeight=16 PerfScore 376.00 +G_M19054_IG09: ; bbWeight=2, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref
; byrRegs -[x0]
- ; GC ptr vars -{V111}
b G_M19054_IG12 ;; size=4 bbWeight=2 PerfScore 2.00 G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V111 V125}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz
- ; gcrRegs -[x1] - ; GC ptr vars +{V25 V111 V125} - ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1]
+ ; GC ptr vars +{V25 V125}
ldr x15, [x24, #0x08] ; gcrRegs +[x15] ldr w12, [x15, #0x10] @@ -496,7 +487,7 @@ G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V11 ldr x15, [fp, #0x28] // [V125 tmp107] mov x14, x0 ; byrRegs +[x14]
- ; GC ptr vars -{V25 V111 V125}
+ ; GC ptr vars -{V25 V125}
bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14] @@ -509,22 +500,20 @@ G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V11 ; byrRegs -[x14] add x14, x0, #16 ; byrRegs +[x14]
- mov x15, x1
+ ldr x15, [fp, #0x30] // [V111 tmp93]
; gcrRegs +[x15]
+ ; GC ptr vars -{V111}
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x1 x15]
+ ; gcrRegs -[x15]
; byrRegs -[x0 x14]
- ;; size=84 bbWeight=2 PerfScore 58.00
+ ;; size=80 bbWeight=2 PerfScore 57.00
G_M19054_IG11: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRegs=680000 {x19 x21 x22}, byref mov x28, xzr ; gcrRegs +[x28] str xzr, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111}
- ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1] - ;; size=12 bbWeight=2 PerfScore 7.00 -G_M19054_IG12: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz - ; GC ptr vars -{V111}
+ ;; size=8 bbWeight=2 PerfScore 3.00 +G_M19054_IG12: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz
cbz x28, G_M19054_IG33 mov x0, x28 ; gcrRegs +[x0] @@ -538,17 +527,14 @@ G_M19054_IG12: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, ; gcrRegs -[x0] cbz w0, G_M19054_IG33 ;; size=40 bbWeight=2 PerfScore 23.00
-G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
+G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
ldr x2, [x24, #0x08] ; gcrRegs +[x2] ldr w3, [x2, #0x10] cbz w3, G_M19054_IG29
- str x1, [fp, #0x30] // [V111 tmp93] - ; GC ptr vars +{V111}
mov x0, x27 ; gcrRegs +[x0] mov x1, x19
- ; gcrRegs -[x1]
; byrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> ; gcrRegs -[x2] @@ -565,7 +551,7 @@ G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, ; gcrRegs -[x0] sub w1, w0, #1 tbnz w1, #31, G_M19054_IG19
- ;; size=64 bbWeight=2 PerfScore 45.00
+ ;; size=60 bbWeight=2 PerfScore 43.00
G_M19054_IG14: ; bbWeight=16, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz ldr x0, [x24, #0x08] ; gcrRegs +[x0] @@ -837,9 +823,11 @@ G_M19054_IG28: ; bbWeight=2, gcrefRegs=19900004 {x2 x20 x23 x24 x27 x28}, str w3, [x2, #0x10] b G_M19054_IG33 ;; size=80 bbWeight=2 PerfScore 53.00
-G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=11900006 {x1 x2 x20 x23 x24 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz - ; gcrRegs +[x1 x28] - ; GC ptr vars -{V66}
+G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=11900004 {x2 x20 x23 x24 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz + ; gcrRegs +[x28] + ; GC ptr vars -{V66} +{V111} + ldr x1, [fp, #0x30] // [V111 tmp93] + ; gcrRegs +[x1]
mov x27, x2 ; gcrRegs +[x27] add w3, w3, #1 @@ -855,10 +843,9 @@ G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, bge G_M19054_IG30 sxtw w2, w3 str x1, [fp, #0x30] // [V111 tmp93]
- ; GC ptr vars +{V111}
b G_M19054_IG31
- ;; size=56 bbWeight=2 PerfScore 35.00 -G_M19054_IG30: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref
+ ;; size=60 bbWeight=2 PerfScore 39.00 +G_M19054_IG30: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref
; GC ptr vars -{V111} str x1, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111} @@ -1166,7 +1153,7 @@ G_M19054_IG51: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2380, prolog size 56, PerfScore 4117.50, instruction count 595, allocated bytes for code 2380 (MethodHash=53aab591) for method 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)
+; Total bytes of code 2360, prolog size 56, PerfScore 4062.50, instruction count 590, allocated bytes for code 2360 (MethodHash=53aab591) for method 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)
; ============================================================ Unwind Info: @@ -1177,7 +1164,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 595 (0x00253) Actual length = 2380 (0x00094c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-0.70%) : 1751.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],ubyte,ubyte):ubyte (FullOpts)

@@ -30,8 +30,8 @@ ;* V19 loc15 [V19 ] ( 0, 0 ) ubyte -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[int]> ; V21 loc17 [V21,T28] ( 3, 96 ) int -> [fp-0x9C] spill-single-def ptr
-; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x13 -; V23 loc19 [V23,T01] ( 7,1344 ) int -> x1
+; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x14 +; V23 loc19 [V23,T01] ( 7,1344 ) int -> x13
; V24 loc20 [V24,T02] ( 3, 832 ) int -> x0 ;# V25 OutArgs [V25 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V26 tmp1 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> @@ -40,15 +40,15 @@ ; V29 tmp4 [V29,T12] ( 4, 256 ) int -> x7 "impSpillLclRefs" ; V30 tmp5 [V30,T13] ( 4, 256 ) int -> x1 "impSpillLclRefs" ; V31 tmp6 [V31,T15] ( 2, 256 ) int -> x10 "dup spill"
-; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x0 "impSpillLclRefs"
+; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x1 "impSpillLclRefs"
; V33 tmp8 [V33,T49] ( 2, 32 ) int -> [fp-0xA0] spill-single-def ptr "impAppendStmt" ;* V34 tmp9 [V34 ] ( 0, 0 ) int -> zero-ref ptr ; V35 tmp10 [V35,T37] ( 4, 64 ) int -> x0 "impSpillLclRefs" ; V36 tmp11 [V36,T38] ( 4, 64 ) int -> x13 "impSpillLclRefs" ; V37 tmp12 [V37,T34] ( 5, 80 ) int -> x13 "dup spill" ; V38 tmp13 [V38,T39] ( 4, 64 ) int -> x13 "impSpillLclRefs"
-; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x1 "impSpillLclRefs" -; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x1 "impSpillLclRefs"
+; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x0 "impSpillLclRefs" +; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x0 "impSpillLclRefs"
; V41 tmp16 [V41,T30] ( 3, 96 ) int -> x1 ; V42 tmp17 [V42,T52] ( 4, 16 ) int -> x25 "impSpillLclRefs" ;* V43 tmp18 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]> @@ -159,7 +159,7 @@ ; V148 tmp123 [V148,T24] ( 2, 128 ) long -> x2 "Inlining Arg" ;* V149 tmp124 [V149 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V150 tmp125 [V150,T50] ( 3, 24 ) ushort -> registers ptr "Inline return value spill temp"
-; V151 tmp126 [V151,T42] ( 4, 64 ) ushort -> x10 "Inlining Arg"
+; V151 tmp126 [V151,T42] ( 4, 64 ) ushort -> x12 "Inlining Arg"
;* V152 tmp127 [V152 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp" ;* V153 tmp128 [V153 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V154 tmp129 [V154 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> @@ -310,10 +310,10 @@ G_M9731_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x23, [fp, #-0x78] // [V01 arg1] ; byrRegs +[x23] ldr w24, [fp, #-0x70] // [V01 arg1+0x08]
- cbz w22, G_M9731_IG70
+ cbz w22, G_M9731_IG71
;; size=20 bbWeight=1 PerfScore 9.00 G_M9731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref, isz
- cbz w24, G_M9731_IG70
+ cbz w24, G_M9731_IG71
ldrh w0, [x21] cmp w0, #42 bne G_M9731_IG08 @@ -393,7 +393,7 @@ G_M9731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2A00000 {x21 G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 x25}, byref, isz ; byrRegs -[x21] cmp w24, w26
- blt G_M9731_IG70
+ blt G_M9731_IG71
mov x0, x23 ; byrRegs +[x0] sxtw w1, w24 @@ -410,7 +410,7 @@ G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 blr x5 ; byrRegs -[x0 x2 x23 x25] ; gcr arg pop 0
- b G_M9731_IG65
+ b G_M9731_IG66
;; size=60 bbWeight=0.50 PerfScore 5.75 G_M9731_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref ; byrRegs +[x21 x23] @@ -437,7 +437,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 add w1, w25, #1 sxtw w27, w1 cmp w25, w24
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldrh w1, [x23, w25, UXTW #2] sxtw w25, w1 b G_M9731_IG12 @@ -445,7 +445,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 G_M9731_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 x23 x28}, byref, isz sub w6, w26, #1 cmp w6, w4
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldr w1, [x3, w6, UXTW #2] cmp w1, w5 beq G_M9731_IG21 @@ -469,7 +469,7 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 str w0, [fp, #-0x80] // [V06 loc2] str w4, [fp, #-0xC8] // [V182 tmp157] cmp w1, w4
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181} ldr w1, [x3, w1, UXTW #2] @@ -477,14 +477,14 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 add w1, w1, w1, LSR #31 asr w10, w1, #1 cmp w10, w22
- bge G_M9731_IG53
+ bge G_M9731_IG54
;; size=48 bbWeight=16 PerfScore 192.00 G_M9731_IG14: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref, isz ; byrRegs -[x3] lsl w11, w10, #1 str w11, [fp, #-0x94] // [V16 loc12] cmp w10, w22
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
str w10, [fp, #-0x7C] // [V05 loc1] ldrh w13, [x21, w10, UXTW #2] str w13, [fp, #-0x8C] // [V11 loc7] @@ -513,7 +513,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xCC] // [V244 tmp219] ldr w5, [fp, #-0xC4] // [V180 tmp155] cmp w5, w4
- bhi G_M9731_IG75
+ bhi G_M9731_IG76
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -548,7 +548,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xD0] // [V248 tmp223] ldr w5, [fp, #-0xC8] // [V182 tmp157] cmp w5, w4
- bhi G_M9731_IG75
+ bhi G_M9731_IG76
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -579,29 +579,29 @@ G_M9731_IG16: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V18 ; GC ptr vars -{V247} ldr w13, [fp, #-0x8C] // [V11 loc7] cmp w13, #42
- beq G_M9731_IG28
+ beq G_M9731_IG30
;; size=12 bbWeight=64 PerfScore 224.00 G_M9731_IG17: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz tst w19, #255 beq G_M9731_IG26 cmp w13, #60 bne G_M9731_IG26
- mov w13, wzr
+ mov w14, wzr
cbnz w6, G_M9731_IG24 cmp w25, #46 bne G_M9731_IG23
- sxtw w1, w27 - cmp w1, w24
+ sxtw w13, w27 + cmp w13, w24
bge G_M9731_IG23 ;; size=44 bbWeight=32 PerfScore 256.00 G_M9731_IG18: ; bbWeight=256, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- cmp w1, w24 - bhs G_M9731_IG72 - ldrh w0, [x23, w1, UXTW #2] - cmp w0, #46
+ cmp w13, w24 + bhs G_M9731_IG73 + ldrh w1, [x23, w13, UXTW #2] + cmp w1, #46
beq G_M9731_IG22
- add w1, w1, #1 - cmp w1, w24
+ add w13, w13, #1 + cmp w13, w24
blt G_M9731_IG18 ;; size=32 bbWeight=256 PerfScore 2048.00 G_M9731_IG19: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref @@ -612,18 +612,18 @@ G_M9731_IG20: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, g ; GC ptr vars -{V181} str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181}
- b G_M9731_IG63
+ b G_M9731_IG64
;; size=8 bbWeight=2 PerfScore 4.00 G_M9731_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref ; byrRegs -[x21 x23 x28] ; GC ptr vars -{V181} ldr w5, [fp, #-0x90] // [V15 loc11]
- b G_M9731_IG64
+ b G_M9731_IG65
;; size=8 bbWeight=1 PerfScore 3.00 G_M9731_IG22: ; bbWeight=32, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref ; byrRegs -[x3] +[x21 x23 x28] ; GC ptr vars +{V09 V181}
- mov w13, #1
+ mov w14, #1
;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref cmp w25, #46 @@ -634,183 +634,181 @@ G_M9731_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x mov w1, #1 ;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- orr w1, w1, w13 - cbz w1, G_M9731_IG29 - b G_M9731_IG28
+ orr w1, w1, w14 + cbz w1, G_M9731_IG31 + b G_M9731_IG30
;; size=12 bbWeight=32 PerfScore 80.00 G_M9731_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz ldr w11, [fp, #-0x94] // [V16 loc12] add w11, w11, #2 tst w19, #255
- beq G_M9731_IG37
+ beq G_M9731_IG38
cmp w13, #62
- bne G_M9731_IG27 - cbnz w6, G_M9731_IG30
+ bne G_M9731_IG28 + cbnz w6, G_M9731_IG32
cmp w25, #46
- beq G_M9731_IG30 - b G_M9731_IG34 - ;; size=40 bbWeight=32 PerfScore 288.00 -G_M9731_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz - cmp w13, #34 - bne G_M9731_IG37 - cbnz w6, G_M9731_IG30 - b G_M9731_IG35 - ;; size=16 bbWeight=32 PerfScore 112.00
+ beq G_M9731_IG32 + ;; size=36 bbWeight=32 PerfScore 256.00 +G_M9731_IG27: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG36 + ;; size=4 bbWeight=8 PerfScore 8.00
G_M9731_IG28: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+ cmp w13, #34 + bne G_M9731_IG38 + cbnz w6, G_M9731_IG32 + ;; size=12 bbWeight=32 PerfScore 80.00 +G_M9731_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG37 + ;; size=4 bbWeight=8 PerfScore 8.00 +G_M9731_IG30: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] add w13, w7, #1 cmp w7, w2
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldr w11, [fp, #-0x94] // [V16 loc12] str w11, [x28, w7, UXTW #2] str w13, [fp, #-0x84] // [V07 loc3] str w11, [fp, #-0x94] // [V16 loc12] ;; size=32 bbWeight=32 PerfScore 288.00 ...

+16 (+2.88%) : 19877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)

@@ -19,38 +19,39 @@ ;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol> ; V09 tmp2 [V09,T02] ( 5, 16 ) ref -> x23 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol> ; V10 tmp3 [V10,T03] ( 4, 16 ) ref -> x0 class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-; V11 tmp4 [V11 ] ( 4, 8 ) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V11 tmp4 [V11 ] ( 4, 8 ) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]> ;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]> ;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V15 tmp8 [V15,T06] ( 4, 12.50) int -> x1 "Inline stloc first use temp"
+; V15 tmp8 [V15,T06] ( 4, 12.50) int -> x23 "Inline stloc first use temp"
; V16 tmp9 [V16,T17] ( 2, 1 ) ref -> x0 single-def "field V05._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T05] ( 4, 12.50) int -> x23 "field V05._index (fldOffset=0x8)" P-INDEP
+; V17 tmp10 [V17,T05] ( 4, 12.50) int -> x24 "field V05._index (fldOffset=0x8)" P-INDEP
; V18 tmp11 [V18,T16] ( 3, 1.50) ref -> x0 "field V06.array (fldOffset=0x0)" P-INDEP
-; V19 tmp12 [V19 ] ( 4, 8 ) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V11.DiagnosticInfo (fldOffset=0x0)" P-DEP -; V20 tmp13 [V20 ] ( 4, 8 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V11.PrimaryDependency (fldOffset=0x8)" P-DEP -; V21 tmp14 [V21 ] ( 4, 8 ) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V11.SecondaryDependencies (fldOffset=0x10)" P-DEP
+; V19 tmp12 [V19 ] ( 4, 8 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V11.DiagnosticInfo (fldOffset=0x0)" P-DEP +; V20 tmp13 [V20 ] ( 4, 8 ) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V11.PrimaryDependency (fldOffset=0x8)" P-DEP +; V21 tmp14 [V21 ] ( 4, 8 ) ref -> [fp+0x40] do-not-enreg[X] addr-exposed "field V11.SecondaryDependencies (fldOffset=0x10)" P-DEP
;* V22 tmp15 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V12.array (fldOffset=0x0)" P-INDEP ; V23 tmp16 [V23,T18] ( 2, 1 ) ref -> x0 single-def "field V13._array (fldOffset=0x0)" P-INDEP ;* V24 tmp17 [V24,T19] ( 0, 0 ) int -> zero-ref single-def "field V13._index (fldOffset=0x8)" P-INDEP
-; V25 tmp18 [V25 ] ( 4, 16 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V25 tmp18 [V25 ] ( 4, 16 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
;* V26 tmp19 [V26,T14] ( 0, 0 ) byref -> zero-ref "argument with side effect" ;* V27 tmp20 [V27,T15] ( 0, 0 ) byref -> zero-ref "argument with side effect" ; V28 tmp21 [V28,T00] ( 3, 24 ) ref -> x0 "argument with side effect" ; V29 cse0 [V29,T12] ( 3, 5 ) int -> x19 "CSE - aggressive"
-; V30 cse1 [V30,T13] ( 2, 4.50) byref -> x24 hoist "CSE - aggressive"
+; V30 cse1 [V30,T13] ( 2, 4.50) byref -> x25 hoist "CSE - aggressive"
; V31 cse2 [V31,T07] ( 3, 12 ) long -> x24 "CSE - aggressive" ; V32 cse3 [V32,T11] ( 3, 6 ) long -> x24 "CSE - aggressive" ;
-; Lcl frame size = 48
+; Lcl frame size = 56
G_M31465_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x70]! - stp x19, x20, [sp, #0x40] - stp x21, x22, [sp, #0x50] - stp x23, x24, [sp, #0x60]
+ stp fp, lr, [sp, #-0x80]! + stp x19, x20, [sp, #0x48] + stp x21, x22, [sp, #0x58] + stp x23, x24, [sp, #0x68] + str x25, [sp, #0x78]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0 stp q16, q16, [x9] stp xzr, xzr, [x9, #0x20] @@ -60,7 +61,7 @@ G_M31465_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcrRegs +[x20] mov x19, x2 ; byrRegs +[x19]
- ;; size=48 bbWeight=1 PerfScore 9.00
+ ;; size=52 bbWeight=1 PerfScore 10.00
G_M31465_IG02: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=80000 {x19}, byref, isz mov x0, x21 ; gcrRegs +[x0] @@ -101,13 +102,13 @@ G_M31465_IG04: ; bbWeight=2, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefReg ldr x1, [x1, #0xD1FFAB1E] ldr x1, [x1] blr x1
- stp xzr, xzr, [fp, #0x28] - str xzr, [fp, #0x38]
+ stp xzr, xzr, [fp, #0x30] + str xzr, [fp, #0x40]
cbz x0, G_M31465_IG09 ldrb w8, [x19, #0x19] cmp w8, #2 beq G_M31465_IG09
- add x8, fp, #40 // [V11 tmp4]
+ add x8, fp, #48 // [V11 tmp4]
ldr x1, [x0] ldr x1, [x1, #0x80] ldr x1, [x1, #0x20] @@ -115,15 +116,15 @@ G_M31465_IG04: ; bbWeight=2, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefReg ; gcrRegs -[x0] ;; size=64 bbWeight=2 PerfScore 57.00 G_M31465_IG05: ; bbWeight=2, nogc, extend
- ldp x0, x1, [fp, #0x28] - stp x0, x1, [fp, #0x10] - ldr x0, [fp, #0x38] - str x0, [fp, #0x20]
+ ldp x0, x1, [fp, #0x30] + stp x0, x1, [fp, #0x18] + ldr x0, [fp, #0x40] + str x0, [fp, #0x28]
;; size=16 bbWeight=2 PerfScore 14.00 G_M31465_IG06: ; bbWeight=2, extend mov x0, x19 ; byrRegs +[x0]
- add x2, fp, #16 // [V25 tmp18]
+ add x2, fp, #24 // [V25 tmp18]
movz x24, #0xD1FFAB1E movk x24, #0xD1FFAB1E LSL #16 movk x24, #1 LSL #32 @@ -136,15 +137,15 @@ G_M31465_IG06: ; bbWeight=2, extend ; byrRegs -[x0] ;; size=44 bbWeight=2 PerfScore 17.00 G_M31465_IG07: ; bbWeight=2, nogc, extend
- ldp x0, x1, [fp, #0x28] - stp x0, x1, [fp, #0x10] - ldr x0, [fp, #0x38] - str x0, [fp, #0x20]
+ ldp x0, x1, [fp, #0x30] + stp x0, x1, [fp, #0x18] + ldr x0, [fp, #0x40] + str x0, [fp, #0x28]
;; size=16 bbWeight=2 PerfScore 14.00 G_M31465_IG08: ; bbWeight=2, extend mov x0, x19 ; byrRegs +[x0]
- add x2, fp, #16 // [V25 tmp18]
+ add x2, fp, #24 // [V25 tmp18]
mov x1, x24 movz x3, #0xD1FFAB1E // code for <unknown method> movk x3, #0xD1FFAB1E LSL #16 @@ -178,16 +179,16 @@ G_M31465_IG10: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs blr x2 ; byrRegs -[x1 x19] ldr w19, [x0, #0x08]
- mov w1, wzr
mov w23, wzr
+ mov w24, wzr
cmp w19, #0 ble G_M31465_IG12
- add x24, x0, #16 - ; byrRegs +[x24]
+ add x25, x0, #16 + ; byrRegs +[x25]
;; size=80 bbWeight=0.50 PerfScore 13.50
-G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=1000000 {x24}, byref, isz
+G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=2000000 {x25}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x24, w1, UXTW #3]
+ ldr x0, [x25, w23, UXTW #3]
; gcrRegs +[x0] ldr x1, [x0] ldr x1, [x1, #0xD1FFAB1E] @@ -195,14 +196,14 @@ G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=10 blr x1 cmp x0, x22 beq G_M31465_IG14
- add w1, w23, #1 - sxtw w23, w1 - cmp w19, w23
+ add w23, w24, #1 + sxtw w24, w23 + cmp w19, w24
bgt G_M31465_IG11 ;; size=44 bbWeight=4 PerfScore 68.00 G_M31465_IG12: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x22]
- ; byrRegs -[x24]
+ ; byrRegs -[x25]
mov x0, x21 ; gcrRegs +[x0] ldr x1, [x21] @@ -223,45 +224,48 @@ G_M31465_IG12: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000 cset x0, eq ;; size=56 bbWeight=0.50 PerfScore 11.75 G_M31465_IG13: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
G_M31465_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M31465_IG15: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
G_M31465_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M31465_IG17: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
-; Total bytes of code 556, prolog size 36, PerfScore 326.75, instruction count 139, allocated bytes for code 556 (MethodHash=11448516) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
+; Total bytes of code 572, prolog size 40, PerfScore 330.75, instruction count 143, allocated bytes for code 572 (MethodHash=11448516) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0
- Function Length : 139 (0x0008b) Actual length = 556 (0x00022c)
+ Function Length : 143 (0x0008f) Actual length = 572 (0x00023c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -275,10 +279,13 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
+ D1 8F save_reg X#6 Z#15 (0x0F); str x25, [sp, #120]
E6 save_next E6 save_next
- C8 08 save_regp X#0 Z#8 (0x08); stp x19, x20, [sp, #64] - 8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
+ C8 09 save_regp X#0 Z#9 (0x09); stp x19, x20, [sp, #72] + 8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! + E4 end + E4 end
E4 end E4 end

+24 (+4.84%) : 10192.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 12, 7.12) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 13, 7.62) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.Infos+ILPropInfo> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> @@ -21,8 +21,8 @@ ;* V10 tmp1 [V10,T06] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V11 tmp2 [V11,T01] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> ; V12 tmp3 [V12,T17] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V13 tmp4 [V13,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" -;* V14 tmp5 [V14,T02] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+; V13 tmp4 [V13,T07] ( 2, 2 ) long -> x2 "fgMakeTemp is creating a new local variable" +; V14 tmp5 [V14,T02] ( 2, 2 ) ref -> x1 class-hnd "spilling QMark2" <<unknown class>>
; V15 tmp6 [V15,T15] ( 3, 1.25) long -> x1 "fgMakeTemp is creating a new local variable" ; V16 tmp7 [V16,T03] ( 3, 2.50) ref -> x0 class-hnd "spilling QMark2" <<unknown class>> ;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -159,6 +159,14 @@ G_M6027_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M6027_IG14: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x19]
+ mov x1, x19 + ; gcrRegs +[x1] + ldr x1, [x1] + ; gcrRegs -[x1] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + cmp x1, x2
ldp x0, x20, [x19, #0x10] ; gcrRegs +[x0] ldr x19, [x19, #0x20] @@ -179,7 +187,7 @@ G_M6027_IG14: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #1 LSL #32 ldr w0, [x0] tbz w0, #0, G_M6027_IG18
- ;; size=60 bbWeight=0.50 PerfScore 9.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M6027_IG15: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #1 LSL #16 @@ -252,7 +260,7 @@ G_M6027_IG18: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by b G_M6027_IG15 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 496, prolog size 20, PerfScore 64.50, instruction count 124, allocated bytes for code 496 (MethodHash=e82ee874) for method FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
+; Total bytes of code 520, prolog size 20, PerfScore 67.25, instruction count 130, allocated bytes for code 520 (MethodHash=e82ee874) for method FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -263,7 +271,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 124 (0x0007c) Actual length = 496 (0x0001f0)
+ Function Length : 130 (0x00082) Actual length = 520 (0x000208)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+4.88%) : 10213.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 12, 7.12) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 13, 7.62) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.Infos+ILPropInfo> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> @@ -20,8 +20,8 @@ ;* V09 tmp1 [V09,T06] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V10 tmp2 [V10,T01] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> ; V11 tmp3 [V11,T15] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V12 tmp4 [V12,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" -;* V13 tmp5 [V13,T02] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+; V12 tmp4 [V12,T07] ( 2, 2 ) long -> x2 "fgMakeTemp is creating a new local variable" +; V13 tmp5 [V13,T02] ( 2, 2 ) ref -> x1 class-hnd "spilling QMark2" <<unknown class>>
; V14 tmp6 [V14,T13] ( 3, 1.25) long -> x1 "fgMakeTemp is creating a new local variable" ; V15 tmp7 [V15,T03] ( 3, 2.50) ref -> x0 class-hnd "spilling QMark2" <<unknown class>> ;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -148,6 +148,14 @@ G_M37451_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000 ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M37451_IG12: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x19]
+ mov x1, x19 + ; gcrRegs +[x1] + ldr x1, [x1] + ; gcrRegs -[x1] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #1 LSL #32 + cmp x1, x2
ldp x0, x20, [x19, #0x10] ; gcrRegs +[x0] ldr x19, [x19, #0x20] @@ -168,7 +176,7 @@ G_M37451_IG12: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #1 LSL #32 ldr w0, [x0] tbz w0, #0, G_M37451_IG16
- ;; size=60 bbWeight=0.50 PerfScore 9.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M37451_IG13: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #1 LSL #16 @@ -241,7 +249,7 @@ G_M37451_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b b G_M37451_IG13 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 492, prolog size 20, PerfScore 59.00, instruction count 123, allocated bytes for code 492 (MethodHash=380a6db4) for method FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
+; Total bytes of code 516, prolog size 20, PerfScore 61.75, instruction count 129, allocated bytes for code 516 (MethodHash=380a6db4) for method FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -252,7 +260,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 123 (0x0007b) Actual length = 492 (0x0001ec)
+ Function Length : 129 (0x00081) Actual length = 516 (0x000204)
---- 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_pgo.osx.arm64.checked.mch 1,697 334 534 829 -4,192 +5,028
benchmarks.run_tiered.osx.arm64.checked.mch 88 12 13 63 -700 +88
coreclr_tests.run.osx.arm64.checked.mch 1,303 295 251 757 -2,816 +2,876
libraries.crossgen2.osx.arm64.checked.mch 678 95 68 515 -864 +628
libraries.pmi.osx.arm64.checked.mch 1,104 149 164 791 -1,344 +1,600
libraries_tests.run.osx.arm64.Release.mch 5,945 1,496 1,309 3,140 -17,148 +13,308
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 1,346 211 210 925 -2,176 +2,212
realworld.run.osx.arm64.checked.mch 255 37 32 186 -300 +356
12,416 2,629 2,581 7,206 -29,540 +26,096

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run_pgo.osx.arm64.checked.mch 84,643 48,345 36,298 183 (0.22%) 183 (0.22%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,253 37,331 10,922 63 (0.13%) 63 (0.13%)
coreclr_tests.run.osx.arm64.checked.mch 586,148 358,028 228,120 437 (0.07%) 437 (0.07%)
libraries.crossgen2.osx.arm64.checked.mch 233,760 15 233,745 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 313,588 18 313,570 2,028 (0.64%) 2,028 (0.64%)
libraries_tests.run.osx.arm64.Release.mch 631,294 462,062 169,232 963 (0.15%) 963 (0.15%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 301,031 21,558 279,473 2,083 (0.69%) 2,083 (0.69%)
realworld.run.osx.arm64.checked.mch 31,218 3 31,215 325 (1.03%) 325 (1.03%)
2,229,935 927,360 1,302,575 6,082 (0.27%) 6,082 (0.27%)

jit-analyze output

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

Detail diffs



Top file regressions (bytes):
          48 : 64349.dasm (11.43 % of base)
          40 : 74941.dasm (2.15 % of base)
          36 : 36247.dasm (1.10 % of base)
          32 : 65747.dasm (1.81 % of base)
          32 : 68298.dasm (1.82 % of base)
          32 : 70779.dasm (1.82 % of base)
          32 : 74351.dasm (2.19 % of base)
          32 : 82502.dasm (1.82 % of base)
          32 : 66168.dasm (1.82 % of base)
          32 : 79960.dasm (1.82 % of base)
          32 : 83799.dasm (2.22 % of base)
          32 : 84684.dasm (1.82 % of base)
          32 : 58655.dasm (1.82 % of base)
          32 : 38424.dasm (1.82 % of base)
          32 : 38636.dasm (1.82 % of base)
          32 : 40119.dasm (1.82 % of base)
          32 : 61588.dasm (2.22 % of base)
          32 : 70498.dasm (1.82 % of base)
          32 : 76032.dasm (1.82 % of base)
          32 : 77236.dasm (1.82 % of base)

Top file improvements (bytes):
        -476 : 83991.dasm (-32.25 % of base)
        -476 : 84000.dasm (-33.33 % of base)
        -156 : 45661.dasm (-21.67 % of base)
        -156 : 45638.dasm (-21.67 % of base)
         -60 : 23995.dasm (-1.80 % of base)
         -60 : 74648.dasm (-1.80 % of base)
         -60 : 13313.dasm (-1.80 % of base)
         -56 : 67880.dasm (-6.64 % of base)
         -48 : 34752.dasm (-0.41 % of base)
         -48 : 37275.dasm (-0.41 % of base)
         -48 : 40949.dasm (-0.41 % of base)
         -44 : 76562.dasm (-1.33 % of base)
         -36 : 45845.dasm (-0.30 % of base)
         -32 : 72123.dasm (-0.96 % of base)
         -32 : 69831.dasm (-0.96 % of base)
         -28 : 74977.dasm (-1.34 % of base)
         -24 : 39333.dasm (-0.72 % of base)
         -24 : 83168.dasm (-0.83 % of base)
         -24 : 84590.dasm (-0.70 % of base)
         -24 : 69592.dasm (-1.10 % of base)

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

Top method regressions (bytes):
          48 (11.43 % of base) : 64349.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
          40 (2.15 % of base) : 74941.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1-OSR)
          36 (1.10 % of base) : 36247.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
          32 (1.81 % of base) : 65747.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 68298.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 70779.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 82502.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 66168.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 79960.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 84684.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 58655.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 38424.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 38636.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 40119.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 70498.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 76032.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 77236.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (2.19 % of base) : 74351.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.22 % of base) : 83799.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.22 % of base) : 61588.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)

Top method improvements (bytes):
        -476 (-32.25 % of base) : 83991.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -476 (-33.33 % of base) : 84000.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.67 % of base) : 45661.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 45638.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -60 (-1.80 % of base) : 23995.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -60 (-1.80 % of base) : 74648.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -60 (-1.80 % of base) : 13313.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -56 (-6.64 % of base) : 67880.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -48 (-0.41 % of base) : 34752.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)
         -48 (-0.41 % of base) : 37275.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)
         -48 (-0.41 % of base) : 40949.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)
         -44 (-1.33 % of base) : 76562.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -36 (-0.30 % of base) : 45845.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)
         -32 (-0.96 % of base) : 72123.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -32 (-0.96 % of base) : 69831.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -28 (-1.34 % of base) : 74977.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
         -24 (-0.83 % of base) : 83168.dasm - StringSort:Run():double:this (Tier1)
         -24 (-1.10 % of base) : 69592.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
         -24 (-0.72 % of base) : 39333.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -24 (-0.70 % of base) : 84590.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)

Top method regressions (percentages):
          20 (12.82 % of base) : 59178.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          48 (11.43 % of base) : 64349.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
          20 (9.43 % of base) : 68690.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[int]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
          20 (9.43 % of base) : 71932.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
           4 (8.33 % of base) : 62660.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
           4 (8.33 % of base) : 45128.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          12 (7.69 % of base) : 41834.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 45542.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 65654.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 73372.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 74931.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 68704.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 43481.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 61667.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 62014.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 66938.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
           8 (4.08 % of base) : 38685.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
           4 (3.70 % of base) : 62568.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:InsertionSort(System.Span`1[System.Collections.IntStruct]) (Tier1)
           4 (3.70 % of base) : 69980.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:InsertionSort(System.Span`1[System.Collections.IntStruct]) (Tier1)
           8 (3.64 % of base) : 78579.dasm - Benchstone.MDBenchI.MDLogicArray:Inner(byref):ubyte (Tier1-OSR)

Top method improvements (percentages):
        -476 (-33.33 % of base) : 84000.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -476 (-32.25 % of base) : 83991.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.67 % of base) : 45661.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 45638.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -16 (-7.02 % of base) : 21685.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 21683.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -56 (-6.64 % of base) : 67880.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -12 (-5.17 % of base) : 68317.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 71015.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 79099.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 65574.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 45588.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 62475.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 39876.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 39990.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 46020.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.08 % of base) : 62406.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.00 % of base) : 77929.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
         -20 (-4.42 % of base) : 46213.dasm - Benchstone.BenchF.InvMt:Inner(double[][],byref,byref) (Tier1-OSR)
         -12 (-4.23 % of base) : 27434.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object (Tier1)


benchmarks.run_tiered.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15560996 (overridden on cmd)
Total bytes of diff: 15560384 (overridden on cmd)
Total bytes of delta: -612 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          20 : 32649.dasm (0.54 % of base)
          16 : 44033.dasm (2.07 % of base)
          12 : 23547.dasm (0.15 % of base)
           4 : 26198.dasm (1.43 % of base)
           4 : 40315.dasm (1.08 % of base)
           4 : 23996.dasm (0.30 % of base)
           4 : 13378.dasm (0.07 % of base)
           4 : 32960.dasm (0.49 % of base)
           4 : 42841.dasm (0.29 % of base)
           4 : 44876.dasm (0.82 % of base)
           4 : 9551.dasm (0.14 % of base)
           4 : 31584.dasm (0.13 % of base)
           4 : 42845.dasm (0.27 % of base)

Top file improvements (bytes):
        -436 : 47920.dasm (-31.87 % of base)
        -152 : 32956.dasm (-14.13 % of base)
         -56 : 43768.dasm (-6.97 % of base)
         -24 : 44438.dasm (-1.10 % of base)
          -4 : 28530.dasm (-0.44 % of base)
          -4 : 31616.dasm (-0.07 % of base)
          -4 : 42587.dasm (-0.41 % of base)
          -4 : 44862.dasm (-0.02 % of base)
          -4 : 31710.dasm (-0.09 % of base)
          -4 : 45558.dasm (-0.33 % of base)
          -4 : 26676.dasm (-0.10 % of base)
          -4 : 45760.dasm (-0.02 % of base)

25 total files with Code Size differences (12 improved, 13 regressed), 32 unchanged.

Top method regressions (bytes):
          20 (0.54 % of base) : 32649.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
          16 (2.07 % of base) : 44033.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)
          12 (0.15 % of base) : 23547.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.29 % of base) : 42841.dasm - Benchstone.BenchF.MatInv4:MinV1(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.27 % of base) : 42845.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.13 % of base) : 31584.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
           4 (0.82 % of base) : 44876.dasm - Benchstone.MDBenchF.MDInvMt:Inner(double[,],byref,byref) (Tier1-OSR)
           4 (1.08 % of base) : 40315.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (0.49 % of base) : 32960.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier1-OSR)
           4 (0.14 % of base) : 9551.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
           4 (0.30 % of base) : 23996.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
           4 (1.43 % of base) : 26198.dasm - System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (Tier1)
           4 (0.07 % of base) : 13378.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)

Top method improvements (bytes):
        -436 (-31.87 % of base) : 47920.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32956.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43768.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -24 (-1.10 % of base) : 44438.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
          -4 (-0.02 % of base) : 44862.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.07 % of base) : 31616.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.02 % of base) : 45760.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.09 % of base) : 31710.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.41 % of base) : 42587.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
          -4 (-0.44 % of base) : 28530.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)
          -4 (-0.10 % of base) : 26676.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)
          -4 (-0.33 % of base) : 45558.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)

Top method regressions (percentages):
          16 (2.07 % of base) : 44033.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)
           4 (1.43 % of base) : 26198.dasm - System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (Tier1)
           4 (1.08 % of base) : 40315.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (0.82 % of base) : 44876.dasm - Benchstone.MDBenchF.MDInvMt:Inner(double[,],byref,byref) (Tier1-OSR)
          20 (0.54 % of base) : 32649.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
           4 (0.49 % of base) : 32960.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier1-OSR)
           4 (0.30 % of base) : 23996.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
           4 (0.29 % of base) : 42841.dasm - Benchstone.BenchF.MatInv4:MinV1(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.27 % of base) : 42845.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier1-OSR)
          12 (0.15 % of base) : 23547.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.14 % of base) : 9551.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]:IndexOf(byref,int):int:this (Tier1)
           4 (0.13 % of base) : 31584.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
           4 (0.07 % of base) : 13378.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)

Top method improvements (percentages):
        -436 (-31.87 % of base) : 47920.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 32956.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43768.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -24 (-1.10 % of base) : 44438.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
          -4 (-0.44 % of base) : 28530.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,int],ubyte,ubyte):this (Tier1-OSR)
          -4 (-0.41 % of base) : 42587.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
          -4 (-0.33 % of base) : 45558.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
          -4 (-0.10 % of base) : 26676.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)
          -4 (-0.09 % of base) : 31710.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.07 % of base) : 31616.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.02 % of base) : 45760.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.02 % of base) : 44862.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)


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: 483504168 (overridden on cmd)
Total bytes of diff: 483504228 (overridden on cmd)
Total bytes of delta: 60 (0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          88 : 240459.dasm (3.96 % of base)
          64 : 579980.dasm (0.54 % of base)
          60 : 577937.dasm (0.49 % of base)
          56 : 253686.dasm (26.42 % of base)
          56 : 580157.dasm (2.79 % of base)
          56 : 574612.dasm (2.78 % of base)
          56 : 581013.dasm (0.52 % of base)
          52 : 511106.dasm (24.07 % of base)
          52 : 511108.dasm (24.07 % of base)
          48 : 254258.dasm (22.64 % of base)
          44 : 489687.dasm (8.94 % of base)
          44 : 574424.dasm (0.49 % of base)
          40 : 554699.dasm (1.15 % of base)
          36 : 254066.dasm (16.07 % of base)
          32 : 254204.dasm (2.68 % of base)
          32 : 573224.dasm (1.57 % of base)
          32 : 573774.dasm (3.29 % of base)
          32 : 254471.dasm (160.00 % of base)
          32 : 574276.dasm (0.23 % of base)
          32 : 579721.dasm (3.29 % of base)

Top file improvements (bytes):
        -460 : 464570.dasm (-31.94 % of base)
        -168 : 504516.dasm (-31.82 % of base)
        -156 : 461604.dasm (-21.67 % of base)
        -156 : 461621.dasm (-21.67 % of base)
         -36 : 236744.dasm (-1.17 % of base)
         -36 : 236980.dasm (-1.17 % of base)
         -28 : 578163.dasm (-1.69 % of base)
         -28 : 581108.dasm (-1.69 % of base)
         -24 : 216370.dasm (-0.26 % of base)
         -24 : 577697.dasm (-3.21 % of base)
         -24 : 578939.dasm (-1.45 % of base)
         -24 : 580932.dasm (-3.21 % of base)
         -20 : 578144.dasm (-1.20 % of base)
         -20 : 246113.dasm (-0.43 % of base)
         -20 : 581103.dasm (-1.20 % of base)
         -16 : 463958.dasm (-6.90 % of base)
         -16 : 500094.dasm (-0.69 % of base)
         -16 : 577466.dasm (-0.36 % of base)
         -16 : 463960.dasm (-7.02 % of base)
         -16 : 474253.dasm (-0.35 % of base)

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

Top method regressions (bytes):
          88 (3.96 % of base) : 240459.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          64 (0.54 % of base) : 579980.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (Tier1)
          60 (0.49 % of base) : 577937.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
          56 (26.42 % of base) : 253686.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          56 (2.79 % of base) : 580157.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          56 (2.78 % of base) : 574612.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          56 (0.52 % of base) : 581013.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
          52 (24.07 % of base) : 511106.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 511108.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (22.64 % of base) : 254258.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
          44 (0.49 % of base) : 574424.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CalculateTypeLayout(Internal.TypeSystem.DefType,Internal.TypeSystem.Ecma.EcmaModule,byref):Internal.TypeSystem.FieldAndOffset[]:this (Tier1)
          44 (8.94 % of base) : 489687.dasm - RetBufferBug:Main():int (Tier1-OSR)
          40 (1.15 % of base) : 554699.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (Tier1)
          36 (16.07 % of base) : 254066.dasm - ILGEN_0xa83217d:Method_0xf3555db(long,ulong,int,uint,short,byte):int (FullOpts)
          32 (2.68 % of base) : 254204.dasm - ILGEN_0x1125a118:Method_0xa592ccf9(ulong,long,ushort,byte,uint):int (FullOpts)
          32 (160.00 % of base) : 254471.dasm - ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
          32 (0.23 % of base) : 574276.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (Tier1)
          32 (1.57 % of base) : 573224.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)
          32 (3.29 % of base) : 573774.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          32 (3.29 % of base) : 579721.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)

Top method improvements (bytes):
        -460 (-31.94 % of base) : 464570.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 504516.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.67 % of base) : 461604.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 461621.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -36 (-1.17 % of base) : 236744.dasm - plainarr:gaussj(double[,],int,double[,],int) (FullOpts)
         -36 (-1.17 % of base) : 236980.dasm - structarr:gaussj(MatrixStruct,int,MatrixStruct,int) (FullOpts)
         -28 (-1.69 % of base) : 578163.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon],ubyte,ubyte):this (Tier1)
         -28 (-1.69 % of base) : 581108.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-0.26 % of base) : 216370.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)
         -24 (-1.45 % of base) : 578939.dasm - System.Collections.Generic.ArraySortHelper`1[int]:PickPivotAndPartition(System.Span`1[int],System.Comparison`1[int]):int (Tier1)
         -24 (-3.21 % of base) : 577697.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -24 (-3.21 % of base) : 580932.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -20 (-0.43 % of base) : 246113.dasm - Co1245GetBytes_double:runTest():ubyte:this (FullOpts)
         -20 (-1.20 % of base) : 578144.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon],ubyte,ubyte):this (Tier1)
         -20 (-1.20 % of base) : 581103.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon],ubyte,ubyte):this (Tier1)
         -16 (-6.90 % of base) : 463958.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -16 (-7.02 % of base) : 463960.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-0.35 % of base) : 474253.dasm - BinderTracingTests.BinderEventListener:ParseAssemblyLoadStartEvent(System.Diagnostics.Tracing.EventWrittenEventArgs,System.Func`2[System.String,System.String]):BinderTracingTests.BindOperation:this (Tier1)
         -16 (-0.36 % of base) : 577466.dasm - ILCompiler.ReadyToRunCodegenCompilation:IsLayoutFixedInCurrentVersionBubbleInternal(Internal.TypeSystem.TypeDesc):ubyte:this (Tier1)
         -16 (-0.58 % of base) : 579761.dasm - Internal.TypeSystem.MetadataRuntimeInterfacesAlgorithm:ComputeRuntimeInterfacesForNonInstantiatedMetadataType(Internal.TypeSystem.MetadataType):Internal.TypeSystem.DefType[] (Tier1)

Top method regressions (percentages):
          32 (160.00 % of base) : 254471.dasm - ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
          24 (46.15 % of base) : 254280.dasm - ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
          56 (26.42 % of base) : 253686.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          52 (24.07 % of base) : 511106.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 511108.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (22.64 % of base) : 254258.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
          36 (16.07 % of base) : 254066.dasm - ILGEN_0xa83217d:Method_0xf3555db(long,ulong,int,uint,short,byte):int (FullOpts)
          12 (14.29 % of base) : 195492.dasm - Sample4:func(System.Object,System.Object) (FullOpts)
          44 (8.94 % of base) : 489687.dasm - RetBufferBug:Main():int (Tier1-OSR)
          12 (7.89 % of base) : 573668.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 579774.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          28 (7.29 % of base) : 253992.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (FullOpts)
          24 (5.50 % of base) : 574046.dasm - System.Collections.Generic.ArrayBuilder`1[System.__Canon]:Contains(System.__Canon):ubyte:this (Tier1)
          24 (5.50 % of base) : 579740.dasm - System.Collections.Generic.ArrayBuilder`1[System.__Canon]:Contains(System.__Canon):ubyte:this (Tier1)
          24 (4.55 % of base) : 253970.dasm - ILGEN_0x5db0aa0:Method_0x14ca58b7(long,float,float,short,ushort,float,int,int,double):int (FullOpts)
          16 (4.40 % of base) : 244423.dasm - Default.Graph:BuildEdge(int,int):this (FullOpts)
           8 (4.08 % of base) : 463917.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
          88 (3.96 % of base) : 240459.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          16 (3.81 % of base) : 203809.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (FullOpts)
           8 (3.64 % of base) : 463996.dasm - Benchstone.MDBenchI.MDLogicArray:Inner(byref):ubyte (Tier1-OSR)

Top method improvements (percentages):
        -460 (-31.94 % of base) : 464570.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 504516.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.67 % of base) : 461604.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 461621.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -16 (-7.02 % of base) : 463960.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 463958.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -12 (-5.17 % of base) : 338178.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 439348.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 478866.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 567667.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 512075.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
          -4 (-3.57 % of base) : 578681.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ByteArrayComparer:Equals(ubyte[],ubyte[]):ubyte:this (Tier1)
          -4 (-3.57 % of base) : 581265.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ByteArrayComparer:Equals(ubyte[],ubyte[]):ubyte:this (Tier1)
          -4 (-3.57 % of base) : 201037.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -4 (-3.33 % of base) : 577858.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 580989.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
         -24 (-3.21 % of base) : 577697.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -24 (-3.21 % of base) : 580932.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          -4 (-1.75 % of base) : 447205.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
          -4 (-1.75 % of base) : 316462.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Instrumented Tier1)


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: 55672992 (overridden on cmd)
Total bytes of diff: 55672756 (overridden on cmd)
Total bytes of delta: -236 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         104 : 74392.dasm (0.13 % of base)
          48 : 65664.dasm (1.48 % of base)
          32 : 219954.dasm (3.98 % of base)
          24 : 141156.dasm (0.49 % of base)
          24 : 188172.dasm (1.13 % of base)
          20 : 141138.dasm (0.36 % of base)
          16 : 176594.dasm (4.30 % of base)
          16 : 202232.dasm (0.84 % of base)
          16 : 22535.dasm (1.08 % of base)
          16 : 153202.dasm (0.43 % of base)
          16 : 171251.dasm (0.17 % of base)
          12 : 177351.dasm (0.19 % of base)
          12 : 208327.dasm (1.76 % of base)
          12 : 85863.dasm (1.60 % of base)
          12 : 141062.dasm (0.91 % of base)
          12 : 64232.dasm (1.85 % of base)
          12 : 140467.dasm (1.70 % of base)
           8 : 168719.dasm (0.52 % of base)
           8 : 226290.dasm (0.95 % of base)
           8 : 95909.dasm (0.93 % of base)

Top file improvements (bytes):
        -108 : 152505.dasm (-0.39 % of base)
         -84 : 153203.dasm (-7.81 % of base)
         -44 : 171131.dasm (-1.75 % of base)
         -32 : 201442.dasm (-3.98 % of base)
         -28 : 32767.dasm (-1.18 % of base)
         -24 : 141544.dasm (-1.06 % of base)
         -24 : 141550.dasm (-1.07 % of base)
         -24 : 162384.dasm (-2.86 % of base)
         -20 : 102558.dasm (-1.08 % of base)
         -16 : 106721.dasm (-0.54 % of base)
         -16 : 13139.dasm (-0.43 % of base)
         -16 : 153474.dasm (-0.37 % of base)
         -16 : 17651.dasm (-0.91 % of base)
         -16 : 202598.dasm (-0.31 % of base)
         -12 : 62762.dasm (-2.13 % of base)
          -8 : 168725.dasm (-0.13 % of base)
          -8 : 205911.dasm (-0.96 % of base)
          -8 : 37341.dasm (-0.40 % of base)
          -8 : 44154.dasm (-0.78 % of base)
          -8 : 105428.dasm (-1.72 % of base)

55 total files with Code Size differences (27 improved, 28 regressed), 20 unchanged.

Top method regressions (bytes):
         104 (0.13 % of base) : 74392.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
          48 (1.48 % of base) : 65664.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          32 (3.98 % of base) : 219954.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
          24 (1.13 % of base) : 188172.dasm - System.Text.ISCIIEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          24 (0.49 % of base) : 141156.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          20 (0.36 % of base) : 141138.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          16 (0.17 % of base) : 171251.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)
          16 (0.43 % of base) : 153202.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
          16 (0.84 % of base) : 202232.dasm - System.Data.Select:CreateIndex():this (FullOpts)
          16 (4.30 % of base) : 176594.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          16 (1.08 % of base) : 22535.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          12 (0.19 % of base) : 177351.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
          12 (1.85 % of base) : 64232.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<AddSynthesizedTypeMembersIfNecessary>g__getBaseToStringMethod|198_14(byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
          12 (1.60 % of base) : 85863.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:GenerateVarianceDiagnosticsForConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):this (FullOpts)
          12 (1.76 % of base) : 208327.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          12 (0.91 % of base) : 141062.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteElements(System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,ubyte,ubyte):this (FullOpts)
          12 (1.70 % of base) : 140467.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteEnumMethod(System.Xml.Serialization.EnumMapping,System.Object):System.String:this (FullOpts)
           8 (0.52 % of base) : 168719.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)
           8 (0.05 % of base) : 82358.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)
           8 (0.93 % of base) : 95909.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:QuickScanToken(ubyte):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+QuickScanResult:this (FullOpts)

Top method improvements (bytes):
        -108 (-0.39 % of base) : 152505.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)
         -84 (-7.81 % of base) : 153203.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -44 (-1.75 % of base) : 171131.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -32 (-3.98 % of base) : 201442.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -28 (-1.18 % of base) : 32767.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -24 (-2.86 % of base) : 162384.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -24 (-1.07 % of base) : 141550.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
         -24 (-1.06 % of base) : 141544.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
         -20 (-1.08 % of base) : 102558.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -16 (-0.43 % of base) : 13139.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 (-0.54 % of base) : 106721.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)
         -16 (-0.37 % of base) : 153474.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -16 (-0.31 % of base) : 202598.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,ubyte,System.Data.DataColumn,System.Object):System.Object[]:this (FullOpts)
         -16 (-0.91 % of base) : 17651.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
         -12 (-2.13 % of base) : 62762.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)
          -8 (-0.13 % of base) : 168725.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          -8 (-0.78 % of base) : 44154.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteFormattedMultiLineComment(System.String[],int):this (FullOpts)
          -8 (-1.72 % of base) : 105428.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          -8 (-1.24 % of base) : 30948.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -8 (-1.13 % of base) : 211369.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)

Top method regressions (percentages):
          16 (4.30 % of base) : 176594.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
           4 (4.17 % of base) : 45572.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
          32 (3.98 % of base) : 219954.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
           4 (2.86 % of base) : 164402.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           4 (2.86 % of base) : 8644.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (2.04 % of base) : 131976.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           4 (1.89 % of base) : 202408.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
          12 (1.85 % of base) : 64232.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<AddSynthesizedTypeMembersIfNecessary>g__getBaseToStringMethod|198_14(byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
           4 (1.82 % of base) : 55736.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          12 (1.76 % of base) : 208327.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          12 (1.70 % of base) : 140467.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteEnumMethod(System.Xml.Serialization.EnumMapping,System.Object):System.String:this (FullOpts)
          12 (1.60 % of base) : 85863.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:GenerateVarianceDiagnosticsForConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):this (FullOpts)
          48 (1.48 % of base) : 65664.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          24 (1.13 % of base) : 188172.dasm - System.Text.ISCIIEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          16 (1.08 % of base) : 22535.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
           8 (0.95 % of base) : 226290.dasm - System.Runtime.Caching.ExpiresBucket:Expand():this (FullOpts)
           8 (0.93 % of base) : 95909.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:QuickScanToken(ubyte):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+QuickScanResult:this (FullOpts)
           4 (0.93 % of base) : 20485.dasm - System.Globalization.CultureInfo:CreateSpecificCulture(System.String):System.Globalization.CultureInfo (FullOpts)
          12 (0.91 % of base) : 141062.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteElements(System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,ubyte,ubyte):this (FullOpts)
          16 (0.84 % of base) : 202232.dasm - System.Data.Select:CreateIndex():this (FullOpts)

Top method improvements (percentages):
         -84 (-7.81 % of base) : 153203.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -32 (-3.98 % of base) : 201442.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -24 (-2.86 % of base) : 162384.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -12 (-2.13 % of base) : 62762.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)
         -44 (-1.75 % of base) : 171131.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
          -8 (-1.72 % of base) : 105428.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          -8 (-1.24 % of base) : 30948.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
         -28 (-1.18 % of base) : 32767.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
          -4 (-1.16 % of base) : 62800.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -8 (-1.13 % of base) : 211369.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
         -20 (-1.08 % of base) : 102558.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -24 (-1.07 % of base) : 141550.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
          -8 (-1.06 % of base) : 178925.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo (FullOpts)
         -24 (-1.06 % of base) : 141544.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
          -8 (-0.96 % of base) : 205911.dasm - System.Reflection.Metadata.Ecma335.NamespaceCache:LinkChildToParentNamespace(System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder],System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder,byref):this (FullOpts)
         -16 (-0.91 % of base) : 17651.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          -4 (-0.90 % of base) : 30886.dasm - System.String:TrimHelper(ulong,int,int):System.String:this (FullOpts)
          -4 (-0.87 % of base) : 30861.dasm - System.RuntimeType+RuntimeTypeCache:GetDefaultMemberName():System.String:this (FullOpts)
          -8 (-0.78 % of base) : 44154.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteFormattedMultiLineComment(System.String[],int):this (FullOpts)
          -4 (-0.70 % of base) : 3537.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (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: 78467696 (overridden on cmd)
Total bytes of diff: 78467952 (overridden on cmd)
Total bytes of delta: 256 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          76 : 287064.dasm (1.84 % of base)
          56 : 133319.dasm (0.24 % of base)
          48 : 242548.dasm (5.63 % of base)
          44 : 187645.dasm (0.69 % of base)
          40 : 171766.dasm (1.65 % of base)
          36 : 58455.dasm (1.23 % of base)
          28 : 175455.dasm (4.90 % of base)
          28 : 176888.dasm (1.68 % of base)
          28 : 201558.dasm (1.66 % of base)
          28 : 259373.dasm (35.00 % of base)
          24 : 194899.dasm (5.71 % of base)
          20 : 58538.dasm (1.54 % of base)
          20 : 181538.dasm (2.16 % of base)
          20 : 284723.dasm (3.91 % of base)
          20 : 285021.dasm (4.59 % of base)
          20 : 285046.dasm (10.20 % of base)
          20 : 231352.dasm (2.01 % of base)
          20 : 231546.dasm (0.48 % of base)
          20 : 284755.dasm (2.99 % of base)
          20 : 285011.dasm (5.81 % of base)

Top file improvements (bytes):
         -80 : 260703.dasm (-2.51 % of base)
         -72 : 246096.dasm (-7.32 % of base)
         -52 : 246092.dasm (-0.19 % of base)
         -28 : 50023.dasm (-3.37 % of base)
         -28 : 217286.dasm (-3.37 % of base)
         -28 : 281020.dasm (-1.50 % of base)
         -28 : 30102.dasm (-1.24 % of base)
         -24 : 259739.dasm (-0.26 % of base)
         -20 : 88863.dasm (-0.84 % of base)
         -20 : 156058.dasm (-1.10 % of base)
         -16 : 208188.dasm (-0.63 % of base)
         -16 : 40145.dasm (-0.63 % of base)
         -16 : 196403.dasm (-0.44 % of base)
         -16 : 246106.dasm (-0.27 % of base)
         -16 : 303797.dasm (-0.39 % of base)
         -12 : 38414.dasm (-0.40 % of base)
         -12 : 85581.dasm (-2.11 % of base)
         -12 : 37422.dasm (-0.50 % of base)
         -12 : 41873.dasm (-0.34 % of base)
         -12 : 179181.dasm (-0.76 % of base)

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

Top method regressions (bytes):
          76 (1.84 % of base) : 287064.dasm - System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this (FullOpts)
          56 (0.24 % of base) : 133319.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)
          48 (5.63 % of base) : 242548.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          44 (0.69 % of base) : 187645.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributeValueSlowAsync>d__532:MoveNext():this (FullOpts)
          40 (1.65 % of base) : 171766.dasm - Microsoft.Build.Evaluation.ExpressionShredder:GetReferencedItemExpressions(System.String,int,int):System.Collections.Generic.List`1[Microsoft.Build.Evaluation.ExpressionShredder+ItemExpressionCapture] (FullOpts)
          36 (1.23 % of base) : 58455.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          28 (1.68 % of base) : 176888.dasm - Microsoft.Build.BackEnd.RequestBuilder+<StartNewBuildRequests>d__61:MoveNext():this (FullOpts)
          28 (4.90 % of base) : 175455.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
          28 (35.00 % of base) : 259373.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (FullOpts)
          28 (1.66 % of base) : 201558.dasm - System.Text.DBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
          24 (5.71 % of base) : 194899.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          20 (1.54 % of base) : 58538.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ReportQueryInferenceFailedSelectMany(Microsoft.CodeAnalysis.CSharp.Syntax.FromClauseSyntax,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte (FullOpts)
          20 (2.16 % of base) : 181538.dasm - System.Configuration.ConfigurationElement:EnsureRequiredProperties(ubyte):this (FullOpts)
          20 (2.01 % of base) : 231352.dasm - System.Data.XmlTreeGen:GenerateConstraintNames(System.Data.DataTable,ubyte):this (FullOpts)
          20 (0.48 % of base) : 231546.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,ubyte):this (FullOpts)
          20 (2.99 % of base) : 284755.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
          20 (3.91 % of base) : 284723.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (5.81 % of base) : 285011.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          20 (4.59 % of base) : 285021.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (10.20 % of base) : 285046.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)

Top method improvements (bytes):
         -80 (-2.51 % of base) : 260703.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -72 (-7.32 % of base) : 246096.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -52 (-0.19 % of base) : 246092.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)
         -28 (-3.37 % of base) : 50023.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -28 (-3.37 % of base) : 217286.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -28 (-1.50 % of base) : 281020.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts)
         -28 (-1.24 % of base) : 30102.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -24 (-0.26 % of base) : 259739.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)
         -20 (-0.84 % of base) : 88863.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)
         -20 (-1.10 % of base) : 156058.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -16 (-0.63 % of base) : 208188.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,ubyte,ushort,ubyte,byref):ubyte (FullOpts)
         -16 (-0.63 % of base) : 40145.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,ubyte,ushort,ubyte,byref):ubyte (FullOpts)
         -16 (-0.27 % of base) : 246106.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -16 (-0.39 % of base) : 303797.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
         -16 (-0.44 % of base) : 196403.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -12 (-2.11 % of base) : 85581.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)
         -12 (-0.34 % of base) : 41873.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:ComputeNonConfigurableAndCustomConfigurableAnalyzers(System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Threading.CancellationToken):System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer]:this (FullOpts)
         -12 (-0.40 % of base) : 38414.dasm - Microsoft.CodeAnalysis.RuleSet:WithEffectiveAction(int):Microsoft.CodeAnalysis.RuleSet:this (FullOpts)
         -12 (-0.50 % of base) : 37422.dasm - Microsoft.CodeAnalysis.ShadowCopyAnalyzerAssemblyLoader:PreparePathToLoad(System.String,System.Collections.Immutable.ImmutableHashSet`1[System.String]):System.String:this (FullOpts)
         -12 (-0.76 % of base) : 179181.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[ubyte]:MoveNextSlowPath():ubyte:this (FullOpts)

Top method regressions (percentages):
          28 (35.00 % of base) : 259373.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (FullOpts)
          12 (27.27 % of base) : 305817.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
          12 (27.27 % of base) : 305834.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
          20 (10.20 % of base) : 285046.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
           4 (9.09 % of base) : 175513.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:GeneratePathToBuildToolsForToolsVersion(System.String,int):System.String (FullOpts)
          20 (5.81 % of base) : 285011.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          24 (5.71 % of base) : 194899.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          48 (5.63 % of base) : 242548.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
           4 (5.56 % of base) : 3389.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[double](double,double,System.String) (FullOpts)
           4 (5.56 % of base) : 3404.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanOrEqual[double](double,double,System.String) (FullOpts)
          28 (4.90 % of base) : 175455.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
          20 (4.59 % of base) : 285021.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.55 % of base) : 8660.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
           4 (4.55 % of base) : 8662.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[long](byref,long,long,int):int (FullOpts)
          16 (4.40 % of base) : 199463.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
           4 (4.17 % of base) : 8648.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
           4 (4.17 % of base) : 8650.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[long](byref,long,long,int):int (FullOpts)
          20 (3.91 % of base) : 284723.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (2.99 % of base) : 284755.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
           4 (2.94 % of base) : 8656.dasm - System.SpanHelpers:LastIndexOfAnyInRange[double](byref,double,double,int):int (FullOpts)

Top method improvements (percentages):
         -72 (-7.32 % of base) : 246096.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
          -4 (-3.57 % of base) : 67066.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
          -4 (-3.57 % of base) : 63058.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -28 (-3.37 % of base) : 50023.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -28 (-3.37 % of base) : 217286.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
          -4 (-3.23 % of base) : 208232.dasm - Microsoft.CodeAnalysis.XmlCharType:IsPublicId(System.String):int (FullOpts)
          -4 (-3.23 % of base) : 40195.dasm - Microsoft.CodeAnalysis.XmlCharType:IsPublicId(System.String):int (FullOpts)
         -80 (-2.51 % of base) : 260703.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
          -8 (-2.15 % of base) : 158965.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
         -12 (-2.11 % of base) : 85581.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)
          -8 (-1.55 % of base) : 288828.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTargets(byref):System.Collections.Generic.List`1[Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target]:this (FullOpts)
         -28 (-1.50 % of base) : 281020.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts)
          -4 (-1.49 % of base) : 132780.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:IsConvertedLambda(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):ubyte (FullOpts)
          -8 (-1.38 % of base) : 4773.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -4 (-1.32 % of base) : 38385.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -4 (-1.32 % of base) : 206539.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -8 (-1.31 % of base) : 288829.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTarget(byref,System.String):Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target:this (FullOpts)
          -8 (-1.29 % of base) : 261799.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -4 (-1.28 % of base) : 171769.dasm - Microsoft.Build.Evaluation.ExpressionShredder:SinkArgumentsInParentheses(System.String,byref,int):ubyte (FullOpts)
         -28 (-1.24 % of base) : 30102.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (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: 311685436 (overridden on cmd)
Total bytes of diff: 311681596 (overridden on cmd)
Total bytes of delta: -3840 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         104 : 598175.dasm (0.54 % of base)
         100 : 488278.dasm (2.57 % of base)
         100 : 585194.dasm (1.40 % of base)
         100 : 102638.dasm (0.95 % of base)
          96 : 582296.dasm (4.68 % of base)
          96 : 482681.dasm (0.44 % of base)
          92 : 597896.dasm (1.39 % of base)
          84 : 194023.dasm (4.86 % of base)
          84 : 560236.dasm (1.14 % of base)
          80 : 530078.dasm (0.67 % of base)
          80 : 531138.dasm (0.52 % of base)
          76 : 466116.dasm (1.13 % of base)
          68 : 560233.dasm (0.59 % of base)
          64 : 156726.dasm (0.82 % of base)
          60 : 193272.dasm (2.45 % of base)
          56 : 367545.dasm (0.82 % of base)
          56 : 531134.dasm (0.41 % of base)
          56 : 84692.dasm (0.47 % of base)
          56 : 123149.dasm (1.19 % of base)
          56 : 89002.dasm (1.76 % of base)

Top file improvements (bytes):
        -252 : 442817.dasm (-1.71 % of base)
        -192 : 362275.dasm (-1.32 % of base)
        -168 : 55404.dasm (-0.88 % of base)
        -164 : 557910.dasm (-1.41 % of base)
        -160 : 231145.dasm (-1.23 % of base)
        -144 : 581303.dasm (-0.80 % of base)
        -120 : 529416.dasm (-1.28 % of base)
        -120 : 587621.dasm (-1.32 % of base)
        -112 : 557282.dasm (-1.29 % of base)
         -96 : 89275.dasm (-0.80 % of base)
         -96 : 532788.dasm (-0.73 % of base)
         -92 : 261648.dasm (-2.44 % of base)
         -80 : 577415.dasm (-0.68 % of base)
         -80 : 380686.dasm (-1.81 % of base)
         -76 : 598539.dasm (-0.76 % of base)
         -72 : 56041.dasm (-1.43 % of base)
         -64 : 159051.dasm (-0.27 % of base)
         -64 : 576696.dasm (-0.42 % of base)
         -64 : 336417.dasm (-0.54 % of base)
         -60 : 467235.dasm (-0.42 % of base)

87 total files with Code Size differences (46 improved, 41 regressed), 20 unchanged.

Top method regressions (bytes):
         104 (0.54 % of base) : 598175.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
         100 (1.40 % of base) : 585194.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
         100 (0.95 % of base) : 102638.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (Tier1)
         100 (2.57 % of base) : 488278.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)
          96 (4.68 % of base) : 582296.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (Tier1)
          96 (0.44 % of base) : 482681.dasm - System.Xml.XmlLoader:LoadNode(ubyte):System.Xml.XmlNode:this (Tier1-OSR)
          92 (1.39 % of base) : 597896.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)
          84 (4.86 % of base) : 194023.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.Collections.Tests.SimpleInt,int]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
          84 (1.14 % of base) : 560236.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[int,int]]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (Tier1)
          80 (0.67 % of base) : 530078.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
          80 (0.52 % of base) : 531138.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[int,int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
          76 (1.13 % of base) : 466116.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)
          68 (0.59 % of base) : 560233.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[int,int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
          64 (0.82 % of base) : 156726.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1054_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (Tier1)
          60 (2.45 % of base) : 193272.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
          56 (1.76 % of base) : 89002.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
          56 (0.82 % of base) : 367545.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (Tier0-FullOpts)
          56 (0.47 % of base) : 84692.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          56 (0.41 % of base) : 531134.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)
          56 (1.19 % of base) : 123149.dasm - Xunit.Sdk.TestRunner`1+<RunAsync>d__43[System.__Canon]:MoveNext():this (Tier1)

Top method improvements (bytes):
        -252 (-1.71 % of base) : 442817.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -192 (-1.32 % of base) : 362275.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -168 (-0.88 % of base) : 55404.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
        -164 (-1.41 % of base) : 557910.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
        -160 (-1.23 % of base) : 231145.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -144 (-0.80 % of base) : 581303.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
        -120 (-1.32 % of base) : 587621.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ValidateAttributeUsageAndDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,short):Microsoft.CodeAnalysis.WellKnownAttributeData:this (Tier1)
        -120 (-1.28 % of base) : 529416.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
        -112 (-1.29 % of base) : 557282.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.80 % of base) : 89275.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
         -96 (-0.73 % of base) : 532788.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -92 (-2.44 % of base) : 261648.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)
         -80 (-0.68 % of base) : 577415.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -80 (-1.81 % of base) : 380686.dasm - System.Xml.Xsl.Xslt.XsltInput:GetAttributes(System.Xml.Xsl.Xslt.XsltInput+XsltAttribute[]):System.Xml.Xsl.Xslt.XsltInput+ContextInfo:this (Tier1)
         -76 (-0.76 % of base) : 598539.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:InferBestTypeForConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversions,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
         -72 (-1.43 % of base) : 56041.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (Tier1)
         -64 (-0.42 % of base) : 576696.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)
         -64 (-0.27 % of base) : 159051.dasm - Microsoft.Extensions.Options.Generators.Parser:GetValidatorTypes(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,Microsoft.CodeAnalysis.SemanticModel]]):System.Collections.Generic.IReadOnlyList`1[Microsoft.Extensions.Options.Generators.ValidatorType]:this (Tier1)
         -64 (-0.54 % of base) : 336417.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -60 (-0.42 % of base) : 467235.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 regressions (percentages):
          32 (20.51 % of base) : 615127.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
          28 (19.44 % of base) : 530596.dasm - System.Collections.Concurrent.ConcurrentQueue`1[int]:Enqueue(int):this (Tier1)
          28 (17.95 % of base) : 617643.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.CancellationToken]:Enqueue(System.Threading.CancellationToken):this (Tier1)
          16 (17.39 % of base) : 557336.dasm - System.Text.Json.JsonSerializerOptions:ConfigureForJsonSerializer():this (Tier1)
          28 (17.07 % of base) : 233373.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:Enqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):this (Tier1)
          28 (17.07 % of base) : 338180.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:Enqueue(System.Net.Sockets.SocketAsyncEngine+SocketIOEvent):this (Tier1)
          28 (15.91 % of base) : 324051.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Diagnostics.Metrics.Measurement`1[double]]:Enqueue(System.Diagnostics.Metrics.Measurement`1[double]):this (Tier1)
          48 (11.43 % of base) : 154904.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
          16 (10.53 % of base) : 179791.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          16 (10.53 % of base) : 273215.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          16 (10.53 % of base) : 616714.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          16 (10.53 % of base) : 345115.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          16 (10.53 % of base) : 196753.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          44 (8.87 % of base) : 185200.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)
          12 (7.89 % of base) : 336343.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 625555.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 317016.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 517811.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 609839.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.89 % of base) : 186248.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)

Top method improvements (percentages):
         -24 (-7.41 % of base) : 209400.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -24 (-7.41 % of base) : 224873.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-6.25 % of base) : 429044.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-6.25 % of base) : 272873.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-5.95 % of base) : 315813.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-5.81 % of base) : 625658.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -20 (-5.81 % of base) : 363145.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -12 (-5.17 % of base) : 93201.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -32 (-3.77 % of base) : 373365.dasm - System.Xml.XmlConvert:ToXPathDouble(System.Object):double (Tier1)
         -28 (-3.72 % of base) : 487999.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.72 % of base) : 264188.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.72 % of base) : 265294.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.70 % of base) : 232936.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.65 % of base) : 122312.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.65 % of base) : 266078.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.65 % of base) : 279996.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.61 % of base) : 625659.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -12 (-3.53 % of base) : 233357.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Net.Sockets.SocketAsyncEngine+SocketIOEvent]:TryDequeue(byref):ubyte:this (Tier1)
          -4 (-3.33 % of base) : 201866.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 474393.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 161180744 (overridden on cmd)
Total bytes of diff: 161180780 (overridden on cmd)
Total bytes of delta: 36 (0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          56 : 39253.dasm (43.75 % of base)
          56 : 121562.dasm (1.83 % of base)
          56 : 164367.dasm (0.80 % of base)
          48 : 194080.dasm (5.69 % of base)
          40 : 164211.dasm (0.66 % of base)
          40 : 163523.dasm (0.66 % of base)
          36 : 282359.dasm (0.95 % of base)
          36 : 91395.dasm (0.28 % of base)
          32 : 11398.dasm (0.86 % of base)
          32 : 201991.dasm (9.76 % of base)
          28 : 129199.dasm (1.67 % of base)
          28 : 301782.dasm (0.44 % of base)
          24 : 169112.dasm (5.71 % of base)
          24 : 36481.dasm (7.79 % of base)
          24 : 162644.dasm (2.53 % of base)
          24 : 274211.dasm (1.01 % of base)
          20 : 176978.dasm (5.81 % of base)
          20 : 178097.dasm (10.20 % of base)
          20 : 178752.dasm (4.35 % of base)
          20 : 282504.dasm (0.68 % of base)

Top file improvements (bytes):
        -140 : 59198.dasm (-0.48 % of base)
        -104 : 14987.dasm (-1.78 % of base)
         -92 : 44353.dasm (-1.57 % of base)
         -80 : 25046.dasm (-2.55 % of base)
         -68 : 4344.dasm (-1.39 % of base)
         -52 : 162653.dasm (-0.45 % of base)
         -44 : 43254.dasm (-1.59 % of base)
         -44 : 48943.dasm (-1.59 % of base)
         -36 : 51892.dasm (-0.78 % of base)
         -36 : 50191.dasm (-0.63 % of base)
         -28 : 10578.dasm (-3.45 % of base)
         -24 : 174059.dasm (-1.51 % of base)
         -24 : 40338.dasm (-1.05 % of base)
         -24 : 24730.dasm (-0.26 % of base)
         -20 : 162793.dasm (-0.44 % of base)
         -20 : 11469.dasm (-0.83 % of base)
         -16 : 178049.dasm (-0.77 % of base)
         -16 : 271152.dasm (-1.25 % of base)
         -16 : 59197.dasm (-0.26 % of base)
         -16 : 282070.dasm (-0.83 % of base)

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

Top method regressions (bytes):
          56 (43.75 % of base) : 39253.dasm - Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider:DoesConsoleSupportAnsi():ubyte (FullOpts)
          56 (0.80 % of base) : 164367.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (FullOpts)
          56 (1.83 % of base) : 121562.dasm - System.IO.Compression.Tests.ZipFile_Unix:CreateFiles(System.String,System.String[]):System.String[] (FullOpts)
          48 (5.69 % of base) : 194080.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          40 (0.66 % of base) : 164211.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
          40 (0.66 % of base) : 163523.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
          36 (0.28 % of base) : 91395.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
          36 (0.95 % of base) : 282359.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6491_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (0.86 % of base) : 11398.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          32 (9.76 % of base) : 201991.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
          28 (1.67 % of base) : 129199.dasm - System.Text.DBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
          28 (0.44 % of base) : 301782.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributeValueSlowAsync>d__532:MoveNext():this (FullOpts)
          24 (7.79 % of base) : 36481.dasm - Microsoft.DotNet.RemoteExecutor.PasteArguments:Paste(System.Collections.Generic.IEnumerable`1[System.String],ubyte):System.String (FullOpts)
          24 (1.01 % of base) : 274211.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7438_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          24 (2.53 % of base) : 162644.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
          24 (5.71 % of base) : 169112.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          20 (3.23 % of base) : 176971.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
          20 (4.35 % of base) : 178752.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (5.81 % of base) : 176978.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          20 (5.10 % of base) : 177044.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)

Top method improvements (bytes):
        -140 (-0.48 % of base) : 59198.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)
        -104 (-1.78 % of base) : 14987.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -92 (-1.57 % of base) : 44353.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)
         -80 (-2.55 % of base) : 25046.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -68 (-1.39 % of base) : 4344.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)
         -52 (-0.45 % of base) : 162653.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         -44 (-1.59 % of base) : 43254.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)
         -44 (-1.59 % of base) : 48943.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)
         -36 (-0.63 % of base) : 50191.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)
         -36 (-0.78 % of base) : 51892.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -28 (-3.45 % of base) : 10578.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ushort]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -24 (-0.26 % of base) : 24730.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)
         -24 (-1.05 % of base) : 40338.dasm - Microsoft.Extensions.Hosting.Internal.HostTests+<AppCrashesOnStartWhenFirstHostedServiceThrows>d__12:MoveNext():this (FullOpts)
         -24 (-1.51 % of base) : 174059.dasm - System.Xml.RwFactoryWriterTests.CXmlDriverEngine:ProcessIncludes(System.String[],System.String,System.Xml.Linq.XElement,OLEDB.Test.ModuleCore.MyDict`2[System.String,System.Object],System.Collections.IList):this (FullOpts)
         -20 (-0.83 % of base) : 11469.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)
         -20 (-0.44 % of base) : 162793.dasm - System.Xml.Serialization.XmlSerializationReader:ReadArray(System.String,System.String):System.Array:this (FullOpts)
         -16 (-1.67 % of base) : 46122.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:CanBePassedByReference(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
         -16 (-0.26 % of base) : 59197.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -16 (-1.89 % of base) : 78995.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
         -16 (-0.77 % of base) : 178049.dasm - System.Reflection.Emit.Tests.AssemblySaveTools:PopulateMembersForModule(System.Reflection.Emit.ModuleBuilder,System.Type[]) (FullOpts)

Top method regressions (percentages):
          56 (43.75 % of base) : 39253.dasm - Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider:DoesConsoleSupportAnsi():ubyte (FullOpts)
          20 (10.20 % of base) : 178097.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
          32 (9.76 % of base) : 201991.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
           4 (9.09 % of base) : 92087.dasm - System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
          24 (7.79 % of base) : 36481.dasm - Microsoft.DotNet.RemoteExecutor.PasteArguments:Paste(System.Collections.Generic.IEnumerable`1[System.String],ubyte):System.String (FullOpts)
          20 (5.81 % of base) : 176978.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          24 (5.71 % of base) : 169112.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          48 (5.69 % of base) : 194080.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          20 (5.10 % of base) : 177044.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.55 % of base) : 142568.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[System.TimeSpan](byref,System.TimeSpan,System.TimeSpan,int):int (FullOpts)
          16 (4.40 % of base) : 147208.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          20 (4.35 % of base) : 178752.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.17 % of base) : 142565.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[System.TimeSpan](byref,System.TimeSpan,System.TimeSpan,int):int (FullOpts)
          16 (3.48 % of base) : 196143.dasm - SerializationTestTypes.DataContract:GetIsReferenceValue():ubyte:this (FullOpts)
          16 (3.48 % of base) : 197459.dasm - SerializationTestTypes.DataContract:GetIsReferenceValue():ubyte:this (FullOpts)
          20 (3.23 % of base) : 176971.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
           4 (3.03 % of base) : 187822.dasm - System.Runtime.InteropServices.Tests.ByteArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (3.03 % of base) : 188072.dasm - System.Runtime.InteropServices.Tests.Int16ArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (3.03 % of base) : 186639.dasm - System.Runtime.InteropServices.Tests.IntPtrArrayTests+<>c__DisplayClass5_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (3.03 % of base) : 186898.dasm - System.Runtime.InteropServices.Tests.SingleArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)

Top method improvements (percentages):
          -4 (-3.57 % of base) : 50412.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -4 (-3.57 % of base) : 10675.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -28 (-3.45 % of base) : 10578.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ushort]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -80 (-2.55 % of base) : 25046.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -16 (-1.89 % of base) : 78995.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
        -104 (-1.78 % of base) : 14987.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -16 (-1.67 % of base) : 46122.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:CanBePassedByReference(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
         -44 (-1.59 % of base) : 43254.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)
         -44 (-1.59 % of base) : 48943.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)
         -92 (-1.57 % of base) : 44353.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)
          -8 (-1.55 % of base) : 37662.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTargets(byref):System.Collections.Generic.List`1[Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target]:this (FullOpts)
         -24 (-1.51 % of base) : 174059.dasm - System.Xml.RwFactoryWriterTests.CXmlDriverEngine:ProcessIncludes(System.String[],System.String,System.Xml.Linq.XElement,OLEDB.Test.ModuleCore.MyDict`2[System.String,System.Object],System.Collections.IList):this (FullOpts)
         -68 (-1.39 % of base) : 4344.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)
          -4 (-1.32 % of base) : 31300.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -8 (-1.31 % of base) : 37692.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTarget(byref,System.String):Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target:this (FullOpts)
         -16 (-1.25 % of base) : 271152.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3854_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 50771.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 44881.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 6980.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -8 (-1.22 % of base) : 252567.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:PopulateParameterInfoValues(System.Text.Json.Serialization.Metadata.JsonTypeInfo) (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: 14668164 (overridden on cmd)
Total bytes of diff: 14668220 (overridden on cmd)
Total bytes of delta: 56 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          36 : 22177.dasm (1.22 % of base)
          24 : 8066.dasm (1.09 % of base)
          24 : 8070.dasm (1.23 % of base)
          24 : 10213.dasm (4.88 % of base)
          24 : 10192.dasm (4.84 % of base)
          24 : 8014.dasm (0.14 % of base)
          20 : 22844.dasm (0.18 % of base)
          16 : 1121.dasm (1.92 % of base)
          16 : 12632.dasm (0.34 % of base)
          16 : 13036.dasm (0.50 % of base)
          16 : 19877.dasm (2.88 % of base)
          12 : 4826.dasm (0.19 % of base)
          12 : 13462.dasm (0.14 % of base)
          12 : 5106.dasm (1.24 % of base)
           8 : 1578.dasm (0.99 % of base)
           8 : 1989.dasm (0.31 % of base)
           4 : 30331.dasm (0.10 % of base)
           4 : 13569.dasm (0.35 % of base)
           4 : 15065.dasm (0.25 % of base)
           4 : 16091.dasm (2.70 % of base)

Top file improvements (bytes):
         -68 : 6617.dasm (-0.92 % of base)
         -20 : 23077.dasm (-0.84 % of base)
         -16 : 1751.dasm (-0.70 % of base)
         -12 : 3212.dasm (-0.20 % of base)
         -12 : 11840.dasm (-0.66 % of base)
         -12 : 21494.dasm (-0.40 % of base)
         -12 : 22418.dasm (-0.27 % of base)
          -8 : 10352.dasm (-0.08 % of base)
          -8 : 14263.dasm (-0.26 % of base)
          -8 : 14282.dasm (-0.37 % of base)
          -8 : 14818.dasm (-0.16 % of base)
          -8 : 15685.dasm (-0.39 % of base)
          -8 : 16507.dasm (-0.10 % of base)
          -8 : 16935.dasm (-0.26 % of base)
          -4 : 27322.dasm (-0.43 % of base)
          -4 : 30747.dasm (-0.39 % of base)
          -4 : 26545.dasm (-0.10 % of base)
          -4 : 12693.dasm (-0.36 % of base)
          -4 : 13013.dasm (-0.07 % of base)
          -4 : 13035.dasm (-0.39 % of base)

52 total files with Code Size differences (27 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          36 (1.22 % of base) : 22177.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (0.14 % of base) : 8014.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (1.23 % of base) : 8070.dasm - FSharp.Compiler.CheckExpressions:TcSimplePat(ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePat):System.Tuple`2[System.String,System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (1.09 % of base) : 8066.dasm - FSharp.Compiler.CheckExpressions:TcSimplePats(FSharp.Compiler.CheckExpressions+TcFileState,ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePats):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (4.84 % of base) : 10192.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
          24 (4.88 % of base) : 10213.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
          20 (0.18 % of base) : 22844.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          16 (1.92 % of base) : 1121.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          16 (2.88 % of base) : 19877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
          16 (0.50 % of base) : 13036.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          16 (0.34 % of base) : 12632.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)
          12 (1.24 % of base) : 5106.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          12 (0.19 % of base) : 4826.dasm - FSharp.Compiler.CompilerOptions:attempt@284(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOptionBlock],Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.String],System.String,System.String,System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption]):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          12 (0.14 % of base) : 13462.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
           8 (0.99 % of base) : 1578.dasm - BepuPhysics.CollisionDetection.ConstraintRemover:RemoveConstraintsFromBodyLists():this (FullOpts)
           8 (0.31 % of base) : 1989.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)
           4 (0.42 % of base) : 1680.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
           4 (0.27 % of base) : 16934.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[System.__Canon],int):ubyte:this (FullOpts)
           4 (2.70 % of base) : 16091.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           4 (0.25 % of base) : 15065.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlText(byref):this (FullOpts)

Top method improvements (bytes):
         -68 (-0.92 % of base) : 6617.dasm - FSharp.Compiler.LexFilter:undentationLimit@727(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.LexFilter+Context,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):FSharp.Compiler.LexFilter+PositionWithColumn (FullOpts)
         -20 (-0.84 % of base) : 23077.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)
         -16 (-0.70 % of base) : 1751.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -12 (-0.20 % of base) : 3212.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)
         -12 (-0.27 % of base) : 22418.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<MakeDecisionDag>g__uniquifyState|32_0(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+FrozenArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+StateForCase],System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDagTemp,Microsoft.CodeAnalysis.CSharp.IValueSet],byref):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState (FullOpts)
         -12 (-0.40 % of base) : 21494.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:Populate(Microsoft.CodeAnalysis.CSharp.NullableWalker+VariablesSnapshot):this (FullOpts)
         -12 (-0.66 % of base) : 11840.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseBaselineDataSingleComponent():this (FullOpts)
          -8 (-0.08 % of base) : 10352.dasm - FSharp.Compiler.Lexer:singleQuoteString(FSharp.Compiler.IO.ByteBuffer,FSharp.Compiler.Lexhelp+LexerStringFinisher,FSharp.Compiler.Text.Range,FSharp.Compiler.ParseHelpers+LexerStringKind,FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
          -8 (-0.16 % of base) : 14818.dasm - Microsoft.CodeAnalysis.AnalyzerConfigSet+GlobalAnalyzerConfigBuilder:Build(Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.AnalyzerConfigSet+GlobalAnalyzerConfig:this (FullOpts)
          -8 (-0.10 % of base) : 16507.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          -8 (-0.26 % of base) : 16935.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)
          -8 (-0.39 % of base) : 15685.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlEntity(byref):this (FullOpts)
          -8 (-0.26 % of base) : 14263.dasm - Microsoft.CodeAnalysis.RuleSet:GetDiagnosticOptionsFromRulesetFile(System.Collections.Generic.Dictionary`2[System.String,int],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],Microsoft.CodeAnalysis.CommonMessageProvider):int (FullOpts)
          -8 (-0.37 % of base) : 14282.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -4 (-0.33 % of base) : 28231.dasm - Interop+libproc:GetAllThreadsInProcess(int):System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[ulong,System.Nullable`1[Interop+libproc+proc_threadinfo]]] (FullOpts)
          -4 (-0.43 % of base) : 27322.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
          -4 (-0.22 % of base) : 20836.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInExpandedForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (FullOpts)
          -4 (-0.19 % of base) : 23513.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedOperators(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UnaryOperatorAnalysisResult],byref):ubyte:this (FullOpts)
          -4 (-0.10 % of base) : 26545.dasm - Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller:Spill(Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller+BoundSpillSequenceBuilder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          -4 (-1.23 % of base) : 18311.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)

Top method regressions (percentages):
          24 (4.88 % of base) : 10213.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
          24 (4.84 % of base) : 10192.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
          16 (2.88 % of base) : 19877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
           4 (2.70 % of base) : 16091.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          16 (1.92 % of base) : 1121.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          12 (1.24 % of base) : 5106.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          24 (1.23 % of base) : 8070.dasm - FSharp.Compiler.CheckExpressions:TcSimplePat(ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePat):System.Tuple`2[System.String,System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          36 (1.22 % of base) : 22177.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (1.09 % of base) : 8066.dasm - FSharp.Compiler.CheckExpressions:TcSimplePats(FSharp.Compiler.CheckExpressions+TcFileState,ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePats):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
           8 (0.99 % of base) : 1578.dasm - BepuPhysics.CollisionDetection.ConstraintRemover:RemoveConstraintsFromBodyLists():this (FullOpts)
          16 (0.50 % of base) : 13036.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
           4 (0.44 % of base) : 18592.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,int](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,int,ubyte],int):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
           4 (0.44 % of base) : 21892.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,System.__Canon,ubyte],System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
           4 (0.42 % of base) : 1680.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
           4 (0.36 % of base) : 29738.dasm - System.Management.Automation.LocationGlobber:GetGlobbedProviderPathsFromMonadPath(System.String,ubyte,System.Management.Automation.CmdletProviderContext,byref,byref):System.Collections.ObjectModel.Collection`1[System.String]:this (FullOpts)
           4 (0.35 % of base) : 13569.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionerForIEnumerable`1+InternalPartitionEnumerable[System.__Canon]:GrabChunk_Buffered(System.Collections.Generic.KeyValuePair`2[long,System.__Canon][],int,byref):ubyte:this (FullOpts)
          16 (0.34 % of base) : 12632.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)
           8 (0.31 % of base) : 1989.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)
           4 (0.27 % of base) : 16934.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[System.__Canon],int):ubyte:this (FullOpts)
           4 (0.25 % of base) : 15065.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlText(byref):this (FullOpts)

Top method improvements (percentages):
          -4 (-1.23 % of base) : 18311.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
         -68 (-0.92 % of base) : 6617.dasm - FSharp.Compiler.LexFilter:undentationLimit@727(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.LexFilter+Context,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):FSharp.Compiler.LexFilter+PositionWithColumn (FullOpts)
         -20 (-0.84 % of base) : 23077.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)
         -16 (-0.70 % of base) : 1751.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -12 (-0.66 % of base) : 11840.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseBaselineDataSingleComponent():this (FullOpts)
          -4 (-0.46 % of base) : 1951.dasm - System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (FullOpts)
          -4 (-0.43 % of base) : 27322.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
          -4 (-0.40 % of base) : 17457.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
         -12 (-0.40 % of base) : 21494.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:Populate(Microsoft.CodeAnalysis.CSharp.NullableWalker+VariablesSnapshot):this (FullOpts)
          -4 (-0.39 % of base) : 13035.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:TryRemoveInternal(int,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          -8 (-0.39 % of base) : 15685.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlEntity(byref):this (FullOpts)
          -4 (-0.39 % of base) : 30747.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[long,System.Net.Sockets.SocketAsyncEngine+SocketAsyncContextWrapper]:TryRemoveInternal(long,byref,ubyte,System.Net.Sockets.SocketAsyncEngine+SocketAsyncContextWrapper):ubyte:this (FullOpts)
          -8 (-0.37 % of base) : 14282.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -4 (-0.36 % of base) : 12693.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:get_Count():int:this (FullOpts)
          -4 (-0.33 % of base) : 28231.dasm - Interop+libproc:GetAllThreadsInProcess(int):System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[ulong,System.Nullable`1[Interop+libproc+proc_threadinfo]]] (FullOpts)
          -4 (-0.32 % of base) : 18689.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddDeclaredNontypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-0.27 % of base) : 22418.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<MakeDecisionDag>g__uniquifyState|32_0(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+FrozenArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+StateForCase],System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDagTemp,Microsoft.CodeAnalysis.CSharp.IValueSet],byref):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState (FullOpts)
          -8 (-0.26 % of base) : 14263.dasm - Microsoft.CodeAnalysis.RuleSet:GetDiagnosticOptionsFromRulesetFile(System.Collections.Generic.Dictionary`2[System.String,int],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],Microsoft.CodeAnalysis.CommonMessageProvider):int (FullOpts)
          -8 (-0.26 % of base) : 16935.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)
          -4 (-0.22 % of base) : 20836.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInExpandedForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (FullOpts)



windows arm64

Diffs are based on 2,308,464 contexts (929,692 MinOpts, 1,378,772 FullOpts).

MISSED contexts: 6,334 (0.27%)

Overall (-9,796 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,696,028 +100
benchmarks.run_pgo.windows.arm64.checked.mch 46,517,260 -444
benchmarks.run_tiered.windows.arm64.checked.mch 15,265,556 -572
coreclr_tests.run.windows.arm64.checked.mch 494,677,708 +440
libraries.crossgen2.windows.arm64.checked.mch 59,020,004 -196
libraries.pmi.windows.arm64.checked.mch 78,071,708 +204
libraries_tests.run.windows.arm64.Release.mch 308,948,508 -9,428
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,444,132 -140
realworld.run.windows.arm64.checked.mch 15,471,984 +44
smoke_tests.nativeaot.windows.arm64.checked.mch 3,966,948 +196

FullOpts (-9,796 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,695,492 +100
benchmarks.run_pgo.windows.arm64.checked.mch 30,419,444 -444
benchmarks.run_tiered.windows.arm64.checked.mch 4,079,224 -572
coreclr_tests.run.windows.arm64.checked.mch 155,910,600 +440
libraries.crossgen2.windows.arm64.checked.mch 59,018,368 -196
libraries.pmi.windows.arm64.checked.mch 77,951,724 +204
libraries_tests.run.windows.arm64.Release.mch 107,542,348 -9,428
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 156,306,576 -140
realworld.run.windows.arm64.checked.mch 14,903,560 +44
smoke_tests.nativeaot.windows.arm64.checked.mch 3,965,936 +196

Example diffs

benchmarks.run.windows.arm64.checked.mch

-4 (-1.56%) : 14991.dasm - Struct.GSeq:FilterSkipMapSum():int:this (FullOpts)

@@ -26,7 +26,7 @@ ;* V15 tmp7 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <Struct.Plus15Mapper> ;* V16 tmp8 [V16 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <Struct.MapEnumerator`4[int,int,Struct.SkipEnumerator`2[int,Struct.FilterEnumerator`3[int,Struct.ArrayEnumerator`1[int],Struct.FilterIsOdd]],Struct.Plus15Mapper]> ;* V17 tmp9 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <Struct.FoldPlus>
-; V18 tmp10 [V18,T07] ( 4, 12 ) int -> x3 "Inlining Arg"
+; V18 tmp10 [V18,T07] ( 4, 12 ) int -> x0 "Inlining Arg"
;* V19 tmp11 [V19 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V20 tmp12 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V21 tmp13 [V21,T08] ( 2, 8 ) ubyte -> x6 "Inline return value spill temp" @@ -34,16 +34,16 @@ ;* V23 tmp15 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V24 tmp16 [V24,T09] ( 3, 8 ) ubyte -> x6 "Inline return value spill temp" ;* V25 tmp17 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V26 tmp18 [V26,T12] ( 2, 2 ) ref -> x0 single-def "field V01._array (fldOffset=0x0)" P-INDEP
+; V26 tmp18 [V26,T12] ( 2, 2 ) ref -> x1 single-def "field V01._array (fldOffset=0x0)" P-INDEP
;* V27 tmp19 [V27 ] ( 0, 0 ) int -> zero-ref single-def "field V01._count (fldOffset=0x8)" P-INDEP ;* V28 tmp20 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._array (fldOffset=0x0)" P-INDEP ;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref single-def "field V09._count (fldOffset=0x8)" P-INDEP ;* V30 tmp22 [V30 ] ( 0, 0 ) int -> zero-ref single-def "V03.[000..004)" ;* V31 tmp23 [V31 ] ( 0, 0 ) ref -> zero-ref single-def "V03.[008..016)" ;* V32 tmp24 [V32 ] ( 0, 0 ) int -> zero-ref single-def "V03.[016..020)"
-; V33 tmp25 [V33,T06] ( 4, 13 ) int -> x1 "V16.[000..004)" -; V34 tmp26 [V34,T05] ( 4, 14 ) ref -> x0 single-def "V16.[008..016)" -; V35 tmp27 [V35,T00] ( 20,187.16) int -> x2 "V16.[016..020)"
+; V33 tmp25 [V33,T06] ( 4, 13 ) int -> x2 "V16.[000..004)" +; V34 tmp26 [V34,T05] ( 4, 14 ) ref -> x1 single-def "V16.[008..016)" +; V35 tmp27 [V35,T00] ( 20,187.16) int -> x3 "V16.[016..020)"
;* V36 tmp28 [V36 ] ( 0, 0 ) ref -> zero-ref single-def "V02.[000..008)" ;* V37 tmp29 [V37 ] ( 0, 0 ) int -> zero-ref single-def "V02.[008..012)" ;* V38 tmp30 [V38 ] ( 0, 0 ) int -> zero-ref single-def "V04.[000..004)" @@ -67,115 +67,114 @@ G_M1723_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=8 bbWeight=1 PerfScore 1.50 G_M1723_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ; gcrRegs +[x0]
- ldr x0, [x0, #0x08] - mov w1, #5 - movn w2, #0 - mov w3, wzr - add x4, x0, #16
+ ldr x1, [x0, #0x08] + ; gcrRegs +[x1] + mov w2, #5 + movn w3, #0 + mov w0, wzr + ; gcrRegs -[x0] + add x4, x1, #16
; byrRegs +[x4] b G_M1723_IG09 ;; size=24 bbWeight=1 PerfScore 6.00
-G_M1723_IG03: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - cmp w2, w5 - bhs G_M1723_IG20 - ldr w5, [x4, w2, UXTW #2] - add w3, w5, w3 - add w3, w3, #15
+G_M1723_IG03: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + cmp w3, w5 + bhs G_M1723_IG19 + ldr w5, [x4, w3, UXTW #2] + add w0, w5, w0 + add w0, w0, #15
b G_M1723_IG09 ;; size=24 bbWeight=2 PerfScore 13.00
-G_M1723_IG04: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref - ldr w5, [x0, #0x08]
+G_M1723_IG04: ; bbWeight=8, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref + ldr w5, [x1, #0x08]
b G_M1723_IG06 ;; size=8 bbWeight=8 PerfScore 32.00
-G_M1723_IG05: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - ldr w6, [x4, w2, UXTW #2]
+G_M1723_IG05: ; bbWeight=8, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + ldr w6, [x4, w3, UXTW #2]
and w7, w6, #1 cmp w6, #0 cneg w6, w7, lt cmp w6, #1 beq G_M1723_IG08 ;; size=24 bbWeight=8 PerfScore 48.00
-G_M1723_IG06: ; bbWeight=32, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - add w2, w2, #1 - cmp w5, w2
+G_M1723_IG06: ; bbWeight=32, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + add w3, w3, #1 + cmp w5, w3
bhi G_M1723_IG05 ;; size=12 bbWeight=32 PerfScore 64.00 G_M1723_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
+ ; gcrRegs -[x1]
; byrRegs -[x4] b G_M1723_IG18 ;; size=4 bbWeight=2 PerfScore 2.00
-G_M1723_IG08: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref - ; gcrRegs +[x0]
+G_M1723_IG08: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref + ; gcrRegs +[x1]
; byrRegs +[x4]
- sub w1, w1, #1
+ sub w2, w2, #1
;; size=4 bbWeight=2 PerfScore 1.00
-G_M1723_IG09: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - cmp w1, #0
+G_M1723_IG09: ; bbWeight=8, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + cmp w2, #0
bgt G_M1723_IG04 ;; size=8 bbWeight=8 PerfScore 12.00
-G_M1723_IG10: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - add w2, w2, #1 - ldr w5, [x0, #0x08] - cmp w5, w2
+G_M1723_IG10: ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + add w3, w3, #1 + ldr w5, [x1, #0x08] + cmp w5, w3
bls G_M1723_IG15 ;; size=16 bbWeight=4 PerfScore 20.00
-G_M1723_IG11: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - tbnz w2, #31, G_M1723_IG14
+G_M1723_IG11: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + tbnz w3, #31, G_M1723_IG14
;; size=4 bbWeight=2 PerfScore 2.00
-G_M1723_IG12: ; bbWeight=15.84, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - ldr w6, [x4, w2, UXTW #2]
+G_M1723_IG12: ; bbWeight=15.84, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + ldr w6, [x4, w3, UXTW #2]
and w7, w6, #1 cmp w6, #0 cneg w6, w7, lt cmp w6, #1 beq G_M1723_IG16
- add w2, w2, #1 - cmp w5, w2
+ add w3, w3, #1 + cmp w5, w3
bhi G_M1723_IG12 ;; size=36 bbWeight=15.84 PerfScore 126.72
-G_M1723_IG13: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
+G_M1723_IG13: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref
b G_M1723_IG15 ;; size=4 bbWeight=2 PerfScore 2.00
-G_M1723_IG14: ; bbWeight=0.16, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz - cmp w2, w5 - bhs G_M1723_IG20 - ldr w6, [x4, w2, UXTW #2]
+G_M1723_IG14: ; bbWeight=0.16, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz + cmp w3, w5 + bhs G_M1723_IG19 + ldr w6, [x4, w3, UXTW #2]
and w7, w6, #1 cmp w6, #0 cneg w6, w7, lt cmp w6, #1 beq G_M1723_IG16
- add w2, w2, #1 - cmp w5, w2
+ add w3, w3, #1 + cmp w5, w3
bhi G_M1723_IG14 ;; size=44 bbWeight=0.16 PerfScore 1.52
-G_M1723_IG15: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
+G_M1723_IG15: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref
mov w6, wzr b G_M1723_IG17 ;; size=8 bbWeight=2 PerfScore 3.00
-G_M1723_IG16: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref
+G_M1723_IG16: ; bbWeight=2, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref
mov w6, #1 ;; size=4 bbWeight=2 PerfScore 1.00
-G_M1723_IG17: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0010 {x4}, byref, isz
+G_M1723_IG17: ; bbWeight=4, gcrefRegs=0002 {x1}, byrefRegs=0010 {x4}, byref, isz
cbnz w6, G_M1723_IG03 ;; size=4 bbWeight=4 PerfScore 4.00
-G_M1723_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0]
+G_M1723_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ; gcrRegs -[x1]
; byrRegs -[x4]
- mov w0, w3 - ;; size=4 bbWeight=1 PerfScore 0.50 -G_M1723_IG19: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-G_M1723_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M1723_IG19: ; 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 256, prolog size 8, PerfScore 342.24, instruction count 64, allocated bytes for code 256 (MethodHash=ee60f944) for method Struct.GSeq:FilterSkipMapSum():int:this (FullOpts)
+; Total bytes of code 252, prolog size 8, PerfScore 341.74, instruction count 63, allocated bytes for code 252 (MethodHash=ee60f944) for method Struct.GSeq:FilterSkipMapSum():int:this (FullOpts)
; ============================================================ Unwind Info: @@ -186,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 64 (0x00040) Actual length = 256 (0x000100)
+ Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-24 (-1.10%) : 21980.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],ubyte,ubyte):ubyte (FullOpts)

@@ -30,8 +30,8 @@ ;* V19 loc15 [V19 ] ( 0, 0 ) ubyte -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[int]> ; V21 loc17 [V21,T28] ( 3, 96 ) int -> [fp-0x9C] spill-single-def ptr
-; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x13 -; V23 loc19 [V23,T01] ( 7,1344 ) int -> x1
+; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x14 +; V23 loc19 [V23,T01] ( 7,1344 ) int -> x13
; V24 loc20 [V24,T02] ( 3, 832 ) int -> x0 ;# V25 OutArgs [V25 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V26 tmp1 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> @@ -40,15 +40,15 @@ ; V29 tmp4 [V29,T12] ( 4, 256 ) int -> x7 "impSpillLclRefs" ; V30 tmp5 [V30,T13] ( 4, 256 ) int -> x1 "impSpillLclRefs" ; V31 tmp6 [V31,T15] ( 2, 256 ) int -> x10 "dup spill"
-; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x0 "impSpillLclRefs"
+; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x1 "impSpillLclRefs"
; V33 tmp8 [V33,T49] ( 2, 32 ) int -> [fp-0xA0] spill-single-def ptr "impAppendStmt" ;* V34 tmp9 [V34 ] ( 0, 0 ) int -> zero-ref ptr ; V35 tmp10 [V35,T37] ( 4, 64 ) int -> x0 "impSpillLclRefs" ; V36 tmp11 [V36,T38] ( 4, 64 ) int -> x13 "impSpillLclRefs" ; V37 tmp12 [V37,T34] ( 5, 80 ) int -> x13 "dup spill" ; V38 tmp13 [V38,T39] ( 4, 64 ) int -> x13 "impSpillLclRefs"
-; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x1 "impSpillLclRefs" -; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x1 "impSpillLclRefs"
+; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x0 "impSpillLclRefs" +; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x0 "impSpillLclRefs"
; V41 tmp16 [V41,T30] ( 3, 96 ) int -> x1 ; V42 tmp17 [V42,T52] ( 4, 16 ) int -> x25 "impSpillLclRefs" ;* V43 tmp18 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]> @@ -310,10 +310,10 @@ G_M9731_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x23, [fp, #-0x78] // [V01 arg1] ; byrRegs +[x23] ldr w24, [fp, #-0x70] // [V01 arg1+0x08]
- cbz w22, G_M9731_IG68
+ cbz w22, G_M9731_IG69
;; size=20 bbWeight=1 PerfScore 9.00 G_M9731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref, isz
- cbz w24, G_M9731_IG68
+ cbz w24, G_M9731_IG69
ldrh w0, [x21] cmp w0, #42 bne G_M9731_IG08 @@ -393,7 +393,7 @@ G_M9731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2A00000 {x21 G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 x25}, byref, isz ; byrRegs -[x21] cmp w24, w26
- blt G_M9731_IG68
+ blt G_M9731_IG69
mov x0, x23 ; byrRegs +[x0] sxtw w1, w24 @@ -410,7 +410,7 @@ G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 blr x5 ; byrRegs -[x0 x2 x23 x25] ; gcr arg pop 0
- b G_M9731_IG63
+ b G_M9731_IG64
;; size=60 bbWeight=0.50 PerfScore 5.75 G_M9731_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref ; byrRegs +[x21 x23] @@ -437,7 +437,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 add w1, w25, #1 sxtw w27, w1 cmp w25, w24
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldrh w1, [x23, w25, UXTW #2] sxtw w25, w1 b G_M9731_IG12 @@ -445,7 +445,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 G_M9731_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 x23 x28}, byref, isz sub w6, w26, #1 cmp w6, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w1, [x3, w6, UXTW #2] cmp w1, w5 beq G_M9731_IG21 @@ -469,7 +469,7 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 str w0, [fp, #-0x80] // [V06 loc2] str w4, [fp, #-0xC8] // [V182 tmp157] cmp w1, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181} ldr w1, [x3, w1, UXTW #2] @@ -477,14 +477,14 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 add w1, w1, w1, LSR #31 asr w10, w1, #1 cmp w10, w22
- bge G_M9731_IG51
+ bge G_M9731_IG52
;; size=48 bbWeight=16 PerfScore 192.00 G_M9731_IG14: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref, isz ; byrRegs -[x3] lsl w11, w10, #1 str w11, [fp, #-0x94] // [V16 loc12] cmp w10, w22
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str w10, [fp, #-0x7C] // [V05 loc1] ldrh w13, [x21, w10, UXTW #2] str w13, [fp, #-0x8C] // [V11 loc7] @@ -513,7 +513,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xCC] // [V244 tmp219] ldr w5, [fp, #-0xC4] // [V180 tmp155] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -548,7 +548,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xD0] // [V248 tmp223] ldr w5, [fp, #-0xC8] // [V182 tmp157] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -579,29 +579,29 @@ G_M9731_IG16: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V18 ; GC ptr vars -{V247} ldr w13, [fp, #-0x8C] // [V11 loc7] cmp w13, #42
- beq G_M9731_IG28
+ beq G_M9731_IG30
;; size=12 bbWeight=64 PerfScore 224.00 G_M9731_IG17: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz tst w19, #255 beq G_M9731_IG26 cmp w13, #60 bne G_M9731_IG26
- mov w13, wzr
+ mov w14, wzr
cbnz w6, G_M9731_IG24 cmp w25, #46 bne G_M9731_IG23
- sxtw w1, w27 - cmp w1, w24
+ sxtw w13, w27 + cmp w13, w24
bge G_M9731_IG23 ;; size=44 bbWeight=32 PerfScore 256.00 G_M9731_IG18: ; bbWeight=256, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- cmp w1, w24 - bhs G_M9731_IG70 - ldrh w0, [x23, w1, UXTW #2] - cmp w0, #46
+ cmp w13, w24 + bhs G_M9731_IG71 + ldrh w1, [x23, w13, UXTW #2] + cmp w1, #46
beq G_M9731_IG22
- add w1, w1, #1 - cmp w1, w24
+ add w13, w13, #1 + cmp w13, w24
blt G_M9731_IG18 ;; size=32 bbWeight=256 PerfScore 2048.00 G_M9731_IG19: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref @@ -612,18 +612,18 @@ G_M9731_IG20: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, g ; GC ptr vars -{V181} str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181}
- b G_M9731_IG61
+ b G_M9731_IG62
;; size=8 bbWeight=2 PerfScore 4.00 G_M9731_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref ; byrRegs -[x21 x23 x28] ; GC ptr vars -{V181} ldr w5, [fp, #-0x90] // [V15 loc11]
- b G_M9731_IG62
+ b G_M9731_IG63
;; size=8 bbWeight=1 PerfScore 3.00 G_M9731_IG22: ; bbWeight=32, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref ; byrRegs -[x3] +[x21 x23 x28] ; GC ptr vars +{V09 V181}
- mov w13, #1
+ mov w14, #1
;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref cmp w25, #46 @@ -634,174 +634,170 @@ G_M9731_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x mov w1, #1 ;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- orr w1, w1, w13 - cbz w1, G_M9731_IG29 - b G_M9731_IG28
+ orr w1, w1, w14 + cbz w1, G_M9731_IG31 + b G_M9731_IG30
;; size=12 bbWeight=32 PerfScore 80.00 G_M9731_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz ldr w11, [fp, #-0x94] // [V16 loc12] add w11, w11, #2 tst w19, #255
- beq G_M9731_IG37
+ beq G_M9731_IG38
cmp w13, #62
- bne G_M9731_IG27 - cbnz w6, G_M9731_IG30
+ bne G_M9731_IG28 + cbnz w6, G_M9731_IG32
cmp w25, #46
- beq G_M9731_IG30 - b G_M9731_IG34 - ;; size=40 bbWeight=32 PerfScore 288.00 -G_M9731_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz - cmp w13, #34 - bne G_M9731_IG37 - cbnz w6, G_M9731_IG30 - b G_M9731_IG35 - ;; size=16 bbWeight=32 PerfScore 112.00
+ beq G_M9731_IG32 + ;; size=36 bbWeight=32 PerfScore 256.00 +G_M9731_IG27: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG36 + ;; size=4 bbWeight=8 PerfScore 8.00
G_M9731_IG28: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+ cmp w13, #34 + bne G_M9731_IG38 + cbnz w6, G_M9731_IG32 + ;; size=12 bbWeight=32 PerfScore 80.00 +G_M9731_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG37 + ;; size=4 bbWeight=8 PerfScore 8.00 +G_M9731_IG30: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] add w13, w7, #1 cmp w7, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] str w11, [x28, w7, UXTW #2] str w13, [fp, #-0x84] // [V07 loc3] str w11, [fp, #-0x94] // [V16 loc12] ;; size=32 bbWeight=32 PerfScore 288.00
-G_M9731_IG29: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+G_M9731_IG31: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] sxtw w1, w7 add w7, w1, #1 cmp w1, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] ...

-4 (-0.81%) : 5815.dasm - Utf8Json.JsonReader:ReadInt64():long:this (FullOpts)

@@ -9,9 +9,9 @@ ; Final local variable assignments ; ; V00 this [V00,T05] ( 13, 16.50) byref -> x19 this single-def
-; V01 loc0 [V01,T13] ( 4, 3 ) int -> x0 ld-addr-op
+; V01 loc0 [V01,T13] ( 4, 3 ) int -> x6 ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T17] ( 2, 2 ) long -> x3 single-def
+; V03 tmp1 [V03,T17] ( 2, 2 ) long -> x0 single-def
; V04 tmp2 [V04,T00] ( 10, 26.50) int -> x1 "Inline stloc first use temp" ;* V05 tmp3 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V06 tmp4 [V06,T08] ( 6, 10 ) long -> x3 "Inline stloc first use temp" @@ -157,10 +157,10 @@ G_M7930_IG15: ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19 cmp w5, w6 bgt G_M7930_IG13 ;; size=32 bbWeight=3.96 PerfScore 37.62
-G_M7930_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M7930_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
; byrRegs -[x0] b G_M7930_IG20
- ;; size=4 bbWeight=1 PerfScore 1.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M7930_IG17: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19}, byref, isz ; byrRegs +[x0] cmp w6, w5 @@ -186,23 +186,22 @@ G_M7930_IG19: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19 ;; size=32 bbWeight=0.04 PerfScore 0.38 G_M7930_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz ; byrRegs -[x0]
- subs w0, w5, w1
+ subs w6, w5, w1
bvs G_M7930_IG24 b G_M7930_IG22 ;; size=12 bbWeight=0.50 PerfScore 1.25 G_M7930_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- subs w0, w6, w1
+ subs w6, w6, w1
bvs G_M7930_IG24 ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M7930_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- sxtw x1, w4 - mul x3, x3, x1 - cbz w0, G_M7930_IG26 - adds w0, w2, w0
+ sxtw x0, w4 + mul x0, x3, x0 + cbz w6, G_M7930_IG26 + adds w1, w2, w6
bvs G_M7930_IG24
- str w0, [x19, #0x08] - mov x0, x3 - ;; size=28 bbWeight=1 PerfScore 6.50
+ str w1, [x19, #0x08] + ;; size=24 bbWeight=1 PerfScore 6.00
G_M7930_IG23: ; bbWeight=1, epilog, nogc, extend ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 @@ -294,7 +293,7 @@ RWD00 dd G_M7930_IG07 - G_M7930_IG02 dd G_M7930_IG04 - G_M7930_IG02
-; Total bytes of code 496, prolog size 16, PerfScore 238.31, instruction count 124, allocated bytes for code 496 (MethodHash=bd94e105) for method Utf8Json.JsonReader:ReadInt64():long:this (FullOpts)
+; Total bytes of code 492, prolog size 16, PerfScore 237.31, instruction count 123, allocated bytes for code 492 (MethodHash=bd94e105) for method Utf8Json.JsonReader:ReadInt64():long:this (FullOpts)
; ============================================================ Unwind Info: @@ -305,7 +304,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 124 (0x0007c) Actual length = 496 (0x0001f0)
+ Function Length : 123 (0x0007b) Actual length = 492 (0x0001ec)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.25%) : 23543.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)

@@ -12,39 +12,41 @@ ; V02 loc1 [V02,T18] ( 6, 9.64) ref -> x21 class-hnd single-def <int[][][]> ;* V03 loc2 [V03 ] ( 0, 0 ) ubyte -> zero-ref ; V04 loc3 [V04,T11] ( 14, 95.04) int -> x2
-; V05 loc4 [V05,T08] ( 18, 282.19) int -> x5 -; V06 loc5 [V06,T00] ( 21,1600 ) int -> x6
+; V05 loc4 [V05,T08] ( 18, 282.19) int -> x0 +; V06 loc5 [V06,T00] ( 21,1600 ) int -> x1
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T01] ( 9,1536.00) ref -> x10 class-hnd "Strict ordering of exceptions for Array store" <int[]> -; V09 tmp2 [V09,T05] ( 6,1024.00) int -> x11 "Strict ordering of exceptions for Array store" -; V10 tmp3 [V10,T03] ( 8,1034.19) ref -> x10 "arr expr" -; V11 tmp4 [V11,T02] ( 9,1536.00) ref -> x11 "arr expr" -; V12 tmp5 [V12,T04] ( 8,1034.19) ref -> x11 "arr expr" -; V13 cse0 [V13,T25] ( 2, 3.20) ref -> x3 hoist "CSE - aggressive" -; V14 cse1 [V14,T09] ( 6, 277.28) ref -> x7 hoist multi-def "CSE - aggressive" -; V15 cse2 [V15,T10] ( 6, 277.28) ref -> x8 hoist multi-def "CSE - aggressive" -; V16 cse3 [V16,T13] ( 6, 24.00) long -> x6 hoist multi-def "CSE - aggressive" -; V17 cse4 [V17,T07] ( 3, 564.54) long -> x9 hoist "CSE - aggressive" -; V18 cse5 [V18,T06] ( 3, 752.72) long -> x13 "CSE - aggressive" -; V19 cse6 [V19,T24] ( 3, 3.36) long -> x7 hoist "CSE - aggressive" -; V20 cse7 [V20,T22] ( 3, 5.76) long -> x8 hoist "CSE - aggressive" -; V21 cse8 [V21,T23] ( 3, 5.70) long -> x9 hoist "CSE - aggressive" -; V22 cse9 [V22,T20] ( 3, 7.68) long -> x9 "CSE - aggressive" -; V23 cse10 [V23,T21] ( 3, 7.60) long -> x13 "CSE - aggressive" -; V24 cse11 [V24,T19] ( 4, 9.64) byref -> x0 hoist "CSE - aggressive" -; V25 cse12 [V25,T16] ( 4, 11.56) byref -> x1 hoist "CSE - aggressive" -; V26 cse13 [V26,T14] ( 5, 21.12) int -> x3 hoist multi-def "CSE - aggressive" -; V27 cse14 [V27,T12] ( 5, 24.96) int -> x4 multi-def "CSE - aggressive"
+; V08 tmp1 [V08,T01] ( 9,1536.00) ref -> x6 class-hnd "Strict ordering of exceptions for Array store" <int[]> +; V09 tmp2 [V09,T05] ( 6,1024.00) int -> x7 "Strict ordering of exceptions for Array store" +; V10 tmp3 [V10,T03] ( 8,1034.19) ref -> x6 "arr expr" +; V11 tmp4 [V11,T02] ( 9,1536.00) ref -> x7 "arr expr" +; V12 tmp5 [V12,T04] ( 8,1034.19) ref -> x7 "arr expr" +; V13 cse0 [V13,T25] ( 2, 3.20) ref -> x4 hoist "CSE - aggressive" +; V14 cse1 [V14,T09] ( 6, 277.28) ref -> x3 hoist multi-def "CSE - aggressive" +; V15 cse2 [V15,T10] ( 6, 277.28) ref -> x4 hoist multi-def "CSE - aggressive" +; V16 cse3 [V16,T13] ( 6, 24.00) long -> x1 hoist multi-def "CSE - aggressive" +; V17 cse4 [V17,T07] ( 3, 564.54) long -> x5 hoist "CSE - aggressive" +; V18 cse5 [V18,T06] ( 3, 752.72) long -> x8 "CSE - aggressive" +; V19 cse6 [V19,T24] ( 3, 3.36) long -> x3 hoist "CSE - aggressive" +; V20 cse7 [V20,T22] ( 3, 5.76) long -> x5 hoist "CSE - aggressive" +; V21 cse8 [V21,T23] ( 3, 5.70) long -> x5 hoist "CSE - aggressive" +; V22 cse9 [V22,T20] ( 3, 7.68) long -> x8 "CSE - aggressive" +; V23 cse10 [V23,T21] ( 3, 7.60) long -> x8 "CSE - aggressive" +; V24 cse11 [V24,T19] ( 4, 9.64) byref -> x22 hoist "CSE - aggressive" +; V25 cse12 [V25,T16] ( 4, 11.56) byref -> x23 hoist "CSE - aggressive" +; V26 cse13 [V26,T14] ( 5, 21.12) int -> x24 hoist multi-def "CSE - aggressive" +; V27 cse14 [V27,T12] ( 5, 24.96) int -> x25 multi-def "CSE - aggressive"
; ; Lcl frame size = 8 G_M17716_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
+ stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp x21, x22, [sp, #0x28] + stp x23, x24, [sp, #0x38] + str x25, [sp, #0x48]
mov fp, sp mov w19, w0
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M17716_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov w0, #10 mov w1, #10 @@ -80,237 +82,242 @@ G_M17716_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[x0] ; gcr arg pop 0 cbz w19, G_M17716_IG23
- add x0, x21, #16 - ; byrRegs +[x0] - add x1, x20, #16 - ; byrRegs +[x1]
+ add x22, x21, #16 + ; byrRegs +[x22] + add x23, x20, #16 + ; byrRegs +[x23]
;; size=108 bbWeight=1 PerfScore 23.00
-G_M17716_IG03: ; bbWeight=4, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M17716_IG03: ; bbWeight=4, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz
mov w2, wzr cbz x21, G_M17716_IG17 ;; size=8 bbWeight=4 PerfScore 6.00
-G_M17716_IG04: ; bbWeight=2, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz
+G_M17716_IG04: ; bbWeight=2, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz
cbz x20, G_M17716_IG17
- ldr w3, [x21, #0x08] - cmp w3, #10
+ ldr w24, [x21, #0x08] + cmp w24, #10
blt G_M17716_IG17
- ldr w4, [x20, #0x08] - cmp w4, #10
+ ldr w25, [x20, #0x08] + cmp w25, #10
blt G_M17716_IG17 ;; size=28 bbWeight=2 PerfScore 20.00
-G_M17716_IG05: ; bbWeight=15.84, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz - mov w5, wzr - cmp w3, w2 - ccmp w4, w2, z, hi
+G_M17716_IG05: ; bbWeight=15.84, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz + mov w0, wzr + cmp w24, w2 + ccmp w25, w2, z, hi
bls G_M17716_IG11 ;; size=16 bbWeight=15.84 PerfScore 39.60
-G_M17716_IG06: ; bbWeight=7.92, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz - ubfiz x6, x2, #3, #32 - ldr x7, [x0, x6] - ; gcrRegs +[x7] - cbz x7, G_M17716_IG11 - ldr x8, [x1, x6] - ; gcrRegs +[x8] - cbz x8, G_M17716_IG11 - ldr w6, [x7, #0x08] - cmp w6, #10
+G_M17716_IG06: ; bbWeight=7.92, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz + ubfiz x1, x2, #3, #32 + ldr x3, [x22, x1] + ; gcrRegs +[x3] + cbz x3, G_M17716_IG11 + ldr x4, [x23, x1] + ; gcrRegs +[x4] + cbz x4, G_M17716_IG11 + ldr w1, [x3, #0x08] + cmp w1, #10
blt G_M17716_IG11
- ldr w6, [x8, #0x08] - cmp w6, #10
+ ldr w1, [x4, #0x08] + cmp w1, #10
blt G_M17716_IG11 ;; size=44 bbWeight=7.92 PerfScore 142.56
-G_M17716_IG07: ; bbWeight=62.73, gcrefRegs=300180 {x7 x8 x20 x21}, byrefRegs=0003 {x0 x1}, byref - mov w6, wzr - ubfiz x9, x5, #3, #32
+G_M17716_IG07: ; bbWeight=62.73, gcrefRegs=300018 {x3 x4 x20 x21}, byrefRegs=C00000 {x22 x23}, byref + mov w1, wzr + ubfiz x5, x0, #3, #32
;; size=8 bbWeight=62.73 PerfScore 94.09
-G_M17716_IG08: ; bbWeight=250.91, gcrefRegs=300180 {x7 x8 x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz - mov x10, x7 - ; gcrRegs +[x10] - add x10, x10, #16 - ; gcrRegs -[x10] - ; byrRegs +[x10] - ldr x10, [x10, x9] - ; gcrRegs +[x10] - ; byrRegs -[x10] - mov x11, x8 - ; gcrRegs +[x11] - add x11, x11, #16 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ldr x11, [x11, x9] - ; gcrRegs +[x11] - ; byrRegs -[x11] - ldr w13, [x11, #0x08] - cmp w6, w13
+G_M17716_IG08: ; bbWeight=250.91, gcrefRegs=300018 {x3 x4 x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz + mov x6, x3 + ; gcrRegs +[x6] + add x6, x6, #16 + ; gcrRegs -[x6] + ; byrRegs +[x6] + ldr x6, [x6, x5] + ; gcrRegs +[x6] + ; byrRegs -[x6] + mov x7, x4 + ; gcrRegs +[x7] + add x7, x7, #16 + ; gcrRegs -[x7] + ; byrRegs +[x7] + ldr x7, [x7, x5] + ; gcrRegs +[x7] + ; byrRegs -[x7] + ldr w8, [x7, #0x08] + cmp w1, w8
bhs G_M17716_IG25
- add x11, x11, #16 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ubfiz x13, x6, #2, #32 - ldr w11, [x11, x13] - ; byrRegs -[x11] - ldr w14, [x10, #0x08] - cmp w6, w14
+ add x7, x7, #16 + ; gcrRegs -[x7] + ; byrRegs +[x7] + ubfiz x8, x1, #2, #32 + ldr w7, [x7, x8] + ; byrRegs -[x7] + ldr w9, [x6, #0x08] + cmp w1, w9
bhs G_M17716_IG25
- add x10, x10, #16 - ; gcrRegs -[x10] - ; byrRegs +[x10] - str w11, [x10, x13] - add w6, w6, #1 - cmp w6, #10
+ add x6, x6, #16 + ; gcrRegs -[x6] + ; byrRegs +[x6] + str w7, [x6, x8] + add w1, w1, #1 + cmp w1, #10
blt G_M17716_IG08 ;; size=80 bbWeight=250.91 PerfScore 6272.64
-G_M17716_IG09: ; bbWeight=62.73, gcrefRegs=300180 {x7 x8 x20 x21}, byrefRegs=0003 {x0 x1}, byref, isz - ; byrRegs -[x10] - add w5, w5, #1 - cmp w5, #10
+G_M17716_IG09: ; bbWeight=62.73, gcrefRegs=300018 {x3 x4 x20 x21}, byrefRegs=C00000 {x22 x23}, byref, isz + ; byrRegs -[x6] + add w0, w0, #1 + cmp w0, #10
blt G_M17716_IG07 ;; size=12 bbWeight=62.73 PerfScore 125.45
-G_M17716_IG10: ; bbWeight=7.92, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref - ; gcrRegs -[x7-x8]
+G_M17716_IG10: ; bbWeight=15.84, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref + ; gcrRegs -[x3-x4]
b G_M17716_IG15
- ;; size=4 bbWeight=7.92 PerfScore 7.92 -G_M17716_IG11: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=0003 {x0 x1}, byref - ubfiz x6, x2, #3, #32 - ldr x7, [x0, x6] - ; gcrRegs +[x7] - ldr x8, [x1, x6] - ; gcrRegs +[x8]
+ ;; size=4 bbWeight=15.84 PerfScore 15.84 +G_M17716_IG11: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=C00000 {x22 x23}, byref + ubfiz x1, x2, #3, #32 + ldr x3, [x22, x1] + ; gcrRegs +[x3] + ldr x4, [x23, x1] + ; gcrRegs +[x4]
;; size=12 bbWeight=0.08 PerfScore 0.55
-G_M17716_IG12: ; bbWeight=0.63, gcrefRegs=300180 {x7 x8 x20 x21}, byrefRegs=0003 {x0 x1}, byref - mov w6, wzr - ubfiz x9, x5, #3, #32
+G_M17716_IG12: ; bbWeight=0.63, gcrefRegs=300018 {x3 x4 x20 x21}, byrefRegs=C00000 {x22 x23}, byref + mov w1, wzr + ubfiz x5, x0, #3, #32
;; size=8 bbWeight=0.63 PerfScore 0.95 ...

+4 (+2.33%) : 14200.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)

@@ -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_IG08
mov x0, x19 ; gcrRegs +[x0] ldr x1, [x20, #0x88] @@ -57,18 +57,9 @@ G_M26551_IG04: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by cbnz w0, G_M26551_IG03 ;; size=32 bbWeight=4 PerfScore 42.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]
+ b G_M26551_IG08 + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M26551_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19 ; gcrRegs +[x0] ldr x1, [x20, #0x88] @@ -79,20 +70,32 @@ 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_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M26551_IG07: ; 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 - 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
+G_M26551_IG08: ; 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_IG09: ; 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_IG08 - G_M26551_IG02 + dd G_M26551_IG06 - G_M26551_IG02 + dd G_M26551_IG08 - G_M26551_IG02 + dd G_M26551_IG08 - G_M26551_IG02 + dd G_M26551_IG08 - 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 176, prolog size 16, PerfScore 163.75, instruction count 44, allocated bytes for code 176 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
; ============================================================ Unwind Info: @@ -103,7 +106,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 43 (0x0002b) Actual length = 172 (0x0000ac)
+ 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)

+12 (+3.16%) : 21898.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)

@@ -10,136 +10,137 @@ ; V00 this [V00,T06] ( 3, 3 ) ref -> x0 this class-hnd single-def <Benchstone.BenchI.XposMatrix> ; V01 loc0 [V01,T07] ( 7, 4.58) ref -> x0 class-hnd single-def <int[][]> ;* V02 loc1 [V02,T11] ( 0, 0 ) int -> zero-ref single-def
-; V03 loc2 [V03,T03] ( 12, 19.04) int -> x1 -; V04 loc3 [V04,T00] ( 16, 68.32) int -> x3
+; V03 loc2 [V03,T03] ( 12, 19.04) int -> x19 +; V04 loc3 [V04,T00] ( 16, 68.32) int -> x1
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V06 tmp1 [V06,T01] ( 8, 64.64) ref -> registers "arr expr" ; V07 tmp2 [V07,T05] ( 3, 6 ) ref -> x1 single-def "arr expr" ; V08 tmp3 [V08,T10] ( 3, 3 ) ref -> x0 single-def "arr expr"
-; V09 cse0 [V09,T12] ( 2, 0.20) ref -> x4 hoist "CSE - conservative" -; V10 cse1 [V10,T02] ( 6, 21.80) ref -> x5 hoist multi-def "CSE - aggressive" -; V11 cse2 [V11,T09] ( 4, 4.00) long -> x4 hoist multi-def "CSE - aggressive" -; V12 cse3 [V12,T13] ( 2, 0.08) long -> x4 hoist "CSE - conservative" -; V13 cse4 [V13,T08] ( 7, 4.58) byref -> x19 hoist multi-def "CSE - aggressive" -; V14 cse5 [V14,T04] ( 6, 7.04) int -> x2 hoist multi-def "CSE - aggressive"
+; V09 cse0 [V09,T12] ( 2, 0.20) ref -> x2 hoist "CSE - conservative" +; V10 cse1 [V10,T02] ( 6, 21.80) ref -> x3 hoist multi-def "CSE - aggressive" +; V11 cse2 [V11,T09] ( 4, 4.00) long -> x2 hoist multi-def "CSE - aggressive" +; V12 cse3 [V12,T13] ( 2, 0.08) long -> x2 hoist "CSE - conservative" +; V13 cse4 [V13,T08] ( 7, 4.58) byref -> x21 hoist multi-def "CSE - aggressive" +; V14 cse5 [V14,T04] ( 6, 7.04) int -> x20 hoist multi-def "CSE - aggressive"
; ; Lcl frame size = 8 G_M49643_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M49643_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0] ldr x0, [x0, #0x08]
- mov w1, #1
+ mov w19, #1
cbz x0, G_M49643_IG11
- ldr w2, [x0, #0x08] - cmp w2, #100
+ ldr w20, [x0, #0x08] + cmp w20, #100
ble G_M49643_IG11
- add x19, x0, #16 - ; byrRegs +[x19]
+ add x21, x0, #16 + ; byrRegs +[x21]
;; size=28 bbWeight=1 PerfScore 9.50
-G_M49643_IG03: ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - mov w3, #1 - cmp w2, w1
+G_M49643_IG03: ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref, isz + mov w1, #1 + cmp w20, w19
bls G_M49643_IG07 ;; size=12 bbWeight=3.96 PerfScore 7.92
-G_M49643_IG04: ; bbWeight=1.98, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - ubfiz x4, x1, #3, #32 - ldr x5, [x19, x4] - ; gcrRegs +[x5] - cbz x5, G_M49643_IG07 - ldr w4, [x5, #0x08] - cmp w4, #100
+G_M49643_IG04: ; bbWeight=1.98, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref, isz + ubfiz x2, x19, #3, #32 + ldr x3, [x21, x2] + ; gcrRegs +[x3] + cbz x3, G_M49643_IG07 + ldr w2, [x3, #0x08] + cmp w2, #100
ble G_M49643_IG07 ;; size=24 bbWeight=1.98 PerfScore 18.81
-G_M49643_IG05: ; bbWeight=15.68, gcrefRegs=0021 {x0 x5}, byrefRegs=80000 {x19}, byref, isz - mov x4, x5 - ; gcrRegs +[x4] - add x4, x4, #16 - ; gcrRegs -[x4] - ; byrRegs +[x4] - mov w6, #1 - str w6, [x4, w3, UXTW #2] - add w3, w3, #1 - cmp w3, #100 - ble G_M49643_IG05 - ;; size=28 bbWeight=15.68 PerfScore 70.57 -G_M49643_IG06: ; bbWeight=1.98, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ; gcrRegs -[x5] - ; byrRegs -[x4] - b G_M49643_IG09 - ;; size=4 bbWeight=1.98 PerfScore 1.98 -G_M49643_IG07: ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref - ubfiz x4, x1, #3, #32 - ldr x5, [x19, x4] - ; gcrRegs +[x5] - ;; size=8 bbWeight=0.02 PerfScore 0.08 -G_M49643_IG08: ; bbWeight=0.16, gcrefRegs=0021 {x0 x5}, byrefRegs=80000 {x19}, byref, isz - mov x4, x5 - ; gcrRegs +[x4] - ldr w6, [x4, #0x08] - cmp w3, w6 - bhs G_M49643_IG19 - add x4, x4, #16 - ; gcrRegs -[x4] - ; byrRegs +[x4] - mov w6, #1 - str w6, [x4, w3, UXTW #2] - add w3, w3, #1 - cmp w3, #100 - ble G_M49643_IG08 - ;; size=40 bbWeight=0.16 PerfScore 1.43 -G_M49643_IG09: ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - ; gcrRegs -[x5] - ; byrRegs -[x4]
+G_M49643_IG05: ; bbWeight=15.68, gcrefRegs=0009 {x0 x3}, byrefRegs=200000 {x21}, byref, isz + mov x2, x3 + ; gcrRegs +[x2] + add x2, x2, #16 + ; gcrRegs -[x2] + ; byrRegs +[x2] + mov w4, #1 + str w4, [x2, w1, UXTW #2]
add w1, w1, #1 cmp w1, #100
+ ble G_M49643_IG05 + ;; size=28 bbWeight=15.68 PerfScore 70.57 +G_M49643_IG06: ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref + ; gcrRegs -[x3] + ; byrRegs -[x2] + b G_M49643_IG09 + ;; size=4 bbWeight=3.96 PerfScore 3.96 +G_M49643_IG07: ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref + ubfiz x2, x19, #3, #32 + ldr x3, [x21, x2] + ; gcrRegs +[x3] + ;; size=8 bbWeight=0.02 PerfScore 0.08 +G_M49643_IG08: ; bbWeight=0.16, gcrefRegs=0009 {x0 x3}, byrefRegs=200000 {x21}, byref, isz + mov x2, x3 + ; gcrRegs +[x2] + ldr w4, [x2, #0x08] + cmp w1, w4 + bhs G_M49643_IG19 + add x2, x2, #16 + ; gcrRegs -[x2] + ; byrRegs +[x2] + mov w4, #1 + str w4, [x2, w1, UXTW #2] + add w1, w1, #1 + cmp w1, #100 + ble G_M49643_IG08 + ;; size=40 bbWeight=0.16 PerfScore 1.43 +G_M49643_IG09: ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref, isz + ; gcrRegs -[x3] + ; byrRegs -[x2] + add w19, w19, #1 + cmp w19, #100
ble G_M49643_IG03 ;; size=12 bbWeight=3.96 PerfScore 7.92
-G_M49643_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
+G_M49643_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref
b G_M49643_IG14 ;; size=4 bbWeight=1 PerfScore 1.00 G_M49643_IG11: ; bbWeight=0.04, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x19] - mov w3, #1 - ldr w2, [x0, #0x08] - add x19, x0, #16 - ; byrRegs +[x19] - ubfiz x4, x1, #3, #32 - cmp w1, w2
+ ; byrRegs -[x21] + mov w1, #1 + ldr w20, [x0, #0x08] + add x21, x0, #16 + ; byrRegs +[x21] + ubfiz x2, x19, #3, #32 + cmp w19, w20
bhs G_M49643_IG19
- ldr x4, [x19, x4] - ; gcrRegs +[x4]
+ ldr x2, [x21, x2] + ; gcrRegs +[x2]
;; size=28 bbWeight=0.04 PerfScore 0.38
-G_M49643_IG12: ; bbWeight=0.16, gcrefRegs=0011 {x0 x4}, byrefRegs=80000 {x19}, byref, isz - mov x5, x4 - ; gcrRegs +[x5] - ldr w6, [x5, #0x08] - cmp w3, w6
+G_M49643_IG12: ; bbWeight=0.16, gcrefRegs=0005 {x0 x2}, byrefRegs=200000 {x21}, byref, isz + mov x3, x2 + ; gcrRegs +[x3] + ldr w4, [x3, #0x08] + cmp w1, w4
bhs G_M49643_IG19
- add x5, x5, #16 - ; gcrRegs -[x5] - ; byrRegs +[x5] - mov w6, #1 - str w6, [x5, w3, UXTW #2] - add w3, w3, #1 - cmp w3, #100 - ble G_M49643_IG12 - ;; size=40 bbWeight=0.16 PerfScore 1.44 -G_M49643_IG13: ; bbWeight=0.04, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - ; gcrRegs -[x4] - ; byrRegs -[x5]
+ add x3, x3, #16 + ; gcrRegs -[x3] + ; byrRegs +[x3] + mov w4, #1 + str w4, [x3, w1, UXTW #2]
add w1, w1, #1 cmp w1, #100
+ ble G_M49643_IG12 + ;; size=40 bbWeight=0.16 PerfScore 1.44 +G_M49643_IG13: ; bbWeight=0.04, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref, isz + ; gcrRegs -[x2] + ; byrRegs -[x3] + add w19, w19, #1 + cmp w19, #100
ble G_M49643_IG11 ;; size=12 bbWeight=0.04 PerfScore 0.08
-G_M49643_IG14: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz - cmp w2, #100
+G_M49643_IG14: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=200000 {x21}, byref, isz + cmp w20, #100
bls G_M49643_IG19
- ldr x1, [x19, #0xD1FFAB1E]
+ ldr x1, [x21, #0xD1FFAB1E]
; gcrRegs +[x1] ldr w2, [x1, #0x08] cmp w2, #100 @@ -151,17 +152,18 @@ G_M49643_IG14: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, ;; size=36 bbWeight=1 PerfScore 13.50 G_M49643_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ; byrRegs -[x19]
+ ; byrRegs -[x21]
mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M49643_IG16: ; bbWeight=0.50, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=0.50 PerfScore 2.00
...

benchmarks.run_pgo.windows.arm64.checked.mch

-32 (-11.76%) : 25638.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)

@@ -11,36 +11,33 @@ ; ; V00 arg0 [V00,T01] ( 6, 3.17) long -> x0 single-def ; V01 arg1 [V01,T00] ( 7, 5.17) ref -> x1 class-hnd <System.Object>
-; V02 loc0 [V02,T02] ( 4, 2.62) long -> x19
+; V02 loc0 [V02,T02] ( 4, 2.62) long -> x2
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T09] ( 4, 0.51) int -> x23 "Inline return value spill temp"
+; V05 tmp1 [V05,T09] ( 4, 0.51) int -> x6 "Inline return value spill temp"
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <int[]>
-; V07 tmp3 [V07,T07] ( 4, 1.27) byref -> x20 single-def "Inline stloc first use temp" -; V08 tmp4 [V08,T05] ( 4, 1.58) int -> x2 "Inline stloc first use temp" -; V09 tmp5 [V09,T03] ( 5, 2.08) int -> x3 "Inline stloc first use temp" -; V10 tmp6 [V10,T06] ( 5, 1.35) byref -> x21 "Inline stloc first use temp" -; V11 tmp7 [V11,T04] ( 5, 1.80) int -> x22 "Inline stloc first use temp" -; V12 tmp8 [V12,T08] ( 2, 0.90) long -> x4 "Inline stloc first use temp" -; V13 tmp9 [V13,T11] ( 3, 0 ) long -> x23 "Inline stloc first use temp"
+; V07 tmp3 [V07,T07] ( 4, 1.27) byref -> x3 single-def "Inline stloc first use temp" +; V08 tmp4 [V08,T05] ( 4, 1.58) int -> x4 "Inline stloc first use temp" +; V09 tmp5 [V09,T03] ( 5, 2.08) int -> x5 "Inline stloc first use temp" +; V10 tmp6 [V10,T06] ( 5, 1.35) byref -> x6 "Inline stloc first use temp" +; V11 tmp7 [V11,T04] ( 5, 1.80) int -> x7 "Inline stloc first use temp" +; V12 tmp8 [V12,T08] ( 2, 0.90) long -> x8 "Inline stloc first use temp" +; V13 tmp9 [V13,T11] ( 3, 0 ) long -> x8 "Inline stloc first use temp"
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V16 tmp12 [V16,T10] ( 2, 0.34) ref -> x2 single-def "Field obj"
+; V16 tmp12 [V16,T10] ( 2, 0.34) ref -> x3 single-def "Field obj"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M60590_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, #-0x10]!
mov fp, sp
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M60590_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x1] cbz x1, G_M60590_IG03
- ldr x19, [x1] - cmp x19, x0
+ ldr x2, [x1] + cmp x2, x0
bne G_M60590_IG08 ;; size=16 bbWeight=1 PerfScore 5.50 G_M60590_IG03: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref @@ -48,104 +45,102 @@ G_M60590_IG03: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] ;; size=4 bbWeight=1 PerfScore 0.50 G_M60590_IG04: ; bbWeight=1, 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], #0x10
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00 -G_M60590_IG05: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=100000 {x20}, gcvars, byref, isz
+ ;; size=8 bbWeight=1 PerfScore 2.00 +G_M60590_IG05: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, gcvars, byref, isz
; gcrRegs -[x0]
- ; byrRegs +[x20] - cbz w22, G_M60590_IG09
+ ; byrRegs +[x3] + cbz w7, G_M60590_IG10
;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M60590_IG06: ; bbWeight=0.48, gcrefRegs=0002 {x1}, byrefRegs=100000 {x20}, byref, isz - add w3, w3, #1 - add w2, w2, w3 - ldr w4, [x20, #0x04] - and w2, w2, w4 - cmp w3, #8 - bge G_M60590_IG09
+G_M60590_IG06: ; bbWeight=0.48, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz + add w5, w5, #1 + add w4, w4, w5 + ldr w6, [x3, #0x04] + and w4, w4, w6 + cmp w5, #8 + blt G_M60590_IG09
;; size=24 bbWeight=0.48 PerfScore 2.87
-G_M60590_IG07: ; bbWeight=0.45, gcrefRegs=0002 {x1}, byrefRegs=100000 {x20}, byref, isz - add w4, w2, #1 - mov w5, #24 - smull x4, w4, w5 - add x21, x20, x4 - ; byrRegs +[x21] - ldapr w22, [x21] - ldr x4, [x21, #0x08] - and w22, w22, #0xD1FFAB1E - cmp x4, x19 - beq G_M60590_IG12 - b G_M60590_IG05 - ;; size=40 bbWeight=0.45 PerfScore 5.63
+G_M60590_IG07: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref + ; byrRegs -[x3] + b G_M60590_IG10 + ;; size=4 bbWeight=0.17 PerfScore 0.17
G_M60590_IG08: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
- ; byrRegs -[x20-x21] - movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - ; gcrRegs +[x2] - add x20, x2, #16 - ; byrRegs +[x20] - ror x2, x19, #32 - ; gcrRegs -[x2] - eor x2, x2, x0 - movz x3, #0xD1FFAB1E
+ movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32
- movk x3, #0xD1FFAB1E LSL #48 - mul x2, x2, x3 - ldr w3, [x20] - lsr x2, x2, x3 - mov w3, wzr - b G_M60590_IG07 - ;; size=64 bbWeight=0.17 PerfScore 2.62 -G_M60590_IG09: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref - ; byrRegs -[x20] - mov w23, #2
+ ldr x3, [x3] + ; gcrRegs +[x3] + add x3, x3, #16 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ror x4, x2, #32 + eor x4, x4, x0 + movz x5, #0xD1FFAB1E + movk x5, #0xD1FFAB1E LSL #16 + movk x5, #0xD1FFAB1E LSL #32 + movk x5, #0xD1FFAB1E LSL #48 + mul x4, x4, x5 + ldr w5, [x3] + lsr x4, x4, x5 + mov w5, wzr + ;; size=60 bbWeight=0.17 PerfScore 2.45 +G_M60590_IG09: ; bbWeight=0.45, gcrefRegs=0002 {x1}, byrefRegs=0008 {x3}, byref, isz + add w6, w4, #1 + mov w7, #24 + smull x6, w6, w7 + add x6, x3, x6 + ; byrRegs +[x6] + ldapr w7, [x6] + ldr x8, [x6, #0x08] + and w7, w7, #0xD1FFAB1E + cmp x8, x2 + beq G_M60590_IG13 + b G_M60590_IG05 + ;; size=40 bbWeight=0.45 PerfScore 5.63 +G_M60590_IG10: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref + ; byrRegs -[x3 x6] + mov w6, #2
;; size=4 bbWeight=0.17 PerfScore 0.08
-G_M60590_IG10: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz - cmp w23, #1
+G_M60590_IG11: ; bbWeight=0.17, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz + cmp w6, #1
beq G_M60590_IG03
- cbnz w23, G_M60590_IG11
+ cbnz w6, G_M60590_IG12
mov x1, xzr b G_M60590_IG03 ;; size=20 bbWeight=0.17 PerfScore 0.68
-G_M60590_IG11: ; bbWeight=0, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, epilog, nogc - ldr x23, [sp, #0x38] - ldp x21, x22, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x40
+G_M60590_IG12: ; bbWeight=0, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, epilog, nogc + ldp fp, lr, [sp], #0x10
b <unknown method> ; gcr arg pop 0
- ;; size=20 bbWeight=0 PerfScore 0.00 -G_M60590_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=300000 {x20 x21}, gcvars, byref, isz - ; byrRegs +[x20-x21] - ldr x4, [x21, #0x10] - eor x23, x4, x0 - cmp x23, #1
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M60590_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0048 {x3 x6}, gcvars, byref, isz + ; byrRegs +[x3 x6] + ldr x8, [x6, #0x10] + eor x8, x8, x0 + cmp x8, #1
bhi G_M60590_IG05 dmb ishld
- ldr w2, [x21] - cmp w22, w2 - bne G_M60590_IG09 - b G_M60590_IG10 - ;; size=36 bbWeight=0 PerfScore 0.00
+ ldr w2, [x6] + cmp w7, w2 + bne G_M60590_IG10 + sxtw w6, w8 + ; byrRegs -[x6] + b G_M60590_IG11 + ;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 272, prolog size 20, PerfScore 28.84, instruction count 68, allocated bytes for code 272 (MethodHash=9f861351) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
+; Total bytes of code 240, prolog size 8, PerfScore 21.84, instruction count 60, allocated bytes for code 240 (MethodHash=9f861351) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 68 (0x00044) Actual length = 272 (0x000110)
+ 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) @@ -156,9 +151,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56] - E6 save_next - C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] - 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]! + E4 end
E4 end

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

@@ -10,13 +10,13 @@ ; 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, 28.03) ref -> x19 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T03] ( 8, 32.33) 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.58) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T08] ( 5, 1.02) int -> x22
-; V05 loc3 [V05,T02] ( 6, 32.24) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T01] ( 9, 45.51) int -> x24 -; V07 loc5 [V07,T00] ( 5, 49.57) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T02] ( 6, 36.54) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T00] ( 6, 49.82) int -> x24 +; V07 loc5 [V07,T01] ( 5, 49.57) 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,T04] ( 2, 20.48) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> @@ -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,37 +59,26 @@ G_M50755_IG04: ; bbWeight=0.95, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.95 PerfScore 4.77
-G_M50755_IG05: ; bbWeight=8.60, 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_IG13 - ;; size=16 bbWeight=8.60 PerfScore 64.53 -G_M50755_IG06: ; bbWeight=68.83, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG14 - ;; size=4 bbWeight=68.83 PerfScore 68.83 -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_IG16
+ ble G_M50755_IG14
;; size=16 bbWeight=0.05 PerfScore 0.23
-G_M50755_IG08: ; bbWeight=0.24, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.24, 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_IG16
+ cbz x23, G_M50755_IG14
mov w24, wzr ldr w0, [x19, #0x08] ; byrRegs -[x0] cmp w0, #0
- ble G_M50755_IG15
+ ble G_M50755_IG13
;; size=28 bbWeight=0.24 PerfScore 2.30
-G_M50755_IG09: ; bbWeight=10.24, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=10.24, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add x0, x19, #16 ; byrRegs +[x0] ldr x0, [x0, w24, UXTW #3] @@ -100,9 +89,9 @@ G_M50755_IG09: ; bbWeight=10.24, gcrefRegs=B80000 {x19 x20 x21 x23}, byre movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- bne G_M50755_IG12
+ bne G_M50755_IG09
;; size=32 bbWeight=10.24 PerfScore 97.30
-G_M50755_IG10: ; bbWeight=8.60, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08: ; bbWeight=8.60, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x23 ; gcrRegs +[x1] ldr x1, [x1] @@ -111,13 +100,15 @@ G_M50755_IG10: ; bbWeight=8.60, 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=8.60 PerfScore 55.92 -G_M50755_IG11: ; bbWeight=2.15, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ bne G_M50755_IG10 + ldr x1, [x23, #0x50] + ldr x0, [x0, #0x50]
; gcrRegs -[x0]
- b G_M50755_IG18 - ;; size=4 bbWeight=2.15 PerfScore 2.15 -G_M50755_IG12: ; bbWeight=10.24, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ cmp x1, x0 + bne G_M50755_IG10 + b G_M50755_IG12 + ;; size=48 bbWeight=8.60 PerfScore 129.05 +G_M50755_IG09: ; bbWeight=10.24, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0] mov x1, x23 ; gcrRegs +[x1] @@ -127,16 +118,20 @@ G_M50755_IG12: ; bbWeight=10.24, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, b blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- cbnz w0, G_M50755_IG14
+ cbnz w0, G_M50755_IG12
;; size=24 bbWeight=10.24 PerfScore 117.79
-G_M50755_IG13: ; bbWeight=10.24, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG10: ; bbWeight=10.24, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1 ldr w1, [x19, #0x08] cmp w1, w24
- ble G_M50755_IG15 - b G_M50755_IG09 - ;; size=20 bbWeight=10.24 PerfScore 61.45 -G_M50755_IG14: ; bbWeight=4.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ bgt G_M50755_IG07 + ;; size=16 bbWeight=10.24 PerfScore 51.21 +G_M50755_IG11: ; bbWeight=0.24, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG13 + ;; size=4 bbWeight=0.24 PerfScore 0.24 +G_M50755_IG12: ; bbWeight=8.60, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x19 ; gcrRegs +[x0] @@ -145,14 +140,14 @@ G_M50755_IG14: ; bbWeight=4.30, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=4.30 PerfScore 10.75 -G_M50755_IG15: ; bbWeight=0.24, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=8.60 PerfScore 21.51 +G_M50755_IG13: ; bbWeight=0.24, 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.24 PerfScore 1.21
-G_M50755_IG16: ; 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] @@ -162,23 +157,15 @@ G_M50755_IG16: ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.05 PerfScore 0.09
-G_M50755_IG17: ; 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.23
-G_M50755_IG18: ; 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_IG09 - b G_M50755_IG15 - ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 324, prolog size 28, PerfScore 498.97, 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 437.35, 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: @@ -189,7 +176,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%) : 18364.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@ ; ; V00 arg0 [V00,T04] ( 9,500.50) 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.04, 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.54, 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)

+4 (+8.33%) : 70259.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanint (Tier1)

@@ -9,8 +9,8 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 3 ) int -> x0 ld-addr-op single-def -; V01 arg1 [V01,T01] ( 4, 3 ) int -> x1 single-def
+; V00 arg0 [V00,T00] ( 5, 4 ) int -> x0 ld-addr-op single-def +; V01 arg1 [V01,T01] ( 5, 4 ) int -> x1 single-def
; V02 arg2 [V02,T02] ( 3, 2 ) ref -> x2 class-hnd single-def <System.String> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" @@ -25,7 +25,8 @@ G_M40926_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byre ; gcrRegs +[x2] cmp w0, w1 blt G_M40926_IG04
- ;; size=8 bbWeight=1 PerfScore 1.50
+ cmp w0, w1 + ;; size=12 bbWeight=1 PerfScore 2.00
G_M40926_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr @@ -40,7 +41,7 @@ G_M40926_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0004 { brk_windows #0 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 48, prolog size 8, PerfScore 5.00, instruction count 12, allocated bytes for code 48 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 5.50, instruction count 13, allocated bytes for code 52 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
; ============================================================ Unwind Info: @@ -51,7 +52,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+9.43%) : 75589.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>cDisplayClass10_0[int]:b0():this (Tier1-OSR)

@@ -12,7 +12,7 @@ ; ; V00 this [V00,T11] ( 5, 201.99) ref -> x19 this class-hnd single-def <System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[int]> ; V01 loc0 [V01,T04] ( 4, 299.98) int -> x20
-; V02 loc1 [V02,T14] ( 1, 1 ) int -> [fp+0x40] ld-addr-op tier0-frame
+; V02 loc1 [V02,T14] ( 1, 1 ) int -> [fp+0x60] ld-addr-op tier0-frame
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3,1199.88) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Concurrent.ConcurrentQueue`1[int]> ;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Barrier> @@ -28,33 +28,35 @@ ; V15 tmp12 [V15,T02] ( 6, 599.91) int -> x4 "Inline stloc first use temp" ; V16 tmp13 [V16,T06] ( 3, 299.97) int -> x5 "Inline stloc first use temp" ;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V18 tmp15 [V18,T12] ( 3, 199.99) int -> x7 "Inline stloc first use temp"
+; V18 tmp15 [V18,T12] ( 3, 199.99) int -> x5 "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref "field V06._source (fldOffset=0x0)" P-INDEP ;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref "field V07._source (fldOffset=0x0)" P-INDEP ;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref "field V09._source (fldOffset=0x0)" P-INDEP ;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref "field V10._source (fldOffset=0x0)" P-INDEP
-; V23 cse0 [V23,T07] ( 3, 299.96) byref -> x6 "CSE - aggressive" -; V24 cse1 [V24,T08] ( 3, 299.96) byref -> x5 "CSE - aggressive"
+; V23 cse0 [V23,T07] ( 3, 299.96) byref -> x22 "CSE - aggressive" +; V24 cse1 [V24,T08] ( 3, 299.96) byref -> x21 "CSE - aggressive"
; V25 cse2 [V25,T09] ( 3, 299.96) byref -> x3 hoist "CSE - aggressive"
-; V26 cse3 [V26,T10] ( 3, 299.94) int -> x7 "CSE - aggressive"
+; V26 cse3 [V26,T10] ( 3, 299.94) int -> x23 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M22719_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x40]! + stp x19, x20, [sp, #0x18] + stp x21, x22, [sp, #0x28] + str x23, [sp, #0x38]
mov fp, sp
- ldr x19, [fp, #0x48]
+ ldr x19, [fp, #0x68]
; gcrRegs +[x19]
- ldr w20, [fp, #0x44] - ;; size=20 bbWeight=0.01 PerfScore 0.07
+ ldr w20, [fp, #0x64] + ;; size=28 bbWeight=0.01 PerfScore 0.09
G_M22719_IG02: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x0, [x19, #0x08] ; gcrRegs +[x0] ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M22719_IG10
+ bge G_M22719_IG11
;; size=16 bbWeight=0.01 PerfScore 0.08 G_M22719_IG03: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x10] @@ -75,30 +77,28 @@ G_M22719_IG04: ; bbWeight=99.99, gcrefRegs=80007 {x0 x1 x2 x19}, byrefReg and w5, w4, w5 ldr w6, [x2, #0x08] cmp w5, w6
- bhs G_M22719_IG09
+ bhs G_M22719_IG10
ubfiz x5, x5, #3, #32 add x5, x5, #16
- add x5, x2, x5 - ; byrRegs +[x5] - add x6, x5, #4 - ; byrRegs +[x6] - ldapr w7, [x6] - sub w7, w7, w4 - cbnz w7, G_M22719_IG06
+ add x21, x2, x5 + ; byrRegs +[x21] + add x22, x21, #4 + ; byrRegs +[x22] + ldapr w5, [x22] + sub w5, w5, w4 + cbnz w5, G_M22719_IG06
;; size=52 bbWeight=99.99 PerfScore 1799.82
-G_M22719_IG05: ; bbWeight=99.98, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0068 {x3 x5 x6}, byref, isz - add w7, w4, #1 - mov w8, w4 - casal w8, w7, [x3] - cmp w8, w4
+G_M22719_IG05: ; bbWeight=99.98, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=600008 {x3 x21 x22}, byref, isz + add w23, w4, #1 + mov w5, w4 + casal w5, w23, [x3] + cmp w5, w4
bne G_M22719_IG04
- str wzr, [x5] - stlr w7, [x6] - b G_M22719_IG08 - ;; size=32 bbWeight=99.98 PerfScore 849.83
+ b G_M22719_IG09 + ;; size=24 bbWeight=99.98 PerfScore 649.87
G_M22719_IG06: ; bbWeight=0.01, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz
- ; byrRegs -[x5-x6] - tbz w7, #31, G_M22719_IG04
+ ; byrRegs -[x21-x22] + tbz w5, #31, G_M22719_IG04
;; size=4 bbWeight=0.01 PerfScore 0.01 G_M22719_IG07: ; bbWeight=399.96, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x1-x2] @@ -119,33 +119,42 @@ G_M22719_IG08: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {} ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M22719_IG10
+ bge G_M22719_IG11
b G_M22719_IG03 ;; size=24 bbWeight=99.99 PerfScore 899.91
-G_M22719_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22719_IG09: ; bbWeight=99.98, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref + ; byrRegs +[x21-x22] + str wzr, [x21] + stlr w23, [x22] + b G_M22719_IG08 + ;; size=12 bbWeight=99.98 PerfScore 299.94 +G_M22719_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
+ ; byrRegs -[x21-x22]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M22719_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+G_M22719_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldr x23, [sp, #0x38] + ldp x21, x22, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x40
add sp, sp, #48 ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 212, prolog size 20, PerfScore 6949.37, instruction count 53, allocated bytes for code 212 (MethodHash=aac5a740) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[int]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
+; Total bytes of code 232, prolog size 28, PerfScore 7049.37, instruction count 58, allocated bytes for code 232 (MethodHash=aac5a740) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[int]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ 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) @@ -153,10 +162,13 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 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]!
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56] + E6 save_next + C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] + 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
03 alloc_s #3 (0x03); sub sp, sp, #48 (0x030) E4 end E4 end E4 end
+ E4 end

+20 (+9.43%) : 79861.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>cDisplayClass10_0[System.Canon]:b__0():this (Tier1-OSR)

@@ -12,7 +12,7 @@ ; ; V00 this [V00,T11] ( 5, 201.99) ref -> x19 this class-hnd single-def <System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]> ; V01 loc0 [V01,T04] ( 4, 299.98) int -> x20
-; V02 loc1 [V02,T14] ( 1, 1 ) ref -> [fp+0x40] ld-addr-op class-hnd tier0-frame <System.__Canon>
+; V02 loc1 [V02,T14] ( 1, 1 ) ref -> [fp+0x60] ld-addr-op class-hnd tier0-frame <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T00] ( 3,1199.88) ref -> x0 class-hnd "impAppendStmt" <System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]> ;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Barrier> @@ -28,33 +28,35 @@ ; V15 tmp12 [V15,T02] ( 6, 599.46) int -> x4 "Inline stloc first use temp" ; V16 tmp13 [V16,T06] ( 3, 299.97) int -> x5 "Inline stloc first use temp" ;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V18 tmp15 [V18,T12] ( 3, 200.14) int -> x7 "Inline stloc first use temp"
+; V18 tmp15 [V18,T12] ( 3, 200.14) int -> x5 "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref "field V06._source (fldOffset=0x0)" P-INDEP ;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref "field V07._source (fldOffset=0x0)" P-INDEP ;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref "field V09._source (fldOffset=0x0)" P-INDEP ;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref "field V10._source (fldOffset=0x0)" P-INDEP
-; V23 cse0 [V23,T07] ( 3, 299.81) byref -> x6 "CSE - aggressive" -; V24 cse1 [V24,T08] ( 3, 299.81) byref -> x5 "CSE - aggressive"
+; V23 cse0 [V23,T07] ( 3, 299.81) byref -> x22 "CSE - aggressive" +; V24 cse1 [V24,T08] ( 3, 299.81) byref -> x21 "CSE - aggressive"
; V25 cse2 [V25,T09] ( 3, 299.81) byref -> x3 hoist "CSE - aggressive"
-; V26 cse3 [V26,T10] ( 3, 299.49) int -> x7 "CSE - aggressive"
+; V26 cse3 [V26,T10] ( 3, 299.49) int -> x23 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M39530_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x40]! + stp x19, x20, [sp, #0x18] + stp x21, x22, [sp, #0x28] + str x23, [sp, #0x38]
mov fp, sp
- ldr x19, [fp, #0x50]
+ ldr x19, [fp, #0x70]
; gcrRegs +[x19]
- ldr w20, [fp, #0x4C] - ;; size=20 bbWeight=0.01 PerfScore 0.06
+ ldr w20, [fp, #0x6C] + ;; size=28 bbWeight=0.01 PerfScore 0.08
G_M39530_IG02: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x0, [x19, #0x08] ; gcrRegs +[x0] ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M39530_IG10
+ bge G_M39530_IG11
;; size=16 bbWeight=0.01 PerfScore 0.07 G_M39530_IG03: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x10] @@ -75,30 +77,28 @@ G_M39530_IG04: ; bbWeight=99.99, gcrefRegs=80007 {x0 x1 x2 x19}, byrefReg and w5, w4, w5 ldr w6, [x2, #0x08] cmp w5, w6
- bhs G_M39530_IG09
+ bhs G_M39530_IG10
ubfiz x5, x5, #4, #32 add x5, x5, #16
- add x5, x2, x5 - ; byrRegs +[x5] - add x6, x5, #8 - ; byrRegs +[x6] - ldapr w7, [x6] - sub w7, w7, w4 - cbnz w7, G_M39530_IG06
+ add x21, x2, x5 + ; byrRegs +[x21] + add x22, x21, #8 + ; byrRegs +[x22] + ldapr w5, [x22] + sub w5, w5, w4 + cbnz w5, G_M39530_IG06
;; size=52 bbWeight=99.99 PerfScore 1799.82
-G_M39530_IG05: ; bbWeight=99.83, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0068 {x3 x5 x6}, byref, isz - add w7, w4, #1 - mov w8, w4 - casal w8, w7, [x3] - cmp w8, w4
+G_M39530_IG05: ; bbWeight=99.83, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=600008 {x3 x21 x22}, byref, isz + add w23, w4, #1 + mov w5, w4 + casal w5, w23, [x3] + cmp w5, w4
bne G_M39530_IG04
- str xzr, [x5] - stlr w7, [x6] - b G_M39530_IG08 - ;; size=32 bbWeight=99.83 PerfScore 848.56
+ b G_M39530_IG09 + ;; size=24 bbWeight=99.83 PerfScore 648.90
G_M39530_IG06: ; bbWeight=0.16, gcrefRegs=80007 {x0 x1 x2 x19}, byrefRegs=0008 {x3}, byref, isz
- ; byrRegs -[x5-x6] - tbz w7, #31, G_M39530_IG04
+ ; byrRegs -[x21-x22] + tbz w5, #31, G_M39530_IG04
;; size=4 bbWeight=0.16 PerfScore 0.16 G_M39530_IG07: ; bbWeight=399.96, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x1-x2] @@ -119,33 +119,42 @@ G_M39530_IG08: ; bbWeight=99.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {} ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w20, w0
- bge G_M39530_IG10
+ bge G_M39530_IG11
b G_M39530_IG03 ;; size=24 bbWeight=99.99 PerfScore 899.91
-G_M39530_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M39530_IG09: ; bbWeight=99.83, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref + ; byrRegs +[x21-x22] + str xzr, [x21] + stlr w23, [x22] + b G_M39530_IG08 + ;; size=12 bbWeight=99.83 PerfScore 299.49 +G_M39530_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
+ ; byrRegs -[x21-x22]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M39530_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x20
+G_M39530_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldr x23, [sp, #0x38] + ldp x21, x22, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x40
add sp, sp, #64 ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 212, prolog size 20, PerfScore 6948.26, instruction count 53, allocated bytes for code 212 (MethodHash=64006595) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
+; Total bytes of code 232, prolog size 28, PerfScore 7048.11, instruction count 58, allocated bytes for code 232 (MethodHash=64006595) for method System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ 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) @@ -153,10 +162,13 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 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]!
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56] + E6 save_next + C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24] + 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
04 alloc_s #4 (0x04); sub sp, sp, #64 (0x040) E4 end E4 end E4 end
+ E4 end

benchmarks.run_tiered.windows.arm64.checked.mch

-24 (-1.10%) : 44418.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)

@@ -30,8 +30,8 @@ ;* V19 loc15 [V19 ] ( 0, 0 ) ubyte -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[int]> ; V21 loc17 [V21,T28] ( 3, 96 ) int -> [fp-0x9C] spill-single-def ptr
-; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x13 -; V23 loc19 [V23,T01] ( 7,1344 ) int -> x1
+; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x14 +; V23 loc19 [V23,T01] ( 7,1344 ) int -> x13
; V24 loc20 [V24,T02] ( 3, 832 ) int -> x0 ;# V25 OutArgs [V25 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V26 tmp1 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> @@ -40,15 +40,15 @@ ; V29 tmp4 [V29,T12] ( 4, 256 ) int -> x7 "impSpillLclRefs" ; V30 tmp5 [V30,T13] ( 4, 256 ) int -> x1 "impSpillLclRefs" ; V31 tmp6 [V31,T15] ( 2, 256 ) int -> x10 "dup spill"
-; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x0 "impSpillLclRefs"
+; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x1 "impSpillLclRefs"
; V33 tmp8 [V33,T49] ( 2, 32 ) int -> [fp-0xA0] spill-single-def ptr "impAppendStmt" ;* V34 tmp9 [V34 ] ( 0, 0 ) int -> zero-ref ptr ; V35 tmp10 [V35,T37] ( 4, 64 ) int -> x0 "impSpillLclRefs" ; V36 tmp11 [V36,T38] ( 4, 64 ) int -> x13 "impSpillLclRefs" ; V37 tmp12 [V37,T34] ( 5, 80 ) int -> x13 "dup spill" ; V38 tmp13 [V38,T39] ( 4, 64 ) int -> x13 "impSpillLclRefs"
-; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x1 "impSpillLclRefs" -; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x1 "impSpillLclRefs"
+; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x0 "impSpillLclRefs" +; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x0 "impSpillLclRefs"
; V41 tmp16 [V41,T30] ( 3, 96 ) int -> x1 ; V42 tmp17 [V42,T52] ( 4, 16 ) int -> x25 "impSpillLclRefs" ;* V43 tmp18 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]> @@ -310,10 +310,10 @@ G_M9731_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x23, [fp, #-0x78] // [V01 arg1] ; byrRegs +[x23] ldr w24, [fp, #-0x70] // [V01 arg1+0x08]
- cbz w22, G_M9731_IG68
+ cbz w22, G_M9731_IG69
;; size=20 bbWeight=1 PerfScore 9.00 G_M9731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref, isz
- cbz w24, G_M9731_IG68
+ cbz w24, G_M9731_IG69
ldrh w0, [x21] cmp w0, #42 bne G_M9731_IG08 @@ -393,7 +393,7 @@ G_M9731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2A00000 {x21 G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 x25}, byref, isz ; byrRegs -[x21] cmp w24, w26
- blt G_M9731_IG68
+ blt G_M9731_IG69
mov x0, x23 ; byrRegs +[x0] sxtw w1, w24 @@ -410,7 +410,7 @@ G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 blr x5 ; byrRegs -[x0 x2 x23 x25] ; gcr arg pop 0
- b G_M9731_IG63
+ b G_M9731_IG64
;; size=60 bbWeight=0.50 PerfScore 5.75 G_M9731_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref ; byrRegs +[x21 x23] @@ -437,7 +437,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 add w1, w25, #1 sxtw w27, w1 cmp w25, w24
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldrh w1, [x23, w25, UXTW #2] sxtw w25, w1 b G_M9731_IG12 @@ -445,7 +445,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 G_M9731_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 x23 x28}, byref, isz sub w6, w26, #1 cmp w6, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w1, [x3, w6, UXTW #2] cmp w1, w5 beq G_M9731_IG21 @@ -469,7 +469,7 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 str w0, [fp, #-0x80] // [V06 loc2] str w4, [fp, #-0xC8] // [V182 tmp157] cmp w1, w4
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181} ldr w1, [x3, w1, UXTW #2] @@ -477,14 +477,14 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 add w1, w1, w1, LSR #31 asr w10, w1, #1 cmp w10, w22
- bge G_M9731_IG51
+ bge G_M9731_IG52
;; size=48 bbWeight=16 PerfScore 192.00 G_M9731_IG14: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref, isz ; byrRegs -[x3] lsl w11, w10, #1 str w11, [fp, #-0x94] // [V16 loc12] cmp w10, w22
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
str w10, [fp, #-0x7C] // [V05 loc1] ldrh w13, [x21, w10, UXTW #2] str w13, [fp, #-0x8C] // [V11 loc7] @@ -513,7 +513,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xCC] // [V244 tmp219] ldr w5, [fp, #-0xC4] // [V180 tmp155] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -548,7 +548,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xD0] // [V248 tmp223] ldr w5, [fp, #-0xC8] // [V182 tmp157] cmp w5, w4
- bhi G_M9731_IG71
+ bhi G_M9731_IG72
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -579,29 +579,29 @@ G_M9731_IG16: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V18 ; GC ptr vars -{V247} ldr w13, [fp, #-0x8C] // [V11 loc7] cmp w13, #42
- beq G_M9731_IG28
+ beq G_M9731_IG30
;; size=12 bbWeight=64 PerfScore 224.00 G_M9731_IG17: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz tst w19, #255 beq G_M9731_IG26 cmp w13, #60 bne G_M9731_IG26
- mov w13, wzr
+ mov w14, wzr
cbnz w6, G_M9731_IG24 cmp w25, #46 bne G_M9731_IG23
- sxtw w1, w27 - cmp w1, w24
+ sxtw w13, w27 + cmp w13, w24
bge G_M9731_IG23 ;; size=44 bbWeight=32 PerfScore 256.00 G_M9731_IG18: ; bbWeight=256, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- cmp w1, w24 - bhs G_M9731_IG70 - ldrh w0, [x23, w1, UXTW #2] - cmp w0, #46
+ cmp w13, w24 + bhs G_M9731_IG71 + ldrh w1, [x23, w13, UXTW #2] + cmp w1, #46
beq G_M9731_IG22
- add w1, w1, #1 - cmp w1, w24
+ add w13, w13, #1 + cmp w13, w24
blt G_M9731_IG18 ;; size=32 bbWeight=256 PerfScore 2048.00 G_M9731_IG19: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref @@ -612,18 +612,18 @@ G_M9731_IG20: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, g ; GC ptr vars -{V181} str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181}
- b G_M9731_IG61
+ b G_M9731_IG62
;; size=8 bbWeight=2 PerfScore 4.00 G_M9731_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref ; byrRegs -[x21 x23 x28] ; GC ptr vars -{V181} ldr w5, [fp, #-0x90] // [V15 loc11]
- b G_M9731_IG62
+ b G_M9731_IG63
;; size=8 bbWeight=1 PerfScore 3.00 G_M9731_IG22: ; bbWeight=32, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref ; byrRegs -[x3] +[x21 x23 x28] ; GC ptr vars +{V09 V181}
- mov w13, #1
+ mov w14, #1
;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref cmp w25, #46 @@ -634,174 +634,170 @@ G_M9731_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x mov w1, #1 ;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- orr w1, w1, w13 - cbz w1, G_M9731_IG29 - b G_M9731_IG28
+ orr w1, w1, w14 + cbz w1, G_M9731_IG31 + b G_M9731_IG30
;; size=12 bbWeight=32 PerfScore 80.00 G_M9731_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz ldr w11, [fp, #-0x94] // [V16 loc12] add w11, w11, #2 tst w19, #255
- beq G_M9731_IG37
+ beq G_M9731_IG38
cmp w13, #62
- bne G_M9731_IG27 - cbnz w6, G_M9731_IG30
+ bne G_M9731_IG28 + cbnz w6, G_M9731_IG32
cmp w25, #46
- beq G_M9731_IG30 - b G_M9731_IG34 - ;; size=40 bbWeight=32 PerfScore 288.00 -G_M9731_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz - cmp w13, #34 - bne G_M9731_IG37 - cbnz w6, G_M9731_IG30 - b G_M9731_IG35 - ;; size=16 bbWeight=32 PerfScore 112.00
+ beq G_M9731_IG32 + ;; size=36 bbWeight=32 PerfScore 256.00 +G_M9731_IG27: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG36 + ;; size=4 bbWeight=8 PerfScore 8.00
G_M9731_IG28: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+ cmp w13, #34 + bne G_M9731_IG38 + cbnz w6, G_M9731_IG32 + ;; size=12 bbWeight=32 PerfScore 80.00 +G_M9731_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG37 + ;; size=4 bbWeight=8 PerfScore 8.00 +G_M9731_IG30: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] add w13, w7, #1 cmp w7, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] str w11, [x28, w7, UXTW #2] str w13, [fp, #-0x84] // [V07 loc3] str w11, [fp, #-0x94] // [V16 loc12] ;; size=32 bbWeight=32 PerfScore 288.00
-G_M9731_IG29: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+G_M9731_IG31: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] sxtw w1, w7 add w7, w1, #1 cmp w1, w2
- bhs G_M9731_IG70
+ bhs G_M9731_IG71
ldr w11, [fp, #-0x94] // [V16 loc12] ...

-4 (-0.41%) : 38947.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)

@@ -69,7 +69,7 @@ ; V58 cse0 [V58,T16] ( 3, 12 ) long -> x8 "CSE - aggressive" ; V59 cse1 [V59,T09] ( 2, 16 ) int -> x3 "CSE - aggressive" ; V60 cse2 [V60,T17] ( 3, 12 ) long -> x1 "CSE - aggressive"
-; V61 cse3 [V61,T19] ( 3, 10 ) long -> x3 "CSE - aggressive"
+; V61 cse3 [V61,T19] ( 3, 10 ) long -> x0 "CSE - aggressive"
; V62 rat0 [V62,T30] ( 3, 96 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 168 @@ -289,23 +289,22 @@ G_M52237_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M52237_IG18: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x20] ldr x1, [x20]
- movz x3, #0xD1FFAB1E - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - cmp x1, x3
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + cmp x1, x0
beq G_M52237_IG20 ;; size=24 bbWeight=4 PerfScore 24.00 G_M52237_IG19: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref mov x1, x20 ; gcrRegs +[x1]
- mov x0, x3
bl CORINFO_HELP_UNBOX ; gcrRegs -[x1] ; gcr arg pop 0
- ;; size=12 bbWeight=2 PerfScore 4.00
+ ;; size=8 bbWeight=2 PerfScore 3.00
G_M52237_IG20: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ldrb w1, [x20, #0x08] - str w1, [fp, #0x7C] // [V09 loc5]
+ ldrb w0, [x20, #0x08] + str w0, [fp, #0x7C] // [V09 loc5]
;; size=8 bbWeight=4 PerfScore 16.00 G_M52237_IG21: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x19-x20] @@ -476,7 +475,7 @@ RWD00 dq 0070004F00730049h, 006E006F00690074h RWD16 dq 006900740070004Fh, 006C0061006E006Fh
-; Total bytes of code 976, prolog size 60, PerfScore 1437.50, instruction count 244, allocated bytes for code 976 (MethodHash=9e6933f2) for method Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
+; Total bytes of code 972, prolog size 60, PerfScore 1436.50, instruction count 243, allocated bytes for code 972 (MethodHash=9e6933f2) for method Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
; ============================================================ Unwind Info: @@ -487,7 +486,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 198 (0x000c6) Actual length = 792 (0x000318)
+ Function Length : 197 (0x000c5) Actual length = 788 (0x000314)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-0.32%) : 48404.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)

@@ -472,16 +472,15 @@ G_M40395_IG34: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 ldr x2, [x0, #0x08] ; gcrRegs +[x2] cbnz x2, G_M40395_IG10
- ldr x0, [fp, #0x10] // [V00 this]
ldr x2, [x0, #0x10] cbz x2, G_M40395_IG10 add w21, w1, #1 b G_M40395_IG11
- ;; size=28 bbWeight=0.50 PerfScore 5.75
+ ;; size=24 bbWeight=0.50 PerfScore 4.75
G_M40395_IG35: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x2]
- ldrb w1, [fp, #0x18] // [V03 loc2] - cbz w1, G_M40395_IG37
+ ldrb w0, [fp, #0x18] // [V03 loc2] + cbz w0, G_M40395_IG37
;; size=8 bbWeight=1 PerfScore 3.00 G_M40395_IG36: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [fp, #0x10] // [V00 this] @@ -546,7 +545,7 @@ G_M40395_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1240, prolog size 40, PerfScore 544.25, instruction count 310, allocated bytes for code 1240 (MethodHash=a3f86234) for method System.Threading.TimerQueue:FireNextTimers():this (Tier1)
+; Total bytes of code 1236, prolog size 40, PerfScore 543.25, instruction count 309, allocated bytes for code 1236 (MethodHash=a3f86234) for method System.Threading.TimerQueue:FireNextTimers():this (Tier1)
; ============================================================ Unwind Info: @@ -557,7 +556,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 291 (0x00123) Actual length = 1164 (0x00048c)
+ Function Length : 290 (0x00122) Actual length = 1160 (0x000488)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+1.16%) : 42922.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)

@@ -28,9 +28,9 @@ ;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref ;* V18 tmp8 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]> ;* V19 tmp9 [V19 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[ubyte]>
-; V20 tmp10 [V20,T43] ( 2, 0 ) ref -> x0 class-hnd "impAppendStmt" <System.Net.Security.SafeFreeCredentials> -; V21 tmp11 [V21,T44] ( 2, 0 ) ref -> x1 class-hnd exact "impAppendStmt" <System.Net.Security.SafeDeleteSslContext> -; V22 tmp12 [V22,T45] ( 2, 0 ) ref -> x2 class-hnd exact "impAppendStmt" <System.Net.Security.SslAuthenticationOptions>
+; V20 tmp10 [V20,T43] ( 2, 0 ) ref -> x1 class-hnd "impAppendStmt" <System.Net.Security.SafeFreeCredentials> +; V21 tmp11 [V21,T44] ( 2, 0 ) ref -> x2 class-hnd exact "impAppendStmt" <System.Net.Security.SafeDeleteSslContext> +; V22 tmp12 [V22,T45] ( 2, 0 ) ref -> x5 class-hnd exact "impAppendStmt" <System.Net.Security.SslAuthenticationOptions>
;* V23 tmp13 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> ;* V24 tmp14 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V25 tmp15 [V25 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" @@ -251,13 +251,13 @@ G_M15651_IG14: ; bbWeight=1, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b ;; size=8 bbWeight=1 PerfScore 1.50 G_M15651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x22]
- ldr x22, [fp, #0x28] // [V00 this] - ; gcrRegs +[x22] - ldp x0, x1, [x22, #0x48] - ; gcrRegs +[x0-x1] - ldr x2, [x22, #0x38] - ; gcrRegs +[x2] - ldr x3, [x22, #0xB8]
+ ldr x0, [fp, #0x28] // [V00 this] + ; gcrRegs +[x0] + ldp x1, x2, [x0, #0x48] + ; gcrRegs +[x1-x2] + ldr x5, [x0, #0x38] + ; gcrRegs +[x5] + ldr x3, [x0, #0xB8]
; gcrRegs +[x3] cbnz x3, G_M15651_IG16 mov x3, xzr @@ -266,21 +266,26 @@ G_M15651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov w4, wzr b G_M15651_IG17 ;; size=32 bbWeight=0 PerfScore 0.00
-G_M15651_IG16: ; bbWeight=0, gcrefRegs=40000F {x0 x1 x2 x3 x22}, byrefRegs=0000 {}, byref - ; gcrRegs +[x3]
+G_M15651_IG16: ; bbWeight=0, gcrefRegs=002E {x1 x2 x3 x5}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] +[x3]
; byrRegs -[x3] add x4, x3, #16 ; byrRegs +[x4] ldr w3, [x3, #0x08] ; gcrRegs -[x3]
- sxtw w5, w3
+ sxtw w6, w3
mov x3, x4 ; byrRegs +[x3]
- mov w4, w5
+ mov w4, w6
; byrRegs -[x4] ;; size=20 bbWeight=0 PerfScore 0.00
-G_M15651_IG17: ; bbWeight=0, gcrefRegs=400007 {x0 x1 x2 x22}, byrefRegs=0008 {x3}, byref
+G_M15651_IG17: ; bbWeight=0, gcrefRegs=0026 {x1 x2 x5}, byrefRegs=0008 {x3}, byref + mov x0, x1 + ; gcrRegs +[x0] + mov x1, x2 + mov x2, x5
movz x5, #0xD1FFAB1E // code for System.Net.Security.SslStreamPal:SelectApplicationProtocol(System.Net.Security.SafeFreeCredentials,System.Net.Security.SafeDeleteSslContext,System.Net.Security.SslAuthenticationOptions,System.ReadOnlySpan`1[ubyte]):System.Net.SecurityStatusPal
+ ; gcrRegs -[x5]
movk x5, #0xD1FFAB1E LSL #16 movk x5, #0xD1FFAB1E LSL #32 ldr x5, [x5] @@ -290,9 +295,9 @@ G_M15651_IG17: ; bbWeight=0, gcrefRegs=400007 {x0 x1 x2 x22}, byrefRegs=0 ; gcr arg pop 0 str x0, [fp, #0x48] // [V06 loc3+0x10] str w1, [fp, #0x50] // [V06 loc3+0x18]
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=40 bbWeight=0 PerfScore 0.00
G_M15651_IG18: ; bbWeight=4, gcrefRegs=0010 {x4}, byrefRegs=80000 {x19}, byref, isz
- ; gcrRegs -[x0 x22] +[x4]
+ ; gcrRegs -[x0] +[x4]
; byrRegs +[x19] ldr x0, [x4, #0x08] ; gcrRegs +[x0] @@ -547,7 +552,7 @@ G_M15651_IG29: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ret lr ;; size=20 bbWeight=1 PerfScore 13.00
-; Total bytes of code 1036, prolog size 56, PerfScore 998.00, instruction count 259, allocated bytes for code 1036 (MethodHash=4b4ec2dc) for method System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
+; Total bytes of code 1048, prolog size 56, PerfScore 998.00, instruction count 262, allocated bytes for code 1048 (MethodHash=4b4ec2dc) for method System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
; ============================================================ Unwind Info: @@ -558,7 +563,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 200 (0x000c8) Actual length = 800 (0x000320)
+ Function Length : 203 (0x000cb) Actual length = 812 (0x00032c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.07%) : 44142.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)

@@ -10,307 +10,307 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <BenchmarksGame.FannkuchRedux_2> ; V01 arg1 [V01,T15] ( 13, 66 ) int -> x1 single-def
-; V02 loc0 [V02,T10] ( 17, 96.05) ref -> x0 class-hnd exact <int[]>
+; V02 loc0 [V02,T10] ( 17, 96.05) ref -> x2 class-hnd exact <int[]>
; V03 loc1 [V03,T34] ( 5, 3.05) ref -> x7 class-hnd exact <int[]>
-; V04 loc2 [V04,T25] ( 6, 20.73) ref -> x5 class-hnd exact <int[]> -; V05 loc3 [V05,T24] ( 4, 21 ) int -> x4
+; V04 loc2 [V04,T25] ( 6, 20.73) ref -> x6 class-hnd exact <int[]> +; V05 loc3 [V05,T24] ( 4, 21 ) int -> x5
; V06 loc4 [V06,T38] ( 3, 2.50) int -> x20 ; V07 loc5 [V07,T35] ( 3, 3 ) int -> x19
-; V08 loc6 [V08,T16] ( 2, 64 ) int -> x2
+; V08 loc6 [V08,T16] ( 2, 64 ) int -> x3
;* V09 loc7 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 loc8 [V10,T21] ( 9, 38 ) int -> x3 -; V11 loc9 [V11,T31] ( 6, 11.50) int -> x6 -; V12 loc10 [V12,T27] ( 13, 18.58) int -> x6 -; V13 loc11 [V13,T26] ( 3, 20 ) int -> x11 -; V14 loc12 [V14,T11] ( 6, 82 ) int -> x14 -; V15 loc13 [V15,T12] ( 6, 82 ) int -> x3 -; V16 loc14 [V16,T22] ( 2, 32 ) int -> x15 -; V17 loc15 [V17,T33] ( 2, 8 ) int -> x4 -; V18 loc16 [V18,T14] ( 6, 80 ) int -> x6 -; V19 loc17 [V19,T00] ( 23,376.88) int -> x13 -; V20 loc18 [V20,T07] ( 5,132 ) int -> x6 -; V21 loc19 [V21,T01] ( 16,289.27) int -> x3
+; V10 loc8 [V10,T21] ( 9, 38 ) int -> x4 +; V11 loc9 [V11,T31] ( 6, 11.50) int -> x0 +; V12 loc10 [V12,T27] ( 13, 18.58) int -> x0 +; V13 loc11 [V13,T26] ( 3, 20 ) int -> x8 +; V14 loc12 [V14,T11] ( 6, 82 ) int -> x9 +; V15 loc13 [V15,T12] ( 6, 82 ) int -> x4 +; V16 loc14 [V16,T22] ( 2, 32 ) int -> x13 +; V17 loc15 [V17,T33] ( 2, 8 ) int -> x5 +; V18 loc16 [V18,T14] ( 6, 80 ) int -> x25 +; V19 loc17 [V19,T00] ( 23,376.88) int -> x26 +; V20 loc18 [V20,T07] ( 5,132 ) int -> x4 +; V21 loc19 [V21,T01] ( 16,289.27) int -> x0
;# V22 OutArgs [V22 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V23 tmp1 [V23,T23] ( 2, 32 ) int -> x4 "Strict ordering of exceptions for Array store" -; V24 tmp2 [V24,T02] ( 6,256.00) int -> x12 "Strict ordering of exceptions for Array store"
+; V23 tmp1 [V23,T23] ( 2, 32 ) int -> x5 "Strict ordering of exceptions for Array store" +; V24 tmp2 [V24,T02] ( 6,256.00) int -> x8 "Strict ordering of exceptions for Array store"
; V25 tmp3 [V25,T32] ( 4, 8 ) ref -> x0 class-hnd exact single-def "dup spill" <int[]>
-; V26 tmp4 [V26,T29] ( 2, 16 ) int -> x11 "Strict ordering of exceptions for Array store" -; V27 tmp5 [V27,T28] ( 4, 16 ) int -> x14 "Strict ordering of exceptions for Array store" -; V28 tmp6 [V28,T17] ( 2, 64 ) int -> x21 "Strict ordering of exceptions for Array store" -; V29 cse0 [V29,T05] ( 3,158.40) long -> x3 "CSE - aggressive" -; V30 cse1 [V30,T18] ( 3, 48 ) long -> x12 "CSE - aggressive" -; V31 cse2 [V31,T19] ( 3, 48 ) long -> xip0 "CSE - aggressive" -; V32 cse3 [V32,T30] ( 3, 11.88) long -> x11 "CSE - moderate" -; V33 cse4 [V33,T40] ( 3, 0.12) long -> x11 "CSE - conservative" -; V34 cse5 [V34,T06] ( 17,139.27) int -> x11 multi-def "CSE - aggressive" -; V35 cse6 [V35,T04] ( 11,164.01) byref -> x9 hoist "CSE - aggressive" -; V36 cse7 [V36,T03] ( 4,250.91) int -> x14 "CSE - aggressive" -; V37 cse8 [V37,T09] ( 6,100.01) byref -> x8 hoist "CSE - aggressive" -; V38 cse9 [V38,T13] ( 9, 80.01) byref -> x10 hoist "CSE - aggressive" -; V39 cse10 [V39,T20] ( 8, 43.08) int -> x13 hoist multi-def "CSE - aggressive" -; V40 cse11 [V40,T08] ( 4,126.72) int -> x13 "CSE - aggressive" -; V41 cse12 [V41,T36] ( 4, 2.56) int -> x14 "CSE - moderate" -; V42 cse13 [V42,T37] ( 4, 2.53) int -> x14 "CSE - moderate" -; V43 cse14 [V43,T39] ( 4, 1.28) int -> x13 "CSE - moderate"
+; V26 tmp4 [V26,T29] ( 2, 16 ) int -> x4 "Strict ordering of exceptions for Array store" +; V27 tmp5 [V27,T28] ( 4, 16 ) int -> x9 "Strict ordering of exceptions for Array store" +; V28 tmp6 [V28,T17] ( 2, 64 ) int -> x12 "Strict ordering of exceptions for Array store" +; V29 cse0 [V29,T05] ( 3,158.40) long -> x0 "CSE - aggressive" +; V30 cse1 [V30,T18] ( 3, 48 ) long -> x11 "CSE - aggressive" +; V31 cse2 [V31,T19] ( 3, 48 ) long -> x14 "CSE - aggressive" +; V32 cse3 [V32,T30] ( 3, 11.88) long -> x8 "CSE - moderate" +; V33 cse4 [V33,T40] ( 3, 0.12) long -> x8 "CSE - conservative" +; V34 cse5 [V34,T06] ( 17,139.27) int -> x24 multi-def "CSE - aggressive" +; V35 cse6 [V35,T04] ( 11,164.01) byref -> x22 hoist "CSE - aggressive" +; V36 cse7 [V36,T03] ( 4,250.91) int -> x4 "CSE - aggressive" +; V37 cse8 [V37,T09] ( 6,100.01) byref -> x21 hoist "CSE - aggressive" +; V38 cse9 [V38,T13] ( 9, 80.01) byref -> x23 hoist "CSE - aggressive" +; V39 cse10 [V39,T20] ( 8, 43.08) int -> registers hoist multi-def "CSE - aggressive" +; V40 cse11 [V40,T08] ( 4,126.72) int -> x26 "CSE - aggressive" +; V41 cse12 [V41,T36] ( 4, 2.56) int -> x4 "CSE - moderate" +; V42 cse13 [V42,T37] ( 4, 2.53) int -> x4 "CSE - moderate" +; V43 cse14 [V43,T39] ( 4, 1.28) int -> x26 "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M61974_IG01: ; bbWeight=0.01, 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, #-0x50]! + stp x19, x20, [sp, #0x10] + stp x21, x22, [sp, #0x20] + stp x23, x24, [sp, #0x30] + stp x25, x26, [sp, #0x40]
mov fp, sp
- ldr w1, [fp, #0xD4] - ldp x7, x0, [fp, #0xC0] - ; gcrRegs +[x0 x7] - ldr x5, [fp, #0xB8] - ; gcrRegs +[x5] - ldp w20, w4, [fp, #0xB0] - ldp w2, w19, [fp, #0xA8] - ldr w3, [fp, #0xA0] - ldr w6, [fp, #0x98] - ;; size=44 bbWeight=0.01 PerfScore 0.18 -G_M61974_IG02: ; bbWeight=0.01, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0000 {}, byref - add x8, x5, #16 - ; byrRegs +[x8] - add x9, x0, #16 - ; byrRegs +[x9] - add x10, x7, #16 - ; byrRegs +[x10] - b G_M61974_IG23
+ ldr w1, [fp, #0xF4] + ldp x7, x2, [fp, #0xE0] + ; gcrRegs +[x2 x7] + ldr x6, [fp, #0xD8] + ; gcrRegs +[x6] + ldp w20, w5, [fp, #0xD0] + ldp w3, w19, [fp, #0xC8] + ldr w4, [fp, #0xC0] + ldr w0, [fp, #0xB8] + ;; size=52 bbWeight=0.01 PerfScore 0.20 +G_M61974_IG02: ; bbWeight=0.01, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=0000 {}, byref + add x21, x6, #16 + ; byrRegs +[x21] + add x22, x2, #16 + ; byrRegs +[x22] + add x23, x7, #16 + ; byrRegs +[x23] + b G_M61974_IG22
;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M61974_IG03: ; bbWeight=2, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w3, [x0, #0x10] - cbnz w3, G_M61974_IG22
+G_M61974_IG03: ; bbWeight=2, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w4, [x2, #0x10] + cbnz w4, G_M61974_IG21
;; size=8 bbWeight=2 PerfScore 8.00
-G_M61974_IG04: ; bbWeight=8, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - cmp w4, #1
+G_M61974_IG04: ; bbWeight=8, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + cmp w5, #1
bne G_M61974_IG06 ;; size=8 bbWeight=8 PerfScore 12.00
-G_M61974_IG05: ; bbWeight=4, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w11, [x0, #0x08] - cmp w11, #1 - bls G_M61974_IG37 - ldp w11, w4, [x0, #0x10] - stp w4, w11, [x0, #0x10] - movn w4, #0
+G_M61974_IG05: ; bbWeight=4, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w24, [x2, #0x08] + cmp w24, #1 + bls G_M61974_IG36 + ldp w4, w5, [x2, #0x10] + stp w5, w4, [x2, #0x10] + movn w5, #0
b G_M61974_IG03 ;; size=28 bbWeight=4 PerfScore 40.00
-G_M61974_IG06: ; bbWeight=8, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ldr w11, [x0, #0x08] - cmp w11, #1 - bls G_M61974_IG37 - ldr w6, [x0, #0x14] - cmp w11, #2 - bls G_M61974_IG37 - ldr w4, [x0, #0x18] - stp w4, w6, [x0, #0x14] - mov w4, #1 - mov w13, #2
+G_M61974_IG06: ; bbWeight=8, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ldr w24, [x2, #0x08] + cmp w24, #1 + bls G_M61974_IG36 + ldr w25, [x2, #0x14] + cmp w24, #2 + bls G_M61974_IG36 + ldr w5, [x2, #0x18] + stp w5, w25, [x2, #0x14] + mov w5, #1 + mov w26, #2
cmp w1, #2 ble G_M61974_IG03
- cbz x5, G_M61974_IG15
+ cbz x6, G_M61974_IG15
tbnz w1, #31, G_M61974_IG15
- ldr w6, [x5, #0x08] - cmp w6, w1
+ ldr w4, [x6, #0x08] + cmp w4, w1
blt G_M61974_IG15 ;; size=68 bbWeight=8 PerfScore 176.00
-G_M61974_IG07: ; bbWeight=63.36, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - ubfiz x3, x13, #2, #32 - ldr w6, [x8, x3] - cbnz w6, G_M61974_IG21 - cmp w13, w2 - beq G_M61974_IG35
+G_M61974_IG07: ; bbWeight=63.36, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + ubfiz x0, x26, #2, #32 + ldr w4, [x21, x0] + cbnz w4, G_M61974_IG20 + cmp w26, w3 + beq G_M61974_IG34
;; size=20 bbWeight=63.36 PerfScore 411.84
-G_M61974_IG08: ; bbWeight=31.68, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - str w13, [x8, x3] - ldr w6, [x0, #0x10] - mov w3, wzr - tbnz w13, #31, G_M61974_IG13
+G_M61974_IG08: ; bbWeight=31.68, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + str w26, [x21, x0] + ldr w25, [x2, #0x10] + mov w0, wzr + tbnz w26, #31, G_M61974_IG13
;; size=16 bbWeight=31.68 PerfScore 174.24
-G_M61974_IG09: ; bbWeight=7.92, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - cmp w11, w13
+G_M61974_IG09: ; bbWeight=7.92, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + cmp w24, w26
ble G_M61974_IG12 ;; size=8 bbWeight=7.92 PerfScore 11.88
-G_M61974_IG10: ; bbWeight=62.73, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - add w14, w3, #1 - cmp w14, w11 - bhs G_M61974_IG37 - ldr w12, [x9, w14, UXTW #2] - str w12, [x9, w3, UXTW #2] - sxtw w3, w14 - cmp w3, w13
+G_M61974_IG10: ; bbWeight=62.73, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref, isz + add w4, w0, #1 + cmp w4, w24 + bhs G_M61974_IG36 + ldr w8, [x22, w4, UXTW #2] + str w8, [x22, w0, UXTW #2] + sxtw w0, w4 + cmp w0, w26
ble G_M61974_IG10 ;; size=32 bbWeight=62.73 PerfScore 501.81
-G_M61974_IG11: ; bbWeight=7.92, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref
+G_M61974_IG11: ; bbWeight=31.68, gcrefRegs=00C4 {x2 x6 x7}, byrefRegs=E00000 {x21 x22 x23}, byref
b G_M61974_IG13
- ;; size=4 bbWeight=7.92 PerfScore 7.92 -G_M61974_IG12: ; bbWeight=0.63, gcrefRegs=00A1 {x0 x5 x7}, byrefRegs=0700 {x8 x9 x10}, byref, isz - add w14, w3, #1 - cmp w14, w11
...

+4 (+2.70%) : 46697.dasm - System.Collections.Generic.GenericArraySortHelper1[System.Collections.BigStruct]:InsertionSort(System.Span1[System.Collections.BigStruct]) (Tier1)

@@ -22,7 +22,7 @@ ;* V11 tmp7 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V12 tmp8 [V12 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] "Inlining Arg" <System.Collections.BigStruct> ;* V13 tmp9 [V13,T02] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V14 tmp10 [V14,T00] ( 2, 64 ) int -> x6 "Inlining Arg"
+; V14 tmp10 [V14,T00] ( 3, 96 ) int -> x6 "Inlining Arg"
;* V15 tmp11 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[System.Collections.BigStruct]> ; V16 tmp12 [V16,T03] ( 6, 53 ) byref -> x0 single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V17 tmp13 [V17,T13] ( 2, 2 ) int -> x1 single-def "field V00._length (fldOffset=0x8)" P-INDEP @@ -36,7 +36,7 @@ ;* V25 tmp21 [V25 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V26 tmp22 [V26 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP ;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-; V28 tmp24 [V28,T04] ( 3, 36 ) int -> x5 "V02.[012..016)"
+; V28 tmp24 [V28,T04] ( 4, 52 ) int -> x5 "V02.[012..016)"
;* V29 tmp25 [V29 ] ( 0, 0 ) int -> zero-ref "V12.[012..016)" ; V30 tmp26 [V30,T07] ( 3, 24 ) byref -> x4 "Spilling address for field-by-field copy" ; V31 tmp27 [V31,T08] ( 3, 96 ) byref -> x2 "Spilling address for field-by-field copy" @@ -91,7 +91,8 @@ G_M17128_IG06: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byr ; byrRegs -[x6] cmp w5, w6 blt G_M17128_IG04
- ;; size=20 bbWeight=16 PerfScore 96.00
+ cmp w5, w6 + ;; size=24 bbWeight=16 PerfScore 104.00
G_M17128_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz add w2, w2, #1 sbfiz x2, x2, #5, #32 @@ -111,7 +112,7 @@ G_M17128_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 148, prolog size 8, PerfScore 358.00, instruction count 37, allocated bytes for code 148 (MethodHash=3829bd17) for method System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
+; Total bytes of code 152, prolog size 8, PerfScore 366.00, instruction count 38, allocated bytes for code 152 (MethodHash=3829bd17) for method System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
; ============================================================ Unwind Info: @@ -122,7 +123,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 37 (0x00025) Actual length = 148 (0x000094)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.windows.arm64.checked.mch

-16 (-7.02%) : 253655.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.51
+ 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.00, 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)

-16 (-6.90%) : 253653.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)

@@ -11,10 +11,10 @@ ; ; V00 arg0 [V00,T03] ( 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 -> x8 ; V04 loc2 [V04,T12] ( 2,199.00) int -> x13
-; V05 loc3 [V05,T20] ( 8, 0.54) int -> x4
+; V05 loc3 [V05,T20] ( 5, 0.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" @@ -96,13 +96,12 @@ G_M3571_IG07: ; bbWeight=99.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b G_M3571_IG08: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w2, w2, #1 cmp w2, w3
- bgt G_M3571_IG11 - b G_M3571_IG04 - ;; size=16 bbWeight=0.50 PerfScore 1.50
+ ble G_M3571_IG04 + ;; size=12 bbWeight=0.50 PerfScore 1.00
G_M3571_IG09: ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz add w4, w4, #1 cmp w4, w3
- bgt G_M3571_IG12
+ bgt G_M3571_IG11
b G_M3571_IG03 ;; size=16 bbWeight=0.01 PerfScore 0.03 G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -110,20 +109,13 @@ G_M3571_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M3571_IG11: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x0] - add w4, w4, #1 - cmp w4, w3 - ble G_M3571_IG03 - ;; size=12 bbWeight=0 PerfScore 0.00 -G_M3571_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x0]
+G_M3571_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 232, prolog size 24, PerfScore 3200.28, instruction count 58, allocated bytes for code 232 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
+; Total bytes of code 216, prolog size 24, PerfScore 3199.78, instruction count 54, allocated bytes for code 216 (MethodHash=50acf20c) for method Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
; ============================================================ Unwind Info: @@ -134,7 +126,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-6.49%) : 253143.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalListInOrder(System.Canon[]):this (Tier1)

@@ -10,20 +10,20 @@ ; 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,T01] ( 9, 15.22) ref -> x19 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T01] ( 8, 17.65) 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.17) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T08] ( 5, 0.22) int -> x22
-; V05 loc3 [V05,T04] ( 6, 12.26) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T00] ( 9, 21.96) int -> x24 -; V07 loc5 [V07,T03] ( 5, 14.61) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T02] ( 6, 14.70) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T00] ( 6, 24.39) int -> x24 +; V07 loc5 [V07,T04] ( 5, 14.61) 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,T10] ( 2, 0 ) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> ;* V11 tmp3 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.RuntimeMethodInfo> ; V13 tmp5 [V13,T05] ( 2, 9.74) ref -> x1 class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
-; V14 cse0 [V14,T02] ( 3, 14.61) long -> x2 hoist multi-def "CSE - aggressive"
+; V14 cse0 [V14,T03] ( 3, 14.61) long -> x2 hoist multi-def "CSE - aggressive"
; ; Lcl frame size = 0 @@ -41,7 +41,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] @@ -60,37 +60,26 @@ G_M50755_IG04: ; bbWeight=0.96, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.96 PerfScore 4.78
-G_M50755_IG05: ; bbWeight=4.87, 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_IG10 - ;; size=16 bbWeight=4.87 PerfScore 36.52 -G_M50755_IG06: ; bbWeight=38.96, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG11 - ;; size=4 bbWeight=38.96 PerfScore 38.96 -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 w1, [x21, #0x08] cmp w1, #0
- ble G_M50755_IG13
+ ble G_M50755_IG12
;; size=16 bbWeight=0.04 PerfScore 0.22
-G_M50755_IG08: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
add x1, x21, #16 ; byrRegs +[x1] ldr x23, [x1, w22, UXTW #3] ; gcrRegs +[x23]
- cbz x23, G_M50755_IG13
+ cbz x23, G_M50755_IG12
mov w24, wzr ldr w1, [x19, #0x08] ; byrRegs -[x1] cmp w1, #0
- ble G_M50755_IG12
+ ble G_M50755_IG11
;; size=28 bbWeight=0.04 PerfScore 0.41
-G_M50755_IG09: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add x1, x19, #16 ; byrRegs +[x1] ldr x0, [x1, w24, UXTW #3] @@ -101,23 +90,31 @@ G_M50755_IG09: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byref movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- bne G_M50755_IG15
+ bne G_M50755_IG14
mov x1, x23 ; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] cmp x1, x2
- beq G_M50755_IG05 - ;; size=48 bbWeight=4.87 PerfScore 70.61 -G_M50755_IG10: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ bne G_M50755_IG08 + ldr x1, [x23, #0x50] + ldr x0, [x0, #0x50]
; gcrRegs -[x0]
+ cmp x1, x0 + beq G_M50755_IG10 + ;; size=64 bbWeight=4.87 PerfScore 107.13 +G_M50755_IG08: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1
- ldr w0, [x19, #0x08] - cmp w0, w24 - ble G_M50755_IG12 - b G_M50755_IG09 - ;; size=20 bbWeight=4.87 PerfScore 29.22 -G_M50755_IG11: ; bbWeight=2.43, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ ldr w1, [x19, #0x08] + cmp w1, w24 + bgt G_M50755_IG07 + ;; size=16 bbWeight=4.87 PerfScore 24.35 +G_M50755_IG09: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG11 + ;; size=4 bbWeight=0.04 PerfScore 0.04 +G_M50755_IG10: ; bbWeight=4.87, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x19 ; gcrRegs +[x0] @@ -126,14 +123,14 @@ G_M50755_IG11: ; bbWeight=2.43, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=2.43 PerfScore 6.09 -G_M50755_IG12: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=4.87 PerfScore 12.17 +G_M50755_IG11: ; bbWeight=0.04, 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.04 PerfScore 0.22
-G_M50755_IG13: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG12: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] add x14, x20, #8 ; byrRegs +[x14] @@ -143,14 +140,14 @@ G_M50755_IG13: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M50755_IG14: ; bbWeight=0.04, epilog, nogc, extend
+G_M50755_IG13: ; 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.22
-G_M50755_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50755_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x0 x19-x21 x23] mov x1, x23 ; gcrRegs +[x1] @@ -160,15 +157,11 @@ G_M50755_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=B80001 blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- cbnz w0, G_M50755_IG11 - add w24, w24, #1 - ldr w0, [x19, #0x08] - cmp w0, w24 - bgt G_M50755_IG09 - b G_M50755_IG12 - ;; size=44 bbWeight=0 PerfScore 0.00
+ cbnz w0, G_M50755_IG10 + b G_M50755_IG08 + ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 308, prolog size 28, PerfScore 198.74, instruction count 77, allocated bytes for code 308 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
+; Total bytes of code 288, prolog size 28, PerfScore 161.04, instruction count 72, allocated bytes for code 288 (MethodHash=8aec39bc) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
; ============================================================ Unwind Info: @@ -179,7 +172,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 77 (0x0004d) Actual length = 308 (0x000134)
+ 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)

+48 (+22.64%) : 541487.dasm - ILGEN0x1db2cfa3:Method0x8618f02c(ushort,double,short,byte):int (FullOpts)

@@ -7,10 +7,10 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 3, 2.50) ushort -> x20 single-def -; V01 arg1 [V01,T08] ( 3, 3 ) double -> [fp+0x18] single-def
+; V00 arg0 [V00,T01] ( 5, 3.50) ushort -> x20 single-def +; V01 arg1 [V01,T08] ( 5, 4.50) double -> [fp+0x18] single-def
;* V02 arg2 [V02 ] ( 0, 0 ) short -> zero-ref single-def
-; V03 arg3 [V03,T00] ( 3, 3 ) byte -> x19
+; V03 arg3 [V03,T00] ( 6, 6 ) byte -> x19
;* V04 loc0 [V04,T11] ( 0, 0 ) double -> zero-ref ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref @@ -32,14 +32,14 @@ ;* V22 tmp17 [V22 ] ( 0, 0 ) double -> zero-ref ;* V23 tmp18 [V23 ] ( 0, 0 ) float -> zero-ref ;* V24 tmp19 [V24 ] ( 0, 0 ) float -> zero-ref
-;* V25 tmp20 [V25,T04] ( 0, 0 ) int -> zero-ref
+; V25 tmp20 [V25,T04] ( 3, 2 ) int -> x0
;* V26 tmp21 [V26 ] ( 0, 0 ) float -> zero-ref ;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref ;* V28 tmp23 [V28 ] ( 0, 0 ) float -> zero-ref ;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref ;* V30 tmp25 [V30,T14] ( 0, 0 ) float -> zero-ref
-;* V31 tmp26 [V31,T05] ( 0, 0 ) int -> zero-ref -;* V32 tmp27 [V32,T06] ( 0, 0 ) int -> zero-ref
+; V31 tmp26 [V31,T05] ( 2, 2 ) int -> x0 +; V32 tmp27 [V32,T06] ( 2, 2 ) int -> x1
;* V33 tmp28 [V33 ] ( 0, 0 ) float -> zero-ref ;* V34 tmp29 [V34 ] ( 0, 0 ) float -> zero-ref ;* V35 tmp30 [V35 ] ( 0, 0 ) float -> zero-ref @@ -57,7 +57,7 @@ ;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref ;* V48 tmp43 [V48 ] ( 0, 0 ) float -> zero-ref ;* V49 tmp44 [V49 ] ( 0, 0 ) float -> zero-ref
-;* V50 tmp45 [V50,T07] ( 0, 0 ) int -> zero-ref
+; V50 tmp45 [V50,T07] ( 2, 1 ) int -> x0
;* V51 tmp46 [V51 ] ( 0, 0 ) double -> zero-ref ; V52 cse0 [V52,T02] ( 3, 3 ) long -> x21 "CSE - aggressive" ; V53 cse1 [V53,T03] ( 3, 3 ) long -> x22 "CSE - aggressive" @@ -107,42 +107,59 @@ G_M36522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, sxtb w0, w19 mov w1, #7 subs w0, w1, w0
- blo G_M36522_IG08
+ blo G_M36522_IG10
ldr d16, [@RWD00]
+ mov w0, #3
ldr d0, [fp, #0x18] // [V01 arg1] fcmp d0, d16
+ csel w19, w19, w0, ls + fcmp d0, d16
bhi G_M36522_IG04
- ;; size=128 bbWeight=1 PerfScore 23.00
+ ;; size=140 bbWeight=1 PerfScore 25.00
G_M36522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxth w0, w20
b G_M36522_IG05
- ;; size=4 bbWeight=0.50 PerfScore 0.50
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M36522_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov w0, #2 uxth w1, w20 cmp w1, #0
- beq G_M36522_IG07
+ beq G_M36522_IG09
udiv w0, w0, w1
- ;; size=20 bbWeight=0.50 PerfScore 6.75 -G_M36522_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxth w1, w20 + mneg w0, w0, w1 + add w0, w0, #2 + ;; size=32 bbWeight=0.50 PerfScore 8.25 +G_M36522_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + sxtb w1, w19 + cmp w0, w1 + bhi G_M36522_IG07 + ;; size=12 bbWeight=1 PerfScore 2.00 +G_M36522_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ldr d16, [@RWD08] + fcmp d0, d16 + ;; size=8 bbWeight=0.50 PerfScore 1.50 +G_M36522_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #3 ;; size=4 bbWeight=1 PerfScore 0.50
-G_M36522_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M36522_IG08: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20] ldp fp, lr, [sp], #0x40 ret lr ;; size=16 bbWeight=1 PerfScore 4.00
-G_M36522_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M36522_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_THROWDIVZERO ;; size=4 bbWeight=0 PerfScore 0.00
-G_M36522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M36522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_OVERFLOW brk_windows #0 ;; size=8 bbWeight=0 PerfScore 0.00 RWD00 dq B3E5A6C0C2213032h ; -1.07789489e-58
+RWD08 dq 0027489EA903E70Eh ; 6.47598595e-308
-; Total bytes of code 212, prolog size 16, PerfScore 40.25, instruction count 53, allocated bytes for code 212 (MethodHash=7dff7155) for method ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
+; Total bytes of code 260, prolog size 16, PerfScore 47.50, instruction count 65, allocated bytes for code 260 (MethodHash=7dff7155) for method ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
; ============================================================ Unwind Info: @@ -153,7 +170,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ Function Length : 65 (0x00041) Actual length = 260 (0x000104)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+46.15%) : 541509.dasm - ILGEN0x4601be46:Method0x9c86375f(ulong,ubyte):int (FullOpts)

@@ -8,19 +8,19 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 3, 3 ) long -> x0 ld-addr-op single-def
-;* V01 arg1 [V01,T01] ( 0, 0 ) ubyte -> zero-ref ld-addr-op single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> x1 ld-addr-op single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;* V04 loc2 [V04,T04] ( 0, 0 ) short -> zero-ref ;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>> ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref
+; V07 tmp1 [V07,T03] ( 2, 2 ) int -> x2
;* V08 tmp2 [V08,T05] ( 0, 0 ) double -> zero-ref ;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref ;* V10 tmp4 [V10 ] ( 0, 0 ) int -> zero-ref ;* V11 tmp5 [V11 ] ( 0, 0 ) long -> zero-ref ;* V12 tmp6 [V12 ] ( 0, 0 ) double -> zero-ref
-;* V13 cse0 [V13,T02] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
+; V13 cse0 [V13,T02] ( 3, 3 ) int -> x1 "CSE - aggressive"
; ; Lcl frame size = 0 @@ -29,22 +29,28 @@ G_M16983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M16983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - movk x1, #0xD1FFAB1E LSL #48 - movz x2, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32
- str x1, [x2]
+ movk x2, #0xD1FFAB1E LSL #48 + movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + str x2, [x3] + uxtb w1, w1 + mov w2, #4 + movn w3, #0 + cmp w1, #6 + csel w2, w2, w3, ge + cmp w2, w1
sxth w0, w0
- ;; size=36 bbWeight=1 PerfScore 5.00
+ ;; size=60 bbWeight=1 PerfScore 8.00
G_M16983_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 8.50, instruction count 13, allocated bytes for code 52 (MethodHash=0155bda8) for method ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=0155bda8) for method ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
; ============================================================ Unwind Info: @@ -55,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ 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)

+32 (+160.00%) : 541700.dasm - ILGEN0x2dda4eb5:Method0xa084659a():ushort (FullOpts)

@@ -9,8 +9,8 @@ ; ;* V00 loc0 [V00,T02] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1 [V02,T00] ( 0, 0 ) ref -> zero-ref single-def "arr expr" -;* V03 cse0 [V03,T01] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V02 tmp1 [V02,T00] ( 2, 4 ) ref -> x0 single-def "arr expr" +; V03 cse0 [V03,T01] ( 2, 2 ) long -> x0 "CSE - aggressive"
; ; Lcl frame size = 0 @@ -19,14 +19,24 @@ G_M5817_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov fp, sp ;; size=8 bbWeight=1 PerfScore 1.50 G_M5817_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + mov x1, #41 + bl CORINFO_HELP_NEWARR_1_VC + ; gcrRegs +[x0] + ldr d16, [x0, #0x48] + fmov d17, #7.0000 + fcmp d16, d17
mov w0, #100
- ;; size=4 bbWeight=1 PerfScore 0.50
+ ; gcrRegs -[x0] + ;; size=36 bbWeight=1 PerfScore 8.00
G_M5817_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=cc10e946) for method ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 11.50, instruction count 13, allocated bytes for code 52 (MethodHash=cc10e946) for method ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
; ============================================================ Unwind Info: @@ -37,7 +47,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 5 (0x00005) Actual length = 20 (0x000014)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- 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

-32 (-3.98%) : 123830.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)

@@ -32,26 +32,24 @@ ; V20 tmp13 [V20,T12] ( 2, 4 ) ref -> x0 single-def "argument with side effect" ; V21 PSPSym [V21,T17] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" ; V22 cse0 [V22,T15] ( 5, 3 ) byref -> x24 multi-def "CSE - aggressive"
-; V23 cse1 [V23,T04] ( 6, 9.04) long -> x27 hoist multi-def "CSE - aggressive" -; V24 cse2 [V24,T05] ( 6, 9.04) long -> x28 hoist multi-def "CSE - aggressive" -; V25 cse3 [V25,T01] ( 3, 11.88) long -> x0 "CSE - aggressive" -; V26 cse4 [V26,T18] ( 3, 0.12) long -> x14 "CSE - conservative" -; V27 cse5 [V27,T06] ( 6, 8 ) int -> x25 "CSE - aggressive"
+; V23 cse1 [V23,T04] ( 6, 9.04) long -> x2 hoist multi-def "CSE - aggressive" +; V24 cse2 [V24,T05] ( 6, 9.04) long -> registers hoist multi-def "CSE - aggressive" +; V25 cse3 [V25,T01] ( 3, 11.88) long -> x4 "CSE - aggressive" +; V26 cse4 [V26,T18] ( 3, 0.12) long -> x4 "CSE - conservative" +; V27 cse5 [V27,T06] ( 6, 8 ) int -> x0 "CSE - aggressive"
; V28 cse6 [V28,T11] ( 4, 5.04) byref -> registers hoist multi-def "CSE - aggressive"
-; V29 cse7 [V29,T14] ( 4, 3.04) int -> x26 "CSE - aggressive"
+; V29 cse7 [V29,T14] ( 4, 3.04) int -> x11 "CSE - aggressive"
; ; Lcl frame size = 32 G_M1015_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x80]!
+ stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x30] stp x21, x22, [sp, #0x40] stp x23, x24, [sp, #0x50]
- stp x25, x26, [sp, #0x60] - stp x27, x28, [sp, #0x70]
mov fp, sp stp xzr, xzr, [fp, #0x10] // [V10 tmp3], [V09 tmp2]
- add x5, sp, #128
+ add x5, sp, #96
str x5, [fp, #0x28] // [V21 PSPSym] mov x19, x0 ; gcrRegs +[x19] @@ -62,7 +60,7 @@ G_M1015_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {} mov x20, x3 ; gcrRegs +[x20] mov w23, w4
- ;; size=60 bbWeight=1 PerfScore 11.50
+ ;; size=52 bbWeight=1 PerfScore 9.50
G_M1015_IG02: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] @@ -137,57 +135,57 @@ G_M1015_IG03: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs blr x12 ; gcrRegs -[x15] ; byrRegs -[x14]
- ldr w25, [x21, #0x08] - ldr w26, [x20, #0x08] - cmp w25, w26
+ ldr w0, [x21, #0x08] + ldr w11, [x20, #0x08] + cmp w0, w11
bne G_M1015_IG11 mov w1, wzr
- cmp w25, #0
+ cmp w0, #0
ble G_M1015_IG05
- cmp w26, w25
+ cmp w11, w0
blt G_M1015_IG09
- add x26, x21, #16 - ; byrRegs +[x26] - adrp x0, [HIGH RELOC #0xD1FFAB1E] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ldr x27, [x0] - adrp x0, [HIGH RELOC #0xD1FFAB1E] - add x0, x0, [LOW RELOC #0xD1FFAB1E] - ldr x28, [x0]
+ add x11, x21, #16 + ; byrRegs +[x11] + adrp x2, [HIGH RELOC #0xD1FFAB1E] + add x2, x2, [LOW RELOC #0xD1FFAB1E] + ldr x2, [x2] + adrp x3, [HIGH RELOC #0xD1FFAB1E] + add x3, x3, [LOW RELOC #0xD1FFAB1E] + ldr x3, [x3]
;; size=168 bbWeight=1 PerfScore 47.50
-G_M1015_IG04: ; bbWeight=3.96, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=5000000 {x24 x26}, byref, isz
+G_M1015_IG04: ; bbWeight=3.96, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1000800 {x11 x24}, byref, isz
; gcrRegs -[x21]
- ubfiz x0, x1, #3, #32 - ldr x11, [x26, x0] - ; gcrRegs +[x11] - add x11, x11, x27 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ldr x11, [x11, #0x30] - ; gcrRegs +[x11] - ; byrRegs -[x11] - ldr x11, [x11, x28] - cbz x11, G_M1015_IG08 - add x11, x20, #16 - ; gcrRegs -[x11] - ; byrRegs +[x11] - ldr x0, [x11, x0] - ; gcrRegs +[x0] - add x0, x0, x27 - ; gcrRegs -[x0] - ; byrRegs +[x0] - ldr x0, [x0, #0x30] - ; gcrRegs +[x0] - ; byrRegs -[x0] - ldr x0, [x0, x28] - cbz x0, G_M1015_IG08
+ ubfiz x4, x1, #3, #32 + ldr x5, [x11, x4] + ; gcrRegs +[x5] + add x5, x5, x2 + ; gcrRegs -[x5] + ; byrRegs +[x5] + ldr x5, [x5, #0x30] + ; gcrRegs +[x5] + ; byrRegs -[x5] + ldr x5, [x5, x3] + cbz x5, G_M1015_IG08 + add x5, x20, #16 + ; gcrRegs -[x5] + ; byrRegs +[x5] + ldr x4, [x5, x4] + ; gcrRegs +[x4] + add x4, x4, x2 + ; gcrRegs -[x4] + ; byrRegs +[x4] + ldr x4, [x4, #0x30] + ; gcrRegs +[x4] + ; byrRegs -[x4] + ldr x4, [x4, x3] + cbz x4, G_M1015_IG08
add w1, w1, #1
- cmp w25, w1
+ cmp w0, w1
bgt G_M1015_IG04 ;; size=60 bbWeight=3.96 PerfScore 97.02 G_M1015_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=1000000 {x24}, byref, isz
- ; gcrRegs -[x0 x20] - ; byrRegs -[x11 x26]
+ ; gcrRegs -[x4 x20] + ; byrRegs -[x5 x11]
mov x0, x19 ; gcrRegs +[x0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -202,9 +200,9 @@ G_M1015_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=1000000 ;; size=28 bbWeight=1 PerfScore 7.00 G_M1015_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1000000 {x24}, byref ; gcrRegs -[x15 x22]
- adrp x14, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x14, x14, [LOW RELOC #0xD1FFAB1E] - ldr x14, [x14]
+ adrp x15, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x15, x15, [LOW RELOC #0xD1FFAB1E] + ldr x14, [x15]
ldr x15, [x14] ; gcrRegs +[x15] ;; size=16 bbWeight=0.50 PerfScore 3.50 @@ -239,49 +237,49 @@ G_M1015_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref G_M1015_IG09: ; bbWeight=0.04, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=1000000 {x24}, byref, isz ; gcrRegs +[x19-x22] ; byrRegs +[x24]
- add x15, x21, #16 - ; byrRegs +[x15] - ubfiz x14, x1, #3, #32 - ldr x15, [x15, x14] - ; gcrRegs +[x15] - ; byrRegs -[x15] - adrp x12, [HIGH RELOC #0xD1FFAB1E] - add x12, x12, [LOW RELOC #0xD1FFAB1E] - ldr x27, [x12] - add x15, x15, x27 - ; gcrRegs -[x15] - ; byrRegs +[x15] - ldr x15, [x15, #0x30] - ; gcrRegs +[x15] - ; byrRegs -[x15] - adrp x12, [HIGH RELOC #0xD1FFAB1E] - add x12, x12, [LOW RELOC #0xD1FFAB1E] - ldr x28, [x12] - ldr x15, [x15, x28] - cbz x15, G_M1015_IG08 - cmp w1, w26
+ add x2, x21, #16 + ; byrRegs +[x2] + ubfiz x4, x1, #3, #32 + ldr x3, [x2, x4] + ; gcrRegs +[x3] + adrp x2, [HIGH RELOC #0xD1FFAB1E] + ; byrRegs -[x2] + add x2, x2, [LOW RELOC #0xD1FFAB1E] + ldr x2, [x2] + add x3, x3, x2 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ldr x3, [x3, #0x30] + ; gcrRegs +[x3] + ; byrRegs -[x3] + adrp x5, [HIGH RELOC #0xD1FFAB1E] + add x5, x5, [LOW RELOC #0xD1FFAB1E] + ldr x5, [x5] + ldr x3, [x3, x5] + cbz x3, G_M1015_IG08 + cmp w1, w11
bhs G_M1015_IG10
- add x15, x20, #16 - ; gcrRegs -[x15] - ; byrRegs +[x15] - ldr x14, [x15, x14] - ; gcrRegs +[x14] - add x14, x14, x27 - ; gcrRegs -[x14] - ; byrRegs +[x14] - ldr x14, [x14, #0x30] - ; gcrRegs +[x14] - ; byrRegs -[x14] - ldr x14, [x14, x28] - cbz x14, G_M1015_IG08
+ add x3, x20, #16 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ldr x3, [x3, x4] + ; gcrRegs +[x3] + ; byrRegs -[x3] + add x2, x3, x2 + ; byrRegs +[x2] + ldr x2, [x2, #0x30] + ; gcrRegs +[x2] + ; byrRegs -[x2] + ldr x2, [x2, x5] + cbz x2, G_M1015_IG08
add w1, w1, #1
- cmp w25, w1
+ cmp w0, w1
bgt G_M1015_IG09 b G_M1015_IG05 ;; size=100 bbWeight=0.04 PerfScore 1.42 G_M1015_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14 x19-x22] - ; byrRegs -[x15 x24]
+ ; gcrRegs -[x2-x3 x19-x22] + ; byrRegs -[x24]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address add x0, x0, [LOW RELOC #0xD1FFAB1E] ldr x0, [x0] @@ -319,24 +317,20 @@ G_M1015_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000000 {x24}, b ; gcr arg pop 0 ;; size=32 bbWeight=1 PerfScore 13.50 G_M1015_IG13: ; bbWeight=1, epilog, nogc, extend
- ldp x27, x28, [sp, #0x70] - ldp x25, x26, [sp, #0x60]
ldp x23, x24, [sp, #0x50] ...

-24 (-2.86%) : 150761.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)

@@ -11,12 +11,12 @@ ; ; V00 this [V00,T08] ( 8, 15.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.Text.SourceText> ; V01 arg1 [V01,T13] ( 6, 8 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.Text.SourceText>
-; V02 loc0 [V02,T11] ( 7, 10.52) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>> -; V03 loc1 [V03,T10] ( 9, 10.68) ref -> [fp+0x10] class-hnd EH-live spill-single-def <<unknown class>>
+; V02 loc0 [V02,T11] ( 7, 10.52) ref -> [fp+0x20] class-hnd EH-live spill-single-def <<unknown class>> +; V03 loc1 [V03,T10] ( 9, 10.68) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>>
; V04 loc2 [V04,T03] ( 7, 24.50) int -> x23 ; V05 loc3 [V05,T02] ( 9, 40 ) int -> x26
-; V06 loc4 [V06,T00] ( 11, 68.32) int -> x1 -; V07 loc5 [V07,T21] ( 3, 1.50) ubyte -> x19
+; V06 loc4 [V06,T00] ( 11, 68.32) int -> x0 +; V07 loc5 [V07,T21] ( 3, 1.50) ubyte -> x23
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V09 tmp1 [V09 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" ; V10 tmp2 [V10,T15] ( 3, 8 ) int -> x26 "Inline return value spill temp" @@ -28,33 +28,32 @@ ; V16 tmp8 [V16,T25] ( 2, 0 ) ref -> x0 single-def "argument with side effect" ; V17 tmp9 [V17,T19] ( 2, 2 ) ref -> x0 single-def "argument with side effect" ; V18 tmp10 [V18,T20] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V19 PSPSym [V19,T22] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V19 PSPSym [V19,T22] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
; V20 cse0 [V20,T16] ( 8, 2.50) byref -> x22 multi-def "CSE - aggressive"
-; V21 cse1 [V21,T01] ( 3, 47.52) long -> x0 "CSE - aggressive" -; V22 cse2 [V22,T23] ( 3, 0.48) long -> x0 "CSE - conservative" -; V23 cse3 [V23,T06] ( 4, 18.02) byref -> x24 hoist multi-def "CSE - aggressive" -; V24 cse4 [V24,T07] ( 4, 18.02) byref -> x27 hoist multi-def "CSE - aggressive"
+; V21 cse1 [V21,T01] ( 3, 47.52) long -> x4 "CSE - aggressive" +; V22 cse2 [V22,T23] ( 3, 0.48) long -> x4 "CSE - conservative" +; V23 cse3 [V23,T06] ( 4, 18.02) byref -> x11 hoist multi-def "CSE - aggressive" +; V24 cse4 [V24,T07] ( 4, 18.02) byref -> x3 hoist multi-def "CSE - aggressive"
; V25 cse5 [V25,T12] ( 4, 10.16) int -> x25 "CSE - aggressive" ; V26 cse6 [V26,T14] ( 6, 10 ) long -> x21 "CSE - aggressive" ; V27 cse7 [V27,T09] ( 3, 12 ) long -> x24 "CSE - aggressive" ;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M16886_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x28] - stp x21, x22, [sp, #0x38] - stp x23, x24, [sp, #0x48] - stp x25, x26, [sp, #0x58] - str x27, [sp, #0x68]
+ stp x19, x20, [sp, #0x30] + stp x21, x22, [sp, #0x40] + stp x23, x24, [sp, #0x50] + stp x25, x26, [sp, #0x60]
mov fp, sp add x2, sp, #112
- str x2, [fp, #0x20] // [V19 PSPSym]
+ str x2, [fp, #0x28] // [V19 PSPSym]
mov x19, x0 ; gcrRegs +[x19] mov x20, x1 ; gcrRegs +[x20]
- ;; size=44 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M16886_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz cbnz x20, G_M16886_IG05 ;; size=4 bbWeight=1 PerfScore 1.00 @@ -63,14 +62,13 @@ G_M16886_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M16886_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldr x27, [sp, #0x68] - ldp x25, x26, [sp, #0x58] - ldp x23, x24, [sp, #0x48] - ldp x21, x22, [sp, #0x38] - ldp x19, x20, [sp, #0x28]
+ ldp x25, x26, [sp, #0x60] + ldp x23, x24, [sp, #0x50] + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x70 ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M16886_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs +[x19-x20] cmp x19, x20 @@ -78,14 +76,13 @@ G_M16886_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 mov w0, #1 ;; size=12 bbWeight=0.50 PerfScore 1.00 G_M16886_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x27, [sp, #0x68] - ldp x25, x26, [sp, #0x58] - ldp x23, x24, [sp, #0x48] - ldp x21, x22, [sp, #0x38] - ldp x19, x20, [sp, #0x28]
+ ldp x25, x26, [sp, #0x60] + ldp x23, x24, [sp, #0x50] + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x70 ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz mov x0, x19 ; gcrRegs +[x0] @@ -124,7 +121,7 @@ G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 ldr x1, [x11] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x18] // [V02 loc0]
+ str x0, [fp, #0x20] // [V02 loc0]
; GC ptr vars +{V02} ldr x0, [x22, #0xD1FFAB1E] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -133,7 +130,7 @@ G_M16886_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180 ldr x2, [x11] blr x2 ; gcr arg pop 0
- str x0, [fp, #0x10] // [V03 loc1]
+ str x0, [fp, #0x18] // [V03 loc1]
; GC ptr vars +{V03} ;; size=132 bbWeight=0.50 PerfScore 22.75 G_M16886_IG08: ; bbWeight=0.50, gcVars=0000000000000C00 {V02 V03}, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, gcvars, byref, isz @@ -158,7 +155,7 @@ G_M16886_IG09: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs -[x0] ; gcr arg pop 0 sub w24, w0, w23
- ldr x1, [fp, #0x18] // [V02 loc0]
+ ldr x1, [fp, #0x20] // [V02 loc0]
; gcrRegs +[x1] ldr w25, [x1, #0x08] sxtw w26, w25 @@ -177,7 +174,7 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs +[x0] mov w4, w26 mov w1, w23
- ldr x2, [fp, #0x18] // [V02 loc0]
+ ldr x2, [fp, #0x20] // [V02 loc0]
; gcrRegs +[x2] adrp x24, [HIGH RELOC #0xD1FFAB1E] // function address add x24, x24, [LOW RELOC #0xD1FFAB1E] @@ -191,7 +188,7 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ; gcrRegs +[x0] mov w4, w26 mov w1, w23
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2] mov x11, x24 mov w3, wzr @@ -199,45 +196,45 @@ G_M16886_IG12: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 blr x5 ; gcrRegs -[x0 x2] ; gcr arg pop 0
- mov w1, wzr
+ mov w0, wzr
cmp w26, #0 ble G_M16886_IG15 ;; size=84 bbWeight=4 PerfScore 80.00 G_M16886_IG13: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2] cbz x2, G_M16886_IG18 cmp w25, w26 blt G_M16886_IG18
- ldr w0, [x2, #0x08] - cmp w0, w26 - blt G_M16886_IG18 - ldr x3, [fp, #0x18] // [V02 loc0] - ; gcrRegs +[x3] - add x24, x3, #16 - ; byrRegs +[x24] - add x27, x2, #16 - ; byrRegs +[x27] - ;; size=40 bbWeight=2 PerfScore 24.00 -G_M16886_IG14: ; bbWeight=15.84, gcrefRegs=180000 {x19 x20}, byrefRegs=9400000 {x22 x24 x27}, byref, isz - ; gcrRegs -[x2-x3] - ubfiz x0, x1, #1, #32 - ldrh w11, [x24, x0] - ldrh w0, [x27, x0] - cmp w11, w0 - bne G_M16886_IG20 - add w1, w1, #1
+ ldr w1, [x2, #0x08]
cmp w1, w26
+ blt G_M16886_IG18 + ldr x1, [fp, #0x20] // [V02 loc0] + ; gcrRegs +[x1] + add x11, x1, #16 + ; byrRegs +[x11] + add x3, x2, #16 + ; byrRegs +[x3] + ;; size=40 bbWeight=2 PerfScore 24.00 +G_M16886_IG14: ; bbWeight=15.84, gcrefRegs=180006 {x1 x2 x19 x20}, byrefRegs=400808 {x3 x11 x22}, byref, isz + ubfiz x4, x0, #1, #32 + ldrh w5, [x11, x4] + ldrh w4, [x3, x4] + cmp w5, w4 + bne G_M16886_IG20 + add w0, w0, #1 + cmp w0, w26
blt G_M16886_IG14 ;; size=32 bbWeight=15.84 PerfScore 166.32 G_M16886_IG15: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
- ; byrRegs -[x24 x27]
+ ; gcrRegs -[x1-x2] + ; byrRegs -[x3 x11]
add w23, w23, w26 mov x0, x19 ; gcrRegs +[x0] mov x11, x21
- ldr x1, [x11] - blr x1
+ ldr x3, [x11] + blr x3
; gcrRegs -[x0] ; gcr arg pop 0 cmp w0, w23 @@ -245,9 +242,9 @@ G_M16886_IG15: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 ;; size=28 bbWeight=4 PerfScore 28.00 G_M16886_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref ; gcrRegs -[x19-x20]
- ldr x2, [fp, #0x10] // [V03 loc1]
+ ldr x2, [fp, #0x18] // [V03 loc1]
; gcrRegs +[x2]
- mov w19, #1
+ mov w23, #1
b G_M16886_IG21 ;; size=12 bbWeight=0.50 PerfScore 1.75 G_M16886_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -262,38 +259,39 @@ G_M16886_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref G_M16886_IG18: ; bbWeight=0.02, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=400000 {x22}, byref ; gcrRegs +[x2 x19-x20] ; byrRegs +[x22]
- ldr x3, [fp, #0x18] // [V02 loc0] - ; gcrRegs +[x3] - add x24, x3, #16 - ; byrRegs +[x24] - add x27, x2, #16 - ; byrRegs +[x27]
+ ldr x1, [fp, #0x20] // [V02 loc0] + ; gcrRegs +[x1] + add x11, x1, #16 + ; byrRegs +[x11] + add x3, x2, #16 + ; byrRegs +[x3]
;; size=12 bbWeight=0.02 PerfScore 0.06
-G_M16886_IG19: ; bbWeight=0.16, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=9400000 {x22 x24 x27}, byref, isz - ; gcrRegs -[x3] - cmp w1, w25
+G_M16886_IG19: ; bbWeight=0.16, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=400808 {x3 x11 x22}, byref, isz
...

-12 (-2.13%) : 57337.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=17A80000 {x19 x21 x23 x24 x25 x26 str w3, [fp, #0x30] // [V11 loc1] mov w4, wzr cmp w2, #0
- ble G_M49290_IG11 - cbz x23, G_M49290_IG10
+ ble G_M49290_IG10 + cbz x23, G_M49290_IG09
ldr wzr, [x24, #0x08] ldr w0, [x23, #0x08] cmp w0, w2
- blt G_M49290_IG12
+ blt G_M49290_IG11
;; size=48 bbWeight=1 PerfScore 16.00 G_M49290_IG03: ; bbWeight=3.96, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz mov x0, x22 @@ -150,30 +150,27 @@ G_M49290_IG07: ; bbWeight=3.96, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x add w3, w3, #1 ldr w4, [fp, #0x34] // [V10 loc0] cmp w3, w4
- blt G_M49290_IG09 - ;; size=20 bbWeight=3.96 PerfScore 23.76
+ mov w4, w3 + blt G_M49290_IG03 + ;; size=24 bbWeight=3.96 PerfScore 25.74
G_M49290_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] ldr w3, [fp, #0x30] // [V11 loc1]
- b G_M49290_IG18
+ b G_M49290_IG16
;; size=8 bbWeight=1 PerfScore 3.00
-G_M49290_IG09: ; bbWeight=1.98, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref
+G_M49290_IG09: ; bbWeight=0.50, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27]
- mov w4, w3 - b G_M49290_IG03 - ;; size=8 bbWeight=1.98 PerfScore 2.97 -G_M49290_IG10: ; bbWeight=0.50, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - b G_M49290_IG12
+ b G_M49290_IG11
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M49290_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] ldr w3, [fp, #0x30] // [V11 loc1]
- b G_M49290_IG18
+ b G_M49290_IG16
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M49290_IG12: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
+G_M49290_IG11: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27] mov x0, x22 @@ -185,9 +182,9 @@ G_M49290_IG12: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x ldr x5, [x11] blr x5 ; byrRegs -[x0]
- cbnz w0, G_M49290_IG22
+ cbnz w0, G_M49290_IG19
;; size=32 bbWeight=0.04 PerfScore 0.32
-G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
+G_M49290_IG12: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz
add x0, x24, #16 ; byrRegs +[x0] ldr w8, [fp, #0x2C] // [V12 loc2] @@ -196,7 +193,7 @@ G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x ldr w0, [x23, #0x08] ; byrRegs -[x0] cmp w8, w0
- bhs G_M49290_IG23
+ bhs G_M49290_IG20
mov w0, #24 mov x1, #16 str w8, [fp, #0x2C] // [V12 loc2] @@ -204,13 +201,13 @@ G_M49290_IG13: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x add x0, x23, x0 ; byrRegs +[x0] ;; size=44 bbWeight=0.02 PerfScore 0.35
-G_M49290_IG14: ; bbWeight=0.02, nogc, extend
+G_M49290_IG13: ; bbWeight=0.02, nogc, extend
ldp x1, x2, [x0] stp x1, x2, [fp, #0x10] ldr x1, [x0, #0x10] str x1, [fp, #0x20] ;; size=16 bbWeight=0.02 PerfScore 0.18
-G_M49290_IG15: ; bbWeight=0.02, isz, extend
+G_M49290_IG14: ; bbWeight=0.02, isz, extend
str x28, [sp] // [V13 OutArgs] mov x0, x19 ; gcrRegs +[x0] @@ -232,26 +229,24 @@ G_M49290_IG15: ; bbWeight=0.02, isz, extend blr x9 ; gcrRegs -[x0 x2-x3 x5-x6] ; byrRegs -[x1 x7]
- cbnz w0, G_M49290_IG21 - mov w0, wzr - ;; size=56 bbWeight=0.02 PerfScore 0.22 -G_M49290_IG16: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz - ldr w8, [fp, #0x2C] // [V12 loc2] - add w8, w8, #1
+ ldr w3, [fp, #0x30] // [V11 loc1] + cbnz w0, G_M49290_IG15 + mov w3, wzr + ;; size=60 bbWeight=0.02 PerfScore 0.26 +G_M49290_IG15: ; bbWeight=0.04, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref, isz + ldr w0, [fp, #0x2C] // [V12 loc2] + add w0, w0, #1
ldr w2, [fp, #0x34] // [V10 loc0]
- cmp w8, w2 - mov w4, w8 - blt G_M49290_IG20
+ cmp w0, w2 + mov w4, w0 + blt G_M49290_IG18
;; size=24 bbWeight=0.04 PerfScore 0.26
-G_M49290_IG17: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27]
- mov w3, w0 - ;; size=4 bbWeight=0.02 PerfScore 0.01 -G_M49290_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w3 ;; size=4 bbWeight=1 PerfScore 0.50
-G_M49290_IG19: ; bbWeight=1, epilog, nogc, extend
+G_M49290_IG17: ; bbWeight=1, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -261,21 +256,17 @@ G_M49290_IG19: ; bbWeight=1, epilog, nogc, extend add sp, sp, #144 ret lr ;; size=32 bbWeight=1 PerfScore 7.50
-G_M49290_IG20: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, gcvars, byref
+G_M49290_IG18: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, gcvars, byref
; gcrRegs +[x19 x21 x23-x26 x28] ; byrRegs +[x20 x22 x27]
- str w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG12
+ str w3, [fp, #0x30] // [V11 loc1] + b G_M49290_IG11
;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M49290_IG21: ; bbWeight=0.01, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - ldr w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG16 - ;; size=8 bbWeight=0.01 PerfScore 0.03 -G_M49290_IG22: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref - ldr w0, [fp, #0x30] // [V11 loc1] - b G_M49290_IG16
+G_M49290_IG19: ; bbWeight=0.02, gcrefRegs=17A80000 {x19 x21 x23 x24 x25 x26 x28}, byrefRegs=8500000 {x20 x22 x27}, byref + ldr w3, [fp, #0x30] // [V11 loc1] + b G_M49290_IG15
;; size=8 bbWeight=0.02 PerfScore 0.06
-G_M49290_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49290_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19 x21 x23-x26 x28] ; byrRegs -[x20 x22 x27] adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address @@ -285,7 +276,7 @@ G_M49290_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 40, PerfScore 165.27, instruction count 141, allocated bytes for code 564 (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 552, prolog size 40, PerfScore 164.28, instruction count 138, allocated bytes for code 552 (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: @@ -296,7 +287,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 141 (0x0008d) Actual length = 564 (0x000234)
+ Function Length : 138 (0x0008a) Actual length = 552 (0x000228)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+3.98%) : 241585.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)

@@ -18,41 +18,42 @@ ; V06 loc4 [V06,T03] ( 3, 48 ) ref -> x26 class-hnd <System.Diagnostics.Process> ; V07 loc5 [V07,T17] ( 2, 2 ) ubyte -> [fp+0x24] do-not-enreg[Z] EH-live ; V08 loc6 [V08,T14] ( 6, 6 ) ref -> x1 class-hnd <System.Diagnostics.Process[]>
-; V09 loc7 [V09,T02] ( 10, 66 ) int -> x19
+; V09 loc7 [V09,T02] ( 10, 66 ) int -> x25
;* V10 loc8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Diagnostics.Process> ;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V12 tmp1 [V12,T16] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ; V13 tmp2 [V13,T04] ( 2, 32 ) ref -> x0 "argument with side effect" ; V14 PSPSym [V14,T18] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[V] "PSPSym" ; V15 cse0 [V15,T00] ( 6, 98 ) long -> x24 hoist multi-def "CSE - aggressive"
-; V16 cse1 [V16,T08] ( 4, 18 ) byref -> x21 hoist multi-def "CSE - aggressive" -; V17 cse2 [V17,T07] ( 6, 20 ) int -> x20 multi-def "CSE - aggressive"
+; V16 cse1 [V16,T08] ( 4, 18 ) byref -> x27 hoist multi-def "CSE - aggressive" +; V17 cse2 [V17,T07] ( 6, 20 ) int -> x26 multi-def "CSE - aggressive"
; V18 cse3 [V18,T01] ( 2, 72 ) long -> x25 hoist "CSE - aggressive" ; V19 cse4 [V19,T10] ( 3, 18 ) long -> x21 "CSE - aggressive"
-; V20 cse5 [V20,T09] ( 4, 18 ) long -> x22 hoist multi-def "CSE - aggressive"
+; V20 cse5 [V20,T09] ( 4, 18 ) long -> x28 hoist multi-def "CSE - aggressive"
; V21 cse6 [V21,T12] ( 2, 9 ) long -> x20 hoist "CSE - aggressive" ; V22 cse7 [V22,T13] ( 2, 9 ) long -> x23 hoist "CSE - aggressive" ; ; Lcl frame size = 64 G_M8719_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x90]!
+ stp fp, lr, [sp, #-0xA0]!
stp x19, x20, [sp, #0x50] stp x21, x22, [sp, #0x60] stp x23, x24, [sp, #0x70] stp x25, x26, [sp, #0x80]
+ stp x27, x28, [sp, #0x90]
mov fp, sp add x9, fp, #24 movi v16.16b, #0 stp q16, q16, [x9] stp xzr, xzr, [x9, #0x20]
- add x2, sp, #144
+ add x2, sp, #160
str x2, [fp, #0x48] // [V14 PSPSym] mov x20, x0 ; gcrRegs +[x20] mov x19, x1 ; gcrRegs +[x19]
- ;; size=56 bbWeight=1 PerfScore 11.00
+ ;; size=60 bbWeight=1 PerfScore 12.00
G_M8719_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz mov x0, x20 ; gcrRegs +[x0] @@ -69,13 +70,14 @@ G_M8719_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {} mov w0, #1 ;; size=36 bbWeight=1 PerfScore 8.00 G_M8719_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr add x0, x0, [LOW RELOC #0xD1FFAB1E] @@ -224,32 +226,32 @@ G_M8719_IG15: ; bbWeight=1, nogc, extend G_M8719_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ldr x1, [fp, #0x18] // [V02 loc0] ; gcrRegs +[x1]
- mov w19, wzr - ldr w20, [x1, #0x08] - cmp w20, #0
+ mov w25, wzr + ldr w26, [x1, #0x08] + cmp w26, #0
ble G_M8719_IG23
- add x21, x1, #16 - ; byrRegs +[x21] - adrp x22, [HIGH RELOC #0xD1FFAB1E] - add x22, x22, [LOW RELOC #0xD1FFAB1E]
+ add x27, x1, #16 + ; byrRegs +[x27] + adrp x28, [HIGH RELOC #0xD1FFAB1E] + add x28, x28, [LOW RELOC #0xD1FFAB1E]
;; size=32 bbWeight=1 PerfScore 8.50
-G_M8719_IG17: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M8719_IG17: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000000 {x27}, gcvars, byref, isz
; gcrRegs -[x1] ; GC ptr vars -{V02}
- ldr x0, [x21, w19, UXTW #3]
+ ldr x0, [x27, w25, UXTW #3]
; gcrRegs +[x0]
- mov x11, x22
+ mov x11, x28
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- add w19, w19, #1 - cmp w20, w19
+ add w25, w25, #1 + cmp w26, w25
bgt G_M8719_IG17 ;; size=32 bbWeight=8 PerfScore 100.00 G_M8719_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x21]
+ ; byrRegs -[x27]
b G_M8719_IG23 ;; size=4 bbWeight=1 PerfScore 1.00 G_M8719_IG19: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref @@ -265,33 +267,36 @@ G_M8719_IG21: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {} ldr w0, [fp, #0x24] // [V07 loc5] ;; size=4 bbWeight=1 PerfScore 2.00 G_M8719_IG22: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG23: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, wzr ;; size=4 bbWeight=1 PerfScore 0.50 G_M8719_IG24: ; bbWeight=1, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x90]
ldp x25, x26, [sp, #0x80] ldp x23, x24, [sp, #0x70] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50]
- ldp fp, lr, [sp], #0x90
+ ldp fp, lr, [sp], #0xA0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M8719_IG25: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20] stp x21, x22, [sp, #0x30] stp x23, x24, [sp, #0x40] stp x25, x26, [sp, #0x50]
- add x3, fp, #144
+ stp x27, x28, [sp, #0x60] + add x3, fp, #160
str x3, [sp, #0x18]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M8719_IG26: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars +{V02} adrp x1, [HIGH RELOC #0xD1FFAB1E] // System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Process] @@ -306,71 +311,74 @@ G_M8719_IG26: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 10.00 G_M8719_IG27: ; bbWeight=1, funclet epilog, nogc, extend
+ ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50] ldp x23, x24, [sp, #0x40] ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=24 bbWeight=1 PerfScore 16.00
+ ;; size=28 bbWeight=1 PerfScore 19.00
G_M8719_IG28: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x20] stp x21, x22, [sp, #0x30] stp x23, x24, [sp, #0x40] stp x25, x26, [sp, #0x50]
- add x3, fp, #144
+ stp x27, x28, [sp, #0x60] + add x3, fp, #160
str x3, [sp, #0x18]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M8719_IG29: ; bbWeight=1, gcVars=0000000000000800 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz ldr x1, [fp, #0x18] // [V02 loc0] ; gcrRegs +[x1]
- mov w19, wzr - ldr w20, [x1, #0x08] - cmp w20, #0
+ mov w25, wzr + ldr w26, [x1, #0x08] + cmp w26, #0
ble G_M8719_IG31
- add x21, x1, #16 - ; byrRegs +[x21] - adrp x22, [HIGH RELOC #0xD1FFAB1E] - add x22, x22, [LOW RELOC #0xD1FFAB1E]
+ add x27, x1, #16 + ; byrRegs +[x27] + adrp x28, [HIGH RELOC #0xD1FFAB1E] + add x28, x28, [LOW RELOC #0xD1FFAB1E]
;; size=32 bbWeight=1 PerfScore 8.50
-G_M8719_IG30: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M8719_IG30: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000000 {x27}, gcvars, byref, isz
; gcrRegs -[x1] ; GC ptr vars -{V02}
- ldr x0, [x21, w19, UXTW #3]
+ ldr x0, [x27, w25, UXTW #3]
; gcrRegs +[x0]
- mov x11, x22
+ mov x11, x28
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- add w19, w19, #1 - cmp w20, w19
+ add w25, w25, #1 + cmp w26, w25
bgt G_M8719_IG30 ;; size=32 bbWeight=8 PerfScore 100.00 G_M8719_IG31: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
- ; byrRegs -[x21]
+ ; byrRegs -[x27] + ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50] ldp x23, x24, [sp, #0x40] ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x70
ret lr
- ;; size=24 bbWeight=1 PerfScore 16.00
+ ;; size=28 bbWeight=1 PerfScore 19.00
-; Total bytes of code 804, prolog size 56, PerfScore 1434.00, instruction count 201, allocated bytes for code 804 (MethodHash=4aa4ddf0) for method System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
+; Total bytes of code 836, prolog size 60, PerfScore 1446.00, instruction count 209, allocated bytes for code 836 (MethodHash=4aa4ddf0) for method System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0 ...

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

@@ -23,14 +23,14 @@ G_M12753_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ;; 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_IG07
;; 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_IG05
cmp w11, #188
- bne G_M12753_IG04
+ bne G_M12753_IG07
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] @@ -41,14 +41,10 @@ G_M12753_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ;; size=44 bbWeight=4 PerfScore 60.00 G_M12753_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- mov x0, xzr
+ b G_M12753_IG07 + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M12753_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; 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
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] @@ -56,12 +52,21 @@ 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_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M12753_IG06: ; bbWeight=0.50, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.50 PerfScore 1.00 +G_M12753_IG07: ; 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_IG08: ; 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 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 100, prolog size 8, PerfScore 69.25, instruction count 25, allocated bytes for code 100 (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 : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+4.30%) : 130732.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)

@@ -13,55 +13,56 @@ ; V01 arg1 [V01,T00] ( 33, 83.50) int -> x1 ; V02 arg2 [V02,T10] ( 5, 3.50) byref -> x2 single-def ; V03 loc0 [V03,T16] ( 3, 2 ) int -> x3
-; V04 loc1 [V04,T17] ( 2, 1 ) int -> x5
+; V04 loc1 [V04,T17] ( 2, 1 ) int -> x4
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V07 tmp2 [V07,T03] ( 3, 24 ) ushort -> x3 "Inlining Arg"
+; V07 tmp2 [V07,T03] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V08 tmp3 [V08,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T04] ( 3, 24 ) ushort -> x5 "Inlining Arg"
+; V09 tmp4 [V09,T04] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V10 tmp5 [V10,T18] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V11 tmp6 [V11,T15] ( 3, 3 ) ushort -> x6 "Inlining Arg"
+; V11 tmp6 [V11,T15] ( 3, 3 ) ushort -> x11 "Inlining Arg"
;* V12 tmp7 [V12,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V13 tmp8 [V13,T05] ( 3, 24 ) ushort -> x6 "Inlining Arg"
+; V13 tmp8 [V13,T05] ( 3, 24 ) ushort -> x11 "Inlining Arg"
;* V14 tmp9 [V14,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V15 tmp10 [V15,T06] ( 3, 24 ) ushort -> x7 "Inlining Arg" -; V16 cse0 [V16,T09] ( 3, 12 ) int -> x6 "CSE - aggressive" -; V17 cse1 [V17,T08] ( 5, 13 ) int -> registers multi-def "CSE - aggressive" -; V18 cse2 [V18,T01] ( 13, 46.50) int -> x11 hoist "CSE - aggressive" -; V19 cse3 [V19,T02] ( 9, 25.50) byref -> registers multi-def "CSE - aggressive"
+; V15 tmp10 [V15,T06] ( 3, 24 ) ushort -> x5 "Inlining Arg" +; V16 cse0 [V16,T09] ( 3, 12 ) int -> x11 "CSE - aggressive" +; V17 cse1 [V17,T08] ( 5, 13 ) int -> x11 multi-def "CSE - aggressive" +; V18 cse2 [V18,T01] ( 13, 46.50) int -> x19 hoist "CSE - aggressive" +; V19 cse3 [V19,T02] ( 9, 25.50) byref -> x20 multi-def "CSE - aggressive"
; ; Lcl frame size = 0 G_M63854_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]! + stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M63854_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref ; gcrRegs +[x0] ; byrRegs +[x2]
- ldr w11, [x0, #0x08]
+ ldr w19, [x0, #0x08]
b G_M63854_IG04 ;; size=8 bbWeight=1 PerfScore 4.00 G_M63854_IG03: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00 G_M63854_IG04: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w11, w1
+ cmp w19, w1
ble G_M63854_IG06 ;; size=8 bbWeight=8 PerfScore 12.00 G_M63854_IG05: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- add x3, x0, #12 - ; byrRegs +[x3] - ldrh w3, [x3, w1, UXTW #2] - ; byrRegs -[x3] - cmp w3, #32
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG03
- cmp w3, #9
+ cmp w11, #9
beq G_M63854_IG03 ;; size=32 bbWeight=4 PerfScore 32.00 G_M63854_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
+ ; byrRegs -[x20]
sxtw w3, w1 b G_M63854_IG08 ;; size=8 bbWeight=1 PerfScore 1.50 @@ -69,25 +70,25 @@ G_M63854_IG07: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, by add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00 G_M63854_IG08: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w11, w1
+ cmp w19, w1
ble G_M63854_IG10 ;; size=8 bbWeight=8 PerfScore 12.00 G_M63854_IG09: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- add x4, x0, #12 - ; byrRegs +[x4] - ldrh w5, [x4, w1, UXTW #2] - cmp w5, #61
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #61
beq G_M63854_IG10
- cmp w5, #32
+ cmp w11, #32
beq G_M63854_IG10
- cmp w5, #9
+ cmp w11, #9
bne G_M63854_IG07 ;; size=40 bbWeight=4 PerfScore 38.00 G_M63854_IG10: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref, isz
- ; byrRegs -[x4] - cmp w11, w1
+ ; byrRegs -[x20] + cmp w19, w1
bne G_M63854_IG13 ;; size=8 bbWeight=4 PerfScore 6.00 G_M63854_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref @@ -97,78 +98,80 @@ G_M63854_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, b ; gcrRegs +[x0] ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M63854_IG12: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M63854_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, gcvars, byref, isz
- sub w5, w1, w3 - cmp w1, w11
+ sub w4, w1, w3 + cmp w1, w19
bhs G_M63854_IG23
- add x4, x0, #12 - ; byrRegs +[x4] - ldrh w6, [x4, w1, UXTW #2] - cmp w6, #32
+ add x20, x0, #12 + ; byrRegs +[x20] + ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG15
- cmp w6, #9
+ cmp w11, #9
bne G_M63854_IG20 b G_M63854_IG15 ;; size=40 bbWeight=0.50 PerfScore 4.75
-G_M63854_IG14: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref
+G_M63854_IG14: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref
add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00
-G_M63854_IG15: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG15: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
ble G_M63854_IG16
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - cmp w6, #32
+ ldrh w11, [x20, w1, UXTW #2] + cmp w11, #32
beq G_M63854_IG14
- cmp w6, #9
+ cmp w11, #9
beq G_M63854_IG14 ;; size=36 bbWeight=4 PerfScore 36.00
-G_M63854_IG16: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG16: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
beq G_M63854_IG17
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - cmp w6, #61
+ ldrh w5, [x20, w1, UXTW #2] + cmp w5, #61
beq G_M63854_IG20 ;; size=28 bbWeight=0.50 PerfScore 3.75 G_M63854_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref ; gcrRegs -[x0]
- ; byrRegs -[x4]
+ ; byrRegs -[x20]
str w1, [x2] mov x0, xzr ; gcrRegs +[x0] ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M63854_IG18: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00 -G_M63854_IG19: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, gcvars, byref - ; byrRegs +[x4]
+ ;; size=12 bbWeight=0.50 PerfScore 1.50 +G_M63854_IG19: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, gcvars, byref + ; byrRegs +[x20]
add w1, w1, #1 ;; size=4 bbWeight=2 PerfScore 1.00
-G_M63854_IG20: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0014 {x2 x4}, byref, isz - cmp w11, w1
+G_M63854_IG20: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=100004 {x2 x20}, byref, isz + cmp w19, w1
ble G_M63854_IG21
- cmp w1, w11
+ cmp w1, w19
bhs G_M63854_IG23
- ldrh w6, [x4, w1, UXTW #2] - sxtw w7, w6 - cmp w7, #32
+ ldrh w11, [x20, w1, UXTW #2] + sxtw w5, w11 + cmp w5, #32
beq G_M63854_IG19
- cmp w7, #9
+ cmp w5, #9
beq G_M63854_IG19
- cmp w6, #61
+ cmp w11, #61
beq G_M63854_IG19 ;; size=48 bbWeight=4 PerfScore 44.00 G_M63854_IG21: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, byref
- ; byrRegs -[x4]
+ ; byrRegs -[x20]
str w1, [x2]
- mov w2, w5
+ mov w2, w4
; byrRegs -[x2] mov w1, w3 adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -176,10 +179,11 @@ G_M63854_IG21: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0004 {x2}, ldr x3, [x11] ;; size=24 bbWeight=0.50 PerfScore 3.00 G_M63854_IG22: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x20
br x3 ; gcr arg pop 0
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M63854_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[x0] adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address @@ -190,18 +194,18 @@ G_M63854_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { brk_windows #0 ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 372, prolog size 8, PerfScore 207.00, instruction count 93, allocated bytes for code 372 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
...

libraries.pmi.windows.arm64.checked.mch

-4 (-3.57%) : 38566.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)

@@ -13,8 +13,8 @@ ; V02 loc1 [V02,T01] ( 5, 17 ) int -> x1 ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+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,T00] ( 6, 44 ) ushort -> x0 "Inlining Arg" -; V06 cse0 [V06,T04] ( 2, 5 ) byref -> x3 hoist "CSE - aggressive"
+; V05 tmp2 [V05,T00] ( 6, 44 ) ushort -> x3 "Inlining Arg" +; V06 cse0 [V06,T04] ( 2, 5 ) byref -> x0 hoist "CSE - aggressive"
; V07 cse1 [V07,T02] ( 3, 6 ) int -> x2 "CSE - aggressive" ; ; Lcl frame size = 0 @@ -28,51 +28,48 @@ G_M7834_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref mov w1, wzr ldr w2, [x0, #0x08] cmp w2, #0
- ble G_M7834_IG09 - add x3, x0, #12 - ; byrRegs +[x3] - ;; size=20 bbWeight=1 PerfScore 5.50 -G_M7834_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+ ble G_M7834_IG06 + add x0, x0, #12
; gcrRegs -[x0]
- ldrh w0, [x3, w1, UXTW #2]
+ ; byrRegs +[x0] + ;; size=20 bbWeight=1 PerfScore 5.50 +G_M7834_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz + ldrh w3, [x0, w1, UXTW #2]
mov w4, #133 mov w5, #0xD1FFAB1E
- cmp w0, #13 - ccmp w0, #10, z, ne - ccmp w0, w4, z, ne - ccmp w0, w5, z, ne - beq G_M7834_IG07
+ cmp w3, #13 + ccmp w3, #10, z, ne + ccmp w3, w4, z, ne + ccmp w3, w5, z, ne + beq G_M7834_IG08
;; size=32 bbWeight=4 PerfScore 28.00
-G_M7834_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M7834_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
mov w4, #0xD1FFAB1E
- cmp w0, w4 - beq G_M7834_IG07
+ cmp w3, w4 + beq G_M7834_IG08
;; size=12 bbWeight=2 PerfScore 4.00
-G_M7834_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+G_M7834_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
add w1, w1, #1 cmp w2, w1 bgt G_M7834_IG03 ;; size=12 bbWeight=4 PerfScore 8.00 G_M7834_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x3] - b G_M7834_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M7834_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M7834_IG08: ; bbWeight=2, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=2 PerfScore 4.00 -G_M7834_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; byrRegs -[x0]
mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M7834_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M7834_IG07: ; bbWeight=0.50, epilog, nogc, extend + ldp fp, lr, [sp], #0x10 + ret lr + ;; size=8 bbWeight=0.50 PerfScore 1.00 +G_M7834_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1 + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M7834_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 53.75, instruction count 28, allocated bytes for code 112 (MethodHash=c046e165) for method Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 49.50, instruction count 27, allocated bytes for code 108 (MethodHash=c046e165) for method Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -83,7 +80,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-4 (-3.57%) : 34443.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-28 (-3.37%) : 137990.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>cDisplayClass11_0[ubyte]:gexecuteExecutableCodeActions|2():this (FullOpts)

@@ -22,20 +22,20 @@ ;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.DeclarationInfo[]> ;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]> ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]>
-; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x4 "Inline stloc first use temp"
+; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x3 "Inline stloc first use temp"
; V15 tmp8 [V15,T06] ( 5, 5.50) ref -> x19 "field V01.array (fldOffset=0x0)" P-INDEP ; V16 tmp9 [V16,T08] ( 2, 4.50) ref -> x1 single-def "field V03._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x5 "field V03._index (fldOffset=0x8)" P-INDEP -; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x6 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
+; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x4 "field V03._index (fldOffset=0x8)" P-INDEP +; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x5 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref "field V04.<DeclaredSymbol>k__BackingField (fldOffset=0x8)" P-INDEP
-; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x4 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
+; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x3 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
; V21 tmp14 [V21,T11] ( 5, 2 ) ref -> [fp+0x18] do-not-enreg[H] EH-live "field V05.array (fldOffset=0x0)" P-INDEP
-; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x20 "field V06.array (fldOffset=0x0)" P-INDEP
+; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x21 "field V06.array (fldOffset=0x0)" P-INDEP
; V23 tmp16 [V23,T12] ( 3, 1.50) ref -> x1 single-def "field V09.array (fldOffset=0x0)" P-INDEP ; V24 tmp17 [V24,T13] ( 2, 1 ) ref -> x1 single-def "field V10._array (fldOffset=0x0)" P-INDEP ;* V25 tmp18 [V25,T15] ( 0, 0 ) int -> zero-ref single-def "field V10._index (fldOffset=0x8)" P-INDEP ;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref "field V12.array (fldOffset=0x0)" P-INDEP
-; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x4 "BlockOp address local"
+; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x3 "BlockOp address local"
; V28 PSPSym [V28,T14] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym" ; V29 cse0 [V29,T07] ( 3, 5 ) int -> x2 "CSE - aggressive" ; @@ -103,96 +103,95 @@ G_M3645_IG05: ; bbWeight=0.50, gcVars=0000000000000002 {V00}, gcrefRegs=0 ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x3, x0 - ; gcrRegs +[x3] - str x3, [fp, #0x20] // [V02 loc1]
+ str x0, [fp, #0x20] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=108 bbWeight=0.50 PerfScore 14.00 -G_M3645_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=104 bbWeight=0.50 PerfScore 13.75 +G_M3645_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x28] // [V00 this] - ; gcrRegs +[x0] - ldr x1, [x0, #0x68]
+ ldr x20, [fp, #0x28] // [V00 this] + ; gcrRegs +[x20] + ldr x1, [x20, #0x68]
; gcrRegs +[x1] ldr w2, [x1, #0x08]
+ mov w3, wzr
mov w4, wzr
- mov w5, wzr
cmp w2, #0 ble G_M3645_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.25
-G_M3645_IG07: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - mov w6, #24 - mov x7, #16 - umaddl x4, w4, w6, x7 - add x4, x1, x4 - ; byrRegs +[x4] - ldr x6, [x4]
+G_M3645_IG07: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + mov w5, #24 + mov x6, #16 + umaddl x3, w3, w5, x6 + add x3, x1, x3 + ; byrRegs +[x3] + ldr x5, [x3] + ; gcrRegs +[x5] + ldr x3, [x3, #0x10] + ; gcrRegs +[x3] + ; byrRegs -[x3] + ldr x6, [x20, #0x50]
; gcrRegs +[x6]
- ldr x4, [x4, #0x10] - ; gcrRegs +[x4] - ; byrRegs -[x4] - ldr x7, [x0, #0x50] - ; gcrRegs +[x7] - cmp x6, x7
+ cmp x5, x6
beq G_M3645_IG09 ;; size=36 bbWeight=4 PerfScore 68.00
-G_M3645_IG08: ; bbWeight=2, gcrefRegs=8005B {x0 x1 x3 x4 x6 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x7] - ldr x7, [x0, #0x48] - ; gcrRegs +[x7] - cmp x6, x7
+G_M3645_IG08: ; bbWeight=2, gcrefRegs=18002A {x1 x3 x5 x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x6] + ldr x6, [x20, #0x48] + ; gcrRegs +[x6] + cmp x5, x6
bne G_M3645_IG10 ;; size=12 bbWeight=2 PerfScore 9.00
-G_M3645_IG09: ; bbWeight=2, gcrefRegs=001B {x0 x1 x3 x4}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x6-x7 x19] - mov x19, x4
+G_M3645_IG09: ; bbWeight=2, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x5-x6 x19] + mov x19, x3
; gcrRegs +[x19]
- ldr w4, [x19, #0x08] - ; gcrRegs -[x4] - cbnz w4, G_M3645_IG12
+ ldr w3, [x19, #0x08] + ; gcrRegs -[x3] + cbnz w3, G_M3645_IG12
;; size=12 bbWeight=2 PerfScore 9.00
-G_M3645_IG10: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - add w4, w5, #1 - sxtw w5, w4 - cmp w2, w5
+G_M3645_IG10: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + add w3, w4, #1 + sxtw w4, w3 + cmp w2, w4
bgt G_M3645_IG07 ;; size=16 bbWeight=4 PerfScore 10.00
-G_M3645_IG11: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+G_M3645_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
+ mov x0, x20 + ; gcrRegs +[x0]
mov x1, x19 ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4]
+ movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3]
; GC ptr vars -{V00}
- blr x4 - ; gcrRegs -[x0-x3 x19]
+ blr x3 + ; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0 b G_M3645_IG17
- ;; size=32 bbWeight=0.50 PerfScore 3.75 -G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x0 x3 x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.75 +G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19-x20]
; GC ptr vars +{V00}
- ldrb w1, [x0, #0x42] - ldrb w2, [x0, #0x44]
+ ldrb w1, [x20, #0x42] + ldrb w2, [x20, #0x44]
orr w1, w1, w2 cbz w1, G_M3645_IG13
- ldr x0, [x0, #0x08] - ldr x20, [fp, #0x28] // [V00 this] - ; gcrRegs +[x20]
+ ldr x0, [x20, #0x08] + ; gcrRegs +[x0]
ldr x1, [x20, #0x18] ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ubyte]]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3]
+ movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ubyte]]) + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x2]
; gcr arg pop 0 ldp x0, x1, [x20, #0x10] ; gcrRegs +[x0-x1] @@ -205,32 +204,28 @@ G_M3645_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRe blr x3 ; gcrRegs -[x0-x2] ; gcr arg pop 0
- mov x0, x20 - ; gcrRegs +[x0] - ldr x3, [fp, #0x20] // [V02 loc1] - ; gcrRegs +[x3] - ;; size=88 bbWeight=0.50 PerfScore 17.75 -G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x20] - ldrb w2, [x0, #0x43] - ldrb w1, [x0, #0x44]
+ ;; size=76 bbWeight=0.50 PerfScore 16.25 +G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ldrb w2, [x20, #0x43] + ldrb w1, [x20, #0x44]
orr w2, w2, w1 cbz w2, G_M3645_IG11
- ldr x2, [x0, #0x70]
+ ldr x2, [x20, #0x70]
; gcrRegs +[x2]
- ldr x1, [x0, #0x28]
+ ldr x1, [x20, #0x28]
; gcrRegs +[x1] mov x0, x19
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x1-x3]
+ ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ubyte]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x1-x2]
; gcr arg pop 0 str x0, [fp, #0x18] // [V21 tmp14] ; GC ptr vars +{V21}
- ldr x0, [fp, #0x28] // [V00 this]
+ mov x0, x20
ldr x1, [fp, #0x18] // [V21 tmp14] ; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -240,22 +235,22 @@ G_M3645_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=000 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- mov x20, x0 - ; gcrRegs +[x20] - ldr w2, [x20, #0x08] - ldp x3, x0, [fp, #0x20] // [V02 loc1], [V00 this] - ; gcrRegs +[x3]
+ mov x21, x0 + ; gcrRegs +[x21] + ldr w2, [x21, #0x08]
cbz w2, G_M3645_IG11
- ;; size=96 bbWeight=0.50 PerfScore 18.75 -G_M3645_IG14: ; bbWeight=0.50, gcrefRegs=180009 {x0 x3 x19 x20}, byrefRegs=0000 {}, byref, isz - ldrb w2, [x0, #0x43]
+ ;; size=92 bbWeight=0.50 PerfScore 16.50 +G_M3645_IG14: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + ldrb w2, [x20, #0x43]
...

+20 (+5.81%) : 290607.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)

@@ -12,7 +12,7 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <<unknown class>> ;* V03 tmp2 [V03,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp3 [V04,T00] ( 7, 19 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
+; V04 tmp3 [V04,T00] ( 8, 21 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
;* V05 tmp4 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.Emit.TypeBuilderImpl> ;* V07 tmp6 [V07,T08] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.TypeBuilderImpl> @@ -82,7 +82,12 @@ G_M47746_IG08: ; bbWeight=2, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000 ; gcrRegs +[x20] cmp x0, x20 beq G_M47746_IG11
- ;; size=8 bbWeight=2 PerfScore 3.00
+ ldr x1, [x0] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2 + ;; size=28 bbWeight=2 PerfScore 13.00
G_M47746_IG09: ; bbWeight=4, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ldr x1, [x0] ldr x1, [x1, #0xA0] @@ -162,7 +167,7 @@ G_M47746_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 344, prolog size 12, PerfScore 83.50, instruction count 86, allocated bytes for code 344 (MethodHash=c0db457d) for method System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
+; Total bytes of code 364, prolog size 12, PerfScore 93.50, instruction count 91, allocated bytes for code 364 (MethodHash=c0db457d) for method System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
; ============================================================ Unwind Info: @@ -173,7 +178,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 91 (0x0005b) Actual length = 364 (0x00016c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+9.09%) : 154029.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:GeneratePathToBuildToolsForToolsVersion(System.String,int):System.String (FullOpts)

@@ -28,7 +28,8 @@ G_M25420_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre G_M25420_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ldr w0, [x0, #0x08] ; gcrRegs -[x0]
- ;; size=4 bbWeight=0.25 PerfScore 0.75
+ cmp w0, #7 + ;; size=8 bbWeight=0.25 PerfScore 0.88
G_M25420_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, w1 movz x1, #0xD1FFAB1E // code for Microsoft.Build.Shared.FrameworkLocationHelper:GetPathToBuildToolsFromEnvironment(int):System.String @@ -42,7 +43,7 @@ G_M25420_IG05: ; bbWeight=1, epilog, nogc, extend ; gcr arg pop 0 ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 44, prolog size 8, PerfScore 10.25, instruction count 11, allocated bytes for code 44 (MethodHash=a7919cb3) for method Microsoft.Build.Shared.FrameworkLocationHelper:GeneratePathToBuildToolsForToolsVersion(System.String,int):System.String (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 10.38, instruction count 12, allocated bytes for code 48 (MethodHash=a7919cb3) for method Microsoft.Build.Shared.FrameworkLocationHelper:GeneratePathToBuildToolsForToolsVersion(System.String,int):System.String (FullOpts)
; ============================================================ Unwind Info: @@ -53,7 +54,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+10.20%) : 290642.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)

@@ -12,7 +12,7 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ;* V03 tmp2 [V03,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp3 [V04,T00] ( 7, 20 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
+; V04 tmp3 [V04,T00] ( 8, 22 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
;* V05 tmp4 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.Emit.TypeBuilderImpl> ;* V07 tmp6 [V07,T08] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.TypeBuilderImpl> @@ -52,7 +52,12 @@ G_M32453_IG04: ; bbWeight=2, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000 ; gcrRegs +[x0 x20] cmp x0, x20 beq G_M32453_IG07
- ;; size=8 bbWeight=2 PerfScore 3.00
+ ldr x1, [x0] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2 + ;; size=28 bbWeight=2 PerfScore 13.00
G_M32453_IG05: ; bbWeight=4, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ldr x1, [x0] ldr x1, [x1, #0xA0] @@ -116,7 +121,7 @@ G_M32453_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { brk_windows #0 ;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 12, PerfScore 62.75, instruction count 49, allocated bytes for code 196 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
+; Total bytes of code 216, prolog size 12, PerfScore 72.75, instruction count 54, allocated bytes for code 216 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
; ============================================================ Unwind Info: @@ -127,7 +132,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.windows.arm64.Release.mch

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

@@ -10,13 +10,13 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 9, 3.35) ref -> x20 class-hnd single-def <System.__Canon[]>
+; V01 arg1 [V01,T01] ( 8, 3.41) ref -> x20 class-hnd single-def <System.__Canon[]>
; V02 loc0 [V02,T02] ( 3, 2.01) ref -> x21 class-hnd single-def <System.__Canon[]> ; V03 loc1 [V03,T09] ( 4, 0.08) ref -> x21 class-hnd single-def <System.__Canon[]> ; V04 loc2 [V04,T08] ( 5, 0.13) int -> x22
-; V05 loc3 [V05,T05] ( 6, 0.46) ref -> x23 class-hnd <System.__Canon> -; V06 loc4 [V06,T04] ( 9, 0.62) int -> x24 -; V07 loc5 [V07,T03] ( 5, 0.67) ref -> x0 class-hnd <System.__Canon>
+; V05 loc3 [V05,T05] ( 6, 0.52) ref -> x23 class-hnd <System.__Canon> +; V06 loc4 [V06,T03] ( 6, 0.68) int -> x24 +; V07 loc5 [V07,T04] ( 5, 0.67) 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,T06] ( 2, 0.28) int -> x0 "guarded devirt return temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo> @@ -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, [x19, #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.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -59,39 +59,28 @@ G_M50755_IG04: ; bbWeight=0.99, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.99 PerfScore 4.93
-G_M50755_IG05: ; bbWeight=0.12, 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=0.12 PerfScore 0.87 -G_M50755_IG06: ; bbWeight=0.92, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref - b G_M50755_IG15 - ;; size=4 bbWeight=0.92 PerfScore 0.92 -G_M50755_IG07: ; bbWeight=0.01, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x23]
+G_M50755_IG05: ; bbWeight=0.01, 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_IG15
;; size=16 bbWeight=0.01 PerfScore 0.07
-G_M50755_IG08: ; bbWeight=0.02, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG06: ; bbWeight=0.02, 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_IG15
;; size=12 bbWeight=0.02 PerfScore 0.08
-G_M50755_IG09: ; bbWeight=0.02, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG07: ; bbWeight=0.02, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0] mov w24, wzr ldr w0, [x20, #0x08] cmp w0, #0
- ble G_M50755_IG16
+ ble G_M50755_IG14
;; size=16 bbWeight=0.02 PerfScore 0.08
-G_M50755_IG10: ; bbWeight=0.14, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG08: ; bbWeight=0.14, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add x0, x20, #16 ; byrRegs +[x0] ldr x0, [x0, w24, UXTW #3] @@ -102,9 +91,9 @@ G_M50755_IG10: ; bbWeight=0.14, 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=0.14 PerfScore 1.31
-G_M50755_IG11: ; bbWeight=0.12, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG09: ; bbWeight=0.12, 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=0.12, 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=0.12 PerfScore 0.75 -G_M50755_IG12: ; bbWeight=0.03, 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=0.03 PerfScore 0.03 -G_M50755_IG13: ; bbWeight=0.14, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ cmp x1, x0 + bne G_M50755_IG11 + b G_M50755_IG13 + ;; size=48 bbWeight=0.12 PerfScore 1.73 +G_M50755_IG10: ; bbWeight=0.14, gcrefRegs=B80001 {x0 x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0] mov x1, x23 ; gcrRegs +[x1] @@ -129,16 +120,20 @@ G_M50755_IG13: ; bbWeight=0.14, 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_IG13
;; size=24 bbWeight=0.14 PerfScore 1.58
-G_M50755_IG14: ; bbWeight=0.14, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M50755_IG11: ; bbWeight=0.14, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1 ldr w1, [x20, #0x08] cmp w1, w24
- ble G_M50755_IG16 - b G_M50755_IG10 - ;; size=20 bbWeight=0.14 PerfScore 0.83 -G_M50755_IG15: ; bbWeight=0.06, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref
+ bgt G_M50755_IG08 + ;; size=16 bbWeight=0.14 PerfScore 0.69 +G_M50755_IG12: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + b G_M50755_IG14 + ;; size=4 bbWeight=0.03 PerfScore 0.03 +G_M50755_IG13: ; bbWeight=0.12, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x23]
sxtw x1, w24 mov x0, x20 ; gcrRegs +[x0] @@ -147,14 +142,14 @@ G_M50755_IG15: ; bbWeight=0.06, gcrefRegs=B80000 {x19 x20 x21 x23}, byref bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x23] ; gcr arg pop 0
- ;; size=16 bbWeight=0.06 PerfScore 0.14 -G_M50755_IG16: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=16 bbWeight=0.12 PerfScore 0.29 +G_M50755_IG14: ; bbWeight=0.03, 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.03 PerfScore 0.15
-G_M50755_IG17: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M50755_IG15: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] add x14, x19, #8 ; byrRegs +[x14] @@ -164,23 +159,15 @@ G_M50755_IG17: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs -[x15 x19-x20] ; byrRegs -[x14] ;; size=12 bbWeight=0.01 PerfScore 0.03
-G_M50755_IG18: ; bbWeight=0.01, epilog, nogc, extend
+G_M50755_IG16: ; bbWeight=0.01, 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.01 PerfScore 0.07
-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, [x20, #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 23.32, 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 22.52, 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 +178,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)

-12 (-5.17%) : 103240.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)

@@ -15,7 +15,7 @@ ;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T09] ( 2, 4 ) ref -> x3 class-hnd single-def "impAppendStmt" <int[]>
-; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x19 "Inline return value spill temp"
+; V06 tmp2 [V06,T12] ( 2, 2 ) int -> x9 "Inline return value spill temp"
; V07 tmp3 [V07,T08] ( 4, 4.58) byref -> x3 single-def "Inline stloc first use temp" ; V08 tmp4 [V08,T00] ( 3, 6.58) long -> x4 "Inlining Arg" ; V09 tmp5 [V09,T07] ( 4, 4.87) int -> x5 "Inline stloc first use temp" @@ -23,17 +23,16 @@ ; V11 tmp7 [V11,T04] ( 5, 5.85) byref -> x7 "Inline stloc first use temp" ; V12 tmp8 [V12,T05] ( 5, 5.16) int -> x8 "Inline stloc first use temp" ; V13 tmp9 [V13,T11] ( 2, 2.58) long -> x9 "Inline stloc first use temp"
-; V14 tmp10 [V14,T10] ( 3, 2.98) long -> x19 "Inline stloc first use temp"
+; V14 tmp10 [V14,T10] ( 3, 2.98) long -> x9 "Inline stloc first use temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M34926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]! - str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M34926_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref ; gcrRegs +[x2] ; byrRegs +[x0] @@ -71,8 +70,8 @@ G_M34926_IG03: ; bbWeight=1.29, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x ;; size=36 bbWeight=1.29 PerfScore 14.84 G_M34926_IG04: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0089 {x0 x3 x7}, byref, isz ldr x9, [x7, #0x10]
- eor x19, x9, x1 - cmp x19, #1
+ eor x9, x9, x1 + cmp x9, #1
bhi G_M34926_IG08 ;; size=16 bbWeight=0.99 PerfScore 4.96 G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x7}, byref, isz @@ -84,7 +83,7 @@ G_M34926_IG05: ; bbWeight=0.99, gcrefRegs=0004 {x2}, byrefRegs=0081 {x0 x ;; size=16 bbWeight=0.99 PerfScore 14.38 G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz ; byrRegs -[x7]
- cmp w19, #1
+ cmp w9, #1
bne G_M34926_IG10 mov x1, x2 ; gcrRegs +[x1] @@ -94,10 +93,9 @@ G_M34926_IG06: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, by ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 3.00 G_M34926_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M34926_IG08: ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, gcvars, byref, isz ; gcrRegs +[x2] ; byrRegs +[x0 x3] @@ -106,8 +104,8 @@ G_M34926_IG08: ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=000 G_M34926_IG09: ; bbWeight=1.29, gcrefRegs=0004 {x2}, byrefRegs=0009 {x0 x3}, byref, isz add w6, w6, #1 add w5, w5, w6
- ldr w7, [x3, #0x04] - and w5, w5, w7
+ ldr w9, [x3, #0x04] + and w5, w5, w9
cmp w6, #8 blt G_M34926_IG03 ;; size=24 bbWeight=1.29 PerfScore 7.74 @@ -123,23 +121,22 @@ G_M34926_IG10: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, ; gcr arg pop 0 ;; size=20 bbWeight=0.01 PerfScore 0.05 G_M34926_IG11: ; bbWeight=0.01, epilog, nogc, extend
- ldr x19, [sp, #0x18] - ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=0.01 PerfScore 0.03
+ ;; size=8 bbWeight=0.01 PerfScore 0.02
-; Total bytes of code 232, prolog size 12, PerfScore 69.30, instruction count 58, allocated bytes for code 232 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
+; Total bytes of code 220, prolog size 8, PerfScore 66.28, instruction count 55, allocated bytes for code 220 (MethodHash=f2f07791) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 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) @@ -150,10 +147,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24] - 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! - E4 end - E4 end
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end E4 end

-12 (-4.69%) : 26649.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Canon]:Enqueue(System.Canon):this (Instrumented Tier1)

@@ -13,98 +13,72 @@ ; V01 arg1 [V01,T03] ( 4, 4 ) ref -> x20 class-hnd single-def <System.__Canon> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp2 [V04,T00] ( 4, 8 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]> -; V05 tmp3 [V05,T04] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> -; V06 tmp4 [V06,T01] ( 6, 6.00) int -> x14 "Inline stloc first use temp" -; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x15 "Inline stloc first use temp"
+; V04 tmp2 [V04,T00] ( 4, 8 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]> +; V05 tmp3 [V05,T04] ( 3, 3 ) ref -> x1 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> +; V06 tmp4 [V06,T01] ( 6, 6.00) int -> x3 "Inline stloc first use temp" +; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x4 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T10] ( 3, 2.00) int -> x24 "Inline stloc first use temp" -; V10 cse0 [V10,T05] ( 3, 3 ) byref -> x0 "CSE - aggressive" -; V11 cse1 [V11,T06] ( 3, 3 ) byref -> x12 "CSE - aggressive" -; V12 cse2 [V12,T07] ( 3, 3.00) byref -> x23 hoist "CSE - aggressive" -; V13 cse3 [V13,T09] ( 3, 3.00) int -> x1 "CSE - aggressive"
+; V09 tmp7 [V09,T10] ( 3, 2.00) int -> x4 "Inline stloc first use temp" +; V10 cse0 [V10,T05] ( 3, 3 ) byref -> x21 "CSE - aggressive" +; V11 cse1 [V11,T06] ( 3, 3 ) byref -> x14 "CSE - aggressive" +; V12 cse2 [V12,T07] ( 3, 3.00) byref -> x2 hoist "CSE - aggressive" +; V13 cse3 [V13,T09] ( 3, 3.00) int -> x22 "CSE - aggressive"
; ; Lcl frame size = 0 G_M15407_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] mov x20, x1 ; gcrRegs +[x20]
- ;; size=28 bbWeight=1 PerfScore 5.50
+ ;; size=24 bbWeight=1 PerfScore 4.50
G_M15407_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- add x14, x19, #16 - ; byrRegs +[x14] - ldapr x21, [x14] - ; gcrRegs +[x21] - ldr x22, [x21, #0x08] - ; gcrRegs +[x22] - add x23, x21, #0xD1FFAB1E - ; byrRegs +[x23] - ;; size=16 bbWeight=1 PerfScore 7.00 -G_M15407_IG03: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=800000 {x23}, byref, isz - ; byrRegs -[x14] - ldapr w14, [x23] - ldr w15, [x21, #0x18] - and w15, w14, w15 - ldr w12, [x22, #0x08] - cmp w15, w12 - bhs G_M15407_IG10 - ubfiz x15, x15, #4, #32 - add x15, x15, #16 - add x12, x22, x15 - ; byrRegs +[x12] - add x0, x12, #8
+ add x0, x19, #16
; byrRegs +[x0]
- ldapr w15, [x0] - sub w24, w15, w14 - cbnz w24, G_M15407_IG07 - ;; size=52 bbWeight=1 PerfScore 18.00 -G_M15407_IG04: ; bbWeight=1.00, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=801001 {x0 x12 x23}, byref, isz - add w1, w14, #1 - mov w15, w14 - casal w15, w1, [x23] - cmp w15, w14 - bne G_M15407_IG03 - ;; size=20 bbWeight=1.00 PerfScore 5.50 -G_M15407_IG05: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=1001 {x0 x12}, byref - ; gcrRegs -[x19 x21-x22] - ; byrRegs -[x23] - mov x14, x12 - ; byrRegs +[x14] - mov x15, x20 - ; gcrRegs +[x15] - bl CORINFO_HELP_CHECKED_ASSIGN_REF - ; gcrRegs -[x15 x20] - ; byrRegs -[x12 x14] - stlr w1, [x0] - movz x0, #0xD1FFAB1E
+ ldapr x0, [x0] + ; gcrRegs +[x0]
; byrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - bl CORINFO_HELP_COUNTPROFILE32 - ; gcr arg pop 0 - ;; size=32 bbWeight=1.00 PerfScore 5.50 -G_M15407_IG06: ; bbWeight=1.00, 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=1.00 PerfScore 5.00 -G_M15407_IG07: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=800000 {x23}, gcvars, byref, isz - ; gcrRegs +[x19-x22] - ; byrRegs +[x23] - tbz w24, #31, G_M15407_IG03
+ ldr x1, [x0, #0x08] + ; gcrRegs +[x1] + add x2, x0, #0xD1FFAB1E + ; byrRegs +[x2] + ;; size=16 bbWeight=1 PerfScore 7.00 +G_M15407_IG03: ; bbWeight=1, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0004 {x2}, byref, isz + ldapr w3, [x2] + ldr w4, [x0, #0x18] + and w4, w3, w4 + ldr w5, [x1, #0x08] + cmp w4, w5 + bhs G_M15407_IG10 + ubfiz x4, x4, #4, #32 + add x4, x4, #16 + add x14, x1, x4 + ; byrRegs +[x14] + add x21, x14, #8 + ; byrRegs +[x21] + ldapr w4, [x21] + sub w4, w4, w3 + cbnz w4, G_M15407_IG05 + ;; size=52 bbWeight=1 PerfScore 18.00 +G_M15407_IG04: ; bbWeight=1.00, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=204004 {x2 x14 x21}, byref, isz + add w22, w3, #1 + mov w4, w3 + casal w4, w22, [x2] + cmp w4, w3 + bne G_M15407_IG03 + b G_M15407_IG08 + ;; size=24 bbWeight=1.00 PerfScore 6.50 +G_M15407_IG05: ; bbWeight=0.00, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0004 {x2}, byref, isz + ; byrRegs -[x14 x21] + tbz w4, #31, G_M15407_IG03
;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M15407_IG08: ; bbWeight=1.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs -[x21-x22] - ; byrRegs -[x23]
+G_M15407_IG06: ; bbWeight=1.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0-x1] + ; byrRegs -[x2]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -124,22 +98,42 @@ G_M15407_IG08: ; bbWeight=1.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] ;; size=56 bbWeight=1.00 PerfScore 10.50
-G_M15407_IG09: ; bbWeight=1.00, epilog, nogc, extend - ldp x23, x24, [sp, #0x30]
+G_M15407_IG07: ; bbWeight=1.00, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x40
+ ldp fp, lr, [sp], #0x30
br x2 ; gcr arg pop 0
- ;; size=20 bbWeight=1.00 PerfScore 5.00
+ ;; size=16 bbWeight=1.00 PerfScore 4.00 +G_M15407_IG08: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=204000 {x14 x21}, gcvars, byref + ; gcrRegs -[x0-x1 x19] + ; byrRegs +[x14 x21] + mov x15, x20 + ; gcrRegs +[x15] + bl CORINFO_HELP_CHECKED_ASSIGN_REF + ; gcrRegs -[x15 x20] + ; byrRegs -[x14] + stlr w22, [x21] + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + bl CORINFO_HELP_COUNTPROFILE32 + ; byrRegs -[x21] + ; gcr arg pop 0 + ;; size=28 bbWeight=1.00 PerfScore 5.00 +G_M15407_IG09: ; bbWeight=1.00, epilog, nogc, extend + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 4.00
G_M15407_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1 x19-x20]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_windows #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 256, prolog size 28, PerfScore 62.00, instruction count 64, allocated bytes for code 256 (MethodHash=96c6c3d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Instrumented Tier1)
+; Total bytes of code 244, prolog size 24, PerfScore 59.50, instruction count 61, allocated bytes for code 244 (MethodHash=96c6c3d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Instrumented Tier1)
; ============================================================ Unwind Info: @@ -150,7 +144,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 64 (0x00040) Actual length = 256 (0x000100)
+ 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) @@ -162,9 +156,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

+48 (+11.43%) : 147028.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)

@@ -10,11 +10,11 @@ ; 2 inlinees with PGO data; 12 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T04] ( 8,101.92) ref -> [fp+0xE0] this class-hnd EH-live single-def tier0-frame <Microsoft.CodeAnalysis.PEModule>
+; V00 this [V00,T04] ( 9,101.92) ref -> [fp+0xE0] this class-hnd EH-live single-def tier0-frame <Microsoft.CodeAnalysis.PEModule>
; V01 loc0 [V01 ] ( 8,500.84) struct (16) [fp+0xD0] do-not-enreg[XSF] addr-exposed ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator> ; V02 loc1 [V02,T07] ( 1, 1 ) struct (16) [fp+0xC0] do-not-enreg[SF] ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttributeHandleCollection> ;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.CustomAttributeHandle>
-; V04 loc3 [V04,T02] ( 3,199.84) int -> x20
+; V04 loc3 [V04,T02] ( 5,199.84) int -> x20
;* V05 loc4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Metadata.TypeDefinitionHandle> ; V06 loc5 [V06,T06] ( 4, 1 ) struct (16) [fp+0x98] do-not-enreg[SFR] multireg-ret ld-addr-op tier0-frame <System.Reflection.Metadata.CustomAttribute> ;* V07 loc6 [V07,T16] ( 0, 0 ) ubyte -> zero-ref @@ -35,7 +35,7 @@ ;* V22 tmp14 [V22 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle> ;* V23 tmp15 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V24 tmp16 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
-;* V25 tmp17 [V25,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V25 tmp17 [V25,T05] ( 2, 0 ) ubyte -> x1 "Inline return value spill temp"
;* V26 tmp18 [V26 ] ( 0, 0 ) int -> zero-ref "field V03._rowId (fldOffset=0x0)" P-INDEP ; V27 tmp19 [V27,T13] ( 2, 0 ) int -> x1 "field V05._rowId (fldOffset=0x0)" P-INDEP ; V28 tmp20 [V28,T14] ( 2, 0 ) int -> x0 "field V10._vToken (fldOffset=0x0)" P-INDEP @@ -45,7 +45,7 @@ ;* V32 tmp24 [V32 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._reader (fldOffset=0x0)" P-INDEP ;* V33 tmp25 [V33 ] ( 0, 0 ) int -> zero-ref single-def "field V14._lastRowId (fldOffset=0x8)" P-INDEP ;* V34 tmp26 [V34 ] ( 0, 0 ) int -> zero-ref single-def "field V14._currentRowId (fldOffset=0xc)" P-INDEP
-; V35 tmp27 [V35,T01] ( 5,199.84) int -> x19 "field V18._rowId (fldOffset=0x0)" P-INDEP
+; V35 tmp27 [V35,T01] ( 6,199.84) int -> x19 "field V18._rowId (fldOffset=0x0)" P-INDEP
; V36 tmp28 [V36,T03] ( 2,199.84) int -> x19 "field V20._rowId (fldOffset=0x0)" P-INDEP ;* V37 tmp29 [V37 ] ( 0, 0 ) int -> zero-ref "field V22._rowId (fldOffset=0x0)" P-INDEP ; V38 tmp30 [V38,T15] ( 2, 0 ) int -> x1 "field V24._rowId (fldOffset=0x0)" P-INDEP @@ -67,18 +67,16 @@ G_M13056_IG01: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=000 ;; size=24 bbWeight=0.08 PerfScore 0.48 G_M13056_IG02: ; bbWeight=0.08, gcVars=0000000000000010 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars +{V00 V04}
- b G_M13056_IG05
+ b G_M13056_IG04
;; size=4 bbWeight=0.08 PerfScore 0.08 G_M13056_IG03: ; bbWeight=99.92, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz ldr x1, [fp, #0xD0] // [V01 loc0] ; gcrRegs +[x1] ldr x1, [x1, #0xD1FFAB1E]
- cbnz x1, G_M13056_IG08
+ cbnz x1, G_M13056_IG07
ldr w1, [fp, #0xDC] // [V01 loc0+0x0c] ; gcrRegs -[x1] and w19, w1, #0xD1FFAB1E
- ;; size=20 bbWeight=99.92 PerfScore 849.31 -G_M13056_IG04: ; bbWeight=99.92, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
mov w1, w19 movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -89,20 +87,56 @@ G_M13056_IG04: ; bbWeight=99.92, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, ; gcr arg pop 0 sxtw w20, w0 cmn w20, #1
+ bne G_M13056_IG08 + ;; size=56 bbWeight=99.92 PerfScore 1648.67 +G_M13056_IG04: ; bbWeight=100, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xE0] // [V00 this] ; gcrRegs +[x0]
- bne G_M13056_IG06 - ;; size=40 bbWeight=99.92 PerfScore 999.19 -G_M13056_IG05: ; bbWeight=100, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
ldp w2, w1, [fp, #0xD8] // [V01 loc0+0x08], [V01 loc0+0x0c] cmp w1, w2
- bge G_M13056_IG07
+ bge G_M13056_IG06
add w1, w1, #1 str w1, [fp, #0xDC] // [V01 loc0+0x0c] b G_M13056_IG03
- ;; size=24 bbWeight=100 PerfScore 600.00
+ ;; size=28 bbWeight=100 PerfScore 800.00 +G_M13056_IG05: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz + cbnz w1, G_M13056_IG03 + b G_M13056_IG09 + ;; size=8 bbWeight=0 PerfScore 0.00
G_M13056_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ mov w1, #0xD1FFAB1E + str w1, [fp, #0xDC] // [V01 loc0+0x0c] + mov w1, wzr + b G_M13056_IG05 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M13056_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + add x0, fp, #208 // [V01 loc0] + movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator:GetCurrentCustomAttributeIndirect():System.Reflection.Metadata.CustomAttributeHandle:this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + blr x1 + ; gcr arg pop 0 + sxtw w19, w0 + ldr x0, [fp, #0xE0] // [V00 this] + ; gcrRegs +[x0] + mov w1, w19 + movz x2, #0xD1FFAB1E // code for <unknown method> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + ldr x2, [x2] + blr x2 + ; gcrRegs -[x0] + ; gcr arg pop 0 + sxtw w20, w0 + cmn w20, #1 + beq G_M13056_IG04 + ;; size=68 bbWeight=0 PerfScore 0.00 +G_M13056_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #2
+ ldr x0, [fp, #0xE0] // [V00 this] + ; gcrRegs +[x0]
strb w1, [x0, #0x6D] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PEModule:get_MetadataReader():System.Reflection.Metadata.MetadataReader:this movk x1, #0xD1FFAB1E LSL #16 @@ -152,29 +186,8 @@ G_M13056_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] ; gcr arg pop 0 b G_M13056_IG11
- ;; size=160 bbWeight=0 PerfScore 0.00 -G_M13056_IG07: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs +[x0] - mov w1, #0xD1FFAB1E - str w1, [fp, #0xDC] // [V01 loc0+0x0c] - b G_M13056_IG09 - ;; size=12 bbWeight=0 PerfScore 0.00 -G_M13056_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0] - add x0, fp, #208 // [V01 loc0] - movz x1, #0xD1FFAB1E // code for System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator:GetCurrentCustomAttributeIndirect():System.Reflection.Metadata.CustomAttributeHandle:this - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - blr x1 - ; gcr arg pop 0 - sxtw w19, w0 - ldr x0, [fp, #0xE0] // [V00 this] - ; gcrRegs +[x0] - b G_M13056_IG04 - ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=164 bbWeight=0 PerfScore 0.00
G_M13056_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov w0, #1 ldr x19, [fp, #0xE0] // [V00 this] ; gcrRegs +[x19] @@ -218,7 +231,7 @@ G_M13056_IG15: ; bbWeight=0, funclet epilog, nogc, extend ret lr ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 420, prolog size 24, PerfScore 2449.07, instruction count 105, allocated bytes for code 420 (MethodHash=ddc4ccff) for method Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
+; Total bytes of code 468, prolog size 24, PerfScore 2449.23, instruction count 117, allocated bytes for code 468 (MethodHash=ddc4ccff) for method Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
; ============================================================ Unwind Info: @@ -229,7 +242,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 107 (0x0006b) Actual length = 428 (0x0001ac)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+28 (+15.56%) : 335697.dasm - System.Collections.Concurrent.ConcurrentQueue1[System.Diagnostics.Metrics.Measurement1[double]]:Enqueue(System.Diagnostics.Metrics.Measurement`1[double]):this (Tier1)

@@ -10,121 +10,126 @@ ; Final local variable assignments ; ; V00 this [V00,T02] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.Diagnostics.Metrics.Measurement`1[double]]>
-; V01 arg1 [V01,T01] ( 5, 4.96) struct (16) [fp+0x10] do-not-enreg[SA] multireg-arg single-def <System.Diagnostics.Metrics.Measurement`1[double]>
+; V01 arg1 [V01,T01] ( 5, 4.96) struct (16) [fp+0x18] do-not-enreg[SA] multireg-arg single-def <System.Diagnostics.Metrics.Measurement`1[double]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V04 tmp2 [V04,T00] ( 4, 8 ) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Diagnostics.Metrics.Measurement`1[double]]>
-; V05 tmp3 [V05,T04] ( 5, 4.92) ref -> x2 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> -; V06 tmp4 [V06,T03] ( 6, 5.83) int -> x14 "Inline stloc first use temp" -; V07 tmp5 [V07,T06] ( 3, 3 ) int -> x13 "Inline stloc first use temp"
+; V05 tmp3 [V05,T04] ( 5, 4.92) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> +; V06 tmp4 [V06,T03] ( 6, 5.83) int -> x3 "Inline stloc first use temp" +; V07 tmp5 [V07,T06] ( 3, 3 ) int -> x4 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T09] ( 3, 2.06) int -> x5 "Inline stloc first use temp" -; V10 cse0 [V10,T05] ( 4, 3.92) long -> x4 "CSE - aggressive" -; V11 cse1 [V11,T07] ( 3, 2.94) byref -> x3 hoist "CSE - aggressive" -; V12 cse2 [V12,T10] ( 2, 2 ) int -> x12 "CSE - aggressive" -; V13 cse3 [V13,T08] ( 3, 2.85) int -> x5 "CSE - aggressive"
+; V09 tmp7 [V09,T09] ( 3, 2.06) int -> x4 "Inline stloc first use temp" +; V10 cse0 [V10,T05] ( 4, 3.92) long -> x20 "CSE - aggressive" +; V11 cse1 [V11,T07] ( 3, 2.94) byref -> x2 hoist "CSE - aggressive" +; V12 cse2 [V12,T10] ( 2, 2 ) int -> x5 "CSE - aggressive" +; V13 cse3 [V13,T08] ( 3, 2.85) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M64303_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
+ stp fp, lr, [sp, #-0x40]! + stp x19, x20, [sp, #0x28] + str x21, [sp, #0x38]
mov fp, sp
- stp x1, x2, [fp, #0x10] // [V01 arg1], [V01 arg1+0x08] - ;; size=12 bbWeight=1 PerfScore 2.50
+ stp x1, x2, [fp, #0x18] // [V01 arg1], [V01 arg1+0x08] + ;; size=20 bbWeight=1 PerfScore 4.50
G_M64303_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ; gcrRegs +[x0]
- add x14, x0, #16 - ; byrRegs +[x14] - ldapr x1, [x14] - ; gcrRegs +[x1] - ldr x2, [x1, #0x08] - ; gcrRegs +[x2] - add x3, x1, #0xD1FFAB1E - ; byrRegs +[x3] - ;; size=16 bbWeight=1 PerfScore 7.00 -G_M64303_IG03: ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0008 {x3}, byref, isz - ; byrRegs -[x14] - ldapr w14, [x3] - ldr w13, [x1, #0x18] - and w13, w14, w13 - ldr w12, [x2, #0x08] - cmp w13, w12 - bhs G_M64303_IG10 - mov w12, #24 - mov x15, #16 - umaddl x4, w13, w12, x15 - add x13, x2, x4 - ; byrRegs +[x13] - ldapr w13, [x13] - ; byrRegs -[x13] - sub w5, w13, w14 - cbnz w5, G_M64303_IG07 - ;; size=52 bbWeight=1 PerfScore 22.00 -G_M64303_IG04: ; bbWeight=0.94, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0008 {x3}, byref, isz - add w5, w14, #1 - mov w13, w14 - casal w13, w5, [x3] - cmp w13, w14 - bne G_M64303_IG03 - ;; size=20 bbWeight=0.94 PerfScore 5.19 -G_M64303_IG05: ; bbWeight=0.96, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0-x1] - ; byrRegs -[x3] - add x14, x2, x4 - ; byrRegs +[x14] - add x14, x14, #8 - add x13, fp, #16 // [V01 arg1] - ; byrRegs +[x13] - bl CORINFO_HELP_ASSIGN_BYREF - ldr x12, [x13], #0x08 - str x12, [x14], #0x08 - add x1, x2, x4
+ add x1, x0, #16
; byrRegs +[x1]
- stlr w5, [x1] - ;; size=32 bbWeight=0.96 PerfScore 7.70 -G_M64303_IG06: ; bbWeight=0.96, epilog, nogc, extend - ldp fp, lr, [sp], #0x20 - ret lr - ;; size=8 bbWeight=0.96 PerfScore 1.92 -G_M64303_IG07: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0008 {x3}, gcvars, byref, isz - ; gcrRegs +[x0-x1] - ; byrRegs -[x1 x13-x14] +[x3] - tbz w5, #31, G_M64303_IG03
+ ldapr x1, [x1] + ; gcrRegs +[x1] + ; byrRegs -[x1] + ldr x19, [x1, #0x08] + ; gcrRegs +[x19] + add x2, x1, #0xD1FFAB1E + ; byrRegs +[x2] + ;; size=16 bbWeight=1 PerfScore 7.00 +G_M64303_IG03: ; bbWeight=1, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=0004 {x2}, byref, isz + ldapr w3, [x2] + ldr w4, [x1, #0x18] + and w4, w3, w4 + ldr w5, [x19, #0x08] + cmp w4, w5 + bhs G_M64303_IG10 + mov w5, #24 + mov x6, #16 + umaddl x20, w4, w5, x6 + add x4, x19, x20 + ; byrRegs +[x4] + ldapr w4, [x4] + ; byrRegs -[x4] + sub w4, w4, w3 + cbnz w4, G_M64303_IG05 + ;; size=52 bbWeight=1 PerfScore 22.00 +G_M64303_IG04: ; bbWeight=0.94, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=0004 {x2}, byref, isz + add w21, w3, #1 + mov w4, w3 + casal w4, w21, [x2] + cmp w4, w3 + bne G_M64303_IG03 + b G_M64303_IG08 + ;; size=24 bbWeight=0.94 PerfScore 6.14 +G_M64303_IG05: ; bbWeight=0.06, gcrefRegs=80003 {x0 x1 x19}, byrefRegs=0004 {x2}, byref, isz + tbz w4, #31, G_M64303_IG03
;; size=4 bbWeight=0.06 PerfScore 0.06
-G_M64303_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs -[x1-x2] - ; byrRegs -[x3] - ldp x1, x2, [fp, #0x10] // [V01 arg1], [V01 arg1+0x08]
+G_M64303_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs -[x1 x19] + ; byrRegs -[x2] + ldp x1, x2, [fp, #0x18] // [V01 arg1], [V01 arg1+0x08]
; gcrRegs +[x1] movz x3, #0xD1FFAB1E // code for <unknown method> movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=20 bbWeight=1 PerfScore 7.50
-G_M64303_IG09: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x20
+G_M64303_IG07: ; bbWeight=1, epilog, nogc, extend + ldr x21, [sp, #0x38] + ldp x19, x20, [sp, #0x28] + ldp fp, lr, [sp], #0x40
br x3 ; gcr arg pop 0
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=16 bbWeight=1 PerfScore 5.00 +G_M64303_IG08: ; bbWeight=0.96, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0-x1] +[x19] + add x14, x19, x20 + ; byrRegs +[x14] + add x14, x14, #8 + add x13, fp, #24 // [V01 arg1] + ; byrRegs +[x13] + bl CORINFO_HELP_ASSIGN_BYREF + ldr x12, [x13], #0x08 + str x12, [x14], #0x08 + add x0, x19, x20 + ; byrRegs +[x0] + stlr w21, [x0] + ;; size=32 bbWeight=0.96 PerfScore 7.70 +G_M64303_IG09: ; bbWeight=0.96, epilog, nogc, extend + ldr x21, [sp, #0x38] + ldp x19, x20, [sp, #0x28] + ldp fp, lr, [sp], #0x40 + ret lr + ;; size=16 bbWeight=0.96 PerfScore 4.81
G_M64303_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x19] + ; byrRegs -[x0 x13-x14]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_windows #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 180, prolog size 12, PerfScore 55.87, instruction count 45, allocated bytes for code 180 (MethodHash=087d04d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Diagnostics.Metrics.Measurement`1[double]]:Enqueue(System.Diagnostics.Metrics.Measurement`1[double]):this (Tier1)
+; Total bytes of code 208, prolog size 20, PerfScore 64.70, instruction count 52, allocated bytes for code 208 (MethodHash=087d04d0) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Diagnostics.Metrics.Measurement`1[double]]:Enqueue(System.Diagnostics.Metrics.Measurement`1[double]):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 45 (0x0002d) Actual length = 180 (0x0000b4)
+ 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) @@ -135,7 +140,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ D0 87 save_reg X#2 Z#7 (0x07); str x21, [sp, #56] + C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40] + 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end E4 end

+32 (+20.00%) : 608398.dasm - System.Collections.Concurrent.ConcurrentQueue1[System.Collections.Generic.KeyValuePair2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)

@@ -9,30 +9,32 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
+; V00 this [V00,T01] ( 4, 3.99) ref -> x0 this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Collections.Generic.KeyValuePair`2[int,long]> ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V04 tmp2 [V04,T00] ( 4, 8 ) ref -> x3 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Collections.Generic.KeyValuePair`2[int,long]]>
-; V05 tmp3 [V05,T06] ( 5, 4.98) ref -> x4 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> -; V06 tmp4 [V06,T02] ( 6, 5.96) int -> x6 "Inline stloc first use temp" -; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x7 "Inline stloc first use temp"
+; V05 tmp3 [V05,T04] ( 5, 4.98) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>> +; V06 tmp4 [V06,T02] ( 6, 5.96) int -> x5 "Inline stloc first use temp" +; V07 tmp5 [V07,T08] ( 3, 3 ) int -> x6 "Inline stloc first use temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T11] ( 3, 2.01) int -> x8 "Inline stloc first use temp" -; V10 tmp8 [V10,T04] ( 3, 2.99) int -> x1 single-def "field V01.key (fldOffset=0x0)" P-INDEP -; V11 tmp9 [V11,T05] ( 3, 2.99) long -> x2 single-def "field V01.value (fldOffset=0x8)" P-INDEP -; V12 tmp10 [V12,T03] ( 3, 5.95) byref -> x3 single-def "BlockOp address local" -; V13 cse0 [V13,T07] ( 4, 3.98) long -> x7 "CSE - aggressive" -; V14 cse1 [V14,T09] ( 3, 2.99) byref -> x5 hoist "CSE - aggressive" -; V15 cse2 [V15,T12] ( 2, 2 ) int -> x8 "CSE - aggressive" -; V16 cse3 [V16,T10] ( 3, 2.97) int -> x8 "CSE - aggressive"
+; V09 tmp7 [V09,T11] ( 3, 2.01) int -> x6 "Inline stloc first use temp" +; V10 tmp8 [V10,T05] ( 3, 2.98) int -> x1 single-def "field V01.key (fldOffset=0x0)" P-INDEP +; V11 tmp9 [V11,T06] ( 3, 2.98) long -> x2 single-def "field V01.value (fldOffset=0x8)" P-INDEP +; V12 tmp10 [V12,T03] ( 3, 5.95) byref -> x0 single-def "BlockOp address local" +; V13 cse0 [V13,T07] ( 4, 3.98) long -> x20 "CSE - aggressive" +; V14 cse1 [V14,T09] ( 3, 2.99) byref -> x4 hoist "CSE - aggressive" +; V15 cse2 [V15,T12] ( 2, 2 ) int -> x7 "CSE - aggressive" +; V16 cse3 [V16,T10] ( 3, 2.97) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53455_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]! + stp x19, x20, [sp, #0x18] + str x21, [sp, #0x28]
mov fp, sp
- ;; size=8 bbWeight=1 PerfScore 1.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M53455_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref ; gcrRegs +[x0] add x3, x0, #16 @@ -40,88 +42,93 @@ G_M53455_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ldapr x3, [x3] ; gcrRegs +[x3] ; byrRegs -[x3]
- ldr x4, [x3, #0x08] - ; gcrRegs +[x4] - add x5, x3, #0xD1FFAB1E - ; byrRegs +[x5] - ;; size=16 bbWeight=1 PerfScore 7.00 -G_M53455_IG03: ; bbWeight=1, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, byref, isz - ldapr w6, [x5] - ldr w7, [x3, #0x18] - and w7, w6, w7 - ldr w8, [x4, #0x08] - cmp w7, w8 - bhs G_M53455_IG10 - mov w8, #24 - mov x9, #16 - umaddl x7, w7, w8, x9 - add x8, x4, x7 - ; byrRegs +[x8] - ldapr w8, [x8] - ; byrRegs -[x8] - sub w8, w8, w6 - cbnz w8, G_M53455_IG07 - ;; size=52 bbWeight=1 PerfScore 22.00 -G_M53455_IG04: ; bbWeight=0.99, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, byref, isz - add w8, w6, #1 - mov w9, w6 - casal w9, w8, [x5] - cmp w9, w6 - bne G_M53455_IG03 - ;; size=20 bbWeight=0.99 PerfScore 5.43 -G_M53455_IG05: ; bbWeight=0.99, gcrefRegs=0010 {x4}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x3] - ; byrRegs -[x5] - add x3, x4, x7 - ; byrRegs +[x3] - str w1, [x3, #0x08] - str x2, [x3, #0x10] - add x4, x4, x7 - ; gcrRegs -[x4]
+ ldr x19, [x3, #0x08] + ; gcrRegs +[x19] + add x4, x3, #0xD1FFAB1E
; byrRegs +[x4]
- stlr w8, [x4] - ;; size=20 bbWeight=0.99 PerfScore 3.97 -G_M53455_IG06: ; bbWeight=0.99, epilog, nogc, extend - ldp fp, lr, [sp], #0x10 - ret lr - ;; size=8 bbWeight=0.99 PerfScore 1.98 -G_M53455_IG07: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0019 {x0 x3 x4}, byrefRegs=0020 {x5}, gcvars, byref, isz - ; gcrRegs +[x0 x3-x4] - ; byrRegs -[x3-x4] +[x5] - tbz w8, #31, G_M53455_IG03
+ ;; size=16 bbWeight=1 PerfScore 7.00 +G_M53455_IG03: ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + ldapr w5, [x4] + ldr w6, [x3, #0x18] + and w6, w5, w6 + ldr w7, [x19, #0x08] + cmp w6, w7 + bhs G_M53455_IG11 + mov w7, #24 + mov x8, #16 + umaddl x20, w6, w7, x8 + add x6, x19, x20 + ; byrRegs +[x6] + ldapr w6, [x6] + ; byrRegs -[x6] + sub w6, w6, w5 + cbnz w6, G_M53455_IG05 + ;; size=52 bbWeight=1 PerfScore 22.00 +G_M53455_IG04: ; bbWeight=0.99, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + add w21, w5, #1 + mov w6, w5 + casal w6, w21, [x4] + cmp w6, w5 + bne G_M53455_IG03 + b G_M53455_IG07 + ;; size=24 bbWeight=0.99 PerfScore 6.41 +G_M53455_IG05: ; bbWeight=0.01, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0010 {x4}, byref, isz + tbz w6, #31, G_M53455_IG03
;; size=4 bbWeight=0.01 PerfScore 0.01
-G_M53455_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs -[x3-x4] - ; byrRegs -[x5]
+G_M53455_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs -[x3 x19] + ; byrRegs -[x4] + b G_M53455_IG09 + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M53455_IG07: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x0] +[x19] + add x0, x19, x20 + ; byrRegs +[x0] + str w1, [x0, #0x08] + str x2, [x0, #0x10] + add x0, x19, x20 + stlr w21, [x0] + ;; size=20 bbWeight=0.99 PerfScore 3.97 +G_M53455_IG08: ; bbWeight=0.99, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0.99 PerfScore 4.96 +G_M53455_IG09: ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x19] +[x0] + ; byrRegs -[x0]
movz x3, #0xD1FFAB1E // code for <unknown method> movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3]
- ;; size=16 bbWeight=1 PerfScore 4.50 -G_M53455_IG09: ; bbWeight=1, epilog, nogc, extend - ldp fp, lr, [sp], #0x10
+ ;; size=16 bbWeight=0.99 PerfScore 4.44 +G_M53455_IG10: ; bbWeight=0.99, epilog, nogc, extend + ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30
br x3 ; gcr arg pop 0
- ;; size=8 bbWeight=1 PerfScore 2.00 -G_M53455_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=16 bbWeight=0.99 PerfScore 4.93 +G_M53455_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_windows #0 ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 160, prolog size 8, PerfScore 48.39, instruction count 40, allocated bytes for code 160 (MethodHash=d16f2f30) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
+; Total bytes of code 192, prolog size 16, PerfScore 58.23, instruction count 48, allocated bytes for code 192 (MethodHash=d16f2f30) for method System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ 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) @@ -132,7 +139,9 @@ 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 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]!
E4 end E4 end

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-4 (-3.57%) : 9323.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-4 (-3.57%) : 51024.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)

@@ -25,7 +25,7 @@ G_M65070_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre ; gcrRegs +[x0] mov x19, x0 ; gcrRegs +[x19]
- cbz x19, G_M65070_IG09
+ cbz x19, G_M65070_IG06
;; size=8 bbWeight=1 PerfScore 1.50 G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] @@ -39,12 +39,12 @@ G_M65070_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=36 bbWeight=4 PerfScore 32.00 G_M65070_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w0, w1
- beq G_M65070_IG07
+ beq G_M65070_IG08
;; size=12 bbWeight=2 PerfScore 4.00 G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x19, [x19, #0x08] @@ -52,26 +52,23 @@ G_M65070_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ;; size=8 bbWeight=4 PerfScore 16.00 G_M65070_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M65070_IG09 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M65070_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, #1 - ;; size=4 bbWeight=2 PerfScore 1.00 -G_M65070_IG08: ; bbWeight=2, epilog, nogc, extend
+ mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M65070_IG07: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18] ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=2 PerfScore 8.00 -G_M65070_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - mov w0, wzr
+ ;; size=12 bbWeight=0.50 PerfScore 2.00 +G_M65070_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M65070_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M65070_IG09: ; 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 112, prolog size 12, PerfScore 67.75, instruction count 28, allocated bytes for code 112 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 12, PerfScore 60.50, instruction count 27, allocated bytes for code 108 (MethodHash=f34b01d1) for method Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -82,7 +79,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ 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)

-28 (-3.45%) : 9308.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>cDisplayClass11_0[ushort]:gexecuteExecutableCodeActions|2():this (FullOpts)

@@ -22,20 +22,20 @@ ;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.DeclarationInfo[]> ;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]> ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]>
-; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x4 "Inline stloc first use temp"
+; V14 tmp7 [V14,T03] ( 4, 12.50) int -> x3 "Inline stloc first use temp"
; V15 tmp8 [V15,T06] ( 5, 5.50) ref -> x19 "field V01.array (fldOffset=0x0)" P-INDEP ; V16 tmp9 [V16,T08] ( 2, 4.50) ref -> x1 single-def "field V03._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x5 "field V03._index (fldOffset=0x8)" P-INDEP -; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x6 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
+; V17 tmp10 [V17,T02] ( 4, 12.50) int -> x4 "field V03._index (fldOffset=0x8)" P-INDEP +; V18 tmp11 [V18,T04] ( 3, 10 ) ref -> x5 "field V04.<DeclaredNode>k__BackingField (fldOffset=0x0)" P-INDEP
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref "field V04.<DeclaredSymbol>k__BackingField (fldOffset=0x8)" P-INDEP
-; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x4 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
+; V20 tmp13 [V20,T05] ( 2, 6 ) ref -> x3 "field V04.<ExecutableCodeBlocks>k__BackingField (fldOffset=0x10)" P-INDEP
; V21 tmp14 [V21,T11] ( 5, 2 ) ref -> [fp+0x18] do-not-enreg[H] EH-live "field V05.array (fldOffset=0x0)" P-INDEP
-; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x20 "field V06.array (fldOffset=0x0)" P-INDEP
+; V22 tmp15 [V22,T10] ( 5, 2.50) ref -> x21 "field V06.array (fldOffset=0x0)" P-INDEP
; V23 tmp16 [V23,T12] ( 3, 1.50) ref -> x1 single-def "field V09.array (fldOffset=0x0)" P-INDEP ; V24 tmp17 [V24,T13] ( 2, 1 ) ref -> x1 single-def "field V10._array (fldOffset=0x0)" P-INDEP ;* V25 tmp18 [V25,T15] ( 0, 0 ) int -> zero-ref single-def "field V10._index (fldOffset=0x8)" P-INDEP ;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref "field V12.array (fldOffset=0x0)" P-INDEP
-; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x4 "BlockOp address local"
+; V27 tmp20 [V27,T00] ( 3, 24 ) byref -> x3 "BlockOp address local"
; V28 PSPSym [V28,T14] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym" ; V29 cse0 [V29,T07] ( 3, 5 ) int -> x2 "CSE - aggressive" ; @@ -97,96 +97,95 @@ G_M10501_IG05: ; bbWeight=0.50, gcVars=0000000000000002 {V00}, gcrefRegs= ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x3, x0 - ; gcrRegs +[x3] - str x3, [fp, #0x20] // [V02 loc1]
+ str x0, [fp, #0x20] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=88 bbWeight=0.50 PerfScore 12.50 -G_M10501_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=84 bbWeight=0.50 PerfScore 12.25 +G_M10501_IG06: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x28] // [V00 this] - ; gcrRegs +[x0] - ldr x1, [x0, #0x68]
+ ldr x20, [fp, #0x28] // [V00 this] + ; gcrRegs +[x20] + ldr x1, [x20, #0x68]
; gcrRegs +[x1] ldr w2, [x1, #0x08]
+ mov w3, wzr
mov w4, wzr
- mov w5, wzr
cmp w2, #0 ble G_M10501_IG11 ;; size=28 bbWeight=0.50 PerfScore 5.25
-G_M10501_IG07: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - mov w6, #24 - mov x7, #16 - umaddl x4, w4, w6, x7 - add x4, x1, x4 - ; byrRegs +[x4] - ldr x6, [x4]
+G_M10501_IG07: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + mov w5, #24 + mov x6, #16 + umaddl x3, w3, w5, x6 + add x3, x1, x3 + ; byrRegs +[x3] + ldr x5, [x3] + ; gcrRegs +[x5] + ldr x3, [x3, #0x10] + ; gcrRegs +[x3] + ; byrRegs -[x3] + ldr x6, [x20, #0x50]
; gcrRegs +[x6]
- ldr x4, [x4, #0x10] - ; gcrRegs +[x4] - ; byrRegs -[x4] - ldr x7, [x0, #0x50] - ; gcrRegs +[x7] - cmp x6, x7
+ cmp x5, x6
beq G_M10501_IG09 ;; size=36 bbWeight=4 PerfScore 68.00
-G_M10501_IG08: ; bbWeight=2, gcrefRegs=8005B {x0 x1 x3 x4 x6 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x7] - ldr x7, [x0, #0x48] - ; gcrRegs +[x7] - cmp x6, x7
+G_M10501_IG08: ; bbWeight=2, gcrefRegs=18002A {x1 x3 x5 x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x6] + ldr x6, [x20, #0x48] + ; gcrRegs +[x6] + cmp x5, x6
bne G_M10501_IG10 ;; size=12 bbWeight=2 PerfScore 9.00
-G_M10501_IG09: ; bbWeight=2, gcrefRegs=001B {x0 x1 x3 x4}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x6-x7 x19] - mov x19, x4
+G_M10501_IG09: ; bbWeight=2, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x5-x6 x19] + mov x19, x3
; gcrRegs +[x19]
- ldr w4, [x19, #0x08] - ; gcrRegs -[x4] - cbnz w4, G_M10501_IG12
+ ldr w3, [x19, #0x08] + ; gcrRegs -[x3] + cbnz w3, G_M10501_IG12
;; size=12 bbWeight=2 PerfScore 9.00
-G_M10501_IG10: ; bbWeight=4, gcrefRegs=8000B {x0 x1 x3 x19}, byrefRegs=0000 {}, byref, isz - add w4, w5, #1 - sxtw w5, w4 - cmp w2, w5
+G_M10501_IG10: ; bbWeight=4, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz + add w3, w4, #1 + sxtw w4, w3 + cmp w2, w4
bgt G_M10501_IG07 ;; size=16 bbWeight=4 PerfScore 10.00
-G_M10501_IG11: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+G_M10501_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
+ mov x0, x20 + ; gcrRegs +[x0]
mov x1, x19 ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4]
+ movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3]
; GC ptr vars -{V00}
- blr x4 - ; gcrRegs -[x0-x3 x19]
+ blr x3 + ; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0 b G_M10501_IG17
- ;; size=32 bbWeight=0.50 PerfScore 3.75 -G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x0 x3 x19]
+ ;; size=36 bbWeight=0.50 PerfScore 4.75 +G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19-x20]
; GC ptr vars +{V00}
- ldrb w1, [x0, #0x42] - ldrb w2, [x0, #0x44]
+ ldrb w1, [x20, #0x42] + ldrb w2, [x20, #0x44]
orr w1, w1, w2 cbz w1, G_M10501_IG13
- ldr x0, [x0, #0x08] - ldr x20, [fp, #0x28] // [V00 this] - ; gcrRegs +[x20]
+ ldr x0, [x20, #0x08] + ; gcrRegs +[x0]
ldr x1, [x20, #0x18] ; gcrRegs +[x1]
- mov x2, x3
+ ldr x2, [fp, #0x20] // [V02 loc1]
; gcrRegs +[x2]
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ushort]]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3]
+ movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:<ExecuteDeclaringReferenceActions>g__addExecutableCodeBlockAnalyzerActions|11_8(Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+ExecutableCodeBlockAnalyzerActions[ushort]]) + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x2]
; gcr arg pop 0 ldp x0, x1, [x20, #0x10] ; gcrRegs +[x0-x1] @@ -199,32 +198,28 @@ G_M10501_IG12: ; bbWeight=0.50, gcVars=0000000000000202 {V00 V02}, gcrefR blr x3 ; gcrRegs -[x0-x2] ; gcr arg pop 0
- mov x0, x20 - ; gcrRegs +[x0] - ldr x3, [fp, #0x20] // [V02 loc1] - ; gcrRegs +[x3] - ;; size=88 bbWeight=0.50 PerfScore 17.75 -G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x20] - ldrb w2, [x0, #0x43] - ldrb w1, [x0, #0x44]
+ ;; size=76 bbWeight=0.50 PerfScore 16.25 +G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ldrb w2, [x20, #0x43] + ldrb w1, [x20, #0x44]
orr w2, w2, w1 cbz w2, G_M10501_IG11
- ldr x2, [x0, #0x70]
+ ldr x2, [x20, #0x70]
; gcrRegs +[x2]
- ldr x1, [x0, #0x28]
+ ldr x1, [x20, #0x28]
; gcrRegs +[x1] mov x0, x19
- movz x4, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x1-x3]
+ ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:GetOperationBlocksToAnalyze(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.SemanticModel,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x1-x2]
; gcr arg pop 0 str x0, [fp, #0x18] // [V21 tmp14] ; GC ptr vars +{V21}
- ldr x0, [fp, #0x28] // [V00 this]
+ mov x0, x20
ldr x1, [fp, #0x18] // [V21 tmp14] ; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -234,22 +229,22 @@ G_M10501_IG13: ; bbWeight=0.50, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=00 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- mov x20, x0 - ; gcrRegs +[x20] - ldr w2, [x20, #0x08] - ldp x3, x0, [fp, #0x20] // [V02 loc1], [V00 this] - ; gcrRegs +[x3]
+ mov x21, x0 + ; gcrRegs +[x21] + ldr w2, [x21, #0x08]
cbz w2, G_M10501_IG11
- ;; size=96 bbWeight=0.50 PerfScore 18.75 -G_M10501_IG14: ; bbWeight=0.50, gcrefRegs=180009 {x0 x3 x19 x20}, byrefRegs=0000 {}, byref, isz - ldrb w2, [x0, #0x43]
+ ;; size=92 bbWeight=0.50 PerfScore 16.50 +G_M10501_IG14: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] + ldrb w2, [x20, #0x43]
...

+4 (+9.09%) : 96712.dasm - System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)

@@ -35,6 +35,7 @@ G_M15830_IG02: ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {} ; gcrRegs -[x1 x15] ; byrRegs -[x14] ldr w14, [x2, #0x08]
+ cmp w14, #3
add x14, x0, #16 ; byrRegs +[x14] mov x15, x2 @@ -42,13 +43,13 @@ G_M15830_IG02: ; bbWeight=1, gcrefRegs=0007 {x0 x1 x2}, byrefRegs=0000 {} bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x0 x2 x15] ; byrRegs -[x14]
- ;; size=28 bbWeight=1 PerfScore 7.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M15830_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x10 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 44, prolog size 8, PerfScore 10.50, instruction count 11, allocated bytes for code 44 (MethodHash=434ac229) for method System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 11.00, instruction count 12, allocated bytes for code 48 (MethodHash=434ac229) for method System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
; ============================================================ Unwind Info: @@ -59,7 +60,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+9.76%) : 222289.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)

@@ -148,7 +148,7 @@ ;* V137 tmp137 [V137 ] ( 0, 0 ) long -> zero-ref single-def "field V45._upper (fldOffset=0x8)" P-INDEP ;* V138 tmp138 [V138 ] ( 0, 0 ) long -> zero-ref single-def "field V46._lower (fldOffset=0x0)" P-INDEP ;* V139 tmp139 [V139 ] ( 0, 0 ) long -> zero-ref single-def "field V46._upper (fldOffset=0x8)" P-INDEP
-; V140 tmp140 [V140,T11] ( 2, 2 ) long -> x1 single-def "field V59._lower (fldOffset=0x0)" P-INDEP
+; V140 tmp140 [V140,T11] ( 2, 2 ) long -> x2 single-def "field V59._lower (fldOffset=0x0)" P-INDEP
;* V141 tmp141 [V141 ] ( 0, 0 ) long -> zero-ref single-def "field V59._upper (fldOffset=0x8)" P-INDEP ;* V142 tmp142 [V142 ] ( 0, 0 ) long -> zero-ref single-def "field V60._lower (fldOffset=0x0)" P-INDEP ;* V143 tmp143 [V143 ] ( 0, 0 ) long -> zero-ref single-def "field V60._upper (fldOffset=0x8)" P-INDEP @@ -162,7 +162,7 @@ ;* V151 tmp151 [V151 ] ( 0, 0 ) long -> zero-ref single-def "field V66._upper (fldOffset=0x8)" P-INDEP ;* V152 tmp152 [V152 ] ( 0, 0 ) long -> zero-ref single-def "field V67._lower (fldOffset=0x0)" P-INDEP ;* V153 tmp153 [V153 ] ( 0, 0 ) long -> zero-ref single-def "field V67._upper (fldOffset=0x8)" P-INDEP
-;* V154 tmp154 [V154,T12] ( 0, 0 ) long -> zero-ref single-def "field V80._lower (fldOffset=0x0)" P-INDEP
+; V154 tmp154 [V154,T12] ( 2, 2 ) long -> x0 single-def "field V80._lower (fldOffset=0x0)" P-INDEP
;* V155 tmp155 [V155 ] ( 0, 0 ) long -> zero-ref single-def "field V80._upper (fldOffset=0x8)" P-INDEP ;* V156 tmp156 [V156 ] ( 0, 0 ) long -> zero-ref single-def "field V81._lower (fldOffset=0x0)" P-INDEP ;* V157 tmp157 [V157 ] ( 0, 0 ) long -> zero-ref single-def "field V81._upper (fldOffset=0x8)" P-INDEP @@ -176,7 +176,7 @@ ;* V165 tmp165 [V165 ] ( 0, 0 ) long -> zero-ref single-def "field V87._upper (fldOffset=0x8)" P-INDEP ;* V166 tmp166 [V166 ] ( 0, 0 ) long -> zero-ref single-def "field V88._lower (fldOffset=0x0)" P-INDEP ;* V167 tmp167 [V167 ] ( 0, 0 ) long -> zero-ref single-def "field V88._upper (fldOffset=0x8)" P-INDEP
-;* V168 tmp168 [V168,T13] ( 0, 0 ) long -> zero-ref single-def "field V101._lower (fldOffset=0x0)" P-INDEP
+; V168 tmp168 [V168,T13] ( 2, 2 ) long -> x1 single-def "field V101._lower (fldOffset=0x0)" P-INDEP
;* V169 tmp169 [V169 ] ( 0, 0 ) long -> zero-ref single-def "field V101._upper (fldOffset=0x8)" P-INDEP ;* V170 tmp170 [V170 ] ( 0, 0 ) long -> zero-ref single-def "field V102._lower (fldOffset=0x0)" P-INDEP ;* V171 tmp171 [V171 ] ( 0, 0 ) long -> zero-ref single-def "field V102._upper (fldOffset=0x8)" P-INDEP @@ -185,8 +185,8 @@ ;* V174 tmp174 [V174 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V105.hasValue (fldOffset=0x0)" P-INDEP ;* V175 tmp175 [V175 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V105.value (fldOffset=0x1)" P-INDEP ; V176 tmp176 [V176,T37] ( 9, 0 ) struct ( 8) [fp+0x18] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-; V177 cse0 [V177,T00] ( 2, 2 ) long -> x1 "CSE - aggressive" -; V178 cse1 [V178,T01] ( 2, 2 ) long -> x0 "CSE - aggressive"
+; V177 cse0 [V177,T00] ( 4, 4 ) long -> x1 "CSE - aggressive" +; V178 cse1 [V178,T01] ( 3, 3 ) long -> x0 "CSE - aggressive"
; V179 cse2 [V179,T02] ( 3, 3 ) long -> x1 "CSE - aggressive" ;* V180 cse3 [V180,T36] ( 0, 0 ) long -> zero-ref "CSE - aggressive" ; @@ -245,9 +245,9 @@ G_M40196_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr d16, [@RWD08] cnt v16.8b, v16.8b addv b16, v16.8b
- umov w0, v16.b[0] - add x1, x1, w0, UXTW - cmp x1, #1
+ umov w2, v16.b[0] + add x2, x1, w2, UXTW + cmp x2, #1
bne G_M40196_IG10 ;; size=52 bbWeight=1 PerfScore 14.50 G_M40196_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -259,7 +259,15 @@ G_M40196_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M40196_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cbnz w2, G_M40196_IG15
- ;; size=4 bbWeight=1 PerfScore 1.00
+ ldr d16, [@RWD16] + cnt v16.8b, v16.8b + addv b16, v16.8b + umov w2, v16.b[0] + add x0, x0, w2, UXTW + cmp x0, #1 + add x1, x1, x1 + cmp x1, #1 + ;; size=36 bbWeight=1 PerfScore 9.50
G_M40196_IG12: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -312,9 +320,10 @@ G_M40196_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ;; size=48 bbWeight=0 PerfScore 0.00 RWD00 dq 0000000000000001h RWD08 dq 7FFFFFFFFFFFFFFFh
+RWD16 dq 8000000000000000h
-; Total bytes of code 328, prolog size 8, PerfScore 43.50, instruction count 82, allocated bytes for code 328 (MethodHash=59ac62fb) for method System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
+; Total bytes of code 360, prolog size 8, PerfScore 52.00, instruction count 90, allocated bytes for code 360 (MethodHash=59ac62fb) for method System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
; ============================================================ Unwind Info: @@ -325,7 +334,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 82 (0x00052) Actual length = 328 (0x000148)
+ Function Length : 90 (0x0005a) Actual length = 360 (0x000168)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+10.20%) : 186215.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)

@@ -12,7 +12,7 @@ ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V02 tmp1 [V02,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ;* V03 tmp2 [V03,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp3 [V04,T00] ( 7, 20 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
+; V04 tmp3 [V04,T00] ( 8, 22 ) ref -> x0 class-hnd "Inline stloc first use temp" <System.Type>
;* V05 tmp4 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.Emit.TypeBuilderImpl> ;* V07 tmp6 [V07,T08] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.TypeBuilderImpl> @@ -52,7 +52,12 @@ G_M32453_IG04: ; bbWeight=2, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000 ; gcrRegs +[x0 x20] cmp x0, x20 beq G_M32453_IG07
- ;; size=8 bbWeight=2 PerfScore 3.00
+ ldr x1, [x0] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2 + ;; size=28 bbWeight=2 PerfScore 13.00
G_M32453_IG05: ; bbWeight=4, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ldr x1, [x0] ldr x1, [x1, #0xA0] @@ -116,7 +121,7 @@ G_M32453_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { brk_windows #0 ;; size=80 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 12, PerfScore 62.75, instruction count 49, allocated bytes for code 196 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
+; Total bytes of code 216, prolog size 12, PerfScore 72.75, instruction count 54, allocated bytes for code 216 (MethodHash=b7cb813a) for method System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
; ============================================================ Unwind Info: @@ -127,7 +132,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.windows.arm64.checked.mch

-4 (-1.23%) : 19193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)

@@ -47,7 +47,7 @@ G_M43028_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldr w21, [x20, #0x08] mov w22, wzr cmp w21, #0
- ble G_M43028_IG13
+ ble G_M43028_IG10
cbz x19, G_M43028_IG07 ldr w0, [x19, #0x08] cmp w0, w21 @@ -71,7 +71,7 @@ G_M43028_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=800000 { ; gcrRegs +[x26] cmp x24, x26 ccmp w25, #1, 0, eq
- bne G_M43028_IG11
+ bne G_M43028_IG12
;; size=48 bbWeight=3.96 PerfScore 67.32 G_M43028_IG04: ; bbWeight=1.98, gcrefRegs=80002 {x1 x19}, byrefRegs=800000 {x23}, byref, isz ; gcrRegs -[x24 x26] @@ -86,23 +86,23 @@ G_M43028_IG04: ; bbWeight=1.98, gcrefRegs=80002 {x1 x19}, byrefRegs=80000 ; gcr arg pop 0 ldr w0, [x0, #0x08] ; gcrRegs -[x0]
- cbnz w0, G_M43028_IG11
+ cbnz w0, G_M43028_IG12
;; size=28 bbWeight=1.98 PerfScore 28.71 G_M43028_IG05: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz add w22, w22, #1 cmp w22, w21 blt G_M43028_IG03 ;; size=12 bbWeight=3.96 PerfScore 7.92
-G_M43028_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M43028_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] ; byrRegs -[x23]
- b G_M43028_IG13 - ;; size=4 bbWeight=1 PerfScore 1.00
+ b G_M43028_IG10 + ;; size=4 bbWeight=0.50 PerfScore 0.50
G_M43028_IG07: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x19-x20] ldr w0, [x19, #0x08] cmp w22, w0
- bhs G_M43028_IG15
+ bhs G_M43028_IG14
mov w0, #24 mov x1, #16 umaddl x0, w22, w0, x1 @@ -117,7 +117,7 @@ G_M43028_IG07: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ; gcrRegs +[x26] cmp x24, x26 ccmp w25, #1, 0, eq
- bne G_M43028_IG11
+ bne G_M43028_IG12
;; size=56 bbWeight=0.04 PerfScore 0.94 G_M43028_IG08: ; bbWeight=0.02, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x24 x26] @@ -132,7 +132,7 @@ G_M43028_IG08: ; bbWeight=0.02, gcrefRegs=180002 {x1 x19 x20}, byrefRegs= ; gcr arg pop 0 ldr w0, [x0, #0x08] ; gcrRegs -[x0]
- cbnz w0, G_M43028_IG11
+ cbnz w0, G_M43028_IG12
;; size=28 bbWeight=0.02 PerfScore 0.29 G_M43028_IG09: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz add w22, w22, #1 @@ -141,23 +141,9 @@ G_M43028_IG09: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ;; size=12 bbWeight=0.04 PerfScore 0.08 G_M43028_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19-x20]
- b G_M43028_IG13 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M43028_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, wzr - ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M43028_IG12: ; 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 - ret lr - ;; size=24 bbWeight=0.50 PerfScore 3.00 -G_M43028_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43028_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M43028_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -165,13 +151,24 @@ G_M43028_IG14: ; bbWeight=0.50, epilog, nogc, extend ldp fp, lr, [sp], #0x50 ret lr ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M43028_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M43028_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + mov w0, wzr + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M43028_IG13: ; 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 + ret lr + ;; size=24 bbWeight=0.50 PerfScore 3.00 +G_M43028_IG14: ; 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 324, prolog size 32, PerfScore 130.76, instruction count 81, allocated bytes for code 324 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
+; Total bytes of code 320, prolog size 32, PerfScore 129.76, instruction count 80, allocated bytes for code 320 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
; ============================================================ Unwind Info: @@ -182,7 +179,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 81 (0x00051) Actual length = 324 (0x000144)
+ Function Length : 80 (0x00050) Actual length = 320 (0x000140)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-0.84%) : 23983.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:g_findMostSpecificImplementationInBases|921(Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],byref,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)

@@ -274,7 +274,6 @@ G_M19054_IG04: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRe str x1, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111} cbz x28, G_M19054_IG33
- ldr x1, [fp, #0x30] // [V111 tmp93]
mov x0, x28 ldr x0, [x0] ; gcrRegs -[x0] @@ -285,9 +284,9 @@ G_M19054_IG04: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRe bne G_M19054_IG05 ldr w0, [x28, #0x20] cbz w0, G_M19054_IG33
- ;; size=80 bbWeight=2 PerfScore 43.00 -G_M19054_IG05: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz - ; GC ptr vars -{V111}
+ ;; size=76 bbWeight=2 PerfScore 39.00 +G_M19054_IG05: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz + ; gcrRegs -[x1]
mov w2, wzr ldr x0, [x24, #0x08] ; gcrRegs +[x0] @@ -296,13 +295,11 @@ G_M19054_IG05: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, cmp w0, #0 ble G_M19054_IG12 ;; size=20 bbWeight=2 PerfScore 16.00
-G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
+G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
ldr x0, [x24, #0x08] ; gcrRegs +[x0] ldr w3, [x0, #0x10] cmp w2, w3
- str x1, [fp, #0x30] // [V111 tmp93] - ; GC ptr vars +{V111}
bge G_M19054_IG50 ldr x0, [x0, #0x08] ldr w3, [x0, #0x08] @@ -335,7 +332,7 @@ G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28} movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST
- ; gcrRegs -[x1 x4-x6] +[x0]
+ ; gcrRegs -[x4-x6] +[x0]
add x14, x0, #8 ; byrRegs +[x14] ldr x15, [fp, #0x20] // [V126 tmp108] @@ -386,7 +383,7 @@ G_M19054_IG06: ; bbWeight=16, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28} ldr x2, [fp, #0x60] // [V12 loc7] ; gcrRegs +[x2] cbnz x2, G_M19054_IG08
- ;; size=240 bbWeight=16 PerfScore 1360.00
+ ;; size=236 bbWeight=16 PerfScore 1344.00
G_M19054_IG07: ; bbWeight=8, gcVars=00000000000000000020000000070000 {V13 V111 V126 V127}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz ; gcrRegs -[x2] ; GC ptr vars -{V12 V125} @@ -466,20 +463,14 @@ G_M19054_IG08: ; bbWeight=16, gcrefRegs=19900004 {x2 x20 x23 x24 x27 x28} ; gcrRegs -[x15] cmp w14, w15 mov w2, w14
- ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1]
blt G_M19054_IG06
- ;; size=68 bbWeight=16 PerfScore 408.00 -G_M19054_IG09: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref
+ ;; size=64 bbWeight=16 PerfScore 376.00 +G_M19054_IG09: ; bbWeight=2, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref
; byrRegs -[x0]
- ; GC ptr vars -{V111}
b G_M19054_IG12 ;; size=4 bbWeight=2 PerfScore 2.00 G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V111 V125}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz
- ; gcrRegs -[x1] - ; GC ptr vars +{V25 V111 V125} - ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1]
+ ; GC ptr vars +{V25 V125}
ldr x15, [x24, #0x08] ; gcrRegs +[x15] ldr w12, [x15, #0x10] @@ -496,7 +487,7 @@ G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V11 ldr x15, [fp, #0x28] // [V125 tmp107] mov x14, x0 ; byrRegs +[x14]
- ; GC ptr vars -{V25 V111 V125}
+ ; GC ptr vars -{V25 V125}
bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14] @@ -509,22 +500,20 @@ G_M19054_IG10: ; bbWeight=2, gcVars=00000000000000000020000002000000 {V11 ; byrRegs -[x14] add x14, x0, #16 ; byrRegs +[x14]
- mov x15, x1
+ ldr x15, [fp, #0x30] // [V111 tmp93]
; gcrRegs +[x15]
+ ; GC ptr vars -{V111}
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x1 x15]
+ ; gcrRegs -[x15]
; byrRegs -[x0 x14]
- ;; size=84 bbWeight=2 PerfScore 58.00
+ ;; size=80 bbWeight=2 PerfScore 57.00
G_M19054_IG11: ; bbWeight=2, gcrefRegs=9900000 {x20 x23 x24 x27}, byrefRegs=680000 {x19 x21 x22}, byref mov x28, xzr ; gcrRegs +[x28] str xzr, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111}
- ldr x1, [fp, #0x30] // [V111 tmp93] - ; gcrRegs +[x1] - ;; size=12 bbWeight=2 PerfScore 7.00 -G_M19054_IG12: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz - ; GC ptr vars -{V111}
+ ;; size=8 bbWeight=2 PerfScore 3.00 +G_M19054_IG12: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz
cbz x28, G_M19054_IG33 mov x0, x28 ; gcrRegs +[x0] @@ -538,17 +527,14 @@ G_M19054_IG12: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, ; gcrRegs -[x0] cbz w0, G_M19054_IG33 ;; size=40 bbWeight=2 PerfScore 23.00
-G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
+G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz
ldr x2, [x24, #0x08] ; gcrRegs +[x2] ldr w3, [x2, #0x10] cbz w3, G_M19054_IG29
- str x1, [fp, #0x30] // [V111 tmp93] - ; GC ptr vars +{V111}
mov x0, x27 ; gcrRegs +[x0] mov x1, x19
- ; gcrRegs -[x1]
; byrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> ; gcrRegs -[x2] @@ -565,7 +551,7 @@ G_M19054_IG13: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, ; gcrRegs -[x0] sub w1, w0, #1 tbnz w1, #31, G_M19054_IG19
- ;; size=64 bbWeight=2 PerfScore 45.00
+ ;; size=60 bbWeight=2 PerfScore 43.00
G_M19054_IG14: ; bbWeight=16, gcrefRegs=19900000 {x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref, isz ldr x0, [x24, #0x08] ; gcrRegs +[x0] @@ -837,9 +823,11 @@ G_M19054_IG28: ; bbWeight=2, gcrefRegs=19900004 {x2 x20 x23 x24 x27 x28}, str w3, [x2, #0x10] b G_M19054_IG33 ;; size=80 bbWeight=2 PerfScore 53.00
-G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=11900006 {x1 x2 x20 x23 x24 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz - ; gcrRegs +[x1 x28] - ; GC ptr vars -{V66}
+G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000020000000000000 {V111}, gcrefRegs=11900004 {x2 x20 x23 x24 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref, isz + ; gcrRegs +[x28] + ; GC ptr vars -{V66} +{V111} + ldr x1, [fp, #0x30] // [V111 tmp93] + ; gcrRegs +[x1]
mov x27, x2 ; gcrRegs +[x27] add w3, w3, #1 @@ -855,10 +843,9 @@ G_M19054_IG29: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, bge G_M19054_IG30 sxtw w2, w3 str x1, [fp, #0x30] // [V111 tmp93]
- ; GC ptr vars +{V111}
b G_M19054_IG31
- ;; size=56 bbWeight=2 PerfScore 35.00 -G_M19054_IG30: ; bbWeight=2, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, byref
+ ;; size=60 bbWeight=2 PerfScore 39.00 +G_M19054_IG30: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=19900002 {x1 x20 x23 x24 x27 x28}, byrefRegs=680000 {x19 x21 x22}, gcvars, byref
; GC ptr vars -{V111} str x1, [fp, #0x30] // [V111 tmp93] ; GC ptr vars +{V111} @@ -1166,7 +1153,7 @@ G_M19054_IG51: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2380, prolog size 56, PerfScore 4117.50, instruction count 595, allocated bytes for code 2380 (MethodHash=53aab591) for method 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)
+; Total bytes of code 2360, prolog size 56, PerfScore 4062.50, instruction count 590, allocated bytes for code 2360 (MethodHash=53aab591) for method 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)
; ============================================================ Unwind Info: @@ -1177,7 +1164,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 595 (0x00253) Actual length = 2380 (0x00094c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-0.70%) : 1625.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],ubyte,ubyte):ubyte (FullOpts)

@@ -30,8 +30,8 @@ ;* V19 loc15 [V19 ] ( 0, 0 ) ubyte -> zero-ref ;* V20 loc16 [V20 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[int]> ; V21 loc17 [V21,T28] ( 3, 96 ) int -> [fp-0x9C] spill-single-def ptr
-; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x13 -; V23 loc19 [V23,T01] ( 7,1344 ) int -> x1
+; V22 loc18 [V22,T29] ( 3, 96 ) ubyte -> x14 +; V23 loc19 [V23,T01] ( 7,1344 ) int -> x13
; V24 loc20 [V24,T02] ( 3, 832 ) int -> x0 ;# V25 OutArgs [V25 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V26 tmp1 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> @@ -40,15 +40,15 @@ ; V29 tmp4 [V29,T12] ( 4, 256 ) int -> x7 "impSpillLclRefs" ; V30 tmp5 [V30,T13] ( 4, 256 ) int -> x1 "impSpillLclRefs" ; V31 tmp6 [V31,T15] ( 2, 256 ) int -> x10 "dup spill"
-; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x0 "impSpillLclRefs"
+; V32 tmp7 [V32,T14] ( 4, 256 ) int -> x1 "impSpillLclRefs"
; V33 tmp8 [V33,T49] ( 2, 32 ) int -> [fp-0xA0] spill-single-def ptr "impAppendStmt" ;* V34 tmp9 [V34 ] ( 0, 0 ) int -> zero-ref ptr ; V35 tmp10 [V35,T37] ( 4, 64 ) int -> x0 "impSpillLclRefs" ; V36 tmp11 [V36,T38] ( 4, 64 ) int -> x13 "impSpillLclRefs" ; V37 tmp12 [V37,T34] ( 5, 80 ) int -> x13 "dup spill" ; V38 tmp13 [V38,T39] ( 4, 64 ) int -> x13 "impSpillLclRefs"
-; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x1 "impSpillLclRefs" -; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x1 "impSpillLclRefs"
+; V39 tmp14 [V39,T40] ( 4, 64 ) int -> x0 "impSpillLclRefs" +; V40 tmp15 [V40,T41] ( 4, 64 ) int -> x0 "impSpillLclRefs"
; V41 tmp16 [V41,T30] ( 3, 96 ) int -> x1 ; V42 tmp17 [V42,T52] ( 4, 16 ) int -> x25 "impSpillLclRefs" ;* V43 tmp18 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]> @@ -159,7 +159,7 @@ ; V148 tmp123 [V148,T24] ( 2, 128 ) long -> x2 "Inlining Arg" ;* V149 tmp124 [V149 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V150 tmp125 [V150,T50] ( 3, 24 ) ushort -> registers ptr "Inline return value spill temp"
-; V151 tmp126 [V151,T42] ( 4, 64 ) ushort -> x10 "Inlining Arg"
+; V151 tmp126 [V151,T42] ( 4, 64 ) ushort -> x12 "Inlining Arg"
;* V152 tmp127 [V152 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp" ;* V153 tmp128 [V153 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V154 tmp129 [V154 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]> @@ -310,10 +310,10 @@ G_M9731_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x23, [fp, #-0x78] // [V01 arg1] ; byrRegs +[x23] ldr w24, [fp, #-0x70] // [V01 arg1+0x08]
- cbz w22, G_M9731_IG70
+ cbz w22, G_M9731_IG71
;; size=20 bbWeight=1 PerfScore 9.00 G_M9731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref, isz
- cbz w24, G_M9731_IG70
+ cbz w24, G_M9731_IG71
ldrh w0, [x21] cmp w0, #42 bne G_M9731_IG08 @@ -393,7 +393,7 @@ G_M9731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2A00000 {x21 G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 x25}, byref, isz ; byrRegs -[x21] cmp w24, w26
- blt G_M9731_IG70
+ blt G_M9731_IG71
mov x0, x23 ; byrRegs +[x0] sxtw w1, w24 @@ -410,7 +410,7 @@ G_M9731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2800000 {x23 blr x5 ; byrRegs -[x0 x2 x23 x25] ; gcr arg pop 0
- b G_M9731_IG65
+ b G_M9731_IG66
;; size=60 bbWeight=0.50 PerfScore 5.75 G_M9731_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A00000 {x21 x23}, byref ; byrRegs +[x21 x23] @@ -437,7 +437,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 add w1, w25, #1 sxtw w27, w1 cmp w25, w24
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldrh w1, [x23, w25, UXTW #2] sxtw w25, w1 b G_M9731_IG12 @@ -445,7 +445,7 @@ G_M9731_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 G_M9731_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x21 x23 x28}, byref, isz sub w6, w26, #1 cmp w6, w4
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldr w1, [x3, w6, UXTW #2] cmp w1, w5 beq G_M9731_IG21 @@ -469,7 +469,7 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 str w0, [fp, #-0x80] // [V06 loc2] str w4, [fp, #-0xC8] // [V182 tmp157] cmp w1, w4
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181} ldr w1, [x3, w1, UXTW #2] @@ -477,14 +477,14 @@ G_M9731_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=10A00008 {x3 x2 add w1, w1, w1, LSR #31 asr w10, w1, #1 cmp w10, w22
- bge G_M9731_IG53
+ bge G_M9731_IG54
;; size=48 bbWeight=16 PerfScore 192.00 G_M9731_IG14: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref, isz ; byrRegs -[x3] lsl w11, w10, #1 str w11, [fp, #-0x94] // [V16 loc12] cmp w10, w22
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
str w10, [fp, #-0x7C] // [V05 loc1] ldrh w13, [x21, w10, UXTW #2] str w13, [fp, #-0x8C] // [V11 loc7] @@ -513,7 +513,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xCC] // [V244 tmp219] ldr w5, [fp, #-0xC4] // [V180 tmp155] cmp w5, w4
- bhi G_M9731_IG75
+ bhi G_M9731_IG76
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -548,7 +548,7 @@ G_M9731_IG15: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x str w4, [fp, #-0xD0] // [V248 tmp223] ldr w5, [fp, #-0xC8] // [V182 tmp157] cmp w5, w4
- bhi G_M9731_IG75
+ bhi G_M9731_IG76
mov w2, w5 lsl x2, x2, #2 mov x0, x3 @@ -579,29 +579,29 @@ G_M9731_IG16: ; bbWeight=64, gcVars=00000000000000000000000000000200 {V18 ; GC ptr vars -{V247} ldr w13, [fp, #-0x8C] // [V11 loc7] cmp w13, #42
- beq G_M9731_IG28
+ beq G_M9731_IG30
;; size=12 bbWeight=64 PerfScore 224.00 G_M9731_IG17: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz tst w19, #255 beq G_M9731_IG26 cmp w13, #60 bne G_M9731_IG26
- mov w13, wzr
+ mov w14, wzr
cbnz w6, G_M9731_IG24 cmp w25, #46 bne G_M9731_IG23
- sxtw w1, w27 - cmp w1, w24
+ sxtw w13, w27 + cmp w13, w24
bge G_M9731_IG23 ;; size=44 bbWeight=32 PerfScore 256.00 G_M9731_IG18: ; bbWeight=256, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- cmp w1, w24 - bhs G_M9731_IG72 - ldrh w0, [x23, w1, UXTW #2] - cmp w0, #46
+ cmp w13, w24 + bhs G_M9731_IG73 + ldrh w1, [x23, w13, UXTW #2] + cmp w1, #46
beq G_M9731_IG22
- add w1, w1, #1 - cmp w1, w24
+ add w13, w13, #1 + cmp w13, w24
blt G_M9731_IG18 ;; size=32 bbWeight=256 PerfScore 2048.00 G_M9731_IG19: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref @@ -612,18 +612,18 @@ G_M9731_IG20: ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, g ; GC ptr vars -{V181} str x3, [fp, #-0xD8] // [V181 tmp156] ; GC ptr vars +{V181}
- b G_M9731_IG63
+ b G_M9731_IG64
;; size=8 bbWeight=2 PerfScore 4.00 G_M9731_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref ; byrRegs -[x21 x23 x28] ; GC ptr vars -{V181} ldr w5, [fp, #-0x90] // [V15 loc11]
- b G_M9731_IG64
+ b G_M9731_IG65
;; size=8 bbWeight=1 PerfScore 3.00 G_M9731_IG22: ; bbWeight=32, gcVars=00000000000000000000000000000200 {V181}, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, gcvars, byref ; byrRegs -[x3] +[x21 x23 x28] ; GC ptr vars +{V09 V181}
- mov w13, #1
+ mov w14, #1
;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref cmp w25, #46 @@ -634,183 +634,181 @@ G_M9731_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x mov w1, #1 ;; size=4 bbWeight=32 PerfScore 16.00 G_M9731_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
- orr w1, w1, w13 - cbz w1, G_M9731_IG29 - b G_M9731_IG28
+ orr w1, w1, w14 + cbz w1, G_M9731_IG31 + b G_M9731_IG30
;; size=12 bbWeight=32 PerfScore 80.00 G_M9731_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz ldr w11, [fp, #-0x94] // [V16 loc12] add w11, w11, #2 tst w19, #255
- beq G_M9731_IG37
+ beq G_M9731_IG38
cmp w13, #62
- bne G_M9731_IG27 - cbnz w6, G_M9731_IG30
+ bne G_M9731_IG28 + cbnz w6, G_M9731_IG32
cmp w25, #46
- beq G_M9731_IG30 - b G_M9731_IG34 - ;; size=40 bbWeight=32 PerfScore 288.00 -G_M9731_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz - cmp w13, #34 - bne G_M9731_IG37 - cbnz w6, G_M9731_IG30 - b G_M9731_IG35 - ;; size=16 bbWeight=32 PerfScore 112.00
+ beq G_M9731_IG32 + ;; size=36 bbWeight=32 PerfScore 256.00 +G_M9731_IG27: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG36 + ;; size=4 bbWeight=8 PerfScore 8.00
G_M9731_IG28: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
+ cmp w13, #34 + bne G_M9731_IG38 + cbnz w6, G_M9731_IG32 + ;; size=12 bbWeight=32 PerfScore 80.00 +G_M9731_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref + b G_M9731_IG37 + ;; size=4 bbWeight=8 PerfScore 8.00 +G_M9731_IG30: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=10A00000 {x21 x23 x28}, byref, isz
ldr w7, [fp, #-0x84] // [V07 loc3] add w13, w7, #1 cmp w7, w2
- bhs G_M9731_IG72
+ bhs G_M9731_IG73
ldr w11, [fp, #-0x94] // [V16 loc12] str w11, [x28, w7, UXTW #2] str w13, [fp, #-0x84] // [V07 loc3] str w11, [fp, #-0x94] // [V16 loc12] ;; size=32 bbWeight=32 PerfScore 288.00 ...

+16 (+2.88%) : 21417.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)

@@ -19,38 +19,39 @@ ;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol> ; V09 tmp2 [V09,T02] ( 5, 16 ) ref -> x23 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol> ; V10 tmp3 [V10,T03] ( 4, 16 ) ref -> x0 class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-; V11 tmp4 [V11 ] ( 4, 8 ) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V11 tmp4 [V11 ] ( 4, 8 ) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]> ;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]> ;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V15 tmp8 [V15,T06] ( 4, 12.50) int -> x1 "Inline stloc first use temp"
+; V15 tmp8 [V15,T06] ( 4, 12.50) int -> x23 "Inline stloc first use temp"
; V16 tmp9 [V16,T17] ( 2, 1 ) ref -> x0 single-def "field V05._array (fldOffset=0x0)" P-INDEP
-; V17 tmp10 [V17,T05] ( 4, 12.50) int -> x23 "field V05._index (fldOffset=0x8)" P-INDEP
+; V17 tmp10 [V17,T05] ( 4, 12.50) int -> x24 "field V05._index (fldOffset=0x8)" P-INDEP
; V18 tmp11 [V18,T16] ( 3, 1.50) ref -> x0 "field V06.array (fldOffset=0x0)" P-INDEP
-; V19 tmp12 [V19 ] ( 4, 8 ) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V11.DiagnosticInfo (fldOffset=0x0)" P-DEP -; V20 tmp13 [V20 ] ( 4, 8 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V11.PrimaryDependency (fldOffset=0x8)" P-DEP -; V21 tmp14 [V21 ] ( 4, 8 ) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V11.SecondaryDependencies (fldOffset=0x10)" P-DEP
+; V19 tmp12 [V19 ] ( 4, 8 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V11.DiagnosticInfo (fldOffset=0x0)" P-DEP +; V20 tmp13 [V20 ] ( 4, 8 ) ref -> [fp+0x38] do-not-enreg[X] addr-exposed "field V11.PrimaryDependency (fldOffset=0x8)" P-DEP +; V21 tmp14 [V21 ] ( 4, 8 ) ref -> [fp+0x40] do-not-enreg[X] addr-exposed "field V11.SecondaryDependencies (fldOffset=0x10)" P-DEP
;* V22 tmp15 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V12.array (fldOffset=0x0)" P-INDEP ; V23 tmp16 [V23,T18] ( 2, 1 ) ref -> x0 single-def "field V13._array (fldOffset=0x0)" P-INDEP ;* V24 tmp17 [V24,T19] ( 0, 0 ) int -> zero-ref single-def "field V13._index (fldOffset=0x8)" P-INDEP
-; V25 tmp18 [V25 ] ( 4, 16 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V25 tmp18 [V25 ] ( 4, 16 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
;* V26 tmp19 [V26,T14] ( 0, 0 ) byref -> zero-ref "argument with side effect" ;* V27 tmp20 [V27,T15] ( 0, 0 ) byref -> zero-ref "argument with side effect" ; V28 tmp21 [V28,T00] ( 3, 24 ) ref -> x0 "argument with side effect" ; V29 cse0 [V29,T12] ( 3, 5 ) int -> x19 "CSE - aggressive"
-; V30 cse1 [V30,T13] ( 2, 4.50) byref -> x24 hoist "CSE - aggressive"
+; V30 cse1 [V30,T13] ( 2, 4.50) byref -> x25 hoist "CSE - aggressive"
; V31 cse2 [V31,T07] ( 3, 12 ) long -> x24 "CSE - aggressive" ; V32 cse3 [V32,T11] ( 3, 6 ) long -> x24 "CSE - aggressive" ;
-; Lcl frame size = 48
+; Lcl frame size = 56
G_M31465_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x70]! - stp x19, x20, [sp, #0x40] - stp x21, x22, [sp, #0x50] - stp x23, x24, [sp, #0x60]
+ stp fp, lr, [sp, #-0x80]! + stp x19, x20, [sp, #0x48] + stp x21, x22, [sp, #0x58] + stp x23, x24, [sp, #0x68] + str x25, [sp, #0x78]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0 stp q16, q16, [x9] stp xzr, xzr, [x9, #0x20] @@ -60,7 +61,7 @@ G_M31465_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcrRegs +[x20] mov x19, x2 ; byrRegs +[x19]
- ;; size=48 bbWeight=1 PerfScore 9.00
+ ;; size=52 bbWeight=1 PerfScore 10.00
G_M31465_IG02: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=80000 {x19}, byref, isz mov x0, x21 ; gcrRegs +[x0] @@ -101,13 +102,13 @@ G_M31465_IG04: ; bbWeight=2, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefReg ldr x1, [x1, #0xD1FFAB1E] ldr x1, [x1] blr x1
- stp xzr, xzr, [fp, #0x28] - str xzr, [fp, #0x38]
+ stp xzr, xzr, [fp, #0x30] + str xzr, [fp, #0x40]
cbz x0, G_M31465_IG09 ldrb w8, [x19, #0x19] cmp w8, #2 beq G_M31465_IG09
- add x8, fp, #40 // [V11 tmp4]
+ add x8, fp, #48 // [V11 tmp4]
ldr x1, [x0] ldr x1, [x1, #0x80] ldr x1, [x1, #0x20] @@ -115,15 +116,15 @@ G_M31465_IG04: ; bbWeight=2, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefReg ; gcrRegs -[x0] ;; size=64 bbWeight=2 PerfScore 57.00 G_M31465_IG05: ; bbWeight=2, nogc, extend
- ldp x0, x1, [fp, #0x28] - stp x0, x1, [fp, #0x10] - ldr x0, [fp, #0x38] - str x0, [fp, #0x20]
+ ldp x0, x1, [fp, #0x30] + stp x0, x1, [fp, #0x18] + ldr x0, [fp, #0x40] + str x0, [fp, #0x28]
;; size=16 bbWeight=2 PerfScore 14.00 G_M31465_IG06: ; bbWeight=2, extend mov x0, x19 ; byrRegs +[x0]
- add x2, fp, #16 // [V25 tmp18]
+ add x2, fp, #24 // [V25 tmp18]
movz x24, #0xD1FFAB1E movk x24, #0xD1FFAB1E LSL #16 movk x24, #0xD1FFAB1E LSL #32 @@ -136,15 +137,15 @@ G_M31465_IG06: ; bbWeight=2, extend ; byrRegs -[x0] ;; size=44 bbWeight=2 PerfScore 17.00 G_M31465_IG07: ; bbWeight=2, nogc, extend
- ldp x0, x1, [fp, #0x28] - stp x0, x1, [fp, #0x10] - ldr x0, [fp, #0x38] - str x0, [fp, #0x20]
+ ldp x0, x1, [fp, #0x30] + stp x0, x1, [fp, #0x18] + ldr x0, [fp, #0x40] + str x0, [fp, #0x28]
;; size=16 bbWeight=2 PerfScore 14.00 G_M31465_IG08: ; bbWeight=2, extend mov x0, x19 ; byrRegs +[x0]
- add x2, fp, #16 // [V25 tmp18]
+ add x2, fp, #24 // [V25 tmp18]
mov x1, x24 movz x3, #0xD1FFAB1E // code for <unknown method> movk x3, #0xD1FFAB1E LSL #16 @@ -178,16 +179,16 @@ G_M31465_IG10: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs blr x2 ; byrRegs -[x1 x19] ldr w19, [x0, #0x08]
- mov w1, wzr
mov w23, wzr
+ mov w24, wzr
cmp w19, #0 ble G_M31465_IG12
- add x24, x0, #16 - ; byrRegs +[x24]
+ add x25, x0, #16 + ; byrRegs +[x25]
;; size=80 bbWeight=0.50 PerfScore 13.50
-G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=1000000 {x24}, byref, isz
+G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=2000000 {x25}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x24, w1, UXTW #3]
+ ldr x0, [x25, w23, UXTW #3]
; gcrRegs +[x0] ldr x1, [x0] ldr x1, [x1, #0xD1FFAB1E] @@ -195,14 +196,14 @@ G_M31465_IG11: ; bbWeight=4, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=10 blr x1 cmp x0, x22 beq G_M31465_IG14
- add w1, w23, #1 - sxtw w23, w1 - cmp w19, w23
+ add w23, w24, #1 + sxtw w24, w23 + cmp w19, w24
bgt G_M31465_IG11 ;; size=44 bbWeight=4 PerfScore 68.00 G_M31465_IG12: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x22]
- ; byrRegs -[x24]
+ ; byrRegs -[x25]
mov x0, x21 ; gcrRegs +[x0] ldr x1, [x21] @@ -223,45 +224,48 @@ G_M31465_IG12: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000 cset x0, eq ;; size=56 bbWeight=0.50 PerfScore 11.75 G_M31465_IG13: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
G_M31465_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M31465_IG15: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
G_M31465_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, wzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M31465_IG17: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x60] - ldp x21, x22, [sp, #0x50] - ldp x19, x20, [sp, #0x40] - ldp fp, lr, [sp], #0x70
+ ldr x25, [sp, #0x78] + ldp x23, x24, [sp, #0x68] + ldp x21, x22, [sp, #0x58] + ldp x19, x20, [sp, #0x48] + ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
-; Total bytes of code 556, prolog size 36, PerfScore 326.75, instruction count 139, allocated bytes for code 556 (MethodHash=11448516) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
+; Total bytes of code 572, prolog size 40, PerfScore 330.75, instruction count 143, allocated bytes for code 572 (MethodHash=11448516) for method Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 3 E bit : 0 X bit : 0 Vers : 0
- Function Length : 139 (0x0008b) Actual length = 556 (0x00022c)
+ Function Length : 143 (0x0008f) Actual length = 572 (0x00023c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -275,10 +279,13 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
+ D1 8F save_reg X#6 Z#15 (0x0F); str x25, [sp, #120]
E6 save_next E6 save_next
- C8 08 save_regp X#0 Z#8 (0x08); stp x19, x20, [sp, #64] - 8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
+ C8 09 save_regp X#0 Z#9 (0x09); stp x19, x20, [sp, #72] + 8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! + E4 end + E4 end
E4 end E4 end

+24 (+4.84%) : 10110.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 12, 7.12) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 13, 7.62) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.Infos+ILPropInfo> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> @@ -21,8 +21,8 @@ ;* V10 tmp1 [V10,T06] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V11 tmp2 [V11,T01] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> ; V12 tmp3 [V12,T17] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V13 tmp4 [V13,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" -;* V14 tmp5 [V14,T02] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+; V13 tmp4 [V13,T07] ( 2, 2 ) long -> x2 "fgMakeTemp is creating a new local variable" +; V14 tmp5 [V14,T02] ( 2, 2 ) ref -> x1 class-hnd "spilling QMark2" <<unknown class>>
; V15 tmp6 [V15,T15] ( 3, 1.25) long -> x1 "fgMakeTemp is creating a new local variable" ; V16 tmp7 [V16,T03] ( 3, 2.50) ref -> x0 class-hnd "spilling QMark2" <<unknown class>> ;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -159,6 +159,14 @@ G_M6027_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M6027_IG14: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x19]
+ mov x1, x19 + ; gcrRegs +[x1] + ldr x1, [x1] + ; gcrRegs -[x1] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2
ldp x0, x20, [x19, #0x10] ; gcrRegs +[x0] ldr x19, [x19, #0x20] @@ -179,7 +187,7 @@ G_M6027_IG14: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #0xD1FFAB1E LSL #32 ldr w0, [x0] tbz w0, #0, G_M6027_IG18
- ;; size=60 bbWeight=0.50 PerfScore 9.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M6027_IG15: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 @@ -252,7 +260,7 @@ G_M6027_IG18: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by b G_M6027_IG15 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 496, prolog size 20, PerfScore 64.50, instruction count 124, allocated bytes for code 496 (MethodHash=e82ee874) for method FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
+; Total bytes of code 520, prolog size 20, PerfScore 67.25, instruction count 130, allocated bytes for code 520 (MethodHash=e82ee874) for method FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -263,7 +271,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 124 (0x0007c) Actual length = 496 (0x0001f0)
+ Function Length : 130 (0x00082) Actual length = 520 (0x000208)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+4.88%) : 10131.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)

@@ -8,7 +8,7 @@ ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 12, 7.12) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 13, 7.62) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo> ;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.Infos+ILPropInfo> ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> @@ -20,8 +20,8 @@ ;* V09 tmp1 [V09,T06] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V10 tmp2 [V10,T01] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>> ; V11 tmp3 [V11,T15] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V12 tmp4 [V12,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" -;* V13 tmp5 [V13,T02] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+; V12 tmp4 [V12,T07] ( 2, 2 ) long -> x2 "fgMakeTemp is creating a new local variable" +; V13 tmp5 [V13,T02] ( 2, 2 ) ref -> x1 class-hnd "spilling QMark2" <<unknown class>>
; V14 tmp6 [V14,T13] ( 3, 1.25) long -> x1 "fgMakeTemp is creating a new local variable" ; V15 tmp7 [V15,T03] ( 3, 2.50) ref -> x0 class-hnd "spilling QMark2" <<unknown class>> ;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -148,6 +148,14 @@ G_M37451_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000 ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M37451_IG12: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x19]
+ mov x1, x19 + ; gcrRegs +[x1] + ldr x1, [x1] + ; gcrRegs -[x1] + movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2
ldp x0, x20, [x19, #0x10] ; gcrRegs +[x0] ldr x19, [x19, #0x20] @@ -168,7 +176,7 @@ G_M37451_IG12: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x0, #0xD1FFAB1E LSL #32 ldr w0, [x0] tbz w0, #0, G_M37451_IG16
- ;; size=60 bbWeight=0.50 PerfScore 9.75
+ ;; size=84 bbWeight=0.50 PerfScore 12.50
G_M37451_IG13: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 @@ -241,7 +249,7 @@ G_M37451_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b b G_M37451_IG13 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 492, prolog size 20, PerfScore 59.00, instruction count 123, allocated bytes for code 492 (MethodHash=380a6db4) for method FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
+; Total bytes of code 516, prolog size 20, PerfScore 61.75, instruction count 129, allocated bytes for code 516 (MethodHash=380a6db4) for method FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
; ============================================================ Unwind Info: @@ -252,7 +260,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 123 (0x0007b) Actual length = 492 (0x0001ec)
+ Function Length : 129 (0x00081) Actual length = 516 (0x000204)
---- 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 (-1.67%) : 9973.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)

@@ -50,7 +50,7 @@ G_M10656_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=36 bbWeight=1 PerfScore 7.50 G_M10656_IG02: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0]
- cbz x0, G_M10656_IG22
+ cbz x0, G_M10656_IG21
mov x21, xzr ; gcrRegs +[x21] cbnz x19, G_M10656_IG04 @@ -120,11 +120,11 @@ G_M10656_IG08: ; bbWeight=15.84, gcrefRegs=380000 {x19 x20 x21}, byrefReg cmp w1, w22 blt G_M10656_IG08 ;; size=60 bbWeight=15.84 PerfScore 380.16
-G_M10656_IG09: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref
+G_M10656_IG09: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref
; byrRegs -[x28] str w1, [fp, #0x2C] // [V07 loc4] b G_M10656_IG14
- ;; size=8 bbWeight=2 PerfScore 4.00
+ ;; size=8 bbWeight=4 PerfScore 8.00
G_M10656_IG10: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref str w1, [fp, #0x2C] // [V07 loc4] b G_M10656_IG14 @@ -141,7 +141,7 @@ G_M10656_IG12: ; bbWeight=0.16, gcrefRegs=10380000 {x19 x20 x21 x28}, byr ; byrRegs -[x0] ldr w0, [x28, #0x08] cmp w1, w0
- bhs G_M10656_IG21
+ bhs G_M10656_IG20
str x2, [fp, #0x18] // [V22 cse3] ; GC ptr vars +{V22} str w1, [fp, #0x2C] // [V07 loc4] @@ -154,29 +154,29 @@ G_M10656_IG12: ; bbWeight=0.16, gcrefRegs=10380000 {x19 x20 x21 x28}, byr ldr w1, [x19, #0x08] ldr w2, [fp, #0x2C] // [V07 loc4] cmp w2, w1
- bhs G_M10656_IG21
+ bhs G_M10656_IG20
str w2, [fp, #0x2C] // [V07 loc4] ldr x1, [x26, w2, UXTW #3] ; gcrRegs +[x1] bl System.Type:op_Equality(System.Type,System.Type):ubyte ; gcrRegs -[x0-x1] cbz w0, G_M10656_IG14
- ldr w0, [fp, #0x2C] // [V07 loc4] - add w0, w0, #1 - cmp w0, w22
+ ldr w1, [fp, #0x2C] // [V07 loc4] + add w1, w1, #1 + cmp w1, w22
ldr x2, [fp, #0x18] // [V22 cse3] ; byrRegs +[x2]
- blt G_M10656_IG20
+ blt G_M10656_IG12
;; size=88 bbWeight=0.16 PerfScore 5.60 G_M10656_IG13: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, gcvars, byref ; gcrRegs -[x28] ; byrRegs -[x2] ; GC ptr vars -{V22}
- str w0, [fp, #0x2C] // [V07 loc4]
+ str w1, [fp, #0x2C] // [V07 loc4]
;; size=4 bbWeight=0.08 PerfScore 0.08 G_M10656_IG14: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz
- ldr w0, [fp, #0x2C] // [V07 loc4] - cmp w0, w22
+ ldr w1, [fp, #0x2C] // [V07 loc4] + cmp w1, w22
blt G_M10656_IG17 ;; size=12 bbWeight=4 PerfScore 14.00 G_M10656_IG15: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz @@ -194,7 +194,7 @@ G_M10656_IG15: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=60 cbz w0, G_M10656_IG17 ;; size=36 bbWeight=2 PerfScore 28.00 G_M10656_IG16: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz
- cbnz x21, G_M10656_IG23
+ cbnz x21, G_M10656_IG22
ldr x21, [x25, x27] ;; size=8 bbWeight=2 PerfScore 8.00 G_M10656_IG17: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz @@ -217,18 +217,11 @@ G_M10656_IG19: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x80 ret lr ;; size=28 bbWeight=1 PerfScore 7.00
-G_M10656_IG20: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=10380000 {x19 x20 x21 x28}, byrefRegs=6000004 {x2 x25 x26}, gcvars, byref - ; gcrRegs -[x0] +[x19-x20 x28] - ; byrRegs +[x2 x25-x26] - mov w1, w0 - b G_M10656_IG12 - ;; size=8 bbWeight=0.08 PerfScore 0.12 -G_M10656_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x21 x28] - ; byrRegs -[x2 x25-x26]
+G_M10656_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0 x21]
bl CORINFO_HELP_RNGCHKFAIL ;; size=4 bbWeight=0 PerfScore 0.00
-G_M10656_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10656_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
adrp x0, [HIGH RELOC #0xD1FFAB1E] add x0, x0, [LOW RELOC #0xD1FFAB1E] ; gcrRegs +[x0] @@ -236,7 +229,7 @@ G_M10656_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] brk_windows #0 ;; size=16 bbWeight=0 PerfScore 0.00
-G_M10656_IG23: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M10656_IG22: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -247,7 +240,7 @@ G_M10656_IG23: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b brk_windows #0 ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 480, prolog size 28, PerfScore 554.79, instruction count 120, allocated bytes for code 480 (MethodHash=09bdd65f) for method System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
+; Total bytes of code 472, prolog size 28, PerfScore 558.67, instruction count 118, allocated bytes for code 472 (MethodHash=09bdd65f) for method System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
; ============================================================ Unwind Info: @@ -258,7 +251,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 120 (0x00078) Actual length = 480 (0x0001e0)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-1.43%) : 5146.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)

@@ -51,7 +51,7 @@ G_M10656_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=36 bbWeight=1 PerfScore 7.50 G_M10656_IG02: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x0]
- cbz x0, G_M10656_IG22
+ cbz x0, G_M10656_IG21
mov x21, xzr ; gcrRegs +[x21] cbnz x19, G_M10656_IG04 @@ -131,11 +131,11 @@ G_M10656_IG08: ; bbWeight=15.84, gcrefRegs=380000 {x19 x20 x21}, byrefReg cmp w1, w22 blt G_M10656_IG08 ;; size=80 bbWeight=15.84 PerfScore 467.28
-G_M10656_IG09: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref
+G_M10656_IG09: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref
; byrRegs -[x28] str w1, [fp, #0x2C] // [V07 loc4] b G_M10656_IG14
- ;; size=8 bbWeight=2 PerfScore 4.00
+ ;; size=8 bbWeight=4 PerfScore 8.00
G_M10656_IG10: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref str w1, [fp, #0x2C] // [V07 loc4] b G_M10656_IG14 @@ -152,7 +152,7 @@ G_M10656_IG12: ; bbWeight=0.16, gcrefRegs=10380000 {x19 x20 x21 x28}, byr ; byrRegs -[x15] ldr w15, [x28, #0x08] cmp w1, w15
- bhs G_M10656_IG21
+ bhs G_M10656_IG20
str x2, [fp, #0x18] // [V22 cse3] ; GC ptr vars +{V22} str w1, [fp, #0x2C] // [V07 loc4] @@ -170,29 +170,29 @@ G_M10656_IG12: ; bbWeight=0.16, gcrefRegs=10380000 {x19 x20 x21 x28}, byr ldr w1, [x19, #0x08] ldr w2, [fp, #0x2C] // [V07 loc4] cmp w2, w1
- bhs G_M10656_IG21
+ bhs G_M10656_IG20
str w2, [fp, #0x2C] // [V07 loc4] ldr x1, [x26, w2, UXTW #3] ; gcrRegs +[x1] bl System.Type:op_Equality(System.Type,System.Type):ubyte ; gcrRegs -[x0-x1] cbz w0, G_M10656_IG14
- ldr w15, [fp, #0x2C] // [V07 loc4] - add w15, w15, #1 - cmp w15, w22
+ ldr w1, [fp, #0x2C] // [V07 loc4] + add w1, w1, #1 + cmp w1, w22
ldr x2, [fp, #0x18] // [V22 cse3] ; byrRegs +[x2]
- blt G_M10656_IG20
+ blt G_M10656_IG12
;; size=108 bbWeight=0.16 PerfScore 6.48 G_M10656_IG13: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, gcvars, byref ; gcrRegs -[x28] ; byrRegs -[x2] ; GC ptr vars -{V22}
- str w15, [fp, #0x2C] // [V07 loc4]
+ str w1, [fp, #0x2C] // [V07 loc4]
;; size=4 bbWeight=0.08 PerfScore 0.08 G_M10656_IG14: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz
- ldr w15, [fp, #0x2C] // [V07 loc4] - cmp w15, w22
+ ldr w1, [fp, #0x2C] // [V07 loc4] + cmp w1, w22
blt G_M10656_IG17 ;; size=12 bbWeight=4 PerfScore 14.00 G_M10656_IG15: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz @@ -215,7 +215,7 @@ G_M10656_IG15: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=60 cbz w0, G_M10656_IG17 ;; size=56 bbWeight=2 PerfScore 39.00 G_M10656_IG16: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz
- cbnz x21, G_M10656_IG23
+ cbnz x21, G_M10656_IG22
ldr x21, [x25, x27] ;; size=8 bbWeight=2 PerfScore 8.00 G_M10656_IG17: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz @@ -238,18 +238,11 @@ G_M10656_IG19: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x80 ret lr ;; size=28 bbWeight=1 PerfScore 7.00
-G_M10656_IG20: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=10380000 {x19 x20 x21 x28}, byrefRegs=6000004 {x2 x25 x26}, gcvars, byref - ; gcrRegs -[x0] +[x19-x20 x28] - ; byrRegs +[x2 x25-x26] - mov w1, w15 - b G_M10656_IG12 - ;; size=8 bbWeight=0.08 PerfScore 0.12 -G_M10656_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x21 x28] - ; byrRegs -[x2 x25-x26]
+G_M10656_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0 x21]
bl CORINFO_HELP_RNGCHKFAIL ;; size=4 bbWeight=0 PerfScore 0.00
-G_M10656_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10656_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
adrp x0, [HIGH RELOC #0xD1FFAB1E] add x0, x0, [LOW RELOC #0xD1FFAB1E] ; gcrRegs +[x0] @@ -257,7 +250,7 @@ G_M10656_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] brk_windows #0 ;; size=16 bbWeight=0 PerfScore 0.00
-G_M10656_IG23: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M10656_IG22: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -268,7 +261,7 @@ G_M10656_IG23: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b brk_windows #0 ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 560, prolog size 28, PerfScore 675.79, instruction count 140, allocated bytes for code 560 (MethodHash=09bdd65f) for method System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
+; Total bytes of code 552, prolog size 28, PerfScore 679.67, instruction count 138, allocated bytes for code 552 (MethodHash=09bdd65f) for method System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
; ============================================================ Unwind Info: @@ -279,7 +272,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 140 (0x0008c) Actual length = 560 (0x000230)
+ Function Length : 138 (0x0008a) Actual length = 552 (0x000228)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-0.55%) : 21662.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)

@@ -300,12 +300,11 @@ G_M40395_IG25: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 ldr x2, [x0, #0x08] ; gcrRegs +[x2] cbnz x2, G_M40395_IG18
- ldr x0, [fp, #0x18] // [V00 this]
ldr x2, [x0, #0x10] cbz x2, G_M40395_IG18 add w21, w1, #1 b G_M40395_IG19
- ;; size=28 bbWeight=0.50 PerfScore 5.75
+ ;; size=24 bbWeight=0.50 PerfScore 4.75
G_M40395_IG26: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x2] ldr x0, [fp, #0x18] // [V00 this] @@ -362,7 +361,7 @@ G_M40395_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 732, prolog size 32, PerfScore 336.00, instruction count 183, allocated bytes for code 732 (MethodHash=a3f86234) for method System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
+; Total bytes of code 728, prolog size 32, PerfScore 335.00, instruction count 182, allocated bytes for code 728 (MethodHash=a3f86234) for method System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
; ============================================================ Unwind Info: @@ -373,7 +372,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 166 (0x000a6) Actual length = 664 (0x000298)
+ Function Length : 165 (0x000a5) Actual length = 660 (0x000294)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+3.12%) : 11702.dasm - Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)

@@ -8,11 +8,11 @@ ; Final local variable assignments ; ; V00 this [V00,T06] ( 4, 4 ) ref -> x0 this class-hnd exact single-def <<unknown class>>
-; V01 loc0 [V01,T00] ( 8, 24.50) int -> x2
+; V01 loc0 [V01,T00] ( 9, 24.50) int -> x2
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T03] ( 2, 16 ) ref -> x4 class-hnd exact "Inlining Arg" <<unknown class>> ;* V04 tmp2 [V04 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V05 tmp3 [V05,T02] ( 3, 16 ) int -> x5 "Inlining Arg"
+; V05 tmp3 [V05,T02] ( 4, 16 ) int -> x5 "Inlining Arg"
;* V06 tmp4 [V06,T07] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc> ;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -74,6 +74,7 @@ G_M17212_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00 G_M17212_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ cmp w2, w5
mov w0, w2 mov w1, w5 adrp x2, [HIGH RELOC #0xD1FFAB1E] @@ -83,9 +84,9 @@ G_M17212_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x2] ; gcr arg pop 0 brk_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 8, PerfScore 77.00, instruction count 32, allocated bytes for code 128 (MethodHash=6f80bcc3) for method Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 77.00, instruction count 33, allocated bytes for code 132 (MethodHash=6f80bcc3) for method Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
; ============================================================ Unwind Info: @@ -96,7 +97,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ 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)

+4 (+3.12%) : 6384.dasm - Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)

@@ -9,11 +9,11 @@ ; Final local variable assignments ; ; V00 this [V00,T06] ( 4, 4 ) ref -> x0 this class-hnd exact single-def <<unknown class>>
-; V01 loc0 [V01,T00] ( 8, 24.50) int -> x2
+; V01 loc0 [V01,T00] ( 9, 24.50) int -> x2
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V03 tmp1 [V03,T03] ( 2, 16 ) ref -> x4 class-hnd exact "Inlining Arg" <<unknown class>> ;* V04 tmp2 [V04 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V05 tmp3 [V05,T02] ( 3, 16 ) int -> x5 "Inlining Arg"
+; V05 tmp3 [V05,T02] ( 4, 16 ) int -> x5 "Inlining Arg"
;* V06 tmp4 [V06,T07] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc> ;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>> @@ -75,6 +75,7 @@ G_M17212_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00 G_M17212_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ cmp w2, w5
mov w0, w2 mov w1, w5 adrp x2, [HIGH RELOC #0xD1FFAB1E] @@ -84,9 +85,9 @@ G_M17212_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x2] ; gcr arg pop 0 brk_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 8, PerfScore 77.00, instruction count 32, allocated bytes for code 128 (MethodHash=6f80bcc3) for method Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
+; Total bytes of code 132, prolog size 8, PerfScore 77.00, instruction count 33, allocated bytes for code 132 (MethodHash=6f80bcc3) for method Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
; ============================================================ Unwind Info: @@ -97,7 +98,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ 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 (+4.65%) : 15171.dasm - PInvokeTests.Program:TestSizeParamIndex() (FullOpts)

@@ -7,20 +7,21 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 loc0 [V00 ] ( 3, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op -; V01 loc1 [V01 ] ( 3, 9 ) ref -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>> -; V02 loc2 [V02,T02] ( 3, 2.50) ubyte -> x1 -; V03 loc3 [V03,T00] ( 7, 25 ) int -> x0
+; V00 loc0 [V00 ] ( 3, 3 ) ubyte -> [fp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op +; V01 loc1 [V01 ] ( 3, 9 ) ref -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>> +; V02 loc2 [V02,T02] ( 3, 2.50) ubyte -> x19 +; V03 loc3 [V03,T00] ( 7, 25 ) int -> x1
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T01] ( 3, 6 ) int -> x2 "CSE - aggressive"
+; V05 cse0 [V05,T01] ( 3, 6 ) int -> x0 "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M49212_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
+ stp fp, lr, [sp, #-0x30]! + str x19, [sp, #0x28]
mov fp, sp
- stp xzr, xzr, [fp, #0x10] // [V01 loc1], [V00 loc0] - ;; size=12 bbWeight=1 PerfScore 2.50
+ stp xzr, xzr, [fp, #0x18] // [V01 loc1], [V00 loc0] + ;; size=16 bbWeight=1 PerfScore 3.50
G_M49212_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz adrp x0, [HIGH RELOC #0xD1FFAB1E] add x0, x0, [LOW RELOC #0xD1FFAB1E] @@ -28,11 +29,11 @@ G_M49212_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bl <unknown method> ; gcrRegs -[x0] ; gcr arg pop 0
- add x0, fp, #16 // [V01 loc1] - add x1, fp, #24 // [V00 loc0]
+ add x0, fp, #24 // [V01 loc1] + add x1, fp, #32 // [V00 loc0]
bl <unknown method> ; gcr arg pop 0
- ldrb w1, [fp, #0x18] // [V00 loc0]
+ ldrb w1, [fp, #0x20] // [V00 loc0]
mov w0, #10 adrp x2, [HIGH RELOC #0xD1FFAB1E] add x2, x2, [LOW RELOC #0xD1FFAB1E] @@ -40,40 +41,40 @@ G_M49212_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bl PInvokeTests.Program:ThrowIfNotEquals[int](int,int,System.String) ; gcrRegs -[x2] ; gcr arg pop 0
- mov w1, #1 - mov w0, wzr - ldrb w2, [fp, #0x18] // [V00 loc0] - cmp w2, #0
+ mov w19, #1 + mov w1, wzr + ldrb w0, [fp, #0x20] // [V00 loc0] + cmp w0, #0
ble G_M49212_IG06 ;; size=64 bbWeight=1 PerfScore 13.00 G_M49212_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x3, [fp, #0x10] // [V01 loc1] - ; gcrRegs +[x3] - ldr w3, [x3, #0x08] - ; gcrRegs -[x3] - cmp w0, w3
+ ldr x2, [fp, #0x18] // [V01 loc1] + ; gcrRegs +[x2] + ldr w2, [x2, #0x08] + ; gcrRegs -[x2] + cmp w1, w2
bhs G_M49212_IG08
- ldr x3, [fp, #0x10] // [V01 loc1] - ; gcrRegs +[x3] - add x3, x3, #16 - ; gcrRegs -[x3] - ; byrRegs +[x3] - ldrb w3, [x3, w0, UXTW #2] - ; byrRegs -[x3] - cmp w3, w0
+ ldr x2, [fp, #0x18] // [V01 loc1] + ; gcrRegs +[x2] + add x2, x2, #16 + ; gcrRegs -[x2] + ; byrRegs +[x2] + ldrb w2, [x2, w1, UXTW #2] + ; byrRegs -[x2] + cmp w2, w1
bne G_M49212_IG05
- add w0, w0, #1 - cmp w0, w2
+ add w1, w1, #1 + cmp w1, w0
blt G_M49212_IG03 ;; size=48 bbWeight=4 PerfScore 62.00
-G_M49212_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49212_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
b G_M49212_IG06
- ;; size=4 bbWeight=0.50 PerfScore 0.50
+ ;; size=4 bbWeight=1 PerfScore 1.00
G_M49212_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, wzr
+ mov w19, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25 G_M49212_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- cmp w1, #0
+ cmp w19, #0
cset x1, ne mov w0, #1 adrp x2, [HIGH RELOC #0xD1FFAB1E] @@ -84,27 +85,28 @@ G_M49212_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 3.50 G_M49212_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x20
+ ldr x19, [sp, #0x28] + ldp fp, lr, [sp], #0x30
ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M49212_IG08: ; 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 172, prolog size 12, PerfScore 83.75, instruction count 43, allocated bytes for code 172 (MethodHash=824d3fc3) for method PInvokeTests.Program:TestSizeParamIndex() (FullOpts)
+; Total bytes of code 180, prolog size 16, PerfScore 87.25, instruction count 45, allocated bytes for code 180 (MethodHash=824d3fc3) for method PInvokeTests.Program:TestSizeParamIndex() (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 : 1 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) @@ -112,7 +114,10 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ 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 E4 end

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 177 29 30 118 -176 +276
benchmarks.run_pgo.windows.arm64.checked.mch 2,282 684 744 854 -6,752 +6,308
benchmarks.run_tiered.windows.arm64.checked.mch 79 11 16 52 -680 +108
coreclr_tests.run.windows.arm64.checked.mch 1,275 292 352 631 -2,860 +3,300
libraries.crossgen2.windows.arm64.checked.mch 718 97 70 551 -872 +676
libraries.pmi.windows.arm64.checked.mch 1,059 157 153 749 -1,484 +1,688
libraries_tests.run.windows.arm64.Release.mch 6,257 1,801 1,534 2,922 -22,780 +13,352
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 1,404 215 216 973 -2,212 +2,072
realworld.run.windows.arm64.checked.mch 269 39 34 196 -328 +372
smoke_tests.nativeaot.windows.arm64.checked.mch 117 4 30 83 -24 +220
13,637 3,329 3,179 7,129 -38,168 +28,372

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,218 4 24,214 229 (0.94%) 229 (0.94%)
benchmarks.run_pgo.windows.arm64.checked.mch 96,879 48,066 48,813 104 (0.11%) 104 (0.11%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,412 36,693 11,719 61 (0.13%) 61 (0.13%)
coreclr_tests.run.windows.arm64.checked.mch 595,265 362,539 232,726 438 (0.07%) 438 (0.07%)
libraries.crossgen2.windows.arm64.checked.mch 243,831 15 243,816 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 302,817 6 302,811 2,054 (0.67%) 2,054 (0.67%)
libraries_tests.run.windows.arm64.Release.mch 625,154 460,799 164,355 900 (0.14%) 900 (0.14%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 314,858 21,559 293,299 2,179 (0.69%) 2,179 (0.69%)
realworld.run.windows.arm64.checked.mch 32,878 3 32,875 366 (1.10%) 366 (1.10%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,152 8 24,144 3 (0.01%) 3 (0.01%)
2,308,464 929,692 1,378,772 6,334 (0.27%) 6,334 (0.27%)

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

Detail diffs



Top file regressions (bytes):
          20 : 11720.dasm (0.88 % of base)
          20 : 16563.dasm (0.53 % of base)
          16 : 21803.dasm (1.67 % of base)
          16 : 22720.dasm (0.20 % of base)
          16 : 11036.dasm (0.21 % of base)
          16 : 4967.dasm (1.50 % of base)
          16 : 23543.dasm (2.25 % of base)
          16 : 23688.dasm (1.01 % of base)
          12 : 21898.dasm (3.16 % of base)
          12 : 2668.dasm (1.16 % of base)
          12 : 9039.dasm (0.15 % of base)
          12 : 3977.dasm (1.74 % of base)
           8 : 16732.dasm (1.89 % of base)
           8 : 10246.dasm (1.13 % of base)
           8 : 11288.dasm (0.31 % of base)
           8 : 22847.dasm (1.80 % of base)
           8 : 22905.dasm (0.54 % of base)
           4 : 14200.dasm (2.33 % of base)
           4 : 2660.dasm (0.71 % of base)
           4 : 13840.dasm (0.17 % of base)

Top file improvements (bytes):
         -24 : 21980.dasm (-1.10 % of base)
         -16 : 4797.dasm (-0.45 % of base)
         -12 : 2773.dasm (-0.80 % of base)
          -8 : 22717.dasm (-0.14 % of base)
          -8 : 9060.dasm (-0.08 % of base)
          -8 : 17291.dasm (-0.10 % of base)
          -8 : 17538.dasm (-0.26 % of base)
          -8 : 4989.dasm (-0.40 % of base)
          -4 : 10647.dasm (-0.36 % of base)
          -4 : 14991.dasm (-1.56 % of base)
          -4 : 15975.dasm (-0.07 % of base)
          -4 : 17488.dasm (-0.15 % of base)
          -4 : 17588.dasm (-0.14 % of base)
          -4 : 18073.dasm (-0.40 % of base)
          -4 : 18232.dasm (-0.32 % of base)
          -4 : 21493.dasm (-0.24 % of base)
          -4 : 22258.dasm (-0.02 % of base)
          -4 : 22714.dasm (-0.02 % of base)
          -4 : 7132.dasm (-0.21 % of base)
          -4 : 14201.dasm (-0.46 % of base)

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

Top method regressions (bytes):
          20 (0.53 % of base) : 16563.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (FullOpts)
          20 (0.88 % of base) : 11720.dasm - Newtonsoft.Json.JsonTextReader:ReadStringValue(int):System.Object:this (FullOpts)
          16 (1.67 % of base) : 21803.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (FullOpts)
          16 (2.25 % of base) : 23543.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)
          16 (0.21 % of base) : 11036.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (FullOpts)
          16 (0.20 % of base) : 22720.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (FullOpts)
          16 (1.01 % of base) : 23688.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          16 (1.50 % of base) : 4967.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
          12 (0.15 % of base) : 9039.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (3.16 % of base) : 21898.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)
          12 (1.74 % of base) : 3977.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          12 (1.16 % of base) : 2668.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
           8 (0.54 % of base) : 22905.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (FullOpts)
           8 (1.80 % of base) : 22847.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (FullOpts)
           8 (1.89 % of base) : 16732.dasm - System.Net.WebSockets.ManagedWebSocket:WriteHeader(ubyte,ubyte[],System.ReadOnlySpan`1[ubyte],ubyte,ubyte,ubyte):int (FullOpts)
           8 (0.31 % of base) : 11288.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)
           8 (1.13 % of base) : 10246.dasm - System.Xml.XmlUTF8TextReader:ReadQualifiedName(System.Xml.PrefixHandle,System.Xml.StringHandle):this (FullOpts)
           4 (0.71 % of base) : 2660.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
           4 (0.27 % of base) : 17537.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[System.__Canon],int):ubyte:this (FullOpts)
           4 (0.44 % of base) : 18314.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,int](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,int,ubyte],int):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)

Top method improvements (bytes):
         -24 (-1.10 % of base) : 21980.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -16 (-0.45 % of base) : 4797.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -12 (-0.80 % of base) : 2773.dasm - System.Net.Security.SslStreamCertificateContext:.ctor(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Net.Security.SslCertificateTrust):this (FullOpts)
          -8 (-0.14 % of base) : 22717.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
          -8 (-0.08 % of base) : 9060.dasm - Jil.Deserialize.Methods:SkipWithLeadCharThunkReader(byref,int) (FullOpts)
          -8 (-0.10 % of base) : 17291.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          -8 (-0.26 % of base) : 17538.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)
          -8 (-0.40 % of base) : 4989.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
          -4 (-0.02 % of base) : 22258.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.07 % of base) : 15975.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.02 % of base) : 22714.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.24 % of base) : 21493.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (FullOpts)
          -4 (-0.43 % of base) : 19746.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
          -4 (-0.17 % of base) : 17550.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:BuildReferencedAssembliesAndModulesMaps(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],int,int,System.Collections.Generic.IReadOnlyDictionary`2[System.__Canon,System.__Canon],ubyte,byref,byref,byref,byref) (FullOpts)
          -4 (-0.15 % of base) : 17488.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          -4 (-0.14 % of base) : 17588.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)
          -4 (-0.32 % of base) : 18232.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddDeclaredNontypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          -4 (-0.40 % of base) : 18073.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
          -4 (-0.21 % of base) : 7132.dasm - ProtoBuf.Meta.MetaType:ResolveTupleConstructor(System.Type,byref):System.Reflection.ConstructorInfo (FullOpts)
          -4 (-1.56 % of base) : 14991.dasm - Struct.GSeq:FilterSkipMapSum():int:this (FullOpts)

Top method regressions (percentages):
          12 (3.16 % of base) : 21898.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)
           4 (2.33 % of base) : 14200.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          16 (2.25 % of base) : 23543.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)
           8 (1.89 % of base) : 16732.dasm - System.Net.WebSockets.ManagedWebSocket:WriteHeader(ubyte,ubyte[],System.ReadOnlySpan`1[ubyte],ubyte,ubyte,ubyte):int (FullOpts)
           8 (1.80 % of base) : 22847.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (FullOpts)
          12 (1.74 % of base) : 3977.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          16 (1.67 % of base) : 21803.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (FullOpts)
          16 (1.50 % of base) : 4967.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
          12 (1.16 % of base) : 2668.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
           8 (1.13 % of base) : 10246.dasm - System.Xml.XmlUTF8TextReader:ReadQualifiedName(System.Xml.PrefixHandle,System.Xml.StringHandle):this (FullOpts)
          16 (1.01 % of base) : 23688.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          20 (0.88 % of base) : 11720.dasm - Newtonsoft.Json.JsonTextReader:ReadStringValue(int):System.Object:this (FullOpts)
           4 (0.71 % of base) : 2660.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
           8 (0.54 % of base) : 22905.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (FullOpts)
          20 (0.53 % of base) : 16563.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (FullOpts)
           4 (0.44 % of base) : 18314.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,int](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,int,ubyte],int):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
           4 (0.42 % of base) : 23365.dasm - System.Collections.Concurrent.ConcurrentQueue`1[int]:get_Count():int:this (FullOpts)
           8 (0.31 % of base) : 11288.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)
           4 (0.27 % of base) : 17537.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[System.__Canon],int):ubyte:this (FullOpts)
           4 (0.27 % of base) : 4226.dasm - System.Threading.Barrier:SignalAndWait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)

Top method improvements (percentages):
          -4 (-1.56 % of base) : 14991.dasm - Struct.GSeq:FilterSkipMapSum():int:this (FullOpts)
         -24 (-1.10 % of base) : 21980.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
          -4 (-0.81 % of base) : 5815.dasm - Utf8Json.JsonReader:ReadInt64():long:this (FullOpts)
         -12 (-0.80 % of base) : 2773.dasm - System.Net.Security.SslStreamCertificateContext:.ctor(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Net.Security.SslCertificateTrust):this (FullOpts)
          -4 (-0.46 % of base) : 14201.dasm - System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (FullOpts)
         -16 (-0.45 % of base) : 4797.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
          -4 (-0.43 % of base) : 19746.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
          -4 (-0.41 % of base) : 6248.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          -8 (-0.40 % of base) : 4989.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
          -4 (-0.40 % of base) : 18073.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
          -4 (-0.36 % of base) : 10647.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:get_Count():int:this (FullOpts)
          -4 (-0.32 % of base) : 18232.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddDeclaredNontypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          -4 (-0.32 % of base) : 23487.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
          -8 (-0.26 % of base) : 17538.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)
          -4 (-0.24 % of base) : 21493.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (FullOpts)
          -4 (-0.21 % of base) : 7132.dasm - ProtoBuf.Meta.MetaType:ResolveTupleConstructor(System.Type,byref):System.Reflection.ConstructorInfo (FullOpts)
          -4 (-0.17 % of base) : 17550.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:BuildReferencedAssembliesAndModulesMaps(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],int,int,System.Collections.Generic.IReadOnlyDictionary`2[System.__Canon,System.__Canon],ubyte,byref,byref,byref,byref) (FullOpts)
          -4 (-0.15 % of base) : 17488.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          -4 (-0.14 % of base) : 17588.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)
          -8 (-0.14 % of base) : 22717.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (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: 46517260 (overridden on cmd)
Total bytes of diff: 46516816 (overridden on cmd)
Total bytes of delta: -444 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          60 : 81669.dasm (1.73 % of base)
          36 : 78420.dasm (2.04 % of base)
          36 : 6091.dasm (2.04 % of base)
          36 : 84724.dasm (2.04 % of base)
          32 : 26047.dasm (1.82 % of base)
          32 : 71336.dasm (1.82 % of base)
          32 : 71979.dasm (1.82 % of base)
          32 : 75359.dasm (1.82 % of base)
          32 : 93119.dasm (1.82 % of base)
          32 : 94075.dasm (2.19 % of base)
          32 : 94082.dasm (1.82 % of base)
          32 : 73768.dasm (2.22 % of base)
          32 : 75319.dasm (1.82 % of base)
          32 : 49648.dasm (1.82 % of base)
          32 : 70340.dasm (1.82 % of base)
          32 : 81048.dasm (1.82 % of base)
          32 : 82580.dasm (2.22 % of base)
          32 : 92808.dasm (1.82 % of base)
          32 : 90300.dasm (1.82 % of base)
          32 : 95463.dasm (1.82 % of base)

Top file improvements (bytes):
        -476 : 94410.dasm (-33.06 % of base)
        -460 : 94405.dasm (-31.94 % of base)
        -156 : 51147.dasm (-21.67 % of base)
        -156 : 51172.dasm (-21.67 % of base)
         -60 : 83408.dasm (-1.15 % of base)
         -56 : 72877.dasm (-6.60 % of base)
         -52 : 69164.dasm (-1.16 % of base)
         -48 : 87440.dasm (-1.45 % of base)
         -40 : 82789.dasm (-1.23 % of base)
         -40 : 84475.dasm (-1.21 % of base)
         -32 : 25638.dasm (-11.76 % of base)
         -28 : 82086.dasm (-0.79 % of base)
         -28 : 19396.dasm (-0.86 % of base)
         -24 : 76318.dasm (-1.10 % of base)
         -24 : 87049.dasm (-1.41 % of base)
         -24 : 65411.dasm (-1.43 % of base)
         -24 : 85464.dasm (-1.38 % of base)
         -24 : 95061.dasm (-0.83 % of base)
         -24 : 4936.dasm (-1.38 % of base)
         -24 : 90420.dasm (-7.41 % of base)

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

Top method regressions (bytes):
          60 (1.73 % of base) : 81669.dasm - System.Reflection.CustomAttribute:AddCustomAttributes(byref,System.Reflection.RuntimeModule,int,System.RuntimeType,ubyte,System.RuntimeType+ListBuilder`1[System.Object]) (Tier1)
          36 (2.04 % of base) : 78420.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          36 (2.04 % of base) : 6091.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          36 (2.04 % of base) : 84724.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 26047.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 71336.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 71979.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 75359.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 93119.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 94082.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 75319.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 49648.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 70340.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 81048.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 92808.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 90300.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (1.82 % of base) : 95463.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
          32 (2.19 % of base) : 94075.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.22 % of base) : 73768.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)
          32 (2.22 % of base) : 82580.dasm - System.Linq.Enumerable+SelectManySingleSelectorIterator`2[int,System.__Canon]:ToArray():System.__Canon[]:this (Tier1-OSR)

Top method improvements (bytes):
        -476 (-33.06 % of base) : 94410.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -460 (-31.94 % of base) : 94405.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.67 % of base) : 51147.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 51172.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -60 (-1.15 % of base) : 83408.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -56 (-6.60 % of base) : 72877.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -52 (-1.16 % of base) : 69164.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -48 (-1.45 % of base) : 87440.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -40 (-1.23 % of base) : 82789.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -40 (-1.21 % of base) : 84475.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -32 (-11.76 % of base) : 25638.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
         -28 (-0.79 % of base) : 82086.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -28 (-0.86 % of base) : 19396.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (Tier1)
         -24 (-0.83 % of base) : 95061.dasm - StringSort:Run():double:this (Tier1)
         -24 (-1.10 % of base) : 76318.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
         -24 (-7.41 % of base) : 90420.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -24 (-1.41 % of base) : 87049.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         -24 (-1.43 % of base) : 65411.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         -24 (-1.38 % of base) : 85464.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         -24 (-1.38 % of base) : 4936.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)

Top method regressions (percentages):
          20 (9.43 % of base) : 75589.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[int]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
          20 (9.43 % of base) : 79861.dasm - System.Collections.Concurrent.AddRemoveFromDifferentThreads`1+<>c__DisplayClass10_0[System.__Canon]:<SetupConcurrentQueueIteration>b__0():this (Tier1-OSR)
           4 (8.33 % of base) : 67453.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
           4 (8.33 % of base) : 70259.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
           4 (8.33 % of base) : 84489.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
          12 (7.69 % of base) : 23900.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 75973.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 93683.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 96041.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 73702.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          28 (6.54 % of base) : 96066.dasm - System.Threading.ThreadPoolWorkQueue:TryStartProcessingHighPriorityWorkItemsAndDequeue(System.Threading.ThreadPoolWorkQueueThreadLocals,byref):ubyte:this (Tier1)
           8 (4.08 % of base) : 44195.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
           4 (3.70 % of base) : 70469.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:InsertionSort(System.Span`1[System.Collections.IntStruct]) (Tier1)
           4 (3.70 % of base) : 77353.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:InsertionSort(System.Span`1[System.Collections.IntStruct]) (Tier1)
           8 (3.64 % of base) : 87859.dasm - Benchstone.MDBenchI.MDLogicArray:Inner(byref):ubyte (Tier1-OSR)
           4 (2.70 % of base) : 87979.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
           4 (2.70 % of base) : 94486.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
          20 (2.56 % of base) : 95480.dasm - System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):ubyte (Tier1-OSR)
          20 (2.56 % of base) : 92828.dasm - System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):ubyte (Tier1-OSR)
          20 (2.56 % of base) : 94096.dasm - System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):ubyte (Tier1-OSR)

Top method improvements (percentages):
        -476 (-33.06 % of base) : 94410.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -460 (-31.94 % of base) : 94405.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -156 (-21.67 % of base) : 51147.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 51172.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -32 (-11.76 % of base) : 25638.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Tier1)
         -24 (-7.41 % of base) : 90420.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -16 (-7.02 % of base) : 18364.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 18362.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -56 (-6.60 % of base) : 72877.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -16 (-6.56 % of base) : 6216.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 65825.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 75343.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 34022.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 48473.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 78325.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 81069.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 84733.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 92822.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 43179.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)
         -16 (-6.56 % of base) : 94090.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(ulong,System.Object):System.Object (Tier1)


benchmarks.run_tiered.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15265556 (overridden on cmd)
Total bytes of diff: 15264984 (overridden on cmd)
Total bytes of delta: -572 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          20 : 31666.dasm (0.54 % of base)
          16 : 44142.dasm (2.07 % of base)
          12 : 42922.dasm (1.16 % of base)
          12 : 19641.dasm (0.15 % of base)
           4 : 30372.dasm (0.13 % of base)
           4 : 31850.dasm (0.49 % of base)
           4 : 42796.dasm (0.29 % of base)
           4 : 42800.dasm (0.27 % of base)
           4 : 42991.dasm (0.71 % of base)
           4 : 45036.dasm (0.82 % of base)
           4 : 46697.dasm (2.70 % of base)
           4 : 22649.dasm (0.16 % of base)
           4 : 27075.dasm (0.07 % of base)
           4 : 40106.dasm (1.08 % of base)
           4 : 40331.dasm (0.67 % of base)
           4 : 42748.dasm (0.16 % of base)

Top file improvements (bytes):
        -420 : 48090.dasm (-31.44 % of base)
        -152 : 31846.dasm (-14.13 % of base)
         -56 : 43149.dasm (-6.97 % of base)
         -24 : 44418.dasm (-1.10 % of base)
          -4 : 30387.dasm (-0.09 % of base)
          -4 : 38947.dasm (-0.41 % of base)
          -4 : 48404.dasm (-0.32 % of base)
          -4 : 30379.dasm (-0.07 % of base)
          -4 : 40423.dasm (-0.10 % of base)
          -4 : 45121.dasm (-0.02 % of base)
          -4 : 45636.dasm (-0.02 % of base)

27 total files with Code Size differences (11 improved, 16 regressed), 28 unchanged.

Top method regressions (bytes):
          20 (0.54 % of base) : 31666.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
          16 (2.07 % of base) : 44142.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)
          12 (0.15 % of base) : 19641.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
          12 (1.16 % of base) : 42922.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
           4 (0.29 % of base) : 42796.dasm - Benchstone.BenchF.MatInv4:MinV1(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.27 % of base) : 42800.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.13 % of base) : 30372.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
           4 (0.82 % of base) : 45036.dasm - Benchstone.MDBenchF.MDInvMt:Inner(double[,],byref,byref) (Tier1-OSR)
           4 (1.08 % of base) : 40106.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (0.71 % of base) : 42991.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (Tier1)
           4 (0.49 % of base) : 31850.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier1-OSR)
           4 (0.16 % of base) : 22649.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
           4 (2.70 % of base) : 46697.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
           4 (0.67 % of base) : 40331.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:PickPivotAndPartition(System.Span`1[System.Collections.IntStruct]):int (Tier1)
           4 (0.16 % of base) : 42748.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Tier1)
           4 (0.07 % of base) : 27075.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)

Top method improvements (bytes):
        -420 (-31.44 % of base) : 48090.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 31846.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43149.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -24 (-1.10 % of base) : 44418.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
          -4 (-0.02 % of base) : 45121.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.07 % of base) : 30379.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.02 % of base) : 45636.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.09 % of base) : 30387.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.41 % of base) : 38947.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
          -4 (-0.10 % of base) : 40423.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)
          -4 (-0.32 % of base) : 48404.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)

Top method regressions (percentages):
           4 (2.70 % of base) : 46697.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.BigStruct]:InsertionSort(System.Span`1[System.Collections.BigStruct]) (Tier1)
          16 (2.07 % of base) : 44142.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier1-OSR)
          12 (1.16 % of base) : 42922.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
           4 (1.08 % of base) : 40106.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
           4 (0.82 % of base) : 45036.dasm - Benchstone.MDBenchF.MDInvMt:Inner(double[,],byref,byref) (Tier1-OSR)
           4 (0.71 % of base) : 42991.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (Tier1)
           4 (0.67 % of base) : 40331.dasm - System.Collections.Generic.GenericArraySortHelper`1[System.Collections.IntStruct]:PickPivotAndPartition(System.Span`1[System.Collections.IntStruct]):int (Tier1)
          20 (0.54 % of base) : 31666.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
           4 (0.49 % of base) : 31850.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier1-OSR)
           4 (0.29 % of base) : 42796.dasm - Benchstone.BenchF.MatInv4:MinV1(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.27 % of base) : 42800.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier1-OSR)
           4 (0.16 % of base) : 22649.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier1)
           4 (0.16 % of base) : 42748.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Tier1)
          12 (0.15 % of base) : 19641.dasm - (dynamicClass):_DynamicMethod9(byref,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
           4 (0.13 % of base) : 30372.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1-OSR)
           4 (0.07 % of base) : 27075.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)

Top method improvements (percentages):
        -420 (-31.44 % of base) : 48090.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -152 (-14.13 % of base) : 31846.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -56 (-6.97 % of base) : 43149.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)
         -24 (-1.10 % of base) : 44418.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
          -4 (-0.41 % of base) : 38947.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier1)
          -4 (-0.32 % of base) : 48404.dasm - System.Threading.TimerQueue:FireNextTimers():this (Tier1)
          -4 (-0.10 % of base) : 40423.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)
          -4 (-0.09 % of base) : 30387.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.07 % of base) : 30379.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.LoginViewModel (FullOpts)
          -4 (-0.02 % of base) : 45636.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
          -4 (-0.02 % of base) : 45121.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)


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: 494677708 (overridden on cmd)
Total bytes of diff: 494678148 (overridden on cmd)
Total bytes of delta: 440 (0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          88 : 528202.dasm (3.98 % of base)
          68 : 391481.dasm (0.55 % of base)
          56 : 540912.dasm (26.42 % of base)
          52 : 310922.dasm (24.07 % of base)
          52 : 310924.dasm (24.07 % of base)
          48 : 541487.dasm (22.64 % of base)
          44 : 387379.dasm (2.21 % of base)
          44 : 391551.dasm (2.19 % of base)
          44 : 288085.dasm (8.94 % of base)
          40 : 356415.dasm (1.15 % of base)
          36 : 256087.dasm (2.02 % of base)
          36 : 541298.dasm (16.07 % of base)
          32 : 387172.dasm (3.17 % of base)
          32 : 218988.dasm (1.82 % of base)
          32 : 391443.dasm (3.16 % of base)
          32 : 541700.dasm (160.00 % of base)
          32 : 541434.dasm (2.68 % of base)
          28 : 391696.dasm (1.16 % of base)
          28 : 392366.dasm (1.85 % of base)
          28 : 541224.dasm (7.29 % of base)

Top file improvements (bytes):
        -460 : 254709.dasm (-31.86 % of base)
        -168 : 304292.dasm (-31.82 % of base)
        -156 : 250581.dasm (-21.67 % of base)
        -156 : 250566.dasm (-21.67 % of base)
         -80 : 486166.dasm (-2.50 % of base)
         -36 : 526128.dasm (-1.17 % of base)
         -36 : 526364.dasm (-1.17 % of base)
         -28 : 289617.dasm (-0.37 % of base)
         -24 : 387260.dasm (-3.19 % of base)
         -24 : 389526.dasm (-1.44 % of base)
         -24 : 392483.dasm (-1.44 % of base)
         -24 : 485527.dasm (-0.26 % of base)
         -24 : 389681.dasm (-1.44 % of base)
         -24 : 389533.dasm (-1.44 % of base)
         -24 : 389619.dasm (-1.44 % of base)
         -20 : 307902.dasm (-2.56 % of base)
         -20 : 389467.dasm (-0.18 % of base)
         -20 : 392190.dasm (-0.42 % of base)
         -20 : 534315.dasm (-0.43 % of base)
         -20 : 253143.dasm (-6.49 % of base)

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

Top method regressions (bytes):
          88 (3.98 % of base) : 528202.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          68 (0.55 % of base) : 391481.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (Tier1)
          56 (26.42 % of base) : 540912.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          52 (24.07 % of base) : 310922.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 310924.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (22.64 % of base) : 541487.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
          44 (2.21 % of base) : 387379.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          44 (2.19 % of base) : 391551.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,byref):ubyte:this (Tier1)
          44 (8.94 % of base) : 288085.dasm - RetBufferBug:Main():int (Tier1-OSR)
          40 (1.15 % of base) : 356415.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (Tier1)
          36 (16.07 % of base) : 541298.dasm - ILGEN_0xa83217d:Method_0xf3555db(long,ulong,int,uint,short,byte):int (FullOpts)
          36 (2.02 % of base) : 256087.dasm - System.ComponentModel.TypeDescriptor:NodeFor(System.Type,ubyte):System.ComponentModel.TypeDescriptor+TypeDescriptionNode (Tier1)
          32 (2.68 % of base) : 541434.dasm - ILGEN_0x1125a118:Method_0xa592ccf9(ulong,long,ushort,byte,uint):int (FullOpts)
          32 (160.00 % of base) : 541700.dasm - ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
          32 (3.17 % of base) : 387172.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          32 (3.16 % of base) : 391443.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          32 (1.82 % of base) : 218988.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)
          28 (1.16 % of base) : 391696.dasm - ILCompiler.LazyGenericsSupport+GraphBuilder:.ctor(Internal.TypeSystem.Ecma.EcmaType):this (Tier1)
          28 (7.29 % of base) : 541224.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (FullOpts)
          28 (1.85 % of base) : 392366.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey,System.__Canon]:TryAddOrGetExisting(System.__Canon,byref):System.__Canon:this (Tier1-OSR)

Top method improvements (bytes):
        -460 (-31.86 % of base) : 254709.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 304292.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.67 % of base) : 250581.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 250566.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -80 (-2.50 % of base) : 486166.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -36 (-1.17 % of base) : 526128.dasm - plainarr:gaussj(double[,],int,double[,],int) (FullOpts)
         -36 (-1.17 % of base) : 526364.dasm - structarr:gaussj(MatrixStruct,int,MatrixStruct,int) (FullOpts)
         -28 (-0.37 % of base) : 289617.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
         -24 (-0.26 % of base) : 485527.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)
         -24 (-1.44 % of base) : 389619.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-1.44 % of base) : 389533.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-1.44 % of base) : 389526.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+MethodAndCallSite,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+MethodAndCallSite,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-1.44 % of base) : 392483.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-1.44 % of base) : 389681.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon],ubyte,ubyte):this (Tier1)
         -24 (-3.19 % of base) : 387260.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -20 (-0.43 % of base) : 534315.dasm - Co1245GetBytes_double:runTest():ubyte:this (FullOpts)
         -20 (-0.18 % of base) : 389467.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
         -20 (-0.42 % of base) : 392190.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
         -20 (-2.56 % of base) : 307902.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -20 (-6.49 % of base) : 253143.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)

Top method regressions (percentages):
          32 (160.00 % of base) : 541700.dasm - ILGEN_0x2dda4eb5:Method_0xa084659a():ushort (FullOpts)
          24 (46.15 % of base) : 541509.dasm - ILGEN_0x4601be46:Method_0x9c86375f(ulong,ubyte):int (FullOpts)
          56 (26.42 % of base) : 540912.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
          52 (24.07 % of base) : 310922.dasm - testout1:Test1(int):int (Tier1-OSR)
          52 (24.07 % of base) : 310924.dasm - testout1:Test2(int):int (Tier1-OSR)
          48 (22.64 % of base) : 541487.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (FullOpts)
          36 (16.07 % of base) : 541298.dasm - ILGEN_0xa83217d:Method_0xf3555db(long,ulong,int,uint,short,byte):int (FullOpts)
          12 (14.29 % of base) : 496498.dasm - Sample4:func(System.Object,System.Object) (FullOpts)
          44 (8.94 % of base) : 288085.dasm - RetBufferBug:Main():int (Tier1-OSR)
          28 (7.29 % of base) : 541224.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (FullOpts)
          24 (4.55 % of base) : 541202.dasm - ILGEN_0x5db0aa0:Method_0x14ca58b7(long,float,float,short,ushort,float,int,int,double):int (FullOpts)
          16 (4.40 % of base) : 532128.dasm - Default.Graph:BuildEdge(int,int):this (FullOpts)
           8 (4.08 % of base) : 253565.dasm - Benchstone.BenchI.LogicArray:Inner(byref):ubyte (Tier1-OSR)
          88 (3.98 % of base) : 528202.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          16 (3.81 % of base) : 503503.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (FullOpts)
           8 (3.64 % of base) : 253806.dasm - Benchstone.MDBenchI.MDLogicArray:Inner(byref):ubyte (Tier1-OSR)
          12 (3.19 % of base) : 503526.dasm - Benchstone.BenchI.XposMatrix:Bench(int[][]):ubyte (FullOpts)
          32 (3.17 % of base) : 387172.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          32 (3.16 % of base) : 391443.dasm - System.Collections.Generic.ObjectEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier1)
          24 (3.09 % of base) : 391936.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon],ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,int,byref):ubyte (Tier1)

Top method improvements (percentages):
        -460 (-31.86 % of base) : 254709.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier1-OSR)
        -168 (-31.82 % of base) : 304292.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)
        -156 (-21.67 % of base) : 250581.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
        -156 (-21.67 % of base) : 250566.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
         -16 (-7.02 % of base) : 253655.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner2(int[,],byref) (Tier1-OSR)
         -16 (-6.90 % of base) : 253653.dasm - Benchstone.MDBenchI.MDAddArray2:BenchInner1(int[,],byref) (Tier1-OSR)
         -20 (-6.49 % of base) : 253143.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -12 (-5.17 % of base) : 675.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 257811.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 240420.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 307904.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 309174.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 358063.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 23528.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 258558.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-5.17 % of base) : 267006.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -16 (-4.44 % of base) : 604.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Instrumented Tier1)
          -4 (-3.57 % of base) : 392622.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ByteArrayComparer:Equals(ubyte[],ubyte[]):ubyte:this (Tier1)
          -4 (-3.57 % of base) : 390214.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ByteArrayComparer:Equals(ubyte[],ubyte[]):ubyte:this (Tier1)
          -4 (-3.57 % of base) : 500906.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (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: 59020004 (overridden on cmd)
Total bytes of diff: 59019808 (overridden on cmd)
Total bytes of delta: -196 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         104 : 25122.dasm (0.13 % of base)
          48 : 60248.dasm (1.48 % of base)
          44 : 236732.dasm (2.95 % of base)
          32 : 241585.dasm (3.98 % of base)
          24 : 143996.dasm (1.13 % of base)
          24 : 194303.dasm (0.49 % of base)
          20 : 194285.dasm (0.36 % of base)
          16 : 7154.dasm (1.08 % of base)
          16 : 130732.dasm (4.30 % of base)
          16 : 134990.dasm (0.43 % of base)
          16 : 198774.dasm (0.17 % of base)
          16 : 124620.dasm (0.84 % of base)
          12 : 216792.dasm (1.76 % of base)
          12 : 58812.dasm (1.85 % of base)
          12 : 94924.dasm (1.60 % of base)
          12 : 144746.dasm (0.19 % of base)
          12 : 193617.dasm (1.70 % of base)
          12 : 194209.dasm (0.91 % of base)
           8 : 105060.dasm (0.93 % of base)
           8 : 212888.dasm (0.22 % of base)

Top file improvements (bytes):
        -108 : 134264.dasm (-0.39 % of base)
         -84 : 134991.dasm (-7.81 % of base)
         -44 : 198626.dasm (-1.75 % of base)
         -32 : 123830.dasm (-3.98 % of base)
         -28 : 17666.dasm (-1.18 % of base)
         -24 : 150761.dasm (-2.86 % of base)
         -24 : 194691.dasm (-1.06 % of base)
         -24 : 194697.dasm (-1.07 % of base)
         -20 : 111712.dasm (-1.08 % of base)
         -16 : 115882.dasm (-0.54 % of base)
         -16 : 2227.dasm (-0.91 % of base)
         -16 : 124986.dasm (-0.31 % of base)
         -16 : 135288.dasm (-0.37 % of base)
         -16 : 178731.dasm (-0.43 % of base)
         -12 : 57337.dasm (-2.13 % of base)
          -8 : 114586.dasm (-1.72 % of base)
          -8 : 157329.dasm (-0.13 % of base)
          -8 : 15758.dasm (-1.24 % of base)
          -8 : 198004.dasm (-0.96 % of base)
          -8 : 212546.dasm (-1.06 % of base)

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

Top method regressions (bytes):
         104 (0.13 % of base) : 25122.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
          48 (1.48 % of base) : 60248.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          44 (2.95 % of base) : 236732.dasm - System.Net.Security.SslStreamCertificateContext:.ctor(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Net.Security.SslCertificateTrust):this (FullOpts)
          32 (3.98 % of base) : 241585.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
          24 (1.13 % of base) : 143996.dasm - System.Text.ISCIIEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          24 (0.49 % of base) : 194303.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          20 (0.36 % of base) : 194285.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          16 (0.17 % of base) : 198774.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)
          16 (0.43 % of base) : 134990.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMostSpecific(System.Reflection.MethodBase,System.Reflection.MethodBase,int[],System.Object[],ubyte,int,int,System.Object[]):int:this (FullOpts)
          16 (0.84 % of base) : 124620.dasm - System.Data.Select:CreateIndex():this (FullOpts)
          16 (4.30 % of base) : 130732.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          16 (1.08 % of base) : 7154.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          12 (0.19 % of base) : 144746.dasm - Internal.TypeSystem.MetadataFieldLayoutAlgorithm:ComputeAutoFieldLayout(Internal.TypeSystem.MetadataType,int):Internal.TypeSystem.ComputedInstanceFieldLayout:this (FullOpts)
          12 (1.85 % of base) : 58812.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<AddSynthesizedTypeMembersIfNecessary>g__getBaseToStringMethod|198_14(byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
          12 (1.60 % of base) : 94924.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:GenerateVarianceDiagnosticsForConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):this (FullOpts)
          12 (1.76 % of base) : 216792.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          12 (0.91 % of base) : 194209.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteElements(System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,ubyte,ubyte):this (FullOpts)
          12 (1.70 % of base) : 193617.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteEnumMethod(System.Xml.Serialization.EnumMapping,System.Object):System.String:this (FullOpts)
           8 (0.93 % of base) : 105060.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:QuickScanToken(ubyte):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+QuickScanResult:this (FullOpts)
           8 (0.22 % of base) : 212888.dasm - System.DirectoryServices.Protocols.BerConverter:Encode(System.String,System.Object[]):ubyte[] (FullOpts)

Top method improvements (bytes):
        -108 (-0.39 % of base) : 134264.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)
         -84 (-7.81 % of base) : 134991.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -44 (-1.75 % of base) : 198626.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -32 (-3.98 % of base) : 123830.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -28 (-1.18 % of base) : 17666.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -24 (-2.86 % of base) : 150761.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -24 (-1.07 % of base) : 194697.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
         -24 (-1.06 % of base) : 194691.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
         -20 (-1.08 % of base) : 111712.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -16 (-0.43 % of base) : 178731.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 (-0.54 % of base) : 115882.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)
         -16 (-0.37 % of base) : 135288.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -16 (-0.31 % of base) : 124986.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,ubyte,System.Data.DataColumn,System.Object):System.Object[]:this (FullOpts)
         -16 (-0.91 % of base) : 2227.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
         -12 (-2.13 % of base) : 57337.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)
          -8 (-0.13 % of base) : 157329.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          -8 (-0.78 % of base) : 38622.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteFormattedMultiLineComment(System.String[],int):this (FullOpts)
          -8 (-0.11 % of base) : 65273.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
          -8 (-1.72 % of base) : 114586.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          -8 (-1.24 % of base) : 15758.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)

Top method regressions (percentages):
          16 (4.30 % of base) : 130732.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
           4 (4.17 % of base) : 40042.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
          32 (3.98 % of base) : 241585.dasm - System.Diagnostics.Process:IsSelfOrDescendantOf(System.Diagnostics.Process):ubyte:this (FullOpts)
          44 (2.95 % of base) : 236732.dasm - System.Net.Security.SslStreamCertificateContext:.ctor(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Net.Security.SslCertificateTrust):this (FullOpts)
           4 (2.86 % of base) : 152939.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           4 (2.86 % of base) : 174362.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (2.04 % of base) : 185138.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
           4 (1.89 % of base) : 124796.dasm - System.Xml.XPathNodePointer:DecideXPNodeTypeForTextNodes(System.Xml.XmlNode):int:this (FullOpts)
          12 (1.85 % of base) : 58812.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<AddSynthesizedTypeMembersIfNecessary>g__getBaseToStringMethod|198_14(byref):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (FullOpts)
           4 (1.82 % of base) : 50296.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          12 (1.76 % of base) : 216792.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          12 (1.70 % of base) : 193617.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteEnumMethod(System.Xml.Serialization.EnumMapping,System.Object):System.String:this (FullOpts)
          12 (1.60 % of base) : 94924.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:GenerateVarianceDiagnosticsForConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref):this (FullOpts)
          48 (1.48 % of base) : 60248.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
          24 (1.13 % of base) : 143996.dasm - System.Text.ISCIIEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          16 (1.08 % of base) : 7154.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
           8 (0.95 % of base) : 240328.dasm - System.Runtime.Caching.ExpiresBucket:Expand():this (FullOpts)
           8 (0.93 % of base) : 105060.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:QuickScanToken(ubyte):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+QuickScanResult:this (FullOpts)
           4 (0.93 % of base) : 5081.dasm - System.Globalization.CultureInfo:CreateSpecificCulture(System.String):System.Globalization.CultureInfo (FullOpts)
          12 (0.91 % of base) : 194209.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteElements(System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,ubyte,ubyte):this (FullOpts)

Top method improvements (percentages):
         -84 (-7.81 % of base) : 134991.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -32 (-3.98 % of base) : 123830.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
         -24 (-2.86 % of base) : 150761.dasm - Microsoft.CodeAnalysis.Text.SourceText:ContentEqualsImpl(Microsoft.CodeAnalysis.Text.SourceText):ubyte:this (FullOpts)
         -12 (-2.13 % of base) : 57337.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)
         -44 (-1.75 % of base) : 198626.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
          -8 (-1.72 % of base) : 114586.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          -8 (-1.24 % of base) : 15758.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
         -28 (-1.18 % of base) : 17666.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
          -4 (-1.16 % of base) : 57375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -8 (-1.13 % of base) : 242690.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
         -20 (-1.08 % of base) : 111712.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -24 (-1.07 % of base) : 194697.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
          -8 (-1.06 % of base) : 212546.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo (FullOpts)
         -24 (-1.06 % of base) : 194691.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
          -8 (-0.96 % of base) : 198004.dasm - System.Reflection.Metadata.Ecma335.NamespaceCache:LinkChildToParentNamespace(System.Collections.Generic.Dictionary`2[System.String,System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder],System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder,byref):this (FullOpts)
          -4 (-0.92 % of base) : 133523.dasm - System.Data.OleDb.Bindings:AreParameterBindingsInvalid(System.Data.OleDb.OleDbParameterCollection):ubyte:this (FullOpts)
         -16 (-0.91 % of base) : 2227.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          -4 (-0.90 % of base) : 15683.dasm - System.String:TrimHelper(ulong,int,int):System.String:this (FullOpts)
          -4 (-0.87 % of base) : 15658.dasm - System.RuntimeType+RuntimeTypeCache:GetDefaultMemberName():System.String:this (FullOpts)
          -8 (-0.78 % of base) : 38622.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteFormattedMultiLineComment(System.String[],int):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: 78071708 (overridden on cmd)
Total bytes of diff: 78071912 (overridden on cmd)
Total bytes of delta: 204 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         120 : 186994.dasm (0.73 % of base)
          76 : 281931.dasm (1.82 % of base)
          56 : 90459.dasm (0.24 % of base)
          48 : 197757.dasm (5.63 % of base)
          44 : 156438.dasm (1.87 % of base)
          44 : 176217.dasm (1.87 % of base)
          40 : 150321.dasm (1.65 % of base)
          36 : 29811.dasm (1.24 % of base)
          28 : 204829.dasm (0.44 % of base)
          28 : 224828.dasm (1.62 % of base)
          28 : 153971.dasm (4.90 % of base)
          24 : 212073.dasm (5.71 % of base)
          24 : 214260.dasm (2.42 % of base)
          24 : 153886.dasm (2.08 % of base)
          20 : 290617.dasm (4.59 % of base)
          20 : 178780.dasm (0.47 % of base)
          20 : 290323.dasm (3.85 % of base)
          20 : 290355.dasm (2.98 % of base)
          20 : 290607.dasm (5.81 % of base)
          20 : 290642.dasm (10.20 % of base)

Top file improvements (bytes):
        -132 : 141176.dasm (-0.45 % of base)
         -80 : 122419.dasm (-2.49 % of base)
         -52 : 214998.dasm (-0.45 % of base)
         -28 : 137990.dasm (-3.37 % of base)
         -28 : 173410.dasm (-3.37 % of base)
         -24 : 121414.dasm (-0.26 % of base)
         -20 : 60468.dasm (-0.83 % of base)
         -20 : 279801.dasm (-1.03 % of base)
         -20 : 151639.dasm (-0.50 % of base)
         -20 : 214859.dasm (-0.42 % of base)
         -20 : 113416.dasm (-1.10 % of base)
         -16 : 213578.dasm (-0.43 % of base)
         -16 : 284151.dasm (-0.39 % of base)
         -16 : 141190.dasm (-0.26 % of base)
         -16 : 260430.dasm (-1.76 % of base)
         -12 : 30593.dasm (-0.34 % of base)
         -12 : 138041.dasm (-3.30 % of base)
         -12 : 30493.dasm (-0.26 % of base)
         -12 : 173461.dasm (-3.30 % of base)
         -12 : 57158.dasm (-2.11 % of base)

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

Top method regressions (bytes):
         120 (0.73 % of base) : 186994.dasm - System.DirectoryServices.ActiveDirectory.Utils:GetReplicaList(System.DirectoryServices.ActiveDirectory.DirectoryContext,System.String,System.String,ubyte,ubyte,ubyte):System.Collections.ArrayList (FullOpts)
          76 (1.82 % of base) : 281931.dasm - System.Net.Mail.SmtpClient:SendAsync(System.Net.Mail.MailMessage,System.Object):this (FullOpts)
          56 (0.24 % of base) : 90459.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)
          48 (5.63 % of base) : 197757.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          44 (1.87 % of base) : 156438.dasm - System.Configuration.ConfigurationElement:UnMergeLockList(System.Configuration.ConfigurationLockCollection,System.Configuration.ConfigurationLockCollection,int):System.Configuration.ConfigurationLockCollection:this (FullOpts)
          44 (1.87 % of base) : 176217.dasm - System.Configuration.ConfigurationElement:UnMergeLockList(System.Configuration.ConfigurationLockCollection,System.Configuration.ConfigurationLockCollection,int):System.Configuration.ConfigurationLockCollection:this (FullOpts)
          40 (1.65 % of base) : 150321.dasm - Microsoft.Build.Evaluation.ExpressionShredder:GetReferencedItemExpressions(System.String,int,int):System.Collections.Generic.List`1[Microsoft.Build.Evaluation.ExpressionShredder+ItemExpressionCapture] (FullOpts)
          36 (1.24 % of base) : 29811.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          28 (4.90 % of base) : 153971.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
          28 (1.62 % of base) : 224828.dasm - System.Text.DBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
          28 (0.44 % of base) : 204829.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributeValueSlowAsync>d__532:MoveNext():this (FullOpts)
          24 (2.08 % of base) : 153886.dasm - Microsoft.Build.Shared.FileMatcher:Normalize(System.String):System.String (FullOpts)
          24 (2.42 % of base) : 214260.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
          24 (5.71 % of base) : 212073.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          20 (0.18 % of base) : 35904.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          20 (0.47 % of base) : 178780.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,ubyte):this (FullOpts)
          20 (2.98 % of base) : 290355.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
          20 (3.85 % of base) : 290323.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (5.81 % of base) : 290607.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          20 (4.59 % of base) : 290617.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)

Top method improvements (bytes):
        -132 (-0.45 % of base) : 141176.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)
         -80 (-2.49 % of base) : 122419.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -52 (-0.45 % of base) : 214998.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         -28 (-3.37 % of base) : 137990.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -28 (-3.37 % of base) : 173410.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -24 (-0.26 % of base) : 121414.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)
         -20 (-0.50 % of base) : 151639.dasm - Microsoft.Build.BackEnd.Scheduler:WriteNodeUtilizationGraph(Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext,ubyte):this (FullOpts)
         -20 (-0.83 % of base) : 60468.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)
         -20 (-1.10 % of base) : 113416.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
         -20 (-1.03 % of base) : 279801.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts)
         -20 (-0.42 % of base) : 214859.dasm - System.Xml.Serialization.XmlSerializationReader:ReadArray(System.String,System.String):System.Array:this (FullOpts)
         -16 (-0.26 % of base) : 141190.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -16 (-1.76 % of base) : 260430.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
         -16 (-0.39 % of base) : 284151.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
         -16 (-0.43 % of base) : 213578.dasm - System.Xml.Serialization.TempAssembly:GenerateRefEmitAssembly(System.Xml.Serialization.XmlMapping[],System.Type[]):System.Reflection.Assembly (FullOpts)
         -12 (-0.26 % of base) : 30493.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<MakeDecisionDag>g__uniquifyState|32_0(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+FrozenArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+StateForCase],System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDagTemp,Microsoft.CodeAnalysis.CSharp.IValueSet],byref):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState (FullOpts)
         -12 (-0.34 % of base) : 30593.dasm - Microsoft.CodeAnalysis.CSharp.Imports:ExpandPreviousSubmissionImports(Microsoft.CodeAnalysis.CSharp.Imports,Microsoft.CodeAnalysis.CSharp.CSharpCompilation):Microsoft.CodeAnalysis.CSharp.Imports (FullOpts)
         -12 (-2.11 % of base) : 57158.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)
         -12 (-0.33 % of base) : 61669.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Retargeting.RetargetingMethodSymbol:GetUnmanagedCallersOnlyAttributeData(ubyte):Microsoft.CodeAnalysis.UnmanagedCallersOnlyAttributeData:this (FullOpts)
         -12 (-0.49 % of base) : 130205.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalysisResult:AddNonLocalDiagnostics(System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)

Top method regressions (percentages):
          20 (10.20 % of base) : 290642.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
           4 (9.09 % of base) : 154029.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:GeneratePathToBuildToolsForToolsVersion(System.String,int):System.String (FullOpts)
          20 (5.81 % of base) : 290607.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          24 (5.71 % of base) : 212073.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          48 (5.63 % of base) : 197757.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
           4 (5.56 % of base) : 725.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[double](double,double,System.String) (FullOpts)
           4 (5.56 % of base) : 737.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanOrEqual[double](double,double,System.String) (FullOpts)
          28 (4.90 % of base) : 153971.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
          20 (4.59 % of base) : 290617.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.55 % of base) : 2715.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[long](byref,long,long,int):int (FullOpts)
          16 (4.40 % of base) : 193240.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
           4 (4.17 % of base) : 2703.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[long](byref,long,long,int):int (FullOpts)
          20 (3.85 % of base) : 290323.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (2.98 % of base) : 290355.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
           4 (2.94 % of base) : 2714.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[double](byref,double,double,int):int (FullOpts)
           4 (2.94 % of base) : 2709.dasm - System.SpanHelpers:LastIndexOfAnyInRange[double](byref,double,double,int):int (FullOpts)
          16 (2.88 % of base) : 57594.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
           4 (2.86 % of base) : 133421.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           4 (2.86 % of base) : 168860.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (2.78 % of base) : 2702.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[double](byref,double,double,int):int (FullOpts)

Top method improvements (percentages):
          -4 (-3.57 % of base) : 38566.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
          -4 (-3.57 % of base) : 34443.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -28 (-3.37 % of base) : 137990.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -28 (-3.37 % of base) : 173410.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -12 (-3.30 % of base) : 138041.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
         -12 (-3.30 % of base) : 173461.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerFileReference+Extensions`1[System.__Canon]:CheckAssemblyReferencesNewerCompiler(System.Reflection.Assembly):ubyte:this (FullOpts)
          -4 (-3.23 % of base) : 128674.dasm - Microsoft.CodeAnalysis.XmlCharType:IsPublicId(System.String):int (FullOpts)
          -4 (-3.23 % of base) : 164143.dasm - Microsoft.CodeAnalysis.XmlCharType:IsPublicId(System.String):int (FullOpts)
         -80 (-2.49 % of base) : 122419.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
          -8 (-2.15 % of base) : 116329.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+MemberLookup:IsDerivedInterface(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
         -12 (-2.11 % of base) : 57158.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)
         -16 (-1.76 % of base) : 260430.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
          -8 (-1.55 % of base) : 240409.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTargets(byref):System.Collections.Generic.List`1[Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target]:this (FullOpts)
          -4 (-1.49 % of base) : 89918.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:IsConvertedLambda(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):ubyte (FullOpts)
          -4 (-1.32 % of base) : 126931.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -4 (-1.32 % of base) : 162414.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -8 (-1.31 % of base) : 240410.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTarget(byref,System.String):Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target:this (FullOpts)
          -8 (-1.29 % of base) : 290671.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -4 (-1.28 % of base) : 150324.dasm - Microsoft.Build.Evaluation.ExpressionShredder:SinkArgumentsInParentheses(System.String,byref,int):ubyte (FullOpts)
          -4 (-1.23 % of base) : 57197.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (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: 308948508 (overridden on cmd)
Total bytes of diff: 308939080 (overridden on cmd)
Total bytes of delta: -9428 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         156 : 449883.dasm (6.83 % of base)
         100 : 498951.dasm (2.50 % of base)
          88 : 594436.dasm (0.75 % of base)
          88 : 86137.dasm (0.74 % of base)
          84 : 185218.dasm (4.86 % of base)
          84 : 420775.dasm (2.12 % of base)
          76 : 270903.dasm (3.54 % of base)
          60 : 87366.dasm (0.78 % of base)
          56 : 116546.dasm (1.18 % of base)
          56 : 375949.dasm (0.82 % of base)
          56 : 586047.dasm (0.30 % of base)
          56 : 150194.dasm (1.28 % of base)
          52 : 151640.dasm (1.20 % of base)
          52 : 586619.dasm (0.70 % of base)
          48 : 581162.dasm (0.40 % of base)
          48 : 147028.dasm (11.43 % of base)
          48 : 83577.dasm (0.47 % of base)
          48 : 119270.dasm (0.55 % of base)
          44 : 401571.dasm (3.08 % of base)
          44 : 174268.dasm (8.87 % of base)

Top file improvements (bytes):
        -224 : 85821.dasm (-1.33 % of base)
        -164 : 361731.dasm (-2.49 % of base)
        -148 : 581995.dasm (-1.28 % of base)
        -144 : 573960.dasm (-1.26 % of base)
        -140 : 533041.dasm (-1.26 % of base)
        -136 : 534552.dasm (-1.60 % of base)
        -132 : 361440.dasm (-1.90 % of base)
        -132 : 361674.dasm (-1.90 % of base)
        -132 : 362262.dasm (-1.90 % of base)
        -132 : 366611.dasm (-1.90 % of base)
        -132 : 366615.dasm (-1.90 % of base)
        -132 : 366616.dasm (-1.90 % of base)
        -128 : 366516.dasm (-2.18 % of base)
        -128 : 366554.dasm (-2.22 % of base)
        -128 : 366495.dasm (-2.09 % of base)
        -128 : 571273.dasm (-0.60 % of base)
        -124 : 85807.dasm (-0.63 % of base)
        -124 : 366590.dasm (-2.05 % of base)
        -112 : 367261.dasm (-1.95 % of base)
        -112 : 309628.dasm (-1.44 % of base)

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

Top method regressions (bytes):
         156 (6.83 % of base) : 449883.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
         100 (2.50 % of base) : 498951.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)
          88 (0.75 % of base) : 594436.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1)
          88 (0.74 % of base) : 86137.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          84 (4.86 % of base) : 185218.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.Collections.Tests.SimpleInt,int]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
          84 (2.12 % of base) : 420775.dasm - System.Runtime.Caching.MemoryCacheStore:Dispose():this (Tier1-OSR)
          76 (3.54 % of base) : 270903.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier1)
          60 (0.78 % of base) : 87366.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ValidateAttributeUsageAndDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,short):Microsoft.CodeAnalysis.WellKnownAttributeData:this (Tier1)
          56 (0.30 % of base) : 586047.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:VisitBinaryLogicalOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (Tier1)
          56 (1.28 % of base) : 150194.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax]],short,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,ubyte],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax]:this (Tier1)
          56 (0.82 % of base) : 375949.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (Tier0-FullOpts)
          56 (1.18 % of base) : 116546.dasm - Xunit.Sdk.TestRunner`1+<RunAsync>d__43[System.__Canon]:MoveNext():this (Tier1)
          52 (1.20 % of base) : 151640.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)
          52 (0.70 % of base) : 586619.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)
          48 (0.40 % of base) : 581162.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:GetBestType(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.ConversionsBase,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
          48 (0.47 % of base) : 83577.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier1)
          48 (11.43 % of base) : 147028.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
          48 (0.55 % of base) : 119270.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (Tier1)
          44 (8.87 % of base) : 174268.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)
          44 (3.08 % of base) : 401571.dasm - System.Resources.ResourceManager:InternalGetResourceSet(System.Globalization.CultureInfo,ubyte,ubyte):System.Resources.ResourceSet:this (Tier1)

Top method improvements (bytes):
        -224 (-1.33 % of base) : 85821.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
        -164 (-2.49 % of base) : 361731.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Divide_TwoTensors>b__140_0(int):this (Tier1)
        -148 (-1.28 % of base) : 581995.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (Tier1-OSR)
        -144 (-1.26 % of base) : 573960.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier1)
        -140 (-1.26 % of base) : 533041.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
        -136 (-1.60 % of base) : 534552.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier1)
        -132 (-1.90 % of base) : 361674.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Max_TwoTensors_InPlace>b__188_0(int):this (Tier1)
        -132 (-1.90 % of base) : 366611.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Max_TwoTensors_InPlace>b__188_0(int):this (Tier1)
        -132 (-1.90 % of base) : 361440.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<MaxMagnitude_TwoTensors_InPlace>b__199_0(int):this (Tier1)
        -132 (-1.90 % of base) : 366616.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<MaxMagnitude_TwoTensors_InPlace>b__199_0(int):this (Tier1)
        -132 (-1.90 % of base) : 362262.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Min_TwoTensors_InPlace>b__210_0(int):this (Tier1)
        -132 (-1.90 % of base) : 366615.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<MinMagnitude_TwoTensors_InPlace>b__221_0(int):this (Tier1)
        -128 (-0.60 % of base) : 571273.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
        -128 (-2.09 % of base) : 366495.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<CosineSimilarity_AllLengths>b__136_0(int):this (Tier1)
        -128 (-2.22 % of base) : 366554.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Dot_AllLengths>b__150_0(int):this (Tier1)
        -128 (-2.18 % of base) : 366516.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<ProductOfDifferences_AllLengths>b__256_0(int):this (Tier1)
        -124 (-0.63 % of base) : 85807.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
        -124 (-2.05 % of base) : 366590.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[float]:<Distance_AllLengths>b__139_0(int):this (Tier1)
        -112 (-1.95 % of base) : 367261.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[double]:<CosineSimilarity_AllLengths>b__136_0(int):this (Tier1)
        -112 (-1.44 % of base) : 309628.dasm - System.SpanTests.SpanTests:TestMatchMany_Char() (Tier1-OSR)

Top method regressions (percentages):
          32 (20.00 % of base) : 608398.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Collections.Generic.KeyValuePair`2[int,long]]:Enqueue(System.Collections.Generic.KeyValuePair`2[int,long]):this (Tier1)
          28 (15.56 % of base) : 335697.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Diagnostics.Metrics.Measurement`1[double]]:Enqueue(System.Diagnostics.Metrics.Measurement`1[double]):this (Tier1)
          48 (11.43 % of base) : 147028.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier1-OSR)
          44 (8.87 % of base) : 174268.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)
           4 (8.33 % of base) : 230735.dasm - System.Diagnostics.Tracing.EventSource:GetDispatcher(System.Diagnostics.Tracing.EventListener):System.Diagnostics.Tracing.EventDispatcher:this (Tier1)
          12 (7.69 % of base) : 602158.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 274855.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 345839.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 372028.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 451036.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 537195.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 567120.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 77779.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 162759.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 311547.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 319491.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 347412.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 473103.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 225479.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)
          12 (7.69 % of base) : 619294.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Tier1)

Top method improvements (percentages):
         -24 (-7.41 % of base) : 235023.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -12 (-5.17 % of base) : 103240.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,ulong,System.Object) (Tier1)
         -12 (-4.69 % of base) : 26649.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:Enqueue(System.__Canon):this (Instrumented Tier1)
         -16 (-4.44 % of base) : 265.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(ulong,System.Object):System.Object (Instrumented Tier1)
         -16 (-4.17 % of base) : 57722.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (Tier1)
         -28 (-3.72 % of base) : 262557.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.65 % of base) : 115358.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -52 (-3.62 % of base) : 568963.dasm - System.Collections.Generic.ArraySortHelper`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]:InsertionSort(System.Span`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],System.Comparison`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]) (Tier1)
         -28 (-3.61 % of base) : 618204.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -28 (-3.61 % of base) : 230641.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -76 (-3.48 % of base) : 260557.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)
          -4 (-3.33 % of base) : 342820.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 384876.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 264357.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 361783.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
          -4 (-3.33 % of base) : 282527.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
         -24 (-3.21 % of base) : 275563.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -24 (-3.21 % of base) : 332555.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -24 (-3.21 % of base) : 116744.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -24 (-3.21 % of base) : 619402.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 169444132 (overridden on cmd)
Total bytes of diff: 169443992 (overridden on cmd)
Total bytes of delta: -140 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          56 : 172755.dasm (0.79 % of base)
          48 : 205598.dasm (5.69 % of base)
          40 : 171911.dasm (0.66 % of base)
          40 : 172599.dasm (0.66 % of base)
          36 : 289142.dasm (0.95 % of base)
          36 : 31225.dasm (1.22 % of base)
          32 : 222289.dasm (9.76 % of base)
          28 : 315536.dasm (0.44 % of base)
          28 : 134758.dasm (1.67 % of base)
          24 : 171032.dasm (2.53 % of base)
          24 : 177507.dasm (5.71 % of base)
          20 : 39200.dasm (1.90 % of base)
          20 : 89431.dasm (2.16 % of base)
          20 : 92144.dasm (2.01 % of base)
          20 : 92792.dasm (0.49 % of base)
          20 : 186215.dasm (10.20 % of base)
          20 : 185295.dasm (5.81 % of base)
          20 : 185382.dasm (5.10 % of base)
          20 : 186460.dasm (3.23 % of base)
          20 : 186461.dasm (4.31 % of base)

Top file improvements (bytes):
        -140 : 59867.dasm (-0.48 % of base)
        -104 : 14865.dasm (-1.78 % of base)
         -92 : 44943.dasm (-1.57 % of base)
         -80 : 25371.dasm (-2.55 % of base)
         -68 : 5375.dasm (-1.39 % of base)
         -52 : 171041.dasm (-0.45 % of base)
         -44 : 43844.dasm (-1.59 % of base)
         -44 : 49554.dasm (-1.59 % of base)
         -36 : 50803.dasm (-0.63 % of base)
         -36 : 52435.dasm (-0.78 % of base)
         -28 : 9308.dasm (-3.45 % of base)
         -24 : 40799.dasm (-1.04 % of base)
         -24 : 172654.dasm (-0.50 % of base)
         -24 : 182468.dasm (-1.49 % of base)
         -24 : 25025.dasm (-0.26 % of base)
         -20 : 10954.dasm (-0.83 % of base)
         -20 : 171181.dasm (-0.44 % of base)
         -16 : 287468.dasm (-1.25 % of base)
         -16 : 46742.dasm (-1.67 % of base)
         -16 : 281237.dasm (-0.83 % of base)

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

Top method regressions (bytes):
          56 (0.79 % of base) : 172755.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (FullOpts)
          48 (5.69 % of base) : 205598.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          40 (0.66 % of base) : 171911.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
          40 (0.66 % of base) : 172599.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
          36 (1.22 % of base) : 31225.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          36 (0.95 % of base) : 289142.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3962_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (9.76 % of base) : 222289.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
          28 (1.67 % of base) : 134758.dasm - System.Text.DBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
          28 (0.44 % of base) : 315536.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributeValueSlowAsync>d__532:MoveNext():this (FullOpts)
          24 (2.53 % of base) : 171032.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
          24 (5.71 % of base) : 177507.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          20 (1.90 % of base) : 39200.dasm - Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo:.ctor(System.String,System.Collections.Generic.IEnumerable`1[System.String],ubyte):this (FullOpts)
          20 (6.10 % of base) : 69963.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]]]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]):ubyte:this (FullOpts)
          20 (5.95 % of base) : 70019.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)
          20 (2.16 % of base) : 89431.dasm - System.Configuration.ConfigurationElement:EnsureRequiredProperties(ubyte):this (FullOpts)
          20 (2.01 % of base) : 92144.dasm - System.Data.XmlTreeGen:GenerateConstraintNames(System.Data.DataTable,ubyte):this (FullOpts)
          20 (0.49 % of base) : 92792.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,ubyte):this (FullOpts)
          20 (3.23 % of base) : 186460.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
          20 (4.31 % of base) : 186461.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
          20 (5.81 % of base) : 185295.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)

Top method improvements (bytes):
        -140 (-0.48 % of base) : 59867.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)
        -104 (-1.78 % of base) : 14865.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -92 (-1.57 % of base) : 44943.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)
         -80 (-2.55 % of base) : 25371.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -68 (-1.39 % of base) : 5375.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)
         -52 (-0.45 % of base) : 171041.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts)
         -44 (-1.59 % of base) : 43844.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)
         -44 (-1.59 % of base) : 49554.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)
         -36 (-0.63 % of base) : 50803.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)
         -36 (-0.78 % of base) : 52435.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -28 (-3.45 % of base) : 9308.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ushort]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -24 (-0.26 % of base) : 25025.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)
         -24 (-1.04 % of base) : 40799.dasm - Microsoft.Extensions.Hosting.Internal.HostTests+<AppCrashesOnStartWhenFirstHostedServiceThrows>d__12:MoveNext():this (FullOpts)
         -24 (-0.50 % of base) : 172654.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read2_wrapper():System.Object[]:this (FullOpts)
         -24 (-1.49 % of base) : 182468.dasm - System.Xml.RwFactoryWriterTests.CXmlDriverEngine:ProcessIncludes(System.String[],System.String,System.Xml.Linq.XElement,OLEDB.Test.ModuleCore.MyDict`2[System.String,System.Object],System.Collections.IList):this (FullOpts)
         -20 (-0.83 % of base) : 10954.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)
         -20 (-0.44 % of base) : 171181.dasm - System.Xml.Serialization.XmlSerializationReader:ReadArray(System.String,System.String):System.Array:this (FullOpts)
         -16 (-1.67 % of base) : 46742.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:CanBePassedByReference(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
         -16 (-1.89 % of base) : 80313.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
         -16 (-0.83 % of base) : 281237.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex109_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)

Top method regressions (percentages):
          20 (10.20 % of base) : 186215.dasm - System.Reflection.Emit.TypeBuilderImpl:get_UnderlyingSystemType():System.Type:this (FullOpts)
          32 (9.76 % of base) : 222289.dasm - System.Tests.Int128Tests_GenericMath:IsPow2Test() (FullOpts)
           4 (9.09 % of base) : 96712.dasm - System.Data.Tests.DataTableTest2+DataRowsComparer:.ctor(System.String,System.String):this (FullOpts)
          20 (6.10 % of base) : 69963.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]]]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]):ubyte:this (FullOpts)
          20 (5.95 % of base) : 70019.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)
          20 (5.81 % of base) : 185295.dasm - System.Reflection.Emit.TypeBuilderImpl:CreateTypeInfoCore():System.Reflection.TypeInfo:this (FullOpts)
          24 (5.71 % of base) : 177507.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
          48 (5.69 % of base) : 205598.dasm - System.Runtime.Serialization.SchemaExporter:ReprocessAll(System.Xml.Schema.XmlSchemaSet) (FullOpts)
          20 (5.10 % of base) : 185382.dasm - System.Reflection.Emit.TypeBuilderImpl:DefineFieldCore(System.String,System.Type,System.Type[],System.Type[],int):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.55 % of base) : 148498.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[System.TimeSpan](byref,System.TimeSpan,System.TimeSpan,int):int (FullOpts)
          16 (4.40 % of base) : 151489.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          20 (4.31 % of base) : 186461.dasm - System.Reflection.Emit.EnumBuilderImpl:DefineLiteralCore(System.String,System.Object):System.Reflection.Emit.FieldBuilder:this (FullOpts)
           4 (4.17 % of base) : 148494.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[System.TimeSpan](byref,System.TimeSpan,System.TimeSpan,int):int (FullOpts)
          16 (3.48 % of base) : 207677.dasm - SerializationTestTypes.DataContract:GetIsReferenceValue():ubyte:this (FullOpts)
          16 (3.48 % of base) : 208990.dasm - SerializationTestTypes.DataContract:GetIsReferenceValue():ubyte:this (FullOpts)
          20 (3.23 % of base) : 186460.dasm - System.Reflection.Emit.EnumBuilderImpl:.ctor(System.String,System.Type,int,System.Reflection.Emit.ModuleBuilderImpl):this (FullOpts)
           4 (2.86 % of base) : 196620.dasm - System.Runtime.InteropServices.Tests.ByteArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (2.86 % of base) : 196003.dasm - System.Runtime.InteropServices.Tests.CharArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (2.86 % of base) : 195575.dasm - System.Runtime.InteropServices.Tests.Int32ArrayTests+<>c__DisplayClass4_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
           4 (2.86 % of base) : 196576.dasm - System.Runtime.InteropServices.Tests.IntPtrArrayTests+<>c__DisplayClass5_0:<CopyTo_NegativeLength_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)

Top method improvements (percentages):
          -4 (-3.57 % of base) : 51024.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -4 (-3.57 % of base) : 9323.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -28 (-3.45 % of base) : 9308.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ushort]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -80 (-2.55 % of base) : 25371.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -16 (-1.89 % of base) : 80313.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:TranslateExportMetadata(System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition):System.Collections.Generic.Dictionary`2[System.String,System.Object]:this (FullOpts)
        -104 (-1.78 % of base) : 14865.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -16 (-1.67 % of base) : 46742.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:CanBePassedByReference(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
         -44 (-1.59 % of base) : 43844.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)
         -44 (-1.59 % of base) : 49554.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)
         -92 (-1.57 % of base) : 44943.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)
          -8 (-1.55 % of base) : 38232.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTargets(byref):System.Collections.Generic.List`1[Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target]:this (FullOpts)
         -24 (-1.49 % of base) : 182468.dasm - System.Xml.RwFactoryWriterTests.CXmlDriverEngine:ProcessIncludes(System.String[],System.String,System.Xml.Linq.XElement,OLEDB.Test.ModuleCore.MyDict`2[System.String,System.Object],System.Collections.IList):this (FullOpts)
         -68 (-1.39 % of base) : 5375.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)
          -4 (-1.32 % of base) : 31891.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
          -8 (-1.31 % of base) : 38236.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadTarget(byref,System.String):Microsoft.Extensions.DependencyModel.DependencyContextJsonReader+Target:this (FullOpts)
         -16 (-1.25 % of base) : 287468.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1708_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 45473.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 6578.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -4 (-1.23 % of base) : 51375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -8 (-1.22 % of base) : 265803.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:PopulateParameterInfoValues(System.Text.Json.Serialization.Metadata.JsonTypeInfo) (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: 15471984 (overridden on cmd)
Total bytes of diff: 15472028 (overridden on cmd)
Total bytes of delta: 44 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          36 : 22889.dasm (1.23 % of base)
          24 : 10110.dasm (4.84 % of base)
          24 : 10131.dasm (4.88 % of base)
          24 : 7929.dasm (0.14 % of base)
          24 : 7981.dasm (1.09 % of base)
          24 : 7985.dasm (1.22 % of base)
          20 : 23433.dasm (0.18 % of base)
          16 : 12531.dasm (0.34 % of base)
          16 : 12952.dasm (0.50 % of base)
          16 : 21417.dasm (2.88 % of base)
          16 : 1095.dasm (1.92 % of base)
          12 : 14442.dasm (1.16 % of base)
          12 : 13772.dasm (0.14 % of base)
          12 : 4738.dasm (0.19 % of base)
          12 : 5015.dasm (1.24 % of base)
           8 : 1408.dasm (0.99 % of base)
           8 : 1888.dasm (0.31 % of base)
           4 : 14634.dasm (0.66 % of base)
           4 : 15019.dasm (0.36 % of base)
           4 : 17047.dasm (2.70 % of base)

Top file improvements (bytes):
         -68 : 6532.dasm (-0.92 % of base)
         -20 : 3156.dasm (-0.34 % of base)
         -20 : 23983.dasm (-0.84 % of base)
         -16 : 1625.dasm (-0.70 % of base)
         -16 : 14091.dasm (-0.41 % of base)
         -12 : 11880.dasm (-0.66 % of base)
         -12 : 23066.dasm (-0.27 % of base)
         -12 : 22386.dasm (-0.40 % of base)
          -8 : 16415.dasm (-0.39 % of base)
          -8 : 17641.dasm (-0.26 % of base)
          -8 : 10377.dasm (-0.08 % of base)
          -8 : 17193.dasm (-0.10 % of base)
          -8 : 15309.dasm (-0.26 % of base)
          -8 : 15329.dasm (-0.37 % of base)
          -8 : 28881.dasm (-0.16 % of base)
          -4 : 17653.dasm (-0.18 % of base)
          -4 : 18339.dasm (-0.40 % of base)
          -4 : 1851.dasm (-0.46 % of base)
          -4 : 19564.dasm (-0.32 % of base)
          -4 : 12951.dasm (-0.39 % of base)

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

Top method regressions (bytes):
          36 (1.23 % of base) : 22889.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (0.14 % of base) : 7929.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (1.22 % of base) : 7985.dasm - FSharp.Compiler.CheckExpressions:TcSimplePat(ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePat):System.Tuple`2[System.String,System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (1.09 % of base) : 7981.dasm - FSharp.Compiler.CheckExpressions:TcSimplePats(FSharp.Compiler.CheckExpressions+TcFileState,ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePats):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          24 (4.84 % of base) : 10110.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
          24 (4.88 % of base) : 10131.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
          20 (0.18 % of base) : 23433.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          16 (1.92 % of base) : 1095.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          16 (2.88 % of base) : 21417.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
          16 (0.50 % of base) : 12952.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
          16 (0.34 % of base) : 12531.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)
          12 (1.24 % of base) : 5015.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          12 (0.19 % of base) : 4738.dasm - FSharp.Compiler.CompilerOptions:attempt@284(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOptionBlock],Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.String],System.String,System.String,System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption]):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
          12 (0.14 % of base) : 13772.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
          12 (1.16 % of base) : 14442.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
           8 (0.99 % of base) : 1408.dasm - BepuPhysics.CollisionDetection.ConstraintRemover:RemoveConstraintsFromBodyLists():this (FullOpts)
           8 (0.31 % of base) : 1888.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)
           4 (0.42 % of base) : 1488.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
           4 (0.66 % of base) : 14634.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
           4 (0.11 % of base) : 22548.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)

Top method improvements (bytes):
         -68 (-0.92 % of base) : 6532.dasm - FSharp.Compiler.LexFilter:undentationLimit@727(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.LexFilter+Context,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):FSharp.Compiler.LexFilter+PositionWithColumn (FullOpts)
         -20 (-0.34 % 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)
         -20 (-0.84 % of base) : 23983.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)
         -16 (-0.70 % of base) : 1625.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -16 (-0.41 % of base) : 14091.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
         -12 (-0.27 % of base) : 23066.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<MakeDecisionDag>g__uniquifyState|32_0(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+FrozenArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+StateForCase],System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDagTemp,Microsoft.CodeAnalysis.CSharp.IValueSet],byref):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState (FullOpts)
         -12 (-0.40 % of base) : 22386.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:Populate(Microsoft.CodeAnalysis.CSharp.NullableWalker+VariablesSnapshot):this (FullOpts)
         -12 (-0.66 % of base) : 11880.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseBaselineDataSingleComponent():this (FullOpts)
          -8 (-0.08 % of base) : 10377.dasm - FSharp.Compiler.Lexer:singleQuoteString(FSharp.Compiler.IO.ByteBuffer,FSharp.Compiler.Lexhelp+LexerStringFinisher,FSharp.Compiler.Text.Range,FSharp.Compiler.ParseHelpers+LexerStringKind,FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
          -8 (-0.16 % of base) : 28881.dasm - Microsoft.CodeAnalysis.AnalyzerConfigSet+GlobalAnalyzerConfigBuilder:Build(Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.AnalyzerConfigSet+GlobalAnalyzerConfig:this (FullOpts)
          -8 (-0.10 % of base) : 17193.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          -8 (-0.26 % of base) : 17641.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)
          -8 (-0.39 % of base) : 16415.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlEntity(byref):this (FullOpts)
          -8 (-0.26 % of base) : 15309.dasm - Microsoft.CodeAnalysis.RuleSet:GetDiagnosticOptionsFromRulesetFile(System.Collections.Generic.Dictionary`2[System.String,int],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],Microsoft.CodeAnalysis.CommonMessageProvider):int (FullOpts)
          -8 (-0.37 % of base) : 15329.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -4 (-0.43 % of base) : 28219.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
          -4 (-0.18 % of base) : 17653.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:BuildReferencedAssembliesAndModulesMaps(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],int,int,System.Collections.Generic.IReadOnlyDictionary`2[System.__Canon,System.__Canon],ubyte,byref,byref,byref,byref) (FullOpts)
          -4 (-0.08 % of base) : 18705.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[int],ubyte,ubyte,ubyte,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (FullOpts)
          -4 (-1.23 % of base) : 19193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          -4 (-0.32 % of base) : 19564.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddDeclaredNontypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

Top method regressions (percentages):
          24 (4.88 % of base) : 10131.dasm - FSharp.Compiler.Infos+PropInfo:get_IsStatic():ubyte:this (FullOpts)
          24 (4.84 % of base) : 10110.dasm - FSharp.Compiler.Infos+PropInfo:get_IsNewSlot():ubyte:this (FullOpts)
          16 (2.88 % of base) : 21417.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:IsAccessibleViaInheritance(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (FullOpts)
           4 (2.70 % of base) : 17047.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          16 (1.92 % of base) : 1095.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
          12 (1.24 % of base) : 5015.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          36 (1.23 % of base) : 22889.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (1.22 % of base) : 7985.dasm - FSharp.Compiler.CheckExpressions:TcSimplePat(ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePat):System.Tuple`2[System.String,System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
          12 (1.16 % of base) : 14442.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
          24 (1.09 % of base) : 7981.dasm - FSharp.Compiler.CheckExpressions:TcSimplePats(FSharp.Compiler.CheckExpressions+TcFileState,ubyte,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.Syntax.SynSimplePats):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
           8 (0.99 % of base) : 1408.dasm - BepuPhysics.CollisionDetection.ConstraintRemover:RemoveConstraintsFromBodyLists():this (FullOpts)
           4 (0.66 % of base) : 14634.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
          16 (0.50 % of base) : 12952.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
           4 (0.44 % of base) : 19474.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,int](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,int,ubyte],int):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
           4 (0.44 % of base) : 22963.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:WhereAsArrayImpl[System.__Canon,System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte],System.Func`3[System.__Canon,System.__Canon,ubyte],System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
           4 (0.42 % of base) : 1488.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
           4 (0.36 % of base) : 30717.dasm - System.Management.Automation.LocationGlobber:GetGlobbedProviderPathsFromMonadPath(System.String,ubyte,System.Management.Automation.CmdletProviderContext,byref,byref):System.Collections.ObjectModel.Collection`1[System.String]:this (FullOpts)
           4 (0.36 % of base) : 15019.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionerForIEnumerable`1+InternalPartitionEnumerable[System.__Canon]:GrabChunk_Buffered(System.Collections.Generic.KeyValuePair`2[long,System.__Canon][],int,byref):ubyte:this (FullOpts)
          16 (0.34 % of base) : 12531.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)
           8 (0.31 % of base) : 1888.dasm - System.Xml.XmlTextReaderImpl:ParseAttributes():this (FullOpts)

Top method improvements (percentages):
          -4 (-1.23 % of base) : 19193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
         -68 (-0.92 % of base) : 6532.dasm - FSharp.Compiler.LexFilter:undentationLimit@727(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.LexFilter+Context,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):FSharp.Compiler.LexFilter+PositionWithColumn (FullOpts)
         -20 (-0.84 % of base) : 23983.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)
         -16 (-0.70 % of base) : 1625.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -12 (-0.66 % of base) : 11880.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseBaselineDataSingleComponent():this (FullOpts)
          -4 (-0.46 % of base) : 1851.dasm - System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (FullOpts)
          -4 (-0.43 % of base) : 28219.dasm - Microsoft.Cci.MetadataWriter:SerializeMethodBodies(System.Reflection.Metadata.BlobBuilder,Microsoft.Cci.PdbWriter,byref):int[]:this (FullOpts)
         -16 (-0.41 % of base) : 14091.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
          -4 (-0.40 % of base) : 18339.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (FullOpts)
         -12 (-0.40 % of base) : 22386.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:Populate(Microsoft.CodeAnalysis.CSharp.NullableWalker+VariablesSnapshot):this (FullOpts)
          -4 (-0.39 % of base) : 12951.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:TryRemoveInternal(int,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          -8 (-0.39 % of base) : 16415.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlEntity(byref):this (FullOpts)
          -8 (-0.37 % of base) : 15329.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -4 (-0.36 % of base) : 12599.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:get_Count():int:this (FullOpts)
         -20 (-0.34 % 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)
          -4 (-0.33 % of base) : 15113.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
          -4 (-0.32 % of base) : 19564.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddDeclaredNontypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-0.27 % of base) : 23066.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<MakeDecisionDag>g__uniquifyState|32_0(Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+FrozenArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+StateForCase],System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDagTemp,Microsoft.CodeAnalysis.CSharp.IValueSet],byref):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState (FullOpts)
          -8 (-0.26 % of base) : 15309.dasm - Microsoft.CodeAnalysis.RuleSet:GetDiagnosticOptionsFromRulesetFile(System.Collections.Generic.Dictionary`2[System.String,int],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],Microsoft.CodeAnalysis.CommonMessageProvider):int (FullOpts)
          -8 (-0.26 % of base) : 17641.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)


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

Detail diffs



Top file regressions (bytes):
          20 : 11738.dasm (1.04 % of base)
          20 : 6475.dasm (0.99 % of base)
          20 : 1572.dasm (0.94 % of base)
          20 : 5245.dasm (0.90 % of base)
          12 : 1378.dasm (3.06 % of base)
          12 : 4943.dasm (3.06 % of base)
           8 : 1376.dasm (0.24 % of base)
           8 : 15171.dasm (4.65 % of base)
           8 : 4939.dasm (0.25 % of base)
           8 : 14634.dasm (0.24 % of base)
           8 : 489.dasm (0.62 % of base)
           4 : 13952.dasm (1.23 % of base)
           4 : 7716.dasm (0.99 % of base)
           4 : 8018.dasm (0.96 % of base)
           4 : 8267.dasm (1.23 % of base)
           4 : 13279.dasm (0.99 % of base)
           4 : 6384.dasm (3.12 % of base)
           4 : 8173.dasm (2.33 % of base)
           4 : 11702.dasm (3.12 % of base)
           4 : 12734.dasm (2.50 % of base)

Top file improvements (bytes):
          -8 : 9973.dasm (-1.67 % of base)
          -8 : 5146.dasm (-1.43 % of base)
          -4 : 374.dasm (-0.34 % of base)
          -4 : 21662.dasm (-0.55 % of base)

30 total files with Code Size differences (4 improved, 26 regressed), 33 unchanged.

Top method regressions (bytes):
          20 (1.04 % of base) : 11738.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          20 (0.99 % of base) : 6475.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
          20 (0.94 % of base) : 1572.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          20 (0.90 % of base) : 5245.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (FullOpts)
          12 (3.06 % of base) : 1378.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          12 (3.06 % of base) : 4943.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           8 (4.65 % of base) : 15171.dasm - PInvokeTests.Program:TestSizeParamIndex() (FullOpts)
           8 (0.62 % of base) : 489.dasm - System.Text.UTF32Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
           8 (0.24 % of base) : 1376.dasm - System.Threading.Lock:TryEnterSlow(int,System.Threading.Lock+ThreadId):System.Threading.Lock+ThreadId:this (FullOpts)
           8 (0.25 % of base) : 4939.dasm - System.Threading.Lock:TryEnterSlow(int,System.Threading.Lock+ThreadId):System.Threading.Lock+ThreadId:this (FullOpts)
           8 (0.24 % of base) : 14634.dasm - System.Threading.Lock:TryEnterSlow(int,System.Threading.Lock+ThreadId):System.Threading.Lock+ThreadId:this (FullOpts)
           4 (2.13 % of base) : 14377.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:GetManifestResourceNames(System.Reflection.Assembly):System.String[]:this (FullOpts)
           4 (2.33 % of base) : 8173.dasm - Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte (FullOpts)
           4 (2.33 % of base) : 13875.dasm - Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte (FullOpts)
           4 (1.23 % of base) : 13952.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (1.23 % of base) : 8267.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (2.50 % of base) : 12734.dasm - Internal.Runtime.TypeLoader.TypeBuilder:ProcessTypesNeedingPreparation():this (FullOpts)
           4 (2.50 % of base) : 7076.dasm - Internal.Runtime.TypeLoader.TypeBuilder:ProcessTypesNeedingPreparation():this (FullOpts)
           4 (0.99 % of base) : 7716.dasm - Internal.Runtime.TypeLoader.TypeBuilder:RegisterGenericTypesAndMethods():this (FullOpts)
           4 (0.99 % of base) : 13279.dasm - Internal.Runtime.TypeLoader.TypeBuilder:RegisterGenericTypesAndMethods():this (FullOpts)

Top method improvements (bytes):
          -8 (-1.67 % of base) : 9973.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -8 (-1.43 % of base) : 5146.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -4 (-0.34 % of base) : 374.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          -4 (-0.55 % of base) : 21662.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)

Top method regressions (percentages):
           8 (4.65 % of base) : 15171.dasm - PInvokeTests.Program:TestSizeParamIndex() (FullOpts)
           4 (3.12 % of base) : 6384.dasm - Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
           4 (3.12 % of base) : 11702.dasm - Internal.TypeSystem.TypeSystemContext:FlushTypeBuilderStates():this (FullOpts)
          12 (3.06 % of base) : 1378.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
          12 (3.06 % of base) : 4943.dasm - System.Threading.ObjectHeader:TryAcquireUncommon(System.Object,int,ubyte):int (FullOpts)
           4 (2.50 % of base) : 12734.dasm - Internal.Runtime.TypeLoader.TypeBuilder:ProcessTypesNeedingPreparation():this (FullOpts)
           4 (2.50 % of base) : 7076.dasm - Internal.Runtime.TypeLoader.TypeBuilder:ProcessTypesNeedingPreparation():this (FullOpts)
           4 (2.33 % of base) : 8173.dasm - Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte (FullOpts)
           4 (2.33 % of base) : 13875.dasm - Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte (FullOpts)
           4 (2.13 % of base) : 14377.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:GetManifestResourceNames(System.Reflection.Assembly):System.String[]:this (FullOpts)
           4 (1.23 % of base) : 13952.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (1.23 % of base) : 8267.dasm - Internal.Runtime.TypeLoader.MetadataNameExtensions:GetContainingModuleName(Internal.Metadata.NativeFormat.TypeDefinitionHandle,Internal.Metadata.NativeFormat.MetadataReader):System.String (FullOpts)
           4 (1.11 % of base) : 13774.dasm - Internal.Runtime.TypeLoader.TypeBuilder+<TypesToRegister>d__32:MoveNext():ubyte:this (FullOpts)
          20 (1.04 % of base) : 11738.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
           4 (1.00 % of base) : 8060.dasm - Internal.Runtime.TypeLoader.TypeBuilder+<TypesToRegister>d__32:MoveNext():ubyte:this (FullOpts)
           4 (0.99 % of base) : 7716.dasm - Internal.Runtime.TypeLoader.TypeBuilder:RegisterGenericTypesAndMethods():this (FullOpts)
           4 (0.99 % of base) : 13279.dasm - Internal.Runtime.TypeLoader.TypeBuilder:RegisterGenericTypesAndMethods():this (FullOpts)
          20 (0.99 % of base) : 6475.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
           4 (0.96 % of base) : 8018.dasm - System.Globalization.UmAlQuraCalendar:ConvertGregorianToHijri(System.DateTime,byref,byref,byref) (FullOpts)
           4 (0.96 % of base) : 13720.dasm - System.Globalization.UmAlQuraCalendar:ConvertGregorianToHijri(System.DateTime,byref,byref,byref) (FullOpts)

Top method improvements (percentages):
          -8 (-1.67 % of base) : 9973.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -8 (-1.43 % of base) : 5146.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
          -4 (-0.55 % of base) : 21662.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
          -4 (-0.34 % of base) : 374.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)