Diffs are based on 2,229,935 contexts (927,360 MinOpts, 1,302,575 FullOpts).
MISSED contexts: 6,082 (0.27%)
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 |
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 |
@@ -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)
@@ -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)
@@ -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
@@ -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
@@ -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)
@@ -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
1[ushort],System.ReadOnlySpan
1[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]
...
2[int,int]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary
2+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)
@@ -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)
@@ -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)
@@ -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)
@@ -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...
@@ -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)
@@ -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)
@@ -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
@@ -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)
@@ -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)
@@ -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)
@@ -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]
...
@@ -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...
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[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)@@ -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)
@@ -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
...
@@ -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)
@@ -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)...
@@ -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)
@@ -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)
@@ -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]...
@@ -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 ----
@@ -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 ----
@@ -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
@@ -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)
@@ -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)
@@ -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)
@@ -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
@@ -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
1[System.Collections.Generic.KeyValuePair
2[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
@@ -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)
@@ -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)
@@ -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]...
@@ -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)
@@ -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)
@@ -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)
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray
1[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)
@@ -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)
1[ushort],System.ReadOnlySpan
1[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
...
@@ -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
@@ -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)
@@ -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)
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 |
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%) |
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
Diffs are based on 2,308,464 contexts (929,692 MinOpts, 1,378,772 FullOpts).
MISSED contexts: 6,334 (0.27%)
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 |
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 |
@@ -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)
1[ushort],System.ReadOnlySpan
1[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]
...
@@ -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)
@@ -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
...
@@ -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)
@@ -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...
@@ -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
@@ -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)
@@ -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)
@@ -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)
@@ -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
@@ -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
1[ushort],System.ReadOnlySpan
1[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]
...
@@ -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)
@@ -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)
@@ -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)
@@ -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...
1[System.Collections.BigStruct]:InsertionSort(System.Span
1[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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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]
...
@@ -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...
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[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)@@ -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)
@@ -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
...
@@ -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)
@@ -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)...
@@ -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)
@@ -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)
@@ -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]...
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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
@@ -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
@@ -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)
1[System.Diagnostics.Metrics.Measurement
1[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
1[System.Collections.Generic.KeyValuePair
2[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
@@ -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)
@@ -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)
@@ -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]...
@@ -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)
@@ -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)
@@ -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)
1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray
1[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)
@@ -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)
1[ushort],System.ReadOnlySpan
1[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
...
@@ -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
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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)
@@ -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
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 |
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%) |
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)
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.
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)