Diffs are based on 2,501,157 contexts (1,003,806 MinOpts, 1,497,351 FullOpts).
MISSED contexts: 4,060 (0.16%)
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
libraries.pmi.linux.arm64.checked.mch | 76,022,852 | -36 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch | 162,656,488 | -24 |
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
libraries.pmi.linux.arm64.checked.mch | 75,902,868 | -36 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch | 149,175,276 | -24 |
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -242,11 +242,6 @@ G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -306,54 +301,54 @@ G_M1090_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG12 - G_M1090_IG02+RWD00 dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG05 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG05 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
-RWD140 dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+RWD140 dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
-; Total bytes of code 676, prolog size 16, PerfScore 41.00, instruction count 169, allocated bytes for code 676 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 664, prolog size 16, PerfScore 41.00, instruction count 166, allocated bytes for code 664 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -364,7 +359,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 169 (0x000a9) Actual length = 676 (0x0002a4)+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) ubyte -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) ubyte -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -242,11 +242,6 @@ G_M2754_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M2754_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M2754_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -306,54 +301,54 @@ G_M2754_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02+RWD00 dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
-RWD140 dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+RWD140 dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
-; Total bytes of code 676, prolog size 16, PerfScore 41.00, instruction count 169, allocated bytes for code 676 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 664, prolog size 16, PerfScore 41.00, instruction count 166, allocated bytes for code 664 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -364,7 +359,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 169 (0x000a9) Actual length = 676 (0x0002a4)+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) short -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) short -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -242,11 +242,6 @@ G_M65378_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M65378_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M65378_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -307,53 +302,53 @@ G_M65378_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=164 bbWeight=0 PerfScore 0.00
RWD00 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
-RWD140 dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+RWD140 dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
-; Total bytes of code 676, prolog size 16, PerfScore 41.00, instruction count 169, allocated bytes for code 676 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 664, prolog size 16, PerfScore 41.00, instruction count 166, allocated bytes for code 664 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -364,7 +359,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 169 (0x000a9) Actual length = 676 (0x0002a4)+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V45 rat0 [V45,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -77,24 +77,24 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byref
sub w3, w0, #2
cmp w3, #34
bhi G_M1090_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M1090_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M1090_IG02]
+ add x3, x3, x4 br x3
;; size=64 bbWeight=1 PerfScore 13.50
G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M1090_IG09- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M1090_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M1090_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -223,11 +223,6 @@ G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -287,54 +282,54 @@ G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG10 - G_M1090_IG02+RWD00 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
-RWD140 dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+RWD140 dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
-; Total bytes of code 620, prolog size 16, PerfScore 34.00, instruction count 155, allocated bytes for code 620 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 608, prolog size 16, PerfScore 34.00, instruction count 152, allocated bytes for code 608 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -345,7 +340,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 155 (0x0009b) Actual length = 620 (0x00026c)+ Function Length : 152 (0x00098) Actual length = 608 (0x000260) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V45 rat0 [V45,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -77,24 +77,24 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byre
sub w3, w0, #2
cmp w3, #34
bhi G_M39522_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M39522_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M39522_IG02]
+ add x3, x3, x4 br x3
;; size=64 bbWeight=1 PerfScore 13.50
G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M39522_IG09- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M39522_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M39522_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -223,11 +223,6 @@ G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -287,54 +282,54 @@ G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG10 - G_M39522_IG02+RWD00 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
-RWD140 dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+RWD140 dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
-; Total bytes of code 620, prolog size 16, PerfScore 34.00, instruction count 155, allocated bytes for code 620 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 608, prolog size 16, PerfScore 34.00, instruction count 152, allocated bytes for code 608 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -345,7 +340,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 155 (0x0009b) Actual length = 620 (0x00026c)+ Function Length : 152 (0x00098) Actual length = 608 (0x000260) ---- 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.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_pgo.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_tiered.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
coreclr_tests.run.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
libraries.crossgen2.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
libraries.pmi.linux.arm64.checked.mch | 3 | 3 | 0 | 0 | -36 | +0 |
libraries_tests.run.linux.arm64.Release.mch | 0 | 0 | 0 | 0 | -0 | +0 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch | 2 | 2 | 0 | 0 | -24 | +0 |
realworld.run.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
smoke_tests.nativeaot.linux.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
5 | 5 | 0 | 0 | -60 | +0 |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
benchmarks.run.linux.arm64.checked.mch | 33,632 | 2,755 | 30,877 | 4 (0.01%) | 4 (0.01%) |
benchmarks.run_pgo.linux.arm64.checked.mch | 153,694 | 60,106 | 93,588 | 162 (0.11%) | 162 (0.11%) |
benchmarks.run_tiered.linux.arm64.checked.mch | 63,981 | 47,942 | 16,039 | 2 (0.00%) | 2 (0.00%) |
coreclr_tests.run.linux.arm64.checked.mch | 628,056 | 383,770 | 244,286 | 415 (0.07%) | 415 (0.07%) |
libraries.crossgen2.linux.arm64.checked.mch | 233,777 | 15 | 233,762 | 0 (0.00%) | 0 (0.00%) |
libraries.pmi.linux.arm64.checked.mch | 294,232 | 6 | 294,226 | 8 (0.00%) | 8 (0.00%) |
libraries_tests.run.linux.arm64.Release.mch | 737,382 | 487,495 | 249,887 | 3,456 (0.47%) | 3,456 (0.47%) |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch | 304,061 | 21,560 | 282,501 | 10 (0.00%) | 10 (0.00%) |
realworld.run.linux.arm64.checked.mch | 33,301 | 151 | 33,150 | 3 (0.01%) | 3 (0.01%) |
smoke_tests.nativeaot.linux.arm64.checked.mch | 19,041 | 6 | 19,035 | 0 (0.00%) | 0 (0.00%) |
2,501,157 | 1,003,806 | 1,497,351 | 4,060 (0.16%) | 4,060 (0.16%) |
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 76022852 (overridden on cmd)
Total bytes of diff: 76022816 (overridden on cmd)
Total bytes of delta: -36 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 9851.dasm (-1.78 % of base)
-12 : 9853.dasm (-1.78 % of base)
-12 : 9852.dasm (-1.78 % of base)
3 total files with Code Size differences (3 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-1.78 % of base) : 9853.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.78 % of base) : 9852.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.78 % of base) : 9851.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-1.78 % of base) : 9853.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.78 % of base) : 9852.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.78 % of base) : 9851.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
3 total methods with Code Size differences (3 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 162656488 (overridden on cmd)
Total bytes of diff: 162656464 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 187355.dasm (-1.94 % of base)
-12 : 187394.dasm (-1.94 % of base)
2 total files with Code Size differences (2 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-1.94 % of base) : 187394.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.94 % of base) : 187355.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-1.94 % of base) : 187394.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.94 % of base) : 187355.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
2 total methods with Code Size differences (2 improved, 0 regressed).
Diffs are based on 2,595,007 contexts (1,052,329 MinOpts, 1,542,678 FullOpts).
MISSED contexts: 3,628 (0.14%)
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
benchmarks.run.linux.x64.checked.mch | 13,735,124 | -72 |
benchmarks.run_pgo.linux.x64.checked.mch | 68,635,056 | -19 |
benchmarks.run_tiered.linux.x64.checked.mch | 17,373,152 | -3 |
coreclr_tests.run.linux.x64.checked.mch | 459,550,097 | -47 |
libraries.crossgen2.linux.x64.checked.mch | 38,670,232 | -69 |
libraries.pmi.linux.x64.checked.mch | 60,144,132 | -481 |
libraries_tests.run.linux.x64.Release.mch | 333,558,929 | -711 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch | 130,468,363 | -344 |
realworld.run.linux.x64.checked.mch | 13,194,603 | -72 |
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
benchmarks.run.linux.x64.checked.mch | 13,468,331 | -72 |
benchmarks.run_pgo.linux.x64.checked.mch | 48,805,299 | -19 |
benchmarks.run_tiered.linux.x64.checked.mch | 3,695,392 | -3 |
coreclr_tests.run.linux.x64.checked.mch | 132,991,962 | -47 |
libraries.crossgen2.linux.x64.checked.mch | 38,669,030 | -69 |
libraries.pmi.linux.x64.checked.mch | 60,031,262 | -481 |
libraries_tests.run.linux.x64.Release.mch | 149,169,408 | -711 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch | 119,809,892 | -344 |
realworld.run.linux.x64.checked.mch | 12,805,497 | -72 |
@@ -20,10 +20,10 @@
; V09 tmp7 [V09,T05] ( 4, 4 ) int -> rcx "Inline stloc first use temp"
; V10 tmp8 [V10,T11] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V11 PSPSym [V11,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V12 cse0 [V12,T07] ( 5, 2.50) long -> rbx multi-def "CSE - aggressive"
-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V12 cse0 [V12,T07] ( 4, 1.50) long -> rbx multi-def "CSE - aggressive"
+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -42,12 +42,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi rdi]
mov rbx, qword ptr [rdi]- mov rax, rbx
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x68]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, rsi
@@ -154,7 +149,7 @@ G_M44994_IG12: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 224, prolog size 27, PerfScore 48.38, instruction count 69, allocated bytes for code 224 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)+; Total bytes of code 207, prolog size 27, PerfScore 41.88, instruction count 64, allocated bytes for code 207 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts) ; ============================================================
Unwind Info:
@@ -24,10 +24,10 @@
; V13 PSPSym [V13,T12] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
; V14 cse0 [V14,T06] ( 3, 3 ) ref -> rsi "CSE - aggressive"
; V15 cse1 [V15,T09] ( 3, 2.50) long -> rcx "CSE - aggressive"-; V16 cse2 [V16,T07] ( 5, 2.50) long -> rbx multi-def "CSE - aggressive"
-; V17 rat0 [V17,T05] ( 2, 4 ) long -> rcx "Spilling to split statement for tree"+; V16 cse2 [V16,T07] ( 4, 1.50) long -> rbx multi-def "CSE - aggressive"
+;* V17 rat0 [V17,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V18 rat1 [V18,T11] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V19 rat2 [V19,T03] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V19 rat2 [V19,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -51,12 +51,7 @@ G_M52108_IG02: ; bbWeight=1, gcVars=0000000000000015 {V00 V01 V02}, gcref
test rsi, rsi
je G_M52108_IG12
mov rbx, qword ptr [rdi]- mov rcx, rbx
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x28]
- test rcx, rcx
- ;; size=29 bbWeight=1 PerfScore 9.75+ ;; size=12 bbWeight=1 PerfScore 3.25 G_M52108_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rcx, 0xD1FFAB1E ; System.Int32
@@ -207,7 +202,7 @@ G_M52108_IG18: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 345, prolog size 33, PerfScore 46.31, instruction count 97, allocated bytes for code 345 (MethodHash=a3bf3473) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)+; Total bytes of code 328, prolog size 33, PerfScore 39.81, instruction count 92, allocated bytes for code 328 (MethodHash=a3bf3473) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -59,13 +59,13 @@
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - moderate"
; V49 cse1 [V49,T34] ( 3, 3 ) long -> r14 "CSE - moderate"
; V50 cse2 [V50,T33] ( 3, 3 ) ref -> r14 "CSE - moderate"-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x48] spill-single-def "CSE - moderate"+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x48] spill-single-def "CSE - moderate" ; V52 cse4 [V52,T12] ( 3, 6 ) int -> [rbp-0x4C] spill-single-def "CSE - moderate"
; V53 rat0 [V53,T18] ( 3, 4.40) long -> rsi "Spilling to split statement for tree"
; V54 rat1 [V54,T19] ( 3, 4 ) long -> r11 "runtime lookup"
; V55 rat2 [V55,T13] ( 3, 5.60) long -> r11 "fgMakeTemp is creating a new local variable"
;* V56 rat3 [V56,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V57 rat4 [V57,T14] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V57 rat4 [V57,T14] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V58 rat5 [V58,T38] ( 3, 2 ) long -> rdi "runtime lookup"
; V59 rat6 [V59,T35] ( 3, 2.80) long -> rdi "fgMakeTemp is creating a new local variable"
; V60 rat7 [V60,T21] ( 3, 4 ) long -> r14 "runtime lookup"
@@ -137,31 +137,26 @@ G_M65396_IG05: ; bbWeight=1, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefR
G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000220 {V00 V16}, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax]
xor ecx, ecx- mov r8, qword ptr [rbp-0x48]
- mov rdi, qword ptr [r8+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x70]
- test rdi, rdi
- mov r9d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x4C], r9d
- test r9d, r9d+ mov r8d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x4C], r8d
+ test r8d, r8d jle SHORT G_M65396_IG08- ;; size=33 bbWeight=1 PerfScore 11.75+ ;; size=15 bbWeight=1 PerfScore 4.50 G_M65396_IG07: ; bbWeight=4, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbp-0x34], ecx
mov edi, ecx
mov rdi, gword ptr [rbx+8*rdi+0x10]
; gcrRegs +[rdi]- mov r10, gword ptr [rbp-0x58]
- ; gcrRegs +[r10]
- mov rdx, gword ptr [r10+0x10]+ mov r9, gword ptr [rbp-0x58]
+ ; gcrRegs +[r9]
+ mov rdx, gword ptr [r9+0x10] ; gcrRegs +[rdx]
mov rsi, rbx
; gcrRegs +[rsi]- mov r11, qword ptr [rdi]
- mov r11, qword ptr [r11+0x50]
- call [r11]<unknown method>
- ; gcrRegs -[rdx rsi rdi r10] +[rax]+ mov r10, qword ptr [rdi]
+ mov r10, qword ptr [r10+0x50]
+ call [r10]<unknown method>
+ ; gcrRegs -[rdx rsi rdi r9] +[rax] ; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
; GC ptr vars +{V33}
@@ -556,7 +551,7 @@ G_M65396_IG30: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1000, prolog size 61, PerfScore 424.30, instruction count 264, allocated bytes for code 1000 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)+; Total bytes of code 982, prolog size 61, PerfScore 417.05, instruction count 259, allocated bytes for code 982 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts) ; ============================================================
Unwind Info:
@@ -136,8 +136,8 @@ G_M47335_IG03: ; bbWeight=0.50, gcrefRegs=A000 {r13 r15}, byrefRegs=0000
mov gword ptr [rbp-0x38], rax
test rax, rax
je SHORT G_M47335_IG04- cmp dword ptr [rax+0x08], 0
- ;; size=52 bbWeight=0.50 PerfScore 9.12+ mov ecx, dword ptr [rax+0x08]
+ ;; size=51 bbWeight=0.50 PerfScore 8.62 G_M47335_IG04: ; bbWeight=0.50, gcVars=0000000000000010 {V04}, gcrefRegs=A001 {rax r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
test r15, r15
jne SHORT G_M47335_IG05
@@ -375,7 +375,7 @@ G_M47335_IG25: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 506, prolog size 40, PerfScore 67.38, instruction count 165, allocated bytes for code 506 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts)+; Total bytes of code 505, prolog size 40, PerfScore 66.88, instruction count 165, allocated bytes for code 505 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -210,9 +210,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=000000000000001B {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edx, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0x78]- ;; size=18 bbWeight=1 PerfScore 6.25+ ;; size=17 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=0149 {rax rbx rsi r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdx, bword ptr [rax+0x10]
; byrRegs +[rdx]
@@ -595,7 +595,7 @@ G_M62798_IG35: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 879, prolog size 60, PerfScore 209.83, instruction count 269, allocated bytes for code 879 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 878, prolog size 60, PerfScore 208.83, instruction count 269, allocated bytes for code 878 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (FullOpts)@@ -232,8 +232,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000001 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -547,7 +547,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1076, prolog size 107, PerfScore 156.58, instruction count 263, allocated bytes for code 1076 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1075, prolog size 107, PerfScore 156.08, instruction count 263, allocated bytes for code 1075 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -46,7 +46,7 @@
;* V34 tmp9 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.AesImplementation>
; V35 tmp10 [V35,T12] ( 9, 7 ) int -> r14 "guarded devirt return temp"
; V36 tmp11 [V36,T62] ( 3, 3 ) ref -> rbx class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>-; V37 tmp12 [V37,T15] ( 8, 7 ) ref -> r12 "guarded devirt return temp"+; V37 tmp12 [V37,T15] ( 8, 7 ) ref -> r13 "guarded devirt return temp" ;* V38 tmp13 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>
;* V39 tmp14 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>
;* V40 tmp15 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -106,7 +106,7 @@
;* V94 tmp69 [V94 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.Span`1[ubyte]>
;* V95 tmp70 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V96 tmp71 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>-; V97 tmp72 [V97,T53] ( 2, 4 ) int -> r13 "Inlining Arg"+; V97 tmp72 [V97,T53] ( 2, 4 ) int -> r12 "Inlining Arg" ; V98 tmp73 [V98,T45] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
;* V99 tmp74 [V99 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V100 tmp75 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -150,7 +150,7 @@
;* V138 tmp113 [V138 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V139 tmp114 [V139,T109] ( 6, 1.38) ref -> rbx class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
;* V140 tmp115 [V140 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>-; V141 tmp116 [V141,T29] ( 8, 4.71) int -> r12 "Inline stloc first use temp"+; V141 tmp116 [V141,T29] ( 8, 4.71) int -> r13 "Inline stloc first use temp" ; V142 tmp117 [V142,T47] ( 2, 4 ) ref -> rcx class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
; V143 tmp118 [V143,T59] ( 4, 3 ) ref -> registers
; V144 tmp119 [V144,T63] ( 3, 3 ) ref -> [rbp-0xE8] class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
@@ -209,11 +209,11 @@
; V197 tmp172 [V197,T164] ( 2, 0 ) int -> r8 "Inlining Arg"
;* V198 tmp173 [V198 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V199 tmp174 [V199,T130] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"-; V200 tmp175 [V200,T48] ( 2, 4 ) ref -> r13 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]>+; V200 tmp175 [V200,T48] ( 2, 4 ) ref -> r12 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]> ;* V201 tmp176 [V201 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>-; V202 tmp177 [V202,T110] ( 6, 1.38) ref -> r13 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>+; V202 tmp177 [V202,T110] ( 6, 1.38) ref -> r12 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]> ;* V203 tmp178 [V203 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>-; V204 tmp179 [V204,T26] ( 9, 5.71) int -> r12 "Inline stloc first use temp"+; V204 tmp179 [V204,T26] ( 9, 5.71) int -> r13 "Inline stloc first use temp" ; V205 tmp180 [V205,T49] ( 2, 4 ) ref -> rbx class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
; V206 tmp181 [V206,T60] ( 4, 3 ) ref -> rbx
; V207 tmp182 [V207,T40] ( 4, 4 ) ref -> rbx class-hnd single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
@@ -319,16 +319,16 @@
; V307 tmp282 [V307,T90] ( 2, 2 ) byref -> rsi single-def "field V89._reference (fldOffset=0x0)" P-INDEP
; V308 tmp283 [V308,T99] ( 2, 2 ) int -> rdx "field V89._length (fldOffset=0x8)" P-INDEP
; V309 tmp284 [V309,T91] ( 2, 2 ) byref -> rcx "field V94._reference (fldOffset=0x0)" P-INDEP-; V310 tmp285 [V310,T100] ( 2, 2 ) int -> r13 "field V94._length (fldOffset=0x8)" P-INDEP+; V310 tmp285 [V310,T100] ( 2, 2 ) int -> r12 "field V94._length (fldOffset=0x8)" P-INDEP ; V311 tmp286 [V311,T92] ( 2, 2 ) byref -> rcx single-def "field V95._reference (fldOffset=0x0)" P-INDEP-; V312 tmp287 [V312,T101] ( 2, 2 ) int -> r13 "field V95._length (fldOffset=0x8)" P-INDEP+; V312 tmp287 [V312,T101] ( 2, 2 ) int -> r12 "field V95._length (fldOffset=0x8)" P-INDEP ;* V313 tmp288 [V313 ] ( 0, 0 ) byref -> zero-ref single-def "field V96._reference (fldOffset=0x0)" P-INDEP
;* V314 tmp289 [V314 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
; V315 tmp290 [V315,T70] ( 4, 2.50) byref -> rsi "field V101._reference (fldOffset=0x0)" P-INDEP
; V316 tmp291 [V316,T61] ( 4, 3 ) int -> rax "field V101._length (fldOffset=0x8)" P-INDEP
;* V317 tmp292 [V317 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
;* V318 tmp293 [V318 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP-; V319 tmp294 [V319,T56] ( 5, 3.56) byref -> r13 "field V111._reference (fldOffset=0x0)" P-INDEP+; V319 tmp294 [V319,T56] ( 5, 3.56) byref -> r12 "field V111._reference (fldOffset=0x0)" P-INDEP ; V320 tmp295 [V320,T36] ( 5, 4.06) int -> [rbp-0xAC] "field V111._length (fldOffset=0x8)" P-INDEP
;* V321 tmp296 [V321 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP
;* V322 tmp297 [V322 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP
@@ -355,9 +355,9 @@
;* V343 tmp318 [V343 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V344 tmp319 [V344,T148] ( 2, 0 ) ref -> r14 single-def "argument with side effect"
; V345 tmp320 [V345,T149] ( 2, 0 ) ref -> rdx single-def "argument with side effect"-; V346 tmp321 [V346,T150] ( 2, 0 ) ref -> r12 single-def "argument with side effect"+; V346 tmp321 [V346,T150] ( 2, 0 ) ref -> r13 single-def "argument with side effect" ; V347 tmp322 [V347,T151] ( 2, 0 ) ref -> rdx single-def "argument with side effect"-; V348 tmp323 [V348,T152] ( 2, 0 ) ref -> r13 single-def "argument with side effect"+; V348 tmp323 [V348,T152] ( 2, 0 ) ref -> r12 single-def "argument with side effect" ; V349 tmp324 [V349,T153] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V350 tmp325 [V350 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V351 tmp326 [V351 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -366,7 +366,7 @@
; V354 tmp329 [V354,T154] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V355 tmp330 [V355,T155] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V356 tmp331 [V356,T85] ( 3, 2.00) ref -> rdi single-def "arr expr"-; V357 tmp332 [V357,T156] ( 2, 0 ) ref -> r13 single-def "argument with side effect"+; V357 tmp332 [V357,T156] ( 2, 0 ) ref -> r12 single-def "argument with side effect" ; V358 tmp333 [V358,T157] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V359 PSPSym [V359,T133] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym"
; V360 cse0 [V360,T64] ( 3, 3 ) byref -> [rbp-0x130] spill-single-def "CSE - conservative"
@@ -375,7 +375,7 @@
; V363 cse3 [V363,T119] ( 5, 1.00) int -> [rbp-0xB0] spill-single-def "CSE - conservative"
; V364 cse4 [V364,T120] ( 5, 1.00) int -> [rbp-0xB4] spill-single-def "CSE - conservative"
; V365 cse5 [V365,T66] ( 3, 3 ) ref -> r14 "CSE - conservative"-; V366 cse6 [V366,T03] ( 15, 11.76) int -> registers multi-def "CSE - aggressive"+; V366 cse6 [V366,T03] ( 13, 9.76) int -> registers multi-def "CSE - aggressive" ; V367 cse7 [V367,T04] ( 13, 9.65) int -> r14 multi-def "CSE - aggressive"
;
; Lcl frame size = 296
@@ -465,10 +465,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- mov ecx, dword ptr [r8+0x08]
- test ecx, ecx+ mov esi, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0xD8]- ;; size=22 bbWeight=1 PerfScore 5.50+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=0189 {rax rbx rdi r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rsi, bword ptr [rax+0x10]
; byrRegs +[rsi]
@@ -704,10 +703,8 @@ G_M62798_IG26: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcrRegs +[r8]
test r8, r8
je G_M62798_IG34- mov ecx, dword ptr [r8+0x08]
- ; gcrRegs -[rcx]
- mov r13d, ecx
- cmp r13d, eax+ mov r12d, dword ptr [r8+0x08]
+ cmp r12d, eax jl G_M62798_IG33
cmp r14d, eax
jb G_M62798_IG31
@@ -715,8 +712,9 @@ G_M62798_IG26: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; byrRegs +[rsi]
mov edx, eax
lea rcx, bword ptr [r8+0x10]+ ; gcrRegs -[rcx] ; byrRegs +[rcx]- mov r8d, r13d+ mov r8d, r12d ; gcrRegs -[r8]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -726,7 +724,7 @@ G_M62798_IG26: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
mov r14d, eax
jmp SHORT G_M62798_IG28- ;; size=135 bbWeight=1 PerfScore 54.75+ ;; size=132 bbWeight=1 PerfScore 54.50 G_M62798_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
mov eax, dword ptr [rbp+0x18]
@@ -750,8 +748,8 @@ G_M62798_IG28: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs +[r8]
test r8, r8
je SHORT G_M62798_IG32- mov r13d, dword ptr [r8+0x08]
- cmp r13d, r14d+ mov r12d, dword ptr [r8+0x08]
+ cmp r12d, r14d jb SHORT G_M62798_IG31
lea rsi, bword ptr [r8+0x10]
; byrRegs +[rsi]
@@ -844,18 +842,18 @@ G_M62798_IG35: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
; gcr arg pop 0- mov r12, rax
- ; gcrRegs +[r12]+ mov r13, rax
+ ; gcrRegs +[r13] call [<unknown method>]
; gcr arg pop 0
mov rdx, rax
; gcrRegs +[rdx]- mov rsi, r12+ mov rsi, r13 ; gcrRegs +[rsi]
mov rdi, r14
; gcrRegs +[rdi]
call [<unknown method>]- ; gcrRegs -[rax rdx rsi rdi r12]+ ; gcrRegs -[rax rdx rsi rdi r13] ; gcr arg pop 0
mov rdi, r14
; gcrRegs +[rdi]
@@ -874,18 +872,18 @@ G_M62798_IG36: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
; gcr arg pop 0- mov r13, rax
- ; gcrRegs +[r13]+ mov r12, rax
+ ; gcrRegs +[r12] call [<unknown method>]
; gcr arg pop 0
mov rdx, rax
; gcrRegs +[rdx]- mov rsi, r13+ mov rsi, r12 ; gcrRegs +[rsi]
mov rdi, rbx
; gcrRegs +[rdi]
call [<unknown method>]- ; gcrRegs -[rax rdx rsi rdi r13]+ ; gcrRegs -[rax rdx rsi rdi r12] ; gcr arg pop 0
mov rdi, rbx
; gcrRegs +[rdi]
@@ -950,12 +948,12 @@ G_M62798_IG41: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx},
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0- mov r12, rax
- ; gcrRegs +[r12]+ mov r13, rax
+ ; gcrRegs +[r13] jmp SHORT G_M62798_IG43
;; size=50 bbWeight=1 PerfScore 11.50
G_M62798_IG42: ; bbWeight=0, gcrefRegs=8001 {rax r15}, byrefRegs=0008 {rbx}, byref- ; gcrRegs -[r12]+ ; gcrRegs -[r13] mov rdi, rax
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for <unknown method>
@@ -966,20 +964,20 @@ G_M62798_IG42: ; bbWeight=0, gcrefRegs=8001 {rax r15}, byrefRegs=0008 {rb
call [r11]<unknown method>
; gcrRegs -[rsi rdi]
; gcr arg pop 0- mov r12, rax
- ; gcrRegs +[r12]+ mov r13, rax
+ ; gcrRegs +[r13] ;; size=33 bbWeight=0 PerfScore 0.00-G_M62798_IG43: ; bbWeight=1, gcrefRegs=9000 {r12 r15}, byrefRegs=0008 {rbx}, byref, isz+G_M62798_IG43: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 {rbx}, byref, isz ; gcrRegs -[rax]- mov gword ptr [rbp-0x50], r12
- test r12, r12+ mov gword ptr [rbp-0x50], r13
+ test r13, r13 je SHORT G_M62798_IG48- mov edi, dword ptr [r12+0x08]
- lea r13, bword ptr [r12+0x10]
- ; byrRegs +[r13]
- mov eax, dword ptr [r12+0x08]
- ;; size=24 bbWeight=1 PerfScore 6.75
-G_M62798_IG44: ; bbWeight=1, gcrefRegs=9000 {r12 r15}, byrefRegs=2008 {rbx r13}, byref, isz+ mov edi, dword ptr [r13+0x08]
+ lea r12, bword ptr [r13+0x10]
+ ; byrRegs +[r12]
+ mov eax, dword ptr [r13+0x08]
+ ;; size=21 bbWeight=1 PerfScore 6.75
+G_M62798_IG44: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=1008 {rbx r12}, byref, isz mov ecx, dword ptr [rbp+0x28]
cmp r14d, ecx
ja SHORT G_M62798_IG51
@@ -991,7 +989,7 @@ G_M62798_IG44: ; bbWeight=1, gcrefRegs=9000 {r12 r15}, byrefRegs=2008 {rb
test r8d, r8d
jl SHORT G_M62798_IG52
;; size=29 bbWeight=1 PerfScore 5.50-G_M62798_IG45: ; bbWeight=1, gcrefRegs=9000 {r12 r15}, byrefRegs=2008 {rbx r13}, byref, isz+G_M62798_IG45: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=1008 {rbx r12}, byref, isz cmp eax, r8d
...
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -371,7 +371,7 @@
; V359 cse2 [V359,T61] ( 3, 3 ) ref -> [rbp-0x150] spill-single-def "CSE - conservative"
; V360 cse3 [V360,T113] ( 5, 1.20) int -> [rbp-0xB0] spill-single-def "CSE - conservative"
; V361 cse4 [V361,T114] ( 5, 1.20) int -> [rbp-0xB4] spill-single-def "CSE - conservative"-; V362 cse5 [V362,T02] ( 15, 11.80) int -> registers multi-def "CSE - aggressive"+; V362 cse5 [V362,T02] ( 13, 9.80) int -> registers multi-def "CSE - aggressive" ; V363 cse6 [V363,T03] ( 13, 9.75) int -> r13 multi-def "CSE - aggressive"
;
; Lcl frame size = 312
@@ -462,10 +462,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- mov ecx, dword ptr [r8+0x08]
- test ecx, ecx+ mov esi, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0xD8]- ;; size=22 bbWeight=1 PerfScore 5.50+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=8181 {rax rdi r8 r15}, byrefRegs=1000 {r12}, byref, isz
lea rsi, bword ptr [rax+0x10]
; byrRegs +[rsi]
@@ -710,9 +709,7 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; gcrRegs +[r8]
test r8, r8
je G_M62798_IG34- mov ecx, dword ptr [r8+0x08]
- ; gcrRegs -[rcx]
- mov r12d, ecx+ mov r12d, dword ptr [r8+0x08] cmp r12d, ebx
jl G_M62798_IG33
cmp r13d, ebx
@@ -721,6 +718,7 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; byrRegs +[rsi]
mov edx, ebx
lea rcx, bword ptr [r8+0x10]+ ; gcrRegs -[rcx] ; byrRegs +[rcx]
mov r8d, r12d
; gcrRegs -[r8]
@@ -732,7 +730,7 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; gcr arg pop 0
mov r13d, eax
jmp SHORT G_M62798_IG27- ;; size=131 bbWeight=1 PerfScore 53.00+ ;; size=128 bbWeight=1 PerfScore 52.75 G_M62798_IG26: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
mov rdi, r15
@@ -2114,7 +2112,7 @@ G_M62798_IG137: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 3791, prolog size 106, PerfScore 537.20, instruction count 921, allocated bytes for code 3791 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 3786, prolog size 106, PerfScore 536.70, instruction count 919, allocated bytes for code 3786 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -44,9 +44,9 @@
;* V32 tmp7 [V32 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V33 tmp8 [V33,T31] ( 6, 4 ) ref -> r15 "guarded devirt return temp"
;* V34 tmp9 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.AesImplementation>-; V35 tmp10 [V35,T09] ( 9, 7 ) int -> r15 "guarded devirt return temp"+; V35 tmp10 [V35,T09] ( 9, 7 ) int -> r13 "guarded devirt return temp" ; V36 tmp11 [V36,T57] ( 3, 3 ) ref -> r15 class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>-; V37 tmp12 [V37,T12] ( 8, 7 ) ref -> r13 "guarded devirt return temp"+; V37 tmp12 [V37,T12] ( 8, 7 ) ref -> r12 "guarded devirt return temp" ;* V38 tmp13 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>
;* V39 tmp14 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.UniversalCryptoDecryptor>
;* V40 tmp15 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -84,7 +84,7 @@
;* V72 tmp47 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp48 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V74 tmp49 [V74,T137] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>-; V75 tmp50 [V75,T138] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>+; V75 tmp50 [V75,T138] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException> ; V76 tmp51 [V76,T139] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
;* V77 tmp52 [V77 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V78 tmp53 [V78,T46] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -106,7 +106,7 @@
;* V94 tmp69 [V94 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.Span`1[ubyte]>
;* V95 tmp70 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V96 tmp71 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>-; V97 tmp72 [V97,T49] ( 2, 4 ) int -> r13 "Inlining Arg"+; V97 tmp72 [V97,T49] ( 2, 4 ) int -> r12 "Inlining Arg" ; V98 tmp73 [V98,T41] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
;* V99 tmp74 [V99 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V100 tmp75 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -123,7 +123,7 @@
;* V111 tmp86 [V111 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V112 tmp87 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V113 tmp88 [V113,T23] ( 3, 6 ) int -> [rbp-0x58] spill-single-def "Inlining Arg"-; V114 tmp89 [V114,T26] ( 3, 5 ) byref -> r12 single-def "Inlining Arg"+; V114 tmp89 [V114,T26] ( 3, 5 ) byref -> r15 single-def "Inlining Arg" ;* V115 tmp90 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V116 tmp91 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V117 tmp92 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
@@ -134,11 +134,11 @@
; V122 tmp97 [V122,T01] ( 8, 16 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Security.Cryptography.BasicSymmetricCipher>
;* V123 tmp98 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Security.Cryptography.OpenSslCipher>
;* V124 tmp99 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.OpenSslCipherLite>-; V125 tmp100 [V125,T07] ( 4, 8 ) ref -> r15 class-hnd single-def "Inlining Arg" <ubyte[]>+; V125 tmp100 [V125,T07] ( 4, 8 ) ref -> r14 class-hnd single-def "Inlining Arg" <ubyte[]> ; V126 tmp101 [V126,T62] ( 3, 3 ) long -> rdx "Inline stloc first use temp"
;* V127 tmp102 [V127 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"-; V128 tmp103 [V128,T52] ( 7, 3.93) long -> r14 "Inline stloc first use temp"
-; V129 tmp104 [V129,T69] ( 4, 2.44) byref -> r15 single-def "Inline stloc first use temp"+; V128 tmp103 [V128,T52] ( 7, 3.93) long -> r15 "Inline stloc first use temp"
+; V129 tmp104 [V129,T69] ( 4, 2.44) byref -> r14 single-def "Inline stloc first use temp" ;* V130 tmp105 [V130 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V131 tmp106 [V131 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V132 tmp107 [V132 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -150,7 +150,7 @@
;* V138 tmp113 [V138 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V139 tmp114 [V139,T106] ( 6, 1.45) ref -> r15 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
;* V140 tmp115 [V140 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>-; V141 tmp116 [V141,T28] ( 8, 4.85) int -> r13 "Inline stloc first use temp"+; V141 tmp116 [V141,T28] ( 8, 4.85) int -> r12 "Inline stloc first use temp" ; V142 tmp117 [V142,T43] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
; V143 tmp118 [V143,T54] ( 4, 3 ) ref -> registers
; V144 tmp119 [V144,T58] ( 3, 3 ) ref -> [rbp-0xE8] class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
@@ -209,9 +209,9 @@
; V197 tmp172 [V197,T163] ( 2, 0 ) int -> r8 "Inlining Arg"
;* V198 tmp173 [V198 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V199 tmp174 [V199,T129] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"-; V200 tmp175 [V200,T44] ( 2, 4 ) ref -> r12 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]>+; V200 tmp175 [V200,T44] ( 2, 4 ) ref -> r13 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]> ;* V201 tmp176 [V201 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>-; V202 tmp177 [V202,T107] ( 6, 1.45) ref -> r12 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>+; V202 tmp177 [V202,T107] ( 6, 1.45) ref -> r13 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]> ;* V203 tmp178 [V203 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V204 tmp179 [V204,T25] ( 9, 5.85) int -> r15 "Inline stloc first use temp"
; V205 tmp180 [V205,T45] ( 2, 4 ) ref -> rbx class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
@@ -223,7 +223,7 @@
; V211 tmp186 [V211,T164] ( 2, 0 ) int -> [rbp-0x8C] spill-single-def "impAppendStmt"
; V212 tmp187 [V212,T165] ( 2, 0 ) int -> [rbp-0x90] spill-single-def "impAppendStmt"
; V213 tmp188 [V213,T166] ( 2, 0 ) int -> [rbp-0x94] spill-single-def "impAppendStmt"-; V214 tmp189 [V214,T167] ( 2, 0 ) int -> r13 "impAppendStmt"+; V214 tmp189 [V214,T167] ( 2, 0 ) int -> r12 "impAppendStmt" ;* V215 tmp190 [V215 ] ( 0, 0 ) ref -> zero-ref single-def
;* V216 tmp191 [V216 ] ( 0, 0 ) int -> zero-ref
;* V217 tmp192 [V217 ] ( 0, 0 ) int -> zero-ref
@@ -251,7 +251,7 @@
; V239 tmp214 [V239,T105] ( 2, 1.60) ref -> rax class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
; V240 tmp215 [V240,T111] ( 4, 1.25) ref -> rax
;* V241 tmp216 [V241 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>-; V242 tmp217 [V242,T141] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>+; V242 tmp217 [V242,T141] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <<unknown class>> ;* V243 tmp218 [V243 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V244 tmp219 [V244 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V245 tmp220 [V245 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -319,9 +319,9 @@
; V307 tmp282 [V307,T85] ( 2, 2 ) byref -> rsi single-def "field V89._reference (fldOffset=0x0)" P-INDEP
; V308 tmp283 [V308,T94] ( 2, 2 ) int -> rdx "field V89._length (fldOffset=0x8)" P-INDEP
; V309 tmp284 [V309,T86] ( 2, 2 ) byref -> rcx "field V94._reference (fldOffset=0x0)" P-INDEP-; V310 tmp285 [V310,T95] ( 2, 2 ) int -> r13 "field V94._length (fldOffset=0x8)" P-INDEP+; V310 tmp285 [V310,T95] ( 2, 2 ) int -> r12 "field V94._length (fldOffset=0x8)" P-INDEP ; V311 tmp286 [V311,T87] ( 2, 2 ) byref -> rcx single-def "field V95._reference (fldOffset=0x0)" P-INDEP-; V312 tmp287 [V312,T96] ( 2, 2 ) int -> r13 "field V95._length (fldOffset=0x8)" P-INDEP+; V312 tmp287 [V312,T96] ( 2, 2 ) int -> r12 "field V95._length (fldOffset=0x8)" P-INDEP ;* V313 tmp288 [V313 ] ( 0, 0 ) byref -> zero-ref single-def "field V96._reference (fldOffset=0x0)" P-INDEP
;* V314 tmp289 [V314 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
; V315 tmp290 [V315,T65] ( 4, 2.50) byref -> rsi "field V101._reference (fldOffset=0x0)" P-INDEP
@@ -357,7 +357,7 @@
; V345 tmp320 [V345,T148] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V346 tmp321 [V346,T149] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V347 tmp322 [V347,T150] ( 2, 0 ) ref -> rdx single-def "argument with side effect"-; V348 tmp323 [V348,T151] ( 2, 0 ) ref -> r12 single-def "argument with side effect"+; V348 tmp323 [V348,T151] ( 2, 0 ) ref -> r13 single-def "argument with side effect" ; V349 tmp324 [V349,T152] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V350 tmp325 [V350 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V351 tmp326 [V351 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -366,7 +366,7 @@
; V354 tmp329 [V354,T153] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V355 tmp330 [V355,T154] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V356 tmp331 [V356,T73] ( 3, 2.40) ref -> rdi single-def "arr expr"-; V357 tmp332 [V357,T155] ( 2, 0 ) ref -> r12 single-def "argument with side effect"+; V357 tmp332 [V357,T155] ( 2, 0 ) ref -> r13 single-def "argument with side effect" ; V358 tmp333 [V358,T156] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V359 PSPSym [V359,T132] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym"
; V360 cse0 [V360,T59] ( 3, 3 ) byref -> rbx "CSE - conservative"
@@ -374,8 +374,8 @@
; V362 cse2 [V362,T60] ( 3, 3 ) ref -> [rbp-0x148] spill-single-def "CSE - conservative"
; V363 cse3 [V363,T114] ( 5, 1.20) int -> [rbp-0xB4] spill-single-def "CSE - conservative"
; V364 cse4 [V364,T115] ( 5, 1.20) int -> [rbp-0xB8] spill-single-def "CSE - conservative"-; V365 cse5 [V365,T61] ( 3, 3 ) ref -> r15 "CSE - conservative"
-; V366 cse6 [V366,T03] ( 15, 11.81) int -> registers multi-def "CSE - aggressive"+; V365 cse5 [V365,T61] ( 3, 3 ) ref -> r14 "CSE - conservative"
+; V366 cse6 [V366,T03] ( 13, 9.81) int -> r12 multi-def "CSE - aggressive" ;
; Lcl frame size = 296
@@ -465,10 +465,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- mov ecx, dword ptr [r8+0x08]
- test ecx, ecx+ mov esi, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0xD8]- ;; size=22 bbWeight=1 PerfScore 5.50+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=8181 {rax rdi r8 r15}, byrefRegs=1000 {r12}, byref, isz
lea rsi, bword ptr [rax+0x10]
; byrRegs +[rsi]
@@ -712,10 +711,8 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; gcrRegs +[r8]
test r8, r8
je G_M62798_IG34- mov ecx, dword ptr [r8+0x08]
- ; gcrRegs -[rcx]
- mov r13d, ecx
- cmp r13d, ebx+ mov r12d, dword ptr [r8+0x08]
+ cmp r12d, ebx jl G_M62798_IG33
cmp dword ptr [r14+0x08], ebx
jb G_M62798_IG31
@@ -723,8 +720,9 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; byrRegs +[rsi]
mov edx, ebx
lea rcx, bword ptr [r8+0x10]+ ; gcrRegs -[rcx] ; byrRegs +[rcx]- mov r8d, r13d+ mov r8d, r12d ; gcrRegs -[r8]
mov rdi, r15
; gcrRegs +[rdi]
@@ -732,9 +730,9 @@ G_M62798_IG25: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
; gcrRegs -[rdi r15]
; byrRegs -[rcx rsi]
; gcr arg pop 0- mov r15d, eax+ mov r13d, eax jmp SHORT G_M62798_IG27- ;; size=133 bbWeight=1 PerfScore 58.50+ ;; size=130 bbWeight=1 PerfScore 58.25 G_M62798_IG26: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
mov rdi, r15
@@ -750,19 +748,19 @@ G_M62798_IG26: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {},
call [r11]<unknown method>
; gcrRegs -[rsi rdi r8 r15]
; gcr arg pop 0- mov r15d, eax+ mov r13d, eax ;; size=36 bbWeight=0 PerfScore 0.00
G_M62798_IG27: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
mov r8, gword ptr [rbp-0xD8]
; gcrRegs +[r8]
test r8, r8
je G_M62798_IG32- mov r13d, dword ptr [r8+0x08]
- cmp r13d, r15d+ mov r12d, dword ptr [r8+0x08]
+ cmp r12d, r13d jb SHORT G_M62798_IG31
lea rsi, bword ptr [r8+0x10]
; byrRegs +[rsi]- mov eax, r15d+ mov eax, r13d ;; size=32 bbWeight=1 PerfScore 6.25
G_M62798_IG28: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref, isz
; gcrRegs -[r8]
@@ -772,15 +770,15 @@ G_M62798_IG28: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi},
mov edx, eax
cmp rdx, 8
je SHORT G_M62798_IG30- mov r12, bword ptr [rbp+0x20]
- ; byrRegs +[r12]
- mov rdi, r12+ mov r15, bword ptr [rbp+0x20]
+ ; byrRegs +[r15]
+ mov rdi, r15 ; byrRegs +[rdi]
call [<unknown method>]
; byrRegs -[rsi rdi]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 8.00-G_M62798_IG29: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=1000 {r12}, byref+G_M62798_IG29: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8000 {r15}, byref mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.UniversalCryptoDecryptor
mov rax, gword ptr [rbp-0xE0]
; gcrRegs +[rax]
@@ -795,28 +793,28 @@ G_M62798_IG29: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=1000 {r12},
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0- mov r13, rax
- ; gcrRegs +[r13]+ mov r12, rax
+ ; gcrRegs +[r12] jmp G_M62798_IG41
;; size=57 bbWeight=1 PerfScore 11.50
G_M62798_IG30: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref, isz- ; gcrRegs -[rax r13]
- ; byrRegs -[r12] +[rsi]
- mov r12, bword ptr [rbp+0x20]
- ; byrRegs +[r12]+ ; gcrRegs -[rax r12]
+ ; byrRegs -[r15] +[rsi]
+ mov r15, bword ptr [rbp+0x20]
+ ; byrRegs +[r15] mov rdi, qword ptr [rsi]- mov qword ptr [r12], rdi+ mov qword ptr [r15], rdi jmp SHORT G_M62798_IG29
...
@@ -202,8 +202,8 @@ G_M47335_IG02: ; bbWeight=1, gcVars=00000000000000000000200000000000 {V09
mov gword ptr [rbp-0x38], rdi
test rdi, rdi
je SHORT G_M47335_IG03- cmp dword ptr [rdi+0x08], 0
- ;; size=73 bbWeight=1 PerfScore 24.75+ mov ecx, dword ptr [rdi+0x08]
+ ;; size=72 bbWeight=1 PerfScore 23.75 G_M47335_IG03: ; bbWeight=1, gcVars=00000000000000000000200000000001 {V04 V09}, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V45}
@@ -868,7 +868,7 @@ G_M47335_IG67: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 1321, prolog size 47, PerfScore 184.45, instruction count 379, allocated bytes for code 1321 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)+; Total bytes of code 1320, prolog size 47, PerfScore 183.45, instruction count 379, allocated bytes for code 1320 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1) ; ============================================================
Unwind Info:
@@ -202,8 +202,8 @@ G_M47335_IG02: ; bbWeight=1, gcVars=00000000000000000000200000000000 {V09
mov gword ptr [rbp-0x38], rdi
test rdi, rdi
je SHORT G_M47335_IG03- cmp dword ptr [rdi+0x08], 0
- ;; size=73 bbWeight=1 PerfScore 24.75+ mov ecx, dword ptr [rdi+0x08]
+ ;; size=72 bbWeight=1 PerfScore 23.75 G_M47335_IG03: ; bbWeight=1, gcVars=00000000000000000000200000000001 {V04 V09}, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V45}
@@ -867,7 +867,7 @@ G_M47335_IG66: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 1321, prolog size 47, PerfScore 179.42, instruction count 379, allocated bytes for code 1321 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)+; Total bytes of code 1320, prolog size 47, PerfScore 178.42, instruction count 379, allocated bytes for code 1320 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1) ; ============================================================
Unwind Info:
@@ -202,8 +202,8 @@ G_M47335_IG02: ; bbWeight=1, gcVars=00000000000000000000200000000000 {V09
mov gword ptr [rbp-0x38], rdi
test rdi, rdi
je SHORT G_M47335_IG03- cmp dword ptr [rdi+0x08], 0
- ;; size=73 bbWeight=1 PerfScore 24.75+ mov ecx, dword ptr [rdi+0x08]
+ ;; size=72 bbWeight=1 PerfScore 23.75 G_M47335_IG03: ; bbWeight=1, gcVars=00000000000000000000200000000001 {V04 V09}, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V45}
@@ -866,7 +866,7 @@ G_M47335_IG67: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 1323, prolog size 47, PerfScore 175.24, instruction count 378, allocated bytes for code 1323 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)+; Total bytes of code 1322, prolog size 47, PerfScore 174.24, instruction count 378, allocated bytes for code 1322 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1) ; ============================================================
Unwind Info:
@@ -136,8 +136,8 @@ G_M47335_IG03: ; bbWeight=0.50, gcrefRegs=A000 {r13 r15}, byrefRegs=0000
mov gword ptr [rbp-0x38], rax
test rax, rax
je SHORT G_M47335_IG04- cmp dword ptr [rax+0x08], 0
- ;; size=52 bbWeight=0.50 PerfScore 9.12+ mov ecx, dword ptr [rax+0x08]
+ ;; size=51 bbWeight=0.50 PerfScore 8.62 G_M47335_IG04: ; bbWeight=0.50, gcVars=0000000000000010 {V04}, gcrefRegs=A001 {rax r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
test r15, r15
jne SHORT G_M47335_IG05
@@ -375,7 +375,7 @@ G_M47335_IG25: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 506, prolog size 40, PerfScore 67.38, instruction count 165, allocated bytes for code 506 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)+; Total bytes of code 505, prolog size 40, PerfScore 66.88, instruction count 165, allocated bytes for code 505 (MethodHash=5ba14718) for method System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -210,9 +210,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=000000000000001B {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edx, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0x78]- ;; size=18 bbWeight=1 PerfScore 6.25+ ;; size=17 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=0149 {rax rbx rsi r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdx, bword ptr [rax+0x10]
; byrRegs +[rdx]
@@ -595,7 +595,7 @@ G_M62798_IG35: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 879, prolog size 60, PerfScore 209.83, instruction count 269, allocated bytes for code 879 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 878, prolog size 60, PerfScore 208.83, instruction count 269, allocated bytes for code 878 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (Tier1)@@ -232,8 +232,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000001 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -547,7 +547,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1076, prolog size 107, PerfScore 156.58, instruction count 263, allocated bytes for code 1076 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 1075, prolog size 107, PerfScore 156.08, instruction count 263, allocated bytes for code 1075 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
1[System.__Canon]:ProcessMessage(System.Action
1[System.Canon],System.Collections.Generic.KeyValuePair`2[System.Canon,long]):this (FullOpts)@@ -20,9 +20,9 @@
; V09 tmp5 [V09,T06] ( 1, 1 ) long -> rcx single-def "field V02.value (fldOffset=0x8)" P-INDEP
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
; V11 cse0 [V11,T05] ( 3, 3 ) ref -> rsi "CSE - aggressive"-; V12 rat0 [V12,T03] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+;* V12 rat0 [V12,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 32
@@ -39,11 +39,7 @@ G_M41561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=25 bbWeight=1 PerfScore 5.00
G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0085 {rax rdx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdx rdi]- mov rsi, qword ptr [rdi]
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x50]
- test rsi, rsi+ cmp dword ptr [rdi], edi mov rsi, rdx
; gcrRegs +[rsi]
mov rdi, gword ptr [rax+0x08]
@@ -51,7 +47,7 @@ G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=008
; gcrRegs -[rax rdx rsi rdi]
; gcr arg pop 0
jmp SHORT G_M41561_IG04- ;; size=29 bbWeight=1 PerfScore 15.50+ ;; size=14 bbWeight=1 PerfScore 10.25 G_M41561_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
@@ -134,7 +130,7 @@ G_M41561_IG13: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 25, PerfScore 33.00, instruction count 59, allocated bytes for code 196 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)+; Total bytes of code 181, prolog size 25, PerfScore 27.75, instruction count 55, allocated bytes for code 181 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -59,13 +59,13 @@
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - moderate"
; V49 cse1 [V49,T34] ( 3, 3 ) long -> r14 "CSE - moderate"
; V50 cse2 [V50,T33] ( 3, 3 ) ref -> r14 "CSE - moderate"-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x48] spill-single-def "CSE - moderate"+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x48] spill-single-def "CSE - moderate" ; V52 cse4 [V52,T12] ( 3, 6 ) int -> [rbp-0x4C] spill-single-def "CSE - moderate"
; V53 rat0 [V53,T18] ( 3, 4.40) long -> rsi "Spilling to split statement for tree"
; V54 rat1 [V54,T19] ( 3, 4 ) long -> r11 "runtime lookup"
; V55 rat2 [V55,T13] ( 3, 5.60) long -> r11 "fgMakeTemp is creating a new local variable"
;* V56 rat3 [V56,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V57 rat4 [V57,T14] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V57 rat4 [V57,T14] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V58 rat5 [V58,T38] ( 3, 2 ) long -> rdi "runtime lookup"
; V59 rat6 [V59,T35] ( 3, 2.80) long -> rdi "fgMakeTemp is creating a new local variable"
; V60 rat7 [V60,T21] ( 3, 4 ) long -> r14 "runtime lookup"
@@ -137,31 +137,26 @@ G_M65396_IG05: ; bbWeight=1, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefR
G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000220 {V00 V16}, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax]
xor ecx, ecx- mov r8, qword ptr [rbp-0x48]
- mov rdi, qword ptr [r8+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x70]
- test rdi, rdi
- mov r9d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x4C], r9d
- test r9d, r9d+ mov r8d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x4C], r8d
+ test r8d, r8d jle SHORT G_M65396_IG08- ;; size=33 bbWeight=1 PerfScore 11.75+ ;; size=15 bbWeight=1 PerfScore 4.50 G_M65396_IG07: ; bbWeight=4, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbp-0x34], ecx
mov edi, ecx
mov rdi, gword ptr [rbx+8*rdi+0x10]
; gcrRegs +[rdi]- mov r10, gword ptr [rbp-0x58]
- ; gcrRegs +[r10]
- mov rdx, gword ptr [r10+0x10]+ mov r9, gword ptr [rbp-0x58]
+ ; gcrRegs +[r9]
+ mov rdx, gword ptr [r9+0x10] ; gcrRegs +[rdx]
mov rsi, rbx
; gcrRegs +[rsi]- mov r11, qword ptr [rdi]
- mov r11, qword ptr [r11+0x50]
- call [r11]<unknown method>
- ; gcrRegs -[rdx rsi rdi r10] +[rax]+ mov r10, qword ptr [rdi]
+ mov r10, qword ptr [r10+0x50]
+ call [r10]<unknown method>
+ ; gcrRegs -[rdx rsi rdi r9] +[rax] ; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
; GC ptr vars +{V33}
@@ -556,7 +551,7 @@ G_M65396_IG30: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1000, prolog size 61, PerfScore 424.30, instruction count 264, allocated bytes for code 1000 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)+; Total bytes of code 982, prolog size 61, PerfScore 417.05, instruction count 259, allocated bytes for code 982 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts) ; ============================================================
Unwind Info:
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)@@ -125,7 +125,7 @@
; V114 cse15 [V114,T65] ( 3, 24 ) ref -> [rbp-0x118] spill-single-def "CSE - conservative"
; V115 cse16 [V115,T91] ( 3, 3.84) int -> rsi "CSE - conservative"
; V116 cse17 [V116,T90] ( 3, 3.84) ref -> [rbp-0x120] spill-single-def "CSE - conservative"-; V117 cse18 [V117,T34] ( 10, 47 ) long -> r12 multi-def "CSE - moderate"+; V117 cse18 [V117,T34] ( 9, 46 ) long -> r12 multi-def "CSE - moderate" ; V118 cse19 [V118,T30] ( 6, 170 ) int -> [rbp-0x7C] spill-single-def "CSE - moderate"
; V119 cse20 [V119,T33] ( 5, 152 ) byref -> [rbp-0x128] "CSE - moderate"
; V120 cse21 [V120,T55] ( 5, 42.08) int -> [rbp-0x80] spill-single-def "CSE - moderate"
@@ -133,7 +133,7 @@
; V122 rat1 [V122,T85] ( 3, 4 ) long -> rax "runtime lookup"
; V123 rat2 [V123,T81] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;* V124 rat3 [V124,T86] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V125 rat4 [V125,T82] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V125 rat4 [V125,T82] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V126 rat5 [V126,T89] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V127 rat6 [V127,T75] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V128 rat7 [V128,T76] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable"
@@ -225,10 +225,6 @@ G_M32652_IG05: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
;; size=60 bbWeight=1 PerfScore 21.25
G_M32652_IG06: ; bbWeight=1, gcVars=00000000000800000000000004004002 {V00 V05 V06 V99}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]- mov rdi, qword ptr [r12+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x70]
- test rdi, rdi mov eax, dword ptr [rbx+0x08]
mov dword ptr [rbp-0x7C], eax
mov ecx, eax
@@ -236,7 +232,7 @@ G_M32652_IG06: ; bbWeight=1, gcVars=00000000000800000000000004004002 {V00
mov edx, 1
cmp ecx, 1
jle G_M32652_IG71- ;; size=40 bbWeight=1 PerfScore 12.00+ ;; size=25 bbWeight=1 PerfScore 5.75 G_M32652_IG07: ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [r14+0x08]
mov dword ptr [rbp-0x80], r8d
@@ -1375,7 +1371,7 @@ G_M32652_IG81: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2855, prolog size 55, PerfScore 25093.58, instruction count 683, allocated bytes for code 2855 (MethodHash=bdda8073) for method 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)+; Total bytes of code 2840, prolog size 55, PerfScore 25087.33, instruction count 679, allocated bytes for code 2840 (MethodHash=bdda8073) for method 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) ; ============================================================
Unwind Info:
@@ -71,10 +71,10 @@ G_M24707_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmp eax, edx
jae SHORT G_M24707_IG03
add esi, eax- cmp byte ptr [rdi+rsi+0x20], 0
- ;; size=45 bbWeight=1 PerfScore 21.25
-G_M24707_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ movzx rdi, byte ptr [rdi+rsi+0x20] ; gcrRegs -[rdi]+ ;; size=46 bbWeight=1 PerfScore 20.25
+G_M24707_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, rsp
call G_M24707_IG10
;; size=8 bbWeight=1 PerfScore 1.25
@@ -190,7 +190,7 @@ G_M24707_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 386, prolog size 17, PerfScore 92.50, instruction count 96, allocated bytes for code 386 (MethodHash=009c9f7c) for method Program:Test() (FullOpts)+; Total bytes of code 387, prolog size 17, PerfScore 91.50, instruction count 96, allocated bytes for code 387 (MethodHash=009c9f7c) for method Program:Test() (FullOpts) ; ============================================================
Unwind Info:
@@ -19,7 +19,7 @@
; V08 tmp3 [V08,T02] ( 4, 2 ) byref -> rax "field V07._reference (fldOffset=0x0)" P-INDEP
; V09 tmp4 [V09,T03] ( 4, 2 ) int -> rdx "field V07._length (fldOffset=0x8)" P-INDEP
; V10 PSPSym [V10,T06] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"-; V11 cse0 [V11,T05] ( 2, 1 ) int -> rdi "CSE - moderate"+;* V11 cse0 [V11,T05] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 88
@@ -55,8 +55,7 @@ G_M25713_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
G_M25713_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rdi+0x08]
; gcrRegs -[rdi]- test edi, edi
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M25713_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rdi, [rbp-0x48]
call [System.Security.Cryptography.DSAKeyFormatHelper:WritePkcs8(byref):System.Formats.Asn1.AsnWriter]
@@ -119,7 +118,7 @@ G_M25713_IG09: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 171, prolog size 45, PerfScore 38.71, instruction count 52, allocated bytes for code 171 (MethodHash=da139b8e) for method System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)+; Total bytes of code 169, prolog size 45, PerfScore 38.58, instruction count 51, allocated bytes for code 169 (MethodHash=da139b8e) for method System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts) ; ============================================================
Unwind Info:
@@ -24,7 +24,7 @@
; V13 tmp8 [V13,T02] ( 4, 2 ) byref -> rax "field V08._reference (fldOffset=0x0)" P-INDEP
; V14 tmp9 [V14,T03] ( 4, 2 ) int -> rdx "field V08._length (fldOffset=0x8)" P-INDEP
; V15 PSPSym [V15,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V16 cse0 [V16,T09] ( 2, 1 ) int -> rdi "CSE - moderate"+;* V16 cse0 [V16,T09] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 32
@@ -53,8 +53,7 @@ G_M12586_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
;; size=25 bbWeight=1 PerfScore 9.75
G_M12586_IG03: ; bbWeight=0.50, gcVars=0000000000000002 {V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
mov edi, dword ptr [rax+0x08]- test edi, edi
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M12586_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdi, qword ptr [(reloc)] ; const ptr
@@ -145,7 +144,7 @@ G_M12586_IG09: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 188, prolog size 23, PerfScore 43.12, instruction count 59, allocated bytes for code 188 (MethodHash=6ca2ced5) for method System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts)+; Total bytes of code 186, prolog size 23, PerfScore 43.00, instruction count 58, allocated bytes for code 186 (MethodHash=6ca2ced5) for method System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts) ; ============================================================
Unwind Info:
@@ -24,7 +24,7 @@
; V13 tmp8 [V13,T02] ( 4, 2 ) byref -> rax "field V08._reference (fldOffset=0x0)" P-INDEP
; V14 tmp9 [V14,T03] ( 4, 2 ) int -> rdx "field V08._length (fldOffset=0x8)" P-INDEP
; V15 PSPSym [V15,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V16 cse0 [V16,T09] ( 2, 1 ) int -> rdi "CSE - moderate"+;* V16 cse0 [V16,T09] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 32
@@ -53,8 +53,7 @@ G_M43003_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
;; size=25 bbWeight=1 PerfScore 9.75
G_M43003_IG03: ; bbWeight=0.50, gcVars=0000000000000002 {V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
mov edi, dword ptr [rax+0x08]- test edi, edi
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M43003_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdi, qword ptr [(reloc)] ; const ptr
@@ -145,7 +144,7 @@ G_M43003_IG09: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 188, prolog size 23, PerfScore 43.12, instruction count 59, allocated bytes for code 188 (MethodHash=70505804) for method System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts)+; Total bytes of code 186, prolog size 23, PerfScore 43.00, instruction count 58, allocated bytes for code 186 (MethodHash=70505804) for method System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -80,7 +80,7 @@
;* V68 cse0 [V68,T26] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V69 cse1 [V69,T27] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V70 cse2 [V70,T28] ( 0, 0 ) int -> zero-ref "CSE - moderate"-; V71 cse3 [V71,T29] ( 2, 1 ) int -> rdi "CSE - moderate"+;* V71 cse3 [V71,T29] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 160
@@ -169,8 +169,7 @@ G_M62798_IG04: ; bbWeight=1, gcrefRegs=004B {rax rcx rbx rsi}, byrefRegs=
;; size=9 bbWeight=1 PerfScore 2.25
G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=004B {rax rcx rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x08]- test edi, edi
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M62798_IG06: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rsi]
mov rdi, rcx
@@ -488,7 +487,7 @@ G_M62798_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 855, prolog size 75, PerfScore 187.96, instruction count 214, allocated bytes for code 855 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 853, prolog size 75, PerfScore 187.83, instruction count 213, allocated bytes for code 853 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -80,7 +80,7 @@
;* V68 cse0 [V68,T26] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V69 cse1 [V69,T27] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V70 cse2 [V70,T28] ( 0, 0 ) int -> zero-ref "CSE - moderate"-; V71 cse3 [V71,T29] ( 2, 1 ) int -> rdi "CSE - moderate"+;* V71 cse3 [V71,T29] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 160
@@ -169,8 +169,7 @@ G_M62798_IG04: ; bbWeight=1, gcrefRegs=004B {rax rcx rbx rsi}, byrefRegs=
;; size=9 bbWeight=1 PerfScore 2.25
G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=004B {rax rcx rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x08]- test edi, edi
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M62798_IG06: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rsi]
mov rdi, rcx
@@ -488,7 +487,7 @@ G_M62798_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 855, prolog size 75, PerfScore 187.96, instruction count 214, allocated bytes for code 855 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 853, prolog size 75, PerfScore 187.83, instruction count 213, allocated bytes for code 853 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -141,8 +141,8 @@ G_M38709_IG05: ; bbWeight=0.50, gcVars=0000000000000200 {V07}, gcrefRegs=
mov gword ptr [rbp-0x30], rax
test rax, rax
je SHORT G_M38709_IG06- cmp dword ptr [rax+0x08], 0
- ;; size=36 bbWeight=0.50 PerfScore 5.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=35 bbWeight=0.50 PerfScore 5.00 G_M38709_IG06: ; bbWeight=0.50, gcVars=0000000000000010 {V09}, gcrefRegs=0009 {rax rbx}, byrefRegs=1000 {r12}, gcvars, byref, isz
cmp gword ptr [r12], 0
je SHORT G_M38709_IG07
@@ -317,7 +317,7 @@ G_M38709_IG16: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 515, prolog size 48, PerfScore 74.38, instruction count 159, allocated bytes for code 515 (MethodHash=279668ca) for method Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedDecryptorPal:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts)+; Total bytes of code 514, prolog size 48, PerfScore 73.88, instruction count 159, allocated bytes for code 514 (MethodHash=279668ca) for method Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedDecryptorPal:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts) ; ============================================================
Unwind Info:
@@ -19,9 +19,9 @@
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.__Canon>
; V09 tmp6 [V09,T09] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V11 rat0 [V11,T05] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+;* V11 rat0 [V11,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T02] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -42,12 +42,8 @@ G_M1791_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=32 bbWeight=1 PerfScore 7.25
G_M1791_IG02: ; bbWeight=1, gcVars=000000000000000A {V00 V02}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdi]- mov rsi, qword ptr [rdi]
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x28]
- test rsi, rsi
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rdi], edi
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M1791_IG03: ; bbWeight=1, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, rax
; gcrRegs +[rdx]
@@ -128,7 +124,7 @@ G_M1791_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 182, prolog size 32, PerfScore 30.19, instruction count 57, allocated bytes for code 182 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)+; Total bytes of code 167, prolog size 32, PerfScore 24.94, instruction count 53, allocated bytes for code 167 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
@@ -19,9 +19,9 @@
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.__Canon>
; V09 tmp6 [V09,T09] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V11 rat0 [V11,T05] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+;* V11 rat0 [V11,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T02] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -42,12 +42,8 @@ G_M1791_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=32 bbWeight=1 PerfScore 7.25
G_M1791_IG02: ; bbWeight=1, gcVars=000000000000000A {V00 V02}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdi]- mov rsi, qword ptr [rdi]
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x28]
- test rsi, rsi
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rdi], edi
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M1791_IG03: ; bbWeight=1, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, rax
; gcrRegs +[rdx]
@@ -128,7 +124,7 @@ G_M1791_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 182, prolog size 32, PerfScore 30.19, instruction count 57, allocated bytes for code 182 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)+; Total bytes of code 167, prolog size 32, PerfScore 24.94, instruction count 53, allocated bytes for code 167 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
@@ -19,9 +19,9 @@
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.__Canon>
; V09 tmp6 [V09,T09] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V11 rat0 [V11,T05] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+;* V11 rat0 [V11,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T02] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -42,12 +42,8 @@ G_M1791_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=32 bbWeight=1 PerfScore 7.25
G_M1791_IG02: ; bbWeight=1, gcVars=000000000000000A {V00 V02}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdi]- mov rsi, qword ptr [rdi]
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x28]
- test rsi, rsi
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rdi], edi
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M1791_IG03: ; bbWeight=1, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, rax
; gcrRegs +[rdx]
@@ -128,7 +124,7 @@ G_M1791_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 182, prolog size 32, PerfScore 30.19, instruction count 57, allocated bytes for code 182 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)+; Total bytes of code 167, prolog size 32, PerfScore 24.94, instruction count 53, allocated bytes for code 167 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -214,9 +214,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000017 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edx, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0x78]- ;; size=18 bbWeight=1 PerfScore 6.25+ ;; size=17 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=0149 {rax rbx rsi r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdx, bword ptr [rax+0x10]
; byrRegs +[rdx]
@@ -606,7 +606,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 896, prolog size 63, PerfScore 201.08, instruction count 269, allocated bytes for code 896 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 895, prolog size 63, PerfScore 200.08, instruction count 269, allocated bytes for code 895 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (FullOpts)@@ -232,8 +232,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000002 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -543,7 +543,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1076, prolog size 107, PerfScore 154.08, instruction count 263, allocated bytes for code 1076 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1075, prolog size 107, PerfScore 153.58, instruction count 263, allocated bytes for code 1075 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (FullOpts)@@ -233,8 +233,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000002 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -544,7 +544,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1078, prolog size 109, PerfScore 153.33, instruction count 264, allocated bytes for code 1078 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1077, prolog size 109, PerfScore 152.83, instruction count 264, allocated bytes for code 1077 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -18,10 +18,10 @@
; V07 tmp4 [V07,T05] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V08 tmp5 [V08,T09] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V09 PSPSym [V09,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V10 cse0 [V10,T06] ( 5, 3 ) long -> r15 multi-def "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+; V10 cse0 [V10,T06] ( 4, 2 ) long -> r15 multi-def "CSE - aggressive"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T01] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 32
@@ -44,12 +44,7 @@ G_M3138_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
G_M3138_IG02: ; bbWeight=1, gcVars=0000000000000005 {V00 V02}, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdi]
mov r15, qword ptr [rdi]- mov rsi, r15
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x118]
- test rsi, rsi
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M3138_IG03: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rsi, qword ptr [r15+0x38]
@@ -127,7 +122,7 @@ G_M3138_IG08: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 211, prolog size 34, PerfScore 33.00, instruction count 60, allocated bytes for code 211 (MethodHash=ea9cf3bd) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1)+; Total bytes of code 191, prolog size 34, PerfScore 26.50, instruction count 55, allocated bytes for code 191 (MethodHash=ea9cf3bd) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1) ; ============================================================
Unwind Info:
@@ -21,10 +21,10 @@
; V09 tmp7 [V09,T05] ( 4, 2.80) int -> rcx "Inline stloc first use temp"
; V10 tmp8 [V10,T11] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V11 PSPSym [V11,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V12 cse0 [V12,T06] ( 5, 2.50) long -> rbx multi-def "CSE - aggressive"
-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V12 cse0 [V12,T06] ( 4, 1.50) long -> rbx multi-def "CSE - aggressive"
+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -43,12 +43,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi rdi]
mov rbx, qword ptr [rdi]- mov rax, rbx
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xE0]
- test rax, rax
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, rsi
@@ -157,7 +152,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 227, prolog size 27, PerfScore 43.97, instruction count 69, allocated bytes for code 227 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 207, prolog size 27, PerfScore 37.47, instruction count 64, allocated bytes for code 207 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
@@ -21,10 +21,10 @@
; V09 tmp7 [V09,T05] ( 4, 3.43) int -> rcx "Inline stloc first use temp"
; V10 tmp8 [V10,T11] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V11 PSPSym [V11,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V12 cse0 [V12,T07] ( 5, 2.50) long -> rbx multi-def "CSE - aggressive"
-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V12 cse0 [V12,T07] ( 4, 1.50) long -> rbx multi-def "CSE - aggressive"
+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -43,12 +43,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi rdi]
mov rbx, qword ptr [rdi]- mov rax, rbx
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xE0]
- test rax, rax
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, rsi
@@ -157,7 +152,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 227, prolog size 27, PerfScore 44.45, instruction count 69, allocated bytes for code 227 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 207, prolog size 27, PerfScore 37.95, instruction count 64, allocated bytes for code 207 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (Tier1)@@ -346,8 +346,8 @@ G_M52179_IG14: ; bbWeight=1, gcVars=000000000000000002000000000000C0 {V07
mov gword ptr [rbp-0xD0], r13
test r13, r13
je SHORT G_M52179_IG15- cmp dword ptr [r13+0x08], 0
- ;; size=17 bbWeight=1 PerfScore 5.25+ mov edi, dword ptr [r13+0x08]
+ ;; size=16 bbWeight=1 PerfScore 4.25 G_M52179_IG15: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {}, byref, isz
test r13, r13
jne SHORT G_M52179_IG17
@@ -1048,7 +1048,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1979, prolog size 124, PerfScore 364.82, instruction count 512, allocated bytes for code 1979 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 1978, prolog size 124, PerfScore 363.82, instruction count 512, allocated bytes for code 1978 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -465,9 +465,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edi, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0xD8]- ;; size=21 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=010B {rax rcx rbx r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdi, bword ptr [rax+0x10]
; byrRegs +[rdi]
@@ -2073,7 +2073,7 @@ G_M62798_IG128: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 3741, prolog size 99, PerfScore 833.00, instruction count 908, allocated bytes for code 3741 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 3740, prolog size 99, PerfScore 832.00, instruction count 908, allocated bytes for code 3740 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (Tier1)@@ -457,9 +457,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edi, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0xD8]- ;; size=21 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=010B {rax rcx rbx r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdi, bword ptr [rax+0x10]
; byrRegs +[rdi]
@@ -2079,7 +2079,7 @@ G_M62798_IG127: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 3755, prolog size 99, PerfScore 816.78, instruction count 926, allocated bytes for code 3755 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 3754, prolog size 99, PerfScore 815.78, instruction count 926, allocated bytes for code 3754 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rsi +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rsi ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V45 rat0 [V45,T02] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> r8 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 2, 2 ) int -> rsi "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -70,7 +70,7 @@ G_M1090_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
; byrRegs +[rdi]
cmp esi, 14- je G_M1090_IG06+ je SHORT G_M1090_IG06 cmp esi, 12
je G_M1090_IG07
test esi, 0x2000
@@ -81,25 +81,19 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byre
lea ecx, [rsi-0x02]
cmp ecx, 34
ja SHORT G_M1090_IG03- mov r8d, ecx
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*r8]
- lea r9, G_M1090_IG02
- add rcx, r9
- jmp rcx
- ;; size=72 bbWeight=1 PerfScore 13.00+ lea rsi, [reloc @RWD00]
+ mov esi, dword ptr [rsi+4*rcx]
+ lea r8, G_M1090_IG02
+ add rsi, r8
+ jmp rsi
+ ;; size=64 bbWeight=1 PerfScore 12.75 G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rdi]- lea r8d, [rsi-0x40]
- cmp r8d, 9+ add esi, -64
+ cmp esi, 9 ja G_M1090_IG09- mov edi, r8d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rdi]
- lea rcx, G_M1090_IG02
- add rax, rcx
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M1090_IG09
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi}, byref
; byrRegs +[rax rdi]
mov dword ptr [rax], edx
@@ -188,12 +182,7 @@ G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_THROW
; gcrRegs -[rbx rdi]
;; size=44 bbWeight=0 PerfScore 0.00-G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp esi, 65
- je SHORT G_M1090_IG10
- cmp esi, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -230,54 +219,44 @@ G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx rdi]
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG10 - G_M1090_IG02+RWD00 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
-RWD140 dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
-; Total bytes of code 460, prolog size 18, PerfScore 34.12, instruction count 107, allocated bytes for code 460 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 422, prolog size 18, PerfScore 31.75, instruction count 98, allocated bytes for code 422 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rsi +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rsi ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V45 rat0 [V45,T02] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> r8 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 2, 2 ) int -> rsi "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -70,7 +70,7 @@ G_M39522_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
; byrRegs +[rdi]
cmp esi, 14- je G_M39522_IG06+ je SHORT G_M39522_IG06 cmp esi, 12
je G_M39522_IG07
test esi, 0x2000
@@ -81,25 +81,19 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byr
lea ecx, [rsi-0x02]
cmp ecx, 34
ja SHORT G_M39522_IG03- mov r8d, ecx
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*r8]
- lea r9, G_M39522_IG02
- add rcx, r9
- jmp rcx
- ;; size=72 bbWeight=1 PerfScore 13.00+ lea rsi, [reloc @RWD00]
+ mov esi, dword ptr [rsi+4*rcx]
+ lea r8, G_M39522_IG02
+ add rsi, r8
+ jmp rsi
+ ;; size=64 bbWeight=1 PerfScore 12.75 G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rdi]- lea r8d, [rsi-0x40]
- cmp r8d, 9+ add esi, -64
+ cmp esi, 9 ja G_M39522_IG09- mov edi, r8d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rdi]
- lea rcx, G_M39522_IG02
- add rax, rcx
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M39522_IG09
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0081 {rax rdi}, byref
; byrRegs +[rax rdi]
mov dword ptr [rax], edx
@@ -188,12 +182,7 @@ G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_THROW
; gcrRegs -[rbx rdi]
;; size=44 bbWeight=0 PerfScore 0.00-G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp esi, 65
- je SHORT G_M39522_IG10
- cmp esi, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -230,54 +219,44 @@ G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx rdi]
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG10 - G_M39522_IG02+RWD00 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
-RWD140 dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
-; Total bytes of code 460, prolog size 18, PerfScore 34.12, instruction count 107, allocated bytes for code 460 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 422, prolog size 18, PerfScore 31.75, instruction count 98, allocated bytes for code 422 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
1[System.__Canon]:ProcessMessage(System.Action
1[System.Canon],System.Collections.Generic.KeyValuePair`2[System.Canon,long]):this (FullOpts)@@ -20,9 +20,9 @@
; V09 tmp5 [V09,T06] ( 1, 1 ) long -> rcx single-def "field V02.value (fldOffset=0x8)" P-INDEP
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
; V11 cse0 [V11,T05] ( 3, 3 ) ref -> rsi "CSE - aggressive"-; V12 rat0 [V12,T03] ( 2, 4 ) long -> rsi "Spilling to split statement for tree"+;* V12 rat0 [V12,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 32
@@ -39,11 +39,7 @@ G_M41561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=25 bbWeight=1 PerfScore 5.00
G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0085 {rax rdx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdx rdi]- mov rsi, qword ptr [rdi]
- mov rsi, qword ptr [rsi+0x38]
- mov rsi, qword ptr [rsi]
- mov rsi, qword ptr [rsi+0x50]
- test rsi, rsi+ cmp dword ptr [rdi], edi mov rsi, rdx
; gcrRegs +[rsi]
mov rdi, gword ptr [rax+0x08]
@@ -51,7 +47,7 @@ G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=008
; gcrRegs -[rax rdx rsi rdi]
; gcr arg pop 0
jmp SHORT G_M41561_IG04- ;; size=29 bbWeight=1 PerfScore 15.50+ ;; size=14 bbWeight=1 PerfScore 10.25 G_M41561_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
@@ -134,7 +130,7 @@ G_M41561_IG13: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 25, PerfScore 33.00, instruction count 59, allocated bytes for code 196 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)+; Total bytes of code 181, prolog size 25, PerfScore 27.75, instruction count 55, allocated bytes for code 181 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -214,9 +214,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=0000000000000017 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x48], r8
test r8, r8
je SHORT G_M62798_IG04- cmp dword ptr [r8+0x08], 0+ mov edx, dword ptr [r8+0x08] mov r8, gword ptr [rbp-0x78]- ;; size=18 bbWeight=1 PerfScore 6.25+ ;; size=17 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=0149 {rax rbx rsi r8}, byrefRegs=3000 {r12 r13}, byref, isz
lea rdx, bword ptr [rax+0x10]
; byrRegs +[rdx]
@@ -606,7 +606,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 896, prolog size 63, PerfScore 201.08, instruction count 269, allocated bytes for code 896 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 895, prolog size 63, PerfScore 200.08, instruction count 269, allocated bytes for code 895 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (FullOpts)@@ -232,8 +232,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000002 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -543,7 +543,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1076, prolog size 107, PerfScore 154.08, instruction count 263, allocated bytes for code 1076 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1075, prolog size 107, PerfScore 153.58, instruction count 263, allocated bytes for code 1075 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (FullOpts)@@ -233,8 +233,8 @@ G_M52179_IG10: ; bbWeight=1, gcVars=0000000030000002 {V07 V11 V12}, gcref
je SHORT G_M52179_IG12
;; size=12 bbWeight=1 PerfScore 2.25
G_M52179_IG11: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref- cmp dword ptr [rax+0x08], 0
- ;; size=4 bbWeight=0.50 PerfScore 1.50+ mov ecx, dword ptr [rax+0x08]
+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M52179_IG12: ; bbWeight=1, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
test rax, rax
jne SHORT G_M52179_IG14
@@ -544,7 +544,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 1078, prolog size 109, PerfScore 153.33, instruction count 264, allocated bytes for code 1078 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1077, prolog size 109, PerfScore 152.83, instruction count 264, allocated bytes for code 1077 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -20,10 +20,10 @@
; V09 tmp7 [V09,T05] ( 4, 4 ) int -> rcx "Inline stloc first use temp"
; V10 tmp8 [V10,T11] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V11 PSPSym [V11,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"-; V12 cse0 [V12,T07] ( 5, 2.50) long -> rbx multi-def "CSE - aggressive"
-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V12 cse0 [V12,T07] ( 4, 1.50) long -> rbx multi-def "CSE - aggressive"
+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 40
@@ -42,12 +42,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi rdi]
mov rbx, qword ptr [rdi]- mov rax, rbx
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x60]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, rsi
@@ -154,7 +149,7 @@ G_M44994_IG12: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 224, prolog size 27, PerfScore 48.38, instruction count 69, allocated bytes for code 224 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)+; Total bytes of code 207, prolog size 27, PerfScore 41.88, instruction count 64, allocated bytes for code 207 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts) ; ============================================================
Unwind Info:
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;-; V00 this [V00,T00] ( 6, 5.50) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]>+; V00 this [V00,T00] ( 5, 4.50) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]> ; V01 arg1 [V01 ] ( 4, 4 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Threading.CancellationToken>
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Threading.CancellationTokenRegistration>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Runtime.CompilerServices.TaskAwaiter`1[System.__Canon]>
@@ -64,9 +64,9 @@
; V53 rat0 [V53,T05] ( 3, 4.40) long -> rsi "Spilling to split statement for tree"
; V54 rat1 [V54,T08] ( 3, 4 ) long -> rax "runtime lookup"
; V55 rat2 [V55,T01] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"-; V56 rat3 [V56,T06] ( 2, 4 ) long -> rdi "Spilling to split statement for tree"+;* V56 rat3 [V56,T06] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V57 rat4 [V57,T18] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V58 rat5 [V58,T02] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V58 rat5 [V58,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -196,20 +196,13 @@ G_M33299_IG11: ; bbWeight=1, gcVars=0000000000800001 {V00 V41}, gcrefRegs
; gcr arg pop 0
mov r14, rax
; gcrRegs +[r14]- mov rdx, gword ptr [rbp-0x40]
- ; gcrRegs +[rdx]
- mov rdi, qword ptr [rdx]
- mov rdi, qword ptr [rdi+0x38]
- mov rdi, qword ptr [rdi+0x08]
- mov rdi, qword ptr [rdi+0x18]
- test rdi, rdi mov edi, dword ptr [r14+0x34]
and edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
je SHORT G_M33299_IG13- ;; size=59 bbWeight=1 PerfScore 22.00+ ;; size=37 bbWeight=1 PerfScore 12.75 G_M33299_IG12: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref- ; gcrRegs -[rax rdx]+ ; gcrRegs -[rax] mov rdi, r14
; gcrRegs +[rdi]
xor esi, esi
@@ -367,7 +360,7 @@ G_M33299_IG23: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 565, prolog size 33, PerfScore 91.78, instruction count 162, allocated bytes for code 565 (MethodHash=dea97dec) for method System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)+; Total bytes of code 543, prolog size 33, PerfScore 82.53, instruction count 156, allocated bytes for code 543 (MethodHash=dea97dec) for method System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -59,13 +59,13 @@
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - moderate"
; V49 cse1 [V49,T34] ( 3, 3 ) long -> r14 "CSE - moderate"
; V50 cse2 [V50,T33] ( 3, 3 ) ref -> r14 "CSE - moderate"-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x48] spill-single-def "CSE - moderate"+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x48] spill-single-def "CSE - moderate" ; V52 cse4 [V52,T12] ( 3, 6 ) int -> [rbp-0x4C] spill-single-def "CSE - moderate"
; V53 rat0 [V53,T18] ( 3, 4.40) long -> rsi "Spilling to split statement for tree"
; V54 rat1 [V54,T19] ( 3, 4 ) long -> r11 "runtime lookup"
; V55 rat2 [V55,T13] ( 3, 5.60) long -> r11 "fgMakeTemp is creating a new local variable"
;* V56 rat3 [V56,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V57 rat4 [V57,T14] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V57 rat4 [V57,T14] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V58 rat5 [V58,T38] ( 3, 2 ) long -> rdi "runtime lookup"
; V59 rat6 [V59,T35] ( 3, 2.80) long -> rdi "fgMakeTemp is creating a new local variable"
; V60 rat7 [V60,T21] ( 3, 4 ) long -> r14 "runtime lookup"
@@ -137,31 +137,26 @@ G_M65396_IG05: ; bbWeight=1, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefR
G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000220 {V00 V16}, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax]
xor ecx, ecx- mov r8, qword ptr [rbp-0x48]
- mov rdi, qword ptr [r8+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x70]
- test rdi, rdi
- mov r9d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x4C], r9d
- test r9d, r9d+ mov r8d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x4C], r8d
+ test r8d, r8d jle SHORT G_M65396_IG08- ;; size=33 bbWeight=1 PerfScore 11.75+ ;; size=15 bbWeight=1 PerfScore 4.50 G_M65396_IG07: ; bbWeight=4, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbp-0x34], ecx
mov edi, ecx
mov rdi, gword ptr [rbx+8*rdi+0x10]
; gcrRegs +[rdi]- mov r10, gword ptr [rbp-0x58]
- ; gcrRegs +[r10]
- mov rdx, gword ptr [r10+0x10]+ mov r9, gword ptr [rbp-0x58]
+ ; gcrRegs +[r9]
+ mov rdx, gword ptr [r9+0x10] ; gcrRegs +[rdx]
mov rsi, rbx
; gcrRegs +[rsi]- mov r11, qword ptr [rdi]
- mov r11, qword ptr [r11+0x50]
- call [r11]<unknown method>
- ; gcrRegs -[rdx rsi rdi r10] +[rax]+ mov r10, qword ptr [rdi]
+ mov r10, qword ptr [r10+0x50]
+ call [r10]<unknown method>
+ ; gcrRegs -[rdx rsi rdi r9] +[rax] ; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
; GC ptr vars +{V33}
@@ -556,7 +551,7 @@ G_M65396_IG30: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1000, prolog size 61, PerfScore 424.30, instruction count 264, allocated bytes for code 1000 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)+; Total bytes of code 982, prolog size 61, PerfScore 417.05, instruction count 259, allocated bytes for code 982 (MethodHash=a44b008b) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts) ; ============================================================
Unwind Info:
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)@@ -125,7 +125,7 @@
; V114 cse15 [V114,T65] ( 3, 24 ) ref -> [rbp-0x118] spill-single-def "CSE - conservative"
; V115 cse16 [V115,T91] ( 3, 3.84) int -> rsi "CSE - conservative"
; V116 cse17 [V116,T90] ( 3, 3.84) ref -> [rbp-0x120] spill-single-def "CSE - conservative"-; V117 cse18 [V117,T34] ( 10, 47 ) long -> r12 multi-def "CSE - moderate"+; V117 cse18 [V117,T34] ( 9, 46 ) long -> r12 multi-def "CSE - moderate" ; V118 cse19 [V118,T30] ( 6, 170 ) int -> [rbp-0x7C] spill-single-def "CSE - moderate"
; V119 cse20 [V119,T33] ( 5, 152 ) byref -> [rbp-0x128] "CSE - moderate"
; V120 cse21 [V120,T55] ( 5, 42.08) int -> [rbp-0x80] spill-single-def "CSE - moderate"
@@ -133,7 +133,7 @@
; V122 rat1 [V122,T85] ( 3, 4 ) long -> rax "runtime lookup"
; V123 rat2 [V123,T81] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;* V124 rat3 [V124,T86] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V125 rat4 [V125,T82] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"+;* V125 rat4 [V125,T82] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V126 rat5 [V126,T89] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V127 rat6 [V127,T75] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V128 rat7 [V128,T76] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable"
@@ -225,10 +225,6 @@ G_M32652_IG05: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
;; size=60 bbWeight=1 PerfScore 21.25
G_M32652_IG06: ; bbWeight=1, gcVars=00000000000800000000000004004002 {V00 V05 V06 V99}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]- mov rdi, qword ptr [r12+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x70]
- test rdi, rdi mov eax, dword ptr [rbx+0x08]
mov dword ptr [rbp-0x7C], eax
mov ecx, eax
@@ -236,7 +232,7 @@ G_M32652_IG06: ; bbWeight=1, gcVars=00000000000800000000000004004002 {V00
mov edx, 1
cmp ecx, 1
jle G_M32652_IG71- ;; size=40 bbWeight=1 PerfScore 12.00+ ;; size=25 bbWeight=1 PerfScore 5.75 G_M32652_IG07: ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [r14+0x08]
mov dword ptr [rbp-0x80], r8d
@@ -1375,7 +1371,7 @@ G_M32652_IG81: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2855, prolog size 55, PerfScore 25093.58, instruction count 683, allocated bytes for code 2855 (MethodHash=bdda8073) for method 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)+; Total bytes of code 2840, prolog size 55, PerfScore 25087.33, instruction count 679, allocated bytes for code 2840 (MethodHash=bdda8073) for method 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) ; ============================================================
Unwind Info:
Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) |
---|---|---|---|---|---|---|
benchmarks.run.linux.x64.checked.mch | 8 | 8 | 0 | 0 | -72 | +0 |
benchmarks.run_pgo.linux.x64.checked.mch | 6 | 6 | 0 | 0 | -19 | +0 |
benchmarks.run_tiered.linux.x64.checked.mch | 3 | 3 | 0 | 0 | -3 | +0 |
coreclr_tests.run.linux.x64.checked.mch | 4 | 3 | 1 | 0 | -48 | +1 |
libraries.crossgen2.linux.x64.checked.mch | 33 | 33 | 0 | 0 | -69 | +0 |
libraries.pmi.linux.x64.checked.mch | 71 | 71 | 0 | 0 | -481 | +0 |
libraries_tests.run.linux.x64.Release.mch | 76 | 76 | 0 | 0 | -711 | +0 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch | 48 | 48 | 0 | 0 | -344 | +0 |
realworld.run.linux.x64.checked.mch | 4 | 4 | 0 | 0 | -72 | +0 |
smoke_tests.nativeaot.linux.x64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
253 | 252 | 1 | 0 | -1,819 | +1 |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
benchmarks.run.linux.x64.checked.mch | 34,995 | 3,164 | 31,831 | 4 (0.01%) | 4 (0.01%) |
benchmarks.run_pgo.linux.x64.checked.mch | 155,969 | 58,399 | 97,570 | 151 (0.10%) | 151 (0.10%) |
benchmarks.run_tiered.linux.x64.checked.mch | 58,888 | 44,312 | 14,576 | 2 (0.00%) | 2 (0.00%) |
coreclr_tests.run.linux.x64.checked.mch | 694,084 | 429,241 | 264,843 | 329 (0.05%) | 329 (0.05%) |
libraries.crossgen2.linux.x64.checked.mch | 233,626 | 15 | 233,611 | 0 (0.00%) | 0 (0.00%) |
libraries.pmi.linux.x64.checked.mch | 295,414 | 6 | 295,408 | 8 (0.00%) | 8 (0.00%) |
libraries_tests.run.linux.x64.Release.mch | 756,822 | 495,271 | 261,551 | 3,121 (0.41%) | 3,121 (0.41%) |
librariestestsnotieredcompilation.run.linux.x64.Release.mch | 304,605 | 21,873 | 282,732 | 10 (0.00%) | 10 (0.00%) |
realworld.run.linux.x64.checked.mch | 33,164 | 39 | 33,125 | 3 (0.01%) | 3 (0.01%) |
smoke_tests.nativeaot.linux.x64.checked.mch | 27,440 | 9 | 27,431 | 0 (0.00%) | 0 (0.00%) |
2,595,007 | 1,052,329 | 1,542,678 | 3,628 (0.14%) | 3,628 (0.14%) |
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13735124 (overridden on cmd)
Total bytes of diff: 13735052 (overridden on cmd)
Total bytes of delta: -72 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-18 : 20545.dasm (-1.80 % of base)
-17 : 9706.dasm (-7.59 % of base)
-17 : 14668.dasm (-4.93 % of base)
-15 : 20579.dasm (-0.53 % of base)
-2 : 2592.dasm (-0.30 % of base)
-1 : 2423.dasm (-0.11 % of base)
-1 : 2560.dasm (-0.09 % of base)
-1 : 2441.dasm (-0.20 % of base)
8 total files with Code Size differences (8 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-18 (-1.80 % of base) : 20545.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-17 (-4.93 % of base) : 14668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
-17 (-7.59 % of base) : 9706.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-15 (-0.53 % of base) : 20579.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
-2 (-0.30 % of base) : 2592.dasm - System.Security.Cryptography.ECAlgorithm:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-1 (-0.11 % of base) : 2423.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-1 (-0.09 % of base) : 2560.dasm - System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-1 (-0.20 % of base) : 2441.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts)
Top method improvements (percentages):
-17 (-7.59 % of base) : 9706.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-4.93 % of base) : 14668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
-18 (-1.80 % of base) : 20545.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-0.53 % of base) : 20579.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
-2 (-0.30 % of base) : 2592.dasm - System.Security.Cryptography.ECAlgorithm:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-1 (-0.20 % of base) : 2441.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts)
-1 (-0.11 % of base) : 2423.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-1 (-0.09 % of base) : 2560.dasm - System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
8 total methods with Code Size differences (8 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 68635056 (overridden on cmd)
Total bytes of diff: 68635037 (overridden on cmd)
Total bytes of delta: -19 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-8 : 22583.dasm (-0.21 % of base)
-5 : 52091.dasm (-0.13 % of base)
-3 : 68899.dasm (-0.08 % of base)
-1 : 68902.dasm (-0.08 % of base)
-1 : 22607.dasm (-0.08 % of base)
-1 : 52100.dasm (-0.08 % of base)
6 total files with Code Size differences (6 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-8 (-0.21 % of base) : 22583.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-5 (-0.13 % of base) : 52091.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-3 (-0.08 % of base) : 68899.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-1 (-0.08 % of base) : 68902.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
-1 (-0.08 % of base) : 22607.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
-1 (-0.08 % of base) : 52100.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
Top method improvements (percentages):
-8 (-0.21 % of base) : 22583.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-5 (-0.13 % of base) : 52091.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-3 (-0.08 % of base) : 68899.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-1 (-0.08 % of base) : 22607.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
-1 (-0.08 % of base) : 52100.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
-1 (-0.08 % of base) : 68902.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
6 total methods with Code Size differences (6 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 17373152 (overridden on cmd)
Total bytes of diff: 17373149 (overridden on cmd)
Total bytes of delta: -3 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-1 : 18938.dasm (-0.11 % of base)
-1 : 18976.dasm (-0.20 % of base)
-1 : 32406.dasm (-0.09 % of base)
3 total files with Code Size differences (3 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1 (-0.11 % of base) : 18938.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-1 (-0.09 % of base) : 32406.dasm - System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-1 (-0.20 % of base) : 18976.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
Top method improvements (percentages):
-1 (-0.20 % of base) : 18976.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
-1 (-0.11 % of base) : 18938.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-1 (-0.09 % of base) : 32406.dasm - System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
3 total methods with Code Size differences (3 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 459550097 (overridden on cmd)
Total bytes of diff: 459550050 (overridden on cmd)
Total bytes of delta: -47 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file regressions (bytes):
1 : 632595.dasm (0.26 % of base)
Top file improvements (bytes):
-18 : 593217.dasm (-1.80 % of base)
-15 : 593257.dasm (-0.53 % of base)
-15 : 692343.dasm (-7.65 % of base)
4 total files with Code Size differences (3 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
1 (0.26 % of base) : 632595.dasm - Program:Test() (FullOpts)
Top method improvements (bytes):
-18 (-1.80 % of base) : 593217.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-0.53 % of base) : 593257.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)
-15 (-7.65 % of base) : 692343.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
Top method regressions (percentages):
1 (0.26 % of base) : 632595.dasm - Program:Test() (FullOpts)
Top method improvements (percentages):
-15 (-7.65 % of base) : 692343.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-18 (-1.80 % of base) : 593217.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-0.53 % of base) : 593257.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 total methods with Code Size differences (3 improved, 1 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 38670232 (overridden on cmd)
Total bytes of diff: 38670163 (overridden on cmd)
Total bytes of delta: -69 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-4 : 156239.dasm (-1.06 % of base)
-4 : 156595.dasm (-0.94 % of base)
-2 : 153878.dasm (-0.58 % of base)
-2 : 153879.dasm (-0.58 % of base)
-2 : 154545.dasm (-0.44 % of base)
-2 : 156389.dasm (-0.55 % of base)
-2 : 157147.dasm (-0.23 % of base)
-2 : 153613.dasm (-1.06 % of base)
-2 : 153898.dasm (-0.36 % of base)
-2 : 153901.dasm (-0.29 % of base)
-2 : 153905.dasm (-0.41 % of base)
-2 : 153907.dasm (-0.71 % of base)
-2 : 154544.dasm (-0.44 % of base)
-2 : 156284.dasm (-1.17 % of base)
-2 : 156345.dasm (-0.79 % of base)
-2 : 156611.dasm (-0.43 % of base)
-2 : 156622.dasm (-0.41 % of base)
-2 : 153614.dasm (-1.06 % of base)
-2 : 153897.dasm (-0.37 % of base)
-2 : 153902.dasm (-0.29 % of base)
33 total files with Code Size differences (33 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4 (-1.06 % of base) : 156239.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)
-4 (-0.94 % of base) : 156595.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray[ubyte](System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.AsymmetricAlgorithm+TryExportPbe`1[ubyte]):ubyte[] (FullOpts)
-2 (-1.06 % of base) : 153615.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-1.06 % of base) : 153614.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-1.06 % of base) : 153613.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts)
-2 (-0.58 % of base) : 153878.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.58 % of base) : 153879.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.60 % of base) : 153880.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-1.17 % of base) : 156284.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.81 % of base) : 153906.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
-2 (-1.06 % of base) : 153909.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts)
-2 (-0.41 % of base) : 153905.dasm - System.Security.Cryptography.ECAlgorithm:ImportECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.29 % of base) : 153901.dasm - System.Security.Cryptography.ECAlgorithm:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.29 % of base) : 153902.dasm - System.Security.Cryptography.ECAlgorithm:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.31 % of base) : 153903.dasm - System.Security.Cryptography.ECAlgorithm:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.71 % of base) : 153907.dasm - System.Security.Cryptography.ECAlgorithm:TryExportECPrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.37 % of base) : 153897.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.36 % of base) : 153898.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.46 % of base) : 153899.dasm - System.Security.Cryptography.ECAlgorithm:TryExportPkcs8PrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.55 % of base) : 156389.dasm - System.Security.Cryptography.ECDiffieHellmanDerivation:DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Security.Cryptography.HashAlgorithmName,ubyte[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.ECDiffieHellmanDerivation+DeriveSecretAgreement):ubyte[] (FullOpts)
Top method improvements (percentages):
-2 (-1.17 % of base) : 156284.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-4 (-1.06 % of base) : 156239.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)
-2 (-1.06 % of base) : 153615.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-1.06 % of base) : 153614.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-1.06 % of base) : 153613.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts)
-2 (-1.06 % of base) : 153909.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts)
-2 (-1.06 % of base) : 154547.dasm - System.Security.Cryptography.RSA:ExportRSAPrivateKeyPem():System.String:this (FullOpts)
-4 (-0.94 % of base) : 156595.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray[ubyte](System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.AsymmetricAlgorithm+TryExportPbe`1[ubyte]):ubyte[] (FullOpts)
-2 (-0.81 % of base) : 153906.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
-2 (-0.79 % of base) : 156345.dasm - System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.71 % of base) : 153907.dasm - System.Security.Cryptography.ECAlgorithm:TryExportECPrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.60 % of base) : 153880.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.58 % of base) : 153878.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.58 % of base) : 153879.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.57 % of base) : 156344.dasm - System.Security.Cryptography.RSA:WritePkcs8PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.57 % of base) : 154536.dasm - System.Security.Cryptography.RSA:TryExportSubjectPublicKeyInfo(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.55 % of base) : 156389.dasm - System.Security.Cryptography.ECDiffieHellmanDerivation:DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Security.Cryptography.HashAlgorithmName,ubyte[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.ECDiffieHellmanDerivation+DeriveSecretAgreement):ubyte[] (FullOpts)
-2 (-0.50 % of base) : 154892.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts)
-2 (-0.46 % of base) : 153899.dasm - System.Security.Cryptography.ECAlgorithm:TryExportPkcs8PrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.44 % of base) : 154544.dasm - System.Security.Cryptography.RSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
33 total methods with Code Size differences (33 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 60144132 (overridden on cmd)
Total bytes of diff: 60143651 (overridden on cmd)
Total bytes of delta: -481 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-33 : 10400.dasm (-6.55 % of base)
-33 : 10399.dasm (-6.56 % of base)
-33 : 10401.dasm (-6.56 % of base)
-17 : 163964.dasm (-3.16 % of base)
-17 : 211932.dasm (-6.14 % of base)
-17 : 237521.dasm (-6.14 % of base)
-17 : 237524.dasm (-5.20 % of base)
-17 : 164150.dasm (-2.28 % of base)
-17 : 211935.dasm (-5.20 % of base)
-17 : 229483.dasm (-6.14 % of base)
-17 : 229486.dasm (-5.20 % of base)
-15 : 163647.dasm (-7.65 % of base)
-15 : 163648.dasm (-1.80 % of base)
-15 : 164410.dasm (-2.52 % of base)
-15 : 229521.dasm (-8.24 % of base)
-15 : 237559.dasm (-8.24 % of base)
-15 : 164309.dasm (-2.15 % of base)
-15 : 211970.dasm (-8.24 % of base)
-15 : 164310.dasm (-2.44 % of base)
-15 : 164409.dasm (-4.55 % of base)
56 total files with Code Size differences (56 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-33 (-6.56 % of base) : 10401.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-6.55 % of base) : 10400.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-6.56 % of base) : 10399.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-17 (-5.20 % of base) : 237524.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.20 % of base) : 211935.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.20 % of base) : 229486.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-6.14 % of base) : 211932.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.14 % of base) : 237521.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.14 % of base) : 229483.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-3.16 % of base) : 163964.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-17 (-2.28 % of base) : 164150.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-15 (-8.24 % of base) : 229521.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.24 % of base) : 237559.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.24 % of base) : 211970.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-7.65 % of base) : 163647.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-1.80 % of base) : 163648.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.15 % of base) : 164309.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.Nullable`1[int]],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.44 % of base) : 164310.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-4.55 % of base) : 164409.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.52 % of base) : 164410.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
Top method improvements (percentages):
-15 (-8.24 % of base) : 229521.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.24 % of base) : 237559.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.24 % of base) : 211970.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-7.65 % of base) : 163647.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-33 (-6.56 % of base) : 10401.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-6.56 % of base) : 10399.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-6.55 % of base) : 10400.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-17 (-6.14 % of base) : 211932.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.14 % of base) : 237521.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.14 % of base) : 229483.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-5.20 % of base) : 237524.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.20 % of base) : 211935.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.20 % of base) : 229486.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-15 (-4.55 % of base) : 164409.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-17 (-3.16 % of base) : 163964.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-14 (-2.52 % of base) : 295241.dasm - System.Threading.Channels.ChannelReader`1[System.__Canon]:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.__Canon]:this (FullOpts)
-15 (-2.52 % of base) : 164410.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.44 % of base) : 164310.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-17 (-2.28 % of base) : 164150.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-15 (-2.15 % of base) : 164309.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.Nullable`1[int]],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 333558929 (overridden on cmd)
Total bytes of diff: 333558218 (overridden on cmd)
Total bytes of delta: -711 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-24 : 660064.dasm (-6.88 % of base)
-24 : 726572.dasm (-3.05 % of base)
-24 : 643346.dasm (-6.88 % of base)
-24 : 185884.dasm (-0.59 % of base)
-24 : 59694.dasm (-0.17 % of base)
-24 : 642019.dasm (-6.88 % of base)
-22 : 414233.dasm (-4.24 % of base)
-22 : 185871.dasm (-0.89 % of base)
-22 : 727132.dasm (-0.93 % of base)
-21 : 94350.dasm (-0.87 % of base)
-21 : 666577.dasm (-2.85 % of base)
-21 : 94358.dasm (-0.11 % of base)
-21 : 59664.dasm (-0.87 % of base)
-20 : 180426.dasm (-8.51 % of base)
-20 : 246061.dasm (-5.46 % of base)
-20 : 660135.dasm (-8.81 % of base)
-20 : 246069.dasm (-5.46 % of base)
-20 : 654890.dasm (-5.46 % of base)
-20 : 241571.dasm (-9.48 % of base)
-20 : 477456.dasm (-8.81 % of base)
54 total files with Code Size differences (54 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-24 (-0.59 % of base) : 185884.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)
-24 (-0.17 % of base) : 59694.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-24 (-6.88 % of base) : 643346.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Tier1)
-24 (-6.88 % of base) : 660064.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-24 (-6.88 % of base) : 642019.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-24 (-3.05 % of base) : 726572.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]):int:this (Tier1)
-22 (-0.89 % of base) : 185871.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-0.93 % of base) : 727132.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-4.24 % of base) : 414233.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (Tier1)
-21 (-0.87 % of base) : 94350.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-21 (-0.87 % of base) : 59664.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-21 (-0.11 % of base) : 94358.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-21 (-2.85 % of base) : 666577.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (Tier1)
-20 (-5.46 % of base) : 246061.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 246069.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 654890.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 624914.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-8.51 % of base) : 180426.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-20 (-8.81 % of base) : 660135.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-20 (-8.81 % of base) : 477456.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
Top method improvements (percentages):
-20 (-9.48 % of base) : 241571.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1)
-20 (-8.81 % of base) : 660135.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-20 (-8.81 % of base) : 477456.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-20 (-8.81 % of base) : 533808.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-20 (-8.81 % of base) : 630200.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-20 (-8.51 % of base) : 180426.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-24 (-6.88 % of base) : 643346.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Tier1)
-24 (-6.88 % of base) : 660064.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-24 (-6.88 % of base) : 642019.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-20 (-5.46 % of base) : 246061.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 246069.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 654890.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.46 % of base) : 624914.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-22 (-4.24 % of base) : 414233.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (Tier1)
-15 (-4.11 % of base) : 719147.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (Tier1)
-15 (-3.81 % of base) : 719188.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (Tier1)
-24 (-3.05 % of base) : 726572.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]):int:this (Tier1)
-21 (-2.85 % of base) : 666577.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (Tier1)
-16 (-2.68 % of base) : 472144.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this (Tier1)
-15 (-2.56 % of base) : 592809.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (Tier1)
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 130468363 (overridden on cmd)
Total bytes of diff: 130468019 (overridden on cmd)
Total bytes of delta: -344 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-38 : 187880.dasm (-8.26 % of base)
-38 : 187922.dasm (-8.26 % of base)
-22 : 153471.dasm (-3.80 % of base)
-21 : 43281.dasm (-2.06 % of base)
-21 : 49006.dasm (-2.06 % of base)
-21 : 5058.dasm (-1.56 % of base)
-21 : 14819.dasm (-1.15 % of base)
-15 : 2464.dasm (-4.55 % of base)
-15 : 2492.dasm (-3.09 % of base)
-15 : 2514.dasm (-7.65 % of base)
-15 : 295999.dasm (-2.49 % of base)
-15 : 5124.dasm (-0.32 % of base)
-15 : 79483.dasm (-3.17 % of base)
-15 : 79497.dasm (-3.08 % of base)
-3 : 190430.dasm (-0.61 % of base)
-2 : 214295.dasm (-0.46 % of base)
-2 : 214457.dasm (-0.61 % of base)
-2 : 215048.dasm (-0.58 % of base)
-2 : 215413.dasm (-0.28 % of base)
-2 : 153014.dasm (-0.63 % of base)
48 total files with Code Size differences (48 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-38 (-8.26 % of base) : 187922.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-38 (-8.26 % of base) : 187880.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-22 (-3.80 % of base) : 153471.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-21 (-2.06 % of base) : 43281.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-2.06 % of base) : 49006.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-1.56 % of base) : 5058.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-1.15 % of base) : 14819.dasm - Microsoft.CodeAnalysis.Formatting.ContextIntervalTree`2[System.__Canon,Microsoft.CodeAnalysis.Formatting.FormattingContext+FormattingContextIntervalIntrospector]:GetSmallestContainingIntervalWorker(int,int,System.Func`4[System.__Canon,int,int,ubyte]):System.__Canon:this (FullOpts)
-15 (-0.32 % of base) : 5124.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
-15 (-3.17 % of base) : 79483.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveCurrentEnumerationContinues():this (FullOpts)
-15 (-3.08 % of base) : 79497.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveFirstEnumerationContinues():this (FullOpts)
-15 (-7.65 % of base) : 2514.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.09 % of base) : 2492.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.49 % of base) : 295999.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-4.55 % of base) : 2464.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-3 (-0.61 % of base) : 190430.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
-2 (-0.58 % of base) : 215048.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.58 % of base) : 215037.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.60 % of base) : 215003.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-1.07 % of base) : 215057.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.79 % of base) : 215518.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
Top method improvements (percentages):
-38 (-8.26 % of base) : 187922.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-38 (-8.26 % of base) : 187880.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-15 (-7.65 % of base) : 2514.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-4.55 % of base) : 2464.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-22 (-3.80 % of base) : 153471.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-15 (-3.17 % of base) : 79483.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveCurrentEnumerationContinues():this (FullOpts)
-15 (-3.09 % of base) : 2492.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.08 % of base) : 79497.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveFirstEnumerationContinues():this (FullOpts)
-15 (-2.49 % of base) : 295999.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-21 (-2.06 % of base) : 43281.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-2.06 % of base) : 49006.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-1.56 % of base) : 5058.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-21 (-1.15 % of base) : 14819.dasm - Microsoft.CodeAnalysis.Formatting.ContextIntervalTree`2[System.__Canon,Microsoft.CodeAnalysis.Formatting.FormattingContext+FormattingContextIntervalIntrospector]:GetSmallestContainingIntervalWorker(int,int,System.Func`4[System.__Canon,int,int,ubyte]):System.__Canon:this (FullOpts)
-2 (-1.07 % of base) : 215057.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.86 % of base) : 214450.dasm - System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.79 % of base) : 215518.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
-2 (-0.74 % of base) : 215520.dasm - System.Security.Cryptography.ECAlgorithm:TryExportECPrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.63 % of base) : 153014.dasm - System.Security.Cryptography.RSA:WritePkcs8PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-3 (-0.61 % of base) : 190430.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
-2 (-0.61 % of base) : 214457.dasm - System.Security.Cryptography.RSA:TryExportSubjectPublicKeyInfo(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
48 total methods with Code Size differences (48 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13194603 (overridden on cmd)
Total bytes of diff: 13194531 (overridden on cmd)
Total bytes of delta: -72 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-22 : 14286.dasm (-3.89 % of base)
-18 : 18372.dasm (-1.80 % of base)
-17 : 4869.dasm (-7.59 % of base)
-15 : 18436.dasm (-0.53 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-22 (-3.89 % of base) : 14286.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-18 (-1.80 % of base) : 18372.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-17 (-7.59 % of base) : 4869.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-15 (-0.53 % of base) : 18436.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
Top method improvements (percentages):
-17 (-7.59 % of base) : 4869.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-22 (-3.89 % of base) : 14286.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-18 (-1.80 % of base) : 18372.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-0.53 % of base) : 18436.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
4 total methods with Code Size differences (4 improved, 0 regressed).
Diffs are based on 2,262,709 contexts (930,876 MinOpts, 1,331,833 FullOpts).
MISSED contexts: 3,256 (0.14%)
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
libraries.pmi.osx.arm64.checked.mch | 79,955,476 | -36 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch | 160,911,076 | -24 |
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
libraries.pmi.osx.arm64.checked.mch | 79,834,348 | -36 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch | 147,773,548 | -24 |
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) ubyte -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) ubyte -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -240,11 +240,6 @@ G_M2754_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M2754_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M2754_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -302,54 +297,54 @@ G_M2754_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=156 bbWeight=0 PerfScore 0.00-RWD00 dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02+RWD00 dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02
dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
-RWD140 dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02 dd G_M2754_IG11 - G_M2754_IG02- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02
- dd G_M2754_IG12 - G_M2754_IG02+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+RWD140 dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
+ dd G_M2754_IG11 - G_M2754_IG02
-; Total bytes of code 660, prolog size 16, PerfScore 41.00, instruction count 165, allocated bytes for code 660 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 648, prolog size 16, PerfScore 41.00, instruction count 162, allocated bytes for code 648 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -360,7 +355,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 165 (0x000a5) Actual length = 660 (0x000294)+ Function Length : 162 (0x000a2) Actual length = 648 (0x000288) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) short -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) short -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -240,11 +240,6 @@ G_M65378_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M65378_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M65378_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -303,53 +298,53 @@ G_M65378_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=156 bbWeight=0 PerfScore 0.00
RWD00 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02
dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
-RWD140 dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02 dd G_M65378_IG11 - G_M65378_IG02- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02
- dd G_M65378_IG12 - G_M65378_IG02+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+RWD140 dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
+ dd G_M65378_IG11 - G_M65378_IG02
-; Total bytes of code 660, prolog size 16, PerfScore 41.00, instruction count 165, allocated bytes for code 660 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 648, prolog size 16, PerfScore 41.00, instruction count 162, allocated bytes for code 648 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -360,7 +355,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 165 (0x000a5) Actual length = 660 (0x000294)+ Function Length : 162 (0x000a2) Actual length = 648 (0x000288) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -240,11 +240,6 @@ G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -302,54 +297,54 @@ G_M1090_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=156 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG12 - G_M1090_IG02+RWD00 dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG05 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG05 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02
dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
-RWD140 dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02 dd G_M1090_IG11 - G_M1090_IG02- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02
- dd G_M1090_IG12 - G_M1090_IG02+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+RWD140 dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
+ dd G_M1090_IG11 - G_M1090_IG02
-; Total bytes of code 660, prolog size 16, PerfScore 41.00, instruction count 165, allocated bytes for code 660 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 648, prolog size 16, PerfScore 41.00, instruction count 162, allocated bytes for code 648 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -360,7 +355,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 165 (0x000a5) Actual length = 660 (0x000294)+ Function Length : 162 (0x000a2) Actual length = 648 (0x000288) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V45 rat0 [V45,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -77,24 +77,24 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byref
sub w3, w0, #2
cmp w3, #34
bhi G_M1090_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M1090_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M1090_IG02]
+ add x3, x3, x4 br x3
;; size=64 bbWeight=1 PerfScore 13.50
G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M1090_IG09- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M1090_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M1090_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -221,11 +221,6 @@ G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -283,54 +278,54 @@ G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=156 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG10 - G_M1090_IG02+RWD00 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02
dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
-RWD140 dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG09 - G_M1090_IG02- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+RWD140 dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
+ dd G_M1090_IG09 - G_M1090_IG02
-; Total bytes of code 604, prolog size 16, PerfScore 34.00, instruction count 151, allocated bytes for code 604 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 592, prolog size 16, PerfScore 34.00, instruction count 148, allocated bytes for code 592 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -341,7 +336,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 151 (0x00097) Actual length = 604 (0x00025c)+ Function Length : 148 (0x00094) Actual length = 592 (0x000250) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -54,7 +54,7 @@
; V43 tmp32 [V43,T23] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V44 tmp33 [V44,T24] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V45 rat0 [V45,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V46 rat1 [V46,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V46 rat1 [V46,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -77,24 +77,24 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byre
sub w3, w0, #2
cmp w3, #34
bhi G_M39522_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M39522_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M39522_IG02]
+ add x3, x3, x4 br x3
;; size=64 bbWeight=1 PerfScore 13.50
G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M39522_IG09- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M39522_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M39522_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -221,11 +221,6 @@ G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -283,54 +278,54 @@ G_M39522_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=156 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG10 - G_M39522_IG02+RWD00 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02
dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
-RWD140 dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02 dd G_M39522_IG09 - G_M39522_IG02- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02
- dd G_M39522_IG10 - G_M39522_IG02+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+RWD140 dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
+ dd G_M39522_IG09 - G_M39522_IG02
-; Total bytes of code 604, prolog size 16, PerfScore 34.00, instruction count 151, allocated bytes for code 604 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 592, prolog size 16, PerfScore 34.00, instruction count 148, allocated bytes for code 592 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -341,7 +336,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 151 (0x00097) Actual length = 604 (0x00025c)+ Function Length : 148 (0x00094) Actual length = 592 (0x000250) ---- 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.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_pgo.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_tiered.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
coreclr_tests.run.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
libraries.crossgen2.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
libraries.pmi.osx.arm64.checked.mch | 3 | 3 | 0 | 0 | -36 | +0 |
libraries_tests.run.osx.arm64.Release.mch | 0 | 0 | 0 | 0 | -0 | +0 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch | 2 | 2 | 0 | 0 | -24 | +0 |
realworld.run.osx.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
5 | 5 | 0 | 0 | -60 | +0 |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
benchmarks.run.osx.arm64.checked.mch | 24,851 | 4 | 24,847 | 4 (0.02%) | 4 (0.02%) |
benchmarks.run_pgo.osx.arm64.checked.mch | 84,581 | 48,412 | 36,169 | 93 (0.11%) | 93 (0.11%) |
benchmarks.run_tiered.osx.arm64.checked.mch | 48,257 | 37,318 | 10,939 | 4 (0.01%) | 4 (0.01%) |
coreclr_tests.run.osx.arm64.checked.mch | 585,830 | 357,177 | 228,653 | 391 (0.07%) | 391 (0.07%) |
libraries.crossgen2.osx.arm64.checked.mch | 233,353 | 15 | 233,338 | 0 (0.00%) | 0 (0.00%) |
libraries.pmi.osx.arm64.checked.mch | 314,709 | 18 | 314,691 | 7 (0.00%) | 7 (0.00%) |
libraries_tests.run.osx.arm64.Release.mch | 637,121 | 466,371 | 170,750 | 2,745 (0.43%) | 2,745 (0.43%) |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch | 302,464 | 21,558 | 280,906 | 11 (0.00%) | 11 (0.00%) |
realworld.run.osx.arm64.checked.mch | 31,543 | 3 | 31,540 | 1 (0.00%) | 1 (0.00%) |
2,262,709 | 930,876 | 1,331,833 | 3,256 (0.14%) | 3,256 (0.14%) |
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: 79955476 (overridden on cmd)
Total bytes of diff: 79955440 (overridden on cmd)
Total bytes of delta: -36 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 25455.dasm (-1.82 % of base)
-12 : 25454.dasm (-1.82 % of base)
-12 : 25453.dasm (-1.82 % of base)
3 total files with Code Size differences (3 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-1.82 % of base) : 25455.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.82 % of base) : 25454.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.82 % of base) : 25453.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-1.82 % of base) : 25455.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.82 % of base) : 25454.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.82 % of base) : 25453.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
3 total methods with Code Size differences (3 improved, 0 regressed).
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: 160911076 (overridden on cmd)
Total bytes of diff: 160911052 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 187122.dasm (-1.99 % of base)
-12 : 187149.dasm (-1.99 % of base)
2 total files with Code Size differences (2 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-1.99 % of base) : 187149.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.99 % of base) : 187122.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-1.99 % of base) : 187149.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-1.99 % of base) : 187122.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
2 total methods with Code Size differences (2 improved, 0 regressed).
Diffs are based on 2,318,207 contexts (931,543 MinOpts, 1,386,664 FullOpts).
MISSED contexts: 2,687 (0.12%)
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
coreclr_tests.run.windows.arm64.checked.mch | 495,372,096 | -24 |
libraries.pmi.windows.arm64.checked.mch | 79,594,724 | -36 |
libraries_tests.run.windows.arm64.Release.mch | 310,511,308 | -16 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch | 169,134,348 | -24 |
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
coreclr_tests.run.windows.arm64.checked.mch | 156,280,568 | -24 |
libraries.pmi.windows.arm64.checked.mch | 79,474,740 | -36 |
libraries_tests.run.windows.arm64.Release.mch | 108,929,804 | -16 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch | 155,996,884 | -24 |
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V43 rat0 [V43,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -74,24 +74,24 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byre
sub w3, w0, #2
cmp w3, #34
bhi G_M39522_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M39522_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M39522_IG02]
+ add x3, x3, x4 br x3
;; size=60 bbWeight=1 PerfScore 12.50
G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M39522_IG08- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M39522_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M39522_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -191,11 +191,6 @@ G_M39522_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -255,54 +250,54 @@ G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG09 - G_M39522_IG02+RWD00 dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
-RWD140 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+RWD140 dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
-; Total bytes of code 540, prolog size 16, PerfScore 33.00, instruction count 135, allocated bytes for code 540 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 528, prolog size 16, PerfScore 33.00, instruction count 132, allocated bytes for code 528 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -313,7 +308,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 135 (0x00087) Actual length = 540 (0x00021c)+ Function Length : 132 (0x00084) Actual length = 528 (0x000210) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V43 rat0 [V43,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -74,24 +74,24 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byref
sub w3, w0, #2
cmp w3, #34
bhi G_M1090_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M1090_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M1090_IG02]
+ add x3, x3, x4 br x3
;; size=60 bbWeight=1 PerfScore 12.50
G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M1090_IG08- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M1090_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M1090_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -191,11 +191,6 @@ G_M1090_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -255,54 +250,54 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG09 - G_M1090_IG02+RWD00 dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
-RWD140 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+RWD140 dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
-; Total bytes of code 540, prolog size 16, PerfScore 33.00, instruction count 135, allocated bytes for code 540 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 528, prolog size 16, PerfScore 33.00, instruction count 132, allocated bytes for code 528 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -313,7 +308,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 135 (0x00087) Actual length = 540 (0x00021c)+ Function Length : 132 (0x00084) Actual length = 528 (0x000210) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) ubyte -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) ubyte -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -210,11 +210,6 @@ G_M2754_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M2754_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M2754_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -274,54 +269,54 @@ G_M2754_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02+RWD00 dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02 dd G_M2754_IG10 - G_M2754_IG02- dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG10 - G_M2754_IG02
dd G_M2754_IG10 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02
dd G_M2754_IG05 - G_M2754_IG02- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG10 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG10 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG10 - G_M2754_IG02
- dd G_M2754_IG10 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG10 - G_M2754_IG02
dd G_M2754_IG10 - G_M2754_IG02
dd G_M2754_IG10 - G_M2754_IG02
dd G_M2754_IG10 - G_M2754_IG02- dd G_M2754_IG11 - G_M2754_IG02
-RWD140 dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG10 - G_M2754_IG02- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02 dd G_M2754_IG10 - G_M2754_IG02- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02
- dd G_M2754_IG11 - G_M2754_IG02+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+RWD140 dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
+ dd G_M2754_IG10 - G_M2754_IG02
-; Total bytes of code 596, prolog size 16, PerfScore 40.00, instruction count 149, allocated bytes for code 596 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 584, prolog size 16, PerfScore 40.00, instruction count 146, allocated bytes for code 584 (MethodHash=ae98f53d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -332,7 +327,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 149 (0x00095) Actual length = 596 (0x000254)+ Function Length : 146 (0x00092) Actual length = 584 (0x000248) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) short -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) short -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -210,11 +210,6 @@ G_M65378_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M65378_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M65378_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -275,53 +270,53 @@ G_M65378_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00
RWD00 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02
dd G_M65378_IG10 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG10 - G_M65378_IG02
dd G_M65378_IG10 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02 dd G_M65378_IG05 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG10 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG10 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG10 - G_M65378_IG02
- dd G_M65378_IG10 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG10 - G_M65378_IG02
dd G_M65378_IG10 - G_M65378_IG02
dd G_M65378_IG10 - G_M65378_IG02
dd G_M65378_IG10 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
-RWD140 dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG10 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02 dd G_M65378_IG10 - G_M65378_IG02- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02
- dd G_M65378_IG11 - G_M65378_IG02+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+RWD140 dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
+ dd G_M65378_IG10 - G_M65378_IG02
-; Total bytes of code 596, prolog size 16, PerfScore 40.00, instruction count 149, allocated bytes for code 596 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 584, prolog size 16, PerfScore 40.00, instruction count 146, allocated bytes for code 584 (MethodHash=5ad5009d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -332,7 +327,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 149 (0x00095) Actual length = 596 (0x000254)+ Function Length : 146 (0x00092) Actual length = 584 (0x000248) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x19 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x19 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -210,11 +210,6 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w0, #70
- cmp w19, #65
- ccmp w19, w0, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -274,54 +269,54 @@ G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG11 - G_M1090_IG02+RWD00 dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG05 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG05 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
-RWD140 dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+RWD140 dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
-; Total bytes of code 596, prolog size 16, PerfScore 40.00, instruction count 149, allocated bytes for code 596 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 584, prolog size 16, PerfScore 40.00, instruction count 146, allocated bytes for code 584 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -332,7 +327,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 149 (0x00095) Actual length = 596 (0x000254)+ Function Length : 146 (0x00092) Actual length = 584 (0x000248) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -161,8 +161,8 @@
; V149 tmp137 [V149,T94] ( 8, 12.00) int -> x28 "guarded devirt return temp"
; V150 tmp138 [V150,T51] ( 10, 24.00) ref -> x27 "guarded devirt arg temp"
; V151 tmp139 [V151,T21] ( 20, 40.00) ref -> x27 class-hnd exact "guarded devirt this exact temp" <System.Random+XoshiroImpl>-; V152 tmp140 [V152,T101] ( 6, 12.00) long -> x8 "Inline stloc first use temp"
-; V153 tmp141 [V153,T127] ( 4, 8.00) int -> x9 "Inline stloc first use temp"+; V152 tmp140 [V152,T101] ( 4, 8.00) long -> x8 "Inline stloc first use temp"
+;* V153 tmp141 [V153,T127] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V154 tmp142 [V154,T198] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V155 tmp143 [V155,T68] ( 10, 20.00) long -> x28 "Inline stloc first use temp"
; V156 tmp144 [V156,T44] ( 14, 28.00) long -> x3 "Inline stloc first use temp"
@@ -2101,10 +2101,8 @@ G_M32221_IG106: ; bbWeight=3.96, gcrefRegs=380000 {x19 x20 x21}, byrefReg
stp x4, x5, [x27, #0x18]
lsr x0, x6, #32
ubfiz x8, x0, #8, #32- sxtw w9, w8
- cmp w9, #0xD1FFAB1E lsr x28, x8, #32- ;; size=428 bbWeight=3.96 PerfScore 435.60+ ;; size=420 bbWeight=3.96 PerfScore 431.64 G_M32221_IG107: ; bbWeight=3.96, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x27]
sxtw x0, w28
@@ -4986,11 +4984,9 @@ G_M32221_IG309: ; bbWeight=0.04, gcrefRegs=8380000 {x19 x20 x21 x27}, byr
stp x4, x5, [x27, #0x18]
lsr x0, x6, #32
ubfiz x8, x0, #8, #32- sxtw w9, w8
- cmp w9, #0xD1FFAB1E lsr x28, x8, #32
b G_M32221_IG212- ;; size=116 bbWeight=0.04 PerfScore 1.38+ ;; size=108 bbWeight=0.04 PerfScore 1.34 G_M32221_IG310: ; bbWeight=0.04, gcrefRegs=8380001 {x0 x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x1, [x0, #0x18]
@@ -5276,7 +5272,7 @@ G_M32221_IG330: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 11736, prolog size 76, PerfScore 5201.51, instruction count 2934, allocated bytes for code 11736 (MethodHash=81538222) for method System.IO.Tests.StandaloneStreamConformanceTests+<Seek_ReadWrite_RoundtripsExpectedData>d__36:MoveNext():this (Tier1)+; Total bytes of code 11720, prolog size 76, PerfScore 5197.51, instruction count 2930, allocated bytes for code 11720 (MethodHash=81538222) for method System.IO.Tests.StandaloneStreamConformanceTests+<Seek_ReadWrite_RoundtripsExpectedData>d__36:MoveNext():this (Tier1) ; ============================================================
Unwind Info:
@@ -5287,7 +5283,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 2828 (0x00b0c) Actual length = 11312 (0x002c30)+ Function Length : 2824 (0x00b08) Actual length = 11296 (0x002c20) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V43 rat0 [V43,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -74,24 +74,24 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byref
sub w3, w0, #2
cmp w3, #34
bhi G_M1090_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M1090_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M1090_IG02]
+ add x3, x3, x4 br x3
;; size=60 bbWeight=1 PerfScore 12.50
G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M1090_IG08- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M1090_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M1090_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -191,11 +191,6 @@ G_M1090_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -255,54 +250,54 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG09 - G_M1090_IG02+RWD00 dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
-RWD140 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+RWD140 dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
-; Total bytes of code 540, prolog size 16, PerfScore 33.00, instruction count 135, allocated bytes for code 540 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 528, prolog size 16, PerfScore 33.00, instruction count 132, allocated bytes for code 528 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -313,7 +308,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 135 (0x00087) Actual length = 540 (0x00021c)+ Function Length : 132 (0x00084) Actual length = 528 (0x000210) ---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> x0 +; V08 loc5 [V08,T05] ( 3, 2.50) int -> x0 ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V43 rat0 [V43,T01] ( 3, 6 ) int -> x3 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> x4 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 3, 3 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 24
@@ -74,24 +74,24 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0100 {x8}, byre
sub w3, w0, #2
cmp w3, #34
bhi G_M39522_IG03- mov w4, w3+ mov w0, w3 adr x3, [@RWD00]- ldr w3, [x3, x4, LSL #2]
- adr x5, [G_M39522_IG02]
- add x3, x3, x5+ ldr w3, [x3, x0, LSL #2]
+ adr x4, [G_M39522_IG02]
+ add x3, x3, x4 br x3
;; size=60 bbWeight=1 PerfScore 12.50
G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x2 x8]- sub w4, w0, #64
- cmp w4, #9+ sub w0, w0, #64
+ cmp w0, #9 bhi G_M39522_IG08- mov w1, w4
- adr x2, [@RWD140]
- ldr w2, [x2, x1, LSL #2]
- adr x3, [G_M39522_IG02]
- add x2, x2, x3
- br x2+ mov w0, w0
+ adr x1, [@RWD140]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M39522_IG02]
+ add x1, x1, x2
+ br x1 ;; size=36 bbWeight=0.50 PerfScore 4.00
G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
; byrRegs +[x2 x8]
@@ -191,11 +191,6 @@ G_M39522_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
;; size=108 bbWeight=0 PerfScore 0.00
G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- mov w1, #70
- cmp w0, #65
- ccmp w0, w1, z, ne
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -255,54 +250,54 @@ G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_windows #0
;; size=164 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG09 - G_M39522_IG02+RWD00 dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
-RWD140 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+RWD140 dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
-; Total bytes of code 540, prolog size 16, PerfScore 33.00, instruction count 135, allocated bytes for code 540 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 528, prolog size 16, PerfScore 33.00, instruction count 132, allocated bytes for code 528 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -313,7 +308,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0- Function Length : 135 (0x00087) Actual length = 540 (0x00021c)+ Function Length : 132 (0x00084) Actual length = 528 (0x000210) ---- 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.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_pgo.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_tiered.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
coreclr_tests.run.windows.arm64.checked.mch | 2 | 2 | 0 | 0 | -24 | +0 |
libraries.crossgen2.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
libraries.pmi.windows.arm64.checked.mch | 3 | 3 | 0 | 0 | -36 | +0 |
libraries_tests.run.windows.arm64.Release.mch | 1 | 1 | 0 | 0 | -16 | +0 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch | 2 | 2 | 0 | 0 | -24 | +0 |
realworld.run.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
smoke_tests.nativeaot.windows.arm64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
8 | 8 | 0 | 0 | -100 | +0 |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 24,445 | 4 | 24,441 | 4 (0.02%) | 4 (0.02%) |
benchmarks.run_pgo.windows.arm64.checked.mch | 98,308 | 48,543 | 49,765 | 125 (0.13%) | 125 (0.13%) |
benchmarks.run_tiered.windows.arm64.checked.mch | 48,501 | 36,685 | 11,816 | 4 (0.01%) | 4 (0.01%) |
coreclr_tests.run.windows.arm64.checked.mch | 595,368 | 362,737 | 232,631 | 317 (0.05%) | 317 (0.05%) |
libraries.crossgen2.windows.arm64.checked.mch | 243,430 | 15 | 243,415 | 0 (0.00%) | 0 (0.00%) |
libraries.pmi.windows.arm64.checked.mch | 304,046 | 6 | 304,040 | 7 (0.00%) | 7 (0.00%) |
libraries_tests.run.windows.arm64.Release.mch | 630,439 | 461,984 | 168,455 | 2,223 (0.35%) | 2,223 (0.35%) |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch | 316,297 | 21,559 | 294,738 | 4 (0.00%) | 4 (0.00%) |
realworld.run.windows.arm64.checked.mch | 33,192 | 3 | 33,189 | 3 (0.01%) | 3 (0.01%) |
smoke_tests.nativeaot.windows.arm64.checked.mch | 24,181 | 7 | 24,174 | 0 (0.00%) | 0 (0.00%) |
2,318,207 | 931,543 | 1,386,664 | 2,687 (0.12%) | 2,687 (0.12%) |
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: 495372096 (overridden on cmd)
Total bytes of diff: 495372072 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 486548.dasm (-2.22 % of base)
-12 : 486551.dasm (-2.22 % of base)
2 total files with Code Size differences (2 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-2.22 % of base) : 486548.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.22 % of base) : 486551.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-2.22 % of base) : 486548.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.22 % of base) : 486551.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
2 total methods with Code Size differences (2 improved, 0 regressed).
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: 79594724 (overridden on cmd)
Total bytes of diff: 79594688 (overridden on cmd)
Total bytes of delta: -36 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 9745.dasm (-2.01 % of base)
-12 : 9747.dasm (-2.01 % of base)
-12 : 9746.dasm (-2.01 % of base)
3 total files with Code Size differences (3 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-2.01 % of base) : 9747.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.01 % of base) : 9746.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.01 % of base) : 9745.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-2.01 % of base) : 9747.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.01 % of base) : 9746.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.01 % of base) : 9745.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
3 total methods with Code Size differences (3 improved, 0 regressed).
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: 310511308 (overridden on cmd)
Total bytes of diff: 310511292 (overridden on cmd)
Total bytes of delta: -16 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-16 : 282619.dasm (-0.14 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-16 (-0.14 % of base) : 282619.dasm - System.IO.Tests.StandaloneStreamConformanceTests+<Seek_ReadWrite_RoundtripsExpectedData>d__36:MoveNext():this (Tier1)
Top method improvements (percentages):
-16 (-0.14 % of base) : 282619.dasm - System.IO.Tests.StandaloneStreamConformanceTests+<Seek_ReadWrite_RoundtripsExpectedData>d__36:MoveNext():this (Tier1)
1 total methods with Code Size differences (1 improved, 0 regressed).
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: 169134348 (overridden on cmd)
Total bytes of diff: 169134324 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-12 : 195452.dasm (-2.22 % of base)
-12 : 195460.dasm (-2.22 % of base)
2 total files with Code Size differences (2 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-12 (-2.22 % of base) : 195452.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.22 % of base) : 195460.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-12 (-2.22 % of base) : 195452.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-12 (-2.22 % of base) : 195460.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
2 total methods with Code Size differences (2 improved, 0 regressed).
Diffs are based on 2,492,912 contexts (983,689 MinOpts, 1,509,223 FullOpts).
MISSED contexts: 3,899 (0.16%)
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
aspnet.run.windows.x64.checked.mch | 42,178,256 | -74 |
benchmarks.run.windows.x64.checked.mch | 8,747,570 | -67 |
coreclr_tests.run.windows.x64.checked.mch | 393,404,923 | -120 |
libraries.crossgen2.windows.x64.checked.mch | 39,443,922 | -70 |
libraries.pmi.windows.x64.checked.mch | 61,389,190 | -447 |
libraries_tests.run.windows.x64.Release.mch | 281,642,309 | -383 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch | 133,913,806 | -296 |
realworld.run.windows.x64.checked.mch | 14,170,687 | -74 |
Collection | Base size (bytes) | Diff size (bytes) |
---|---|---|
aspnet.run.windows.x64.checked.mch | 27,519,531 | -74 |
benchmarks.run.windows.x64.checked.mch | 8,747,209 | -67 |
coreclr_tests.run.windows.x64.checked.mch | 119,861,931 | -120 |
libraries.crossgen2.windows.x64.checked.mch | 39,442,733 | -70 |
libraries.pmi.windows.x64.checked.mch | 61,275,671 | -447 |
libraries_tests.run.windows.x64.Release.mch | 103,273,993 | -383 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch | 123,490,436 | -296 |
realworld.run.windows.x64.checked.mch | 13,780,982 | -74 |
@@ -20,10 +20,10 @@
; V08 tmp6 [V08,T04] ( 3, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <System.__Canon>
; V09 tmp7 [V09,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V10 PSPSym [V10,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"-; V11 cse0 [V11,T05] ( 5, 3 ) long -> rbx multi-def "CSE - aggressive"
-; V12 rat0 [V12,T03] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V11 cse0 [V11,T05] ( 4, 2 ) long -> rbx multi-def "CSE - aggressive"
+;* V12 rat0 [V12,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T01] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 56
@@ -42,12 +42,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000005 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]
mov rbx, qword ptr [rcx]- mov rax, rbx
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x108]
- test rax, rax
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rax, qword ptr [rbx+0x30]
@@ -143,7 +138,7 @@ G_M44994_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 245, prolog size 27, PerfScore 48.11, instruction count 66, allocated bytes for code 245 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)+; Total bytes of code 225, prolog size 27, PerfScore 41.61, instruction count 61, allocated bytes for code 225 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1) ; ============================================================
Unwind Info:
@@ -21,9 +21,9 @@
; V09 tmp7 [V09,T05] ( 4, 2.84) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -40,12 +40,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x90]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -151,7 +147,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 230, prolog size 26, PerfScore 43.26, instruction count 65, allocated bytes for code 230 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 212, prolog size 26, PerfScore 38.01, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
@@ -21,9 +21,9 @@
; V09 tmp7 [V09,T05] ( 4, 2.85) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -40,12 +40,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x90]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -151,7 +147,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 230, prolog size 26, PerfScore 43.26, instruction count 65, allocated bytes for code 230 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 212, prolog size 26, PerfScore 38.01, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
@@ -21,9 +21,9 @@
; V09 tmp7 [V09,T05] ( 4, 2.84) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -40,12 +40,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x90]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -151,7 +147,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 230, prolog size 26, PerfScore 43.26, instruction count 65, allocated bytes for code 230 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 212, prolog size 26, PerfScore 38.01, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
@@ -20,9 +20,9 @@
; V09 tmp7 [V09,T05] ( 4, 4 ) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -39,12 +39,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x68]
- test rax, rax
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -148,7 +144,7 @@ G_M44994_IG12: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 227, prolog size 26, PerfScore 47.62, instruction count 65, allocated bytes for code 227 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)+; Total bytes of code 212, prolog size 26, PerfScore 42.38, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts) ; ============================================================
Unwind Info:
@@ -24,9 +24,9 @@
; V13 PSPSym [V13,T11] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
; V14 cse0 [V14,T06] ( 3, 3 ) ref -> rdx "CSE - aggressive"
; V15 cse1 [V15,T08] ( 3, 2.50) long -> r8 "CSE - aggressive"-; V16 rat0 [V16,T05] ( 2, 4 ) long -> r8 "Spilling to split statement for tree"+;* V16 rat0 [V16,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V17 rat1 [V17,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V18 rat2 [V18,T03] ( 2, 4 ) long -> r8 "fgMakeTemp is creating a new local variable"+;* V18 rat2 [V18,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 56
@@ -48,12 +48,8 @@ G_M52108_IG02: ; bbWeight=1, gcVars=0000000000000015 {V00 V01 V02}, gcref
; gcrRegs +[rcx rdx]
test rdx, rdx
je G_M52108_IG12- mov r8, qword ptr [rcx]
- mov r8, qword ptr [r8+0x38]
- mov r8, qword ptr [r8]
- mov r8, qword ptr [r8+0x28]
- test r8, r8
- ;; size=26 bbWeight=1 PerfScore 9.50+ cmp dword ptr [rcx], ecx
+ ;; size=11 bbWeight=1 PerfScore 4.25 G_M52108_IG03: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov r8, 0xD1FFAB1E ; System.Int32
@@ -202,7 +198,7 @@ G_M52108_IG18: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 31, PerfScore 46.06, instruction count 92, allocated bytes for code 340 (MethodHash=a3bf3473) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)+; Total bytes of code 325, prolog size 31, PerfScore 40.81, instruction count 88, allocated bytes for code 325 (MethodHash=a3bf3473) for method System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -24,9 +24,9 @@
; V13 arg13 [V13,T47] ( 1, 0.50) ref -> [rbp+0x78] class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticBag>
; V14 arg14 [V14,T39] ( 2, 2 ) byref -> [rbp+0x80] single-def
; V15 arg15 [V15,T36] ( 3, 2 ) byref -> r12 single-def-; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x70] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>+; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x68] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> ; V17 loc1 [V17,T09] ( 6, 8 ) ref -> r13 class-hnd exact single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>-; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rbx class-hnd exact single-def <<unknown class>>+; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rsi class-hnd exact single-def <<unknown class>> ; V19 loc3 [V19,T03] ( 5, 17 ) int -> [rbp-0x44]
; V20 loc4 [V20,T01] ( 7, 25 ) int -> [rbp-0x48]
;* V21 loc5 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>
@@ -41,36 +41,36 @@
;* V30 tmp8 [V30 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V31 tmp9 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V32 tmp10 [V32 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"-; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> rdi class-hnd exact "Inlining Arg" <<unknown class>>+; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>> ; V34 tmp12 [V34,T00] ( 6, 48 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V35 tmp13 [V35,T07] ( 3, 12 ) int -> [rbp-0x4C] spill-single-def "Inline stloc first use temp"
; V36 tmp14 [V36,T24] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
;* V37 tmp15 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V38 tmp16 [V38,T06] ( 7, 12 ) ref -> rbx single-def "field V01.array (fldOffset=0x0)" P-INDEP
; V39 tmp17 [V39,T29] ( 2, 1.50) ref -> rsi single-def "field V02.array (fldOffset=0x0)" P-INDEP-; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> [rbp+0x28] single-def "field V03.array (fldOffset=0x0)" P-INDEP+; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> rdi single-def "field V03.array (fldOffset=0x0)" P-INDEP ; V41 tmp19 [V41,T48] ( 1, 0.50) ref -> [rbp+0x30] single-def "field V04.array (fldOffset=0x0)" P-INDEP
; V42 tmp20 [V42,T02] ( 3, 24 ) ref -> rcx "argument with side effect"-; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rdx "argument with side effect"+; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rcx "argument with side effect" ; V44 tmp22 [V44,T26] ( 2, 4 ) long -> rcx "argument with side effect"
; V45 tmp23 [V45,T27] ( 2, 4 ) long -> rcx "argument with side effect"
; V46 tmp24 [V46,T28] ( 2, 4 ) long -> rcx "argument with side effect"
; V47 PSPSym [V47,T44] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[V] "PSPSym"
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - aggressive"-; V49 cse1 [V49,T33] ( 3, 3 ) long -> [rbp-0x58] spill-single-def "CSE - moderate"
-; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rbx "CSE - moderate"
-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x60] spill-single-def "CSE - aggressive"
-; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x64] spill-single-def "CSE - aggressive"
-; V53 cse5 [V53,T17] ( 2, 5 ) int -> rbx hoist "CSE - moderate"+; V49 cse1 [V49,T33] ( 3, 3 ) long -> rdi "CSE - moderate"
+; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rdi "CSE - moderate"
+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x58] spill-single-def "CSE - aggressive"
+; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x5C] spill-single-def "CSE - aggressive"
+; V53 cse5 [V53,T17] ( 2, 5 ) int -> rdi hoist "CSE - moderate" ; V54 rat0 [V54,T18] ( 3, 4.40) long -> rcx "Spilling to split statement for tree"
; V55 rat1 [V55,T19] ( 3, 4 ) long -> rdx "runtime lookup"
; V56 rat2 [V56,T12] ( 3, 5.60) long -> rdx "fgMakeTemp is creating a new local variable"
;* V57 rat3 [V57,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V58 rat4 [V58,T13] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V58 rat4 [V58,T13] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V59 rat5 [V59,T38] ( 3, 2 ) long -> rcx "runtime lookup"
; V60 rat6 [V60,T34] ( 3, 2.80) long -> rcx "fgMakeTemp is creating a new local variable"-; V61 rat7 [V61,T21] ( 3, 4 ) long -> rax "runtime lookup"
-; V62 rat8 [V62,T14] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"+; V61 rat7 [V61,T21] ( 3, 4 ) long -> rdi "runtime lookup"
+; V62 rat8 [V62,T14] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" ; V63 rat9 [V63,T22] ( 3, 4 ) long -> rcx "runtime lookup"
; V64 rat10 [V64,T15] ( 3, 5.60) long -> rcx "fgMakeTemp is creating a new local variable"
; V65 rat11 [V65,T23] ( 3, 4 ) long -> rcx "runtime lookup"
@@ -96,24 +96,24 @@ G_M65396_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov qword ptr [rbp-0x40], rcx
mov gword ptr [rbp+0x10], rcx
; GC ptr vars +{V00}- mov gword ptr [rbp+0x28], r9
- ; GC ptr vars +{V40} mov r14, rcx
; gcrRegs +[r14]
mov rbx, rdx
; gcrRegs +[rbx]
mov rsi, r8
; gcrRegs +[rsi]+ mov rdi, r9
+ ; gcrRegs +[rdi] mov r13, gword ptr [rbp+0x38]
; gcrRegs +[r13]
mov r15, bword ptr [rbp+0x58]
; byrRegs +[r15]
mov r12, bword ptr [rbp+0x88]
; byrRegs +[r12]- ;; size=76 bbWeight=1 PerfScore 17.75
-G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+ ;; size=75 bbWeight=1 PerfScore 17.00
+G_M65396_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz mov r9, qword ptr [r14]- mov qword ptr [rbp-0x60], r9+ mov qword ptr [rbp-0x58], r9 mov rcx, r9
mov rdx, qword ptr [rcx+0x38]
mov rdx, qword ptr [rdx]
@@ -121,37 +121,32 @@ G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs
test rdx, rdx
je SHORT G_M65396_IG04
;; size=26 bbWeight=1 PerfScore 10.50-G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz jmp SHORT G_M65396_IG05
;; size=2 bbWeight=0.80 PerfScore 1.60-G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdx, rax
;; size=18 bbWeight=0.20 PerfScore 0.30-G_M65396_IG05: ; bbWeight=1, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG05: ; bbWeight=1, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, rdx
call [Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:GetInstance():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]]
; gcrRegs +[rax]
; gcr arg pop 0- mov gword ptr [rbp-0x70], rax+ mov gword ptr [rbp-0x68], rax ; GC ptr vars +{V16}
;; size=13 bbWeight=1 PerfScore 4.25-G_M65396_IG06: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz ; gcrRegs -[rax]
xor r10d, r10d- mov r9, qword ptr [rbp-0x60]
- mov rcx, qword ptr [r9+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx
- mov r11d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x64], r11d
- test r11d, r11d+ mov r9d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x5C], r9d
+ test r9d, r9d jle SHORT G_M65396_IG08- ;; size=34 bbWeight=1 PerfScore 11.75
-G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M65396_IG07: ; bbWeight=4, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz mov dword ptr [rbp-0x44], r10d
mov ecx, r10d
mov rcx, gword ptr [rbx+8*rcx+0x10]
@@ -160,55 +155,56 @@ G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=
; gcrRegs +[r8]
mov rdx, rbx
; gcrRegs +[rdx]- mov rdi, qword ptr [rcx]
- mov rdi, qword ptr [rdi+0x50]
- call [rdi]<unknown method>+ mov r11, qword ptr [rcx]
+ mov r11, qword ptr [r11+0x50]
+ call [r11]<unknown method> ; gcrRegs -[rcx rdx r8] +[rax]
; gcr arg pop 0- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x70]
- mov r8, gword ptr [rax+0x08]+ mov gword ptr [rbp-0x70], rax
+ ; GC ptr vars +{V33}
+ mov r8, gword ptr [rbp-0x68] ; gcrRegs +[r8]- mov gword ptr [rbp-0x78], r8+ mov r10, gword ptr [r8+0x08]
+ ; gcrRegs +[r10]
+ mov gword ptr [rbp-0x78], r10 ; GC ptr vars +{V34}- mov r10d, dword ptr [r8+0x10]
- inc r10d
- mov dword ptr [rbp-0x4C], r10d
- mov rcx, r8+ mov r9d, dword ptr [r10+0x10]
+ inc r9d
+ mov dword ptr [rbp-0x4C], r9d
+ mov rcx, r10 ; gcrRegs +[rcx]- mov edx, r10d+ mov edx, r9d call [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:EnsureCapacity(int):this]- ; gcrRegs -[rax rcx r8]+ ; gcrRegs -[rax rcx r8 r10] ; gcr arg pop 0
mov rax, gword ptr [rbp-0x78]
; gcrRegs +[rax]
movsxd rdx, dword ptr [rax+0x10]
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]- mov r8, rdi+ mov r8, gword ptr [rbp-0x70] ; gcrRegs +[r8]+ ; GC ptr vars -{V33} call CORINFO_HELP_ARRADDR_ST- ; gcrRegs -[rax rcx rdi r8]+ ; gcrRegs -[rax rcx r8] ; gcr arg pop 0- mov rdi, gword ptr [rbp-0x78]
- ; gcrRegs +[rdi]
- mov ecx, dword ptr [rbp-0x4C]
- mov dword ptr [rdi+0x10], ecx
- mov edi, dword ptr [rbp-0x44]
- ; gcrRegs -[rdi]
- inc edi
- mov ecx, dword ptr [rbp-0x64]
- cmp ecx, edi
- mov r10d, edi+ mov rcx, gword ptr [rbp-0x78]
+ ; gcrRegs +[rcx]
+ mov r9d, dword ptr [rbp-0x4C]
+ mov dword ptr [rcx+0x10], r9d
+ mov r10d, dword ptr [rbp-0x44]
+ inc r10d
+ mov ecx, dword ptr [rbp-0x5C]
+ ; gcrRegs -[rcx]
+ cmp ecx, r10d jg SHORT G_M65396_IG07- ;; size=111 bbWeight=4 PerfScore 154.00
-G_M65396_IG08: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref+ ;; size=116 bbWeight=4 PerfScore 159.00
+G_M65396_IG08: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref ; GC ptr vars -{V00 V34}
test r13, r13
je G_M65396_IG19
;; size=9 bbWeight=1 PerfScore 1.25-G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, r13
; gcrRegs +[rcx]
mov rax, qword ptr [r13]
@@ -218,34 +214,36 @@ G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRe
; gcr arg pop 0
test eax, eax
je G_M65396_IG19- mov rdi, gword ptr [rbp+0x30]
- ; gcrRegs +[rdi]
- mov gword ptr [rsp+0x20], rdi+ mov rcx, gword ptr [rbp+0x30]
+ ; gcrRegs +[rcx]
+ mov gword ptr [rsp+0x20], rcx ; gcr arg write
mov gword ptr [rsp+0x28], r13
; gcr arg write
movzx rcx, byte ptr [rbp+0x40]+ ; gcrRegs -[rcx] mov dword ptr [rsp+0x30], ecx
movzx r13, byte ptr [rbp+0x48]
; gcrRegs -[r13]
movzx rcx, r13b
mov dword ptr [rsp+0x38], ecx- mov rdi, gword ptr [rbp-0x70]
- mov gword ptr [rsp+0x40], rdi
- ; gcr arg write
- mov rax, gword ptr [rbp+0x50]+ mov rax, gword ptr [rbp-0x68] ; gcrRegs +[rax]
...
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)@@ -125,7 +125,7 @@
; V114 cse15 [V114,T64] ( 3, 24 ) ref -> [rbp-0x128] spill-single-def "CSE - conservative"
; V115 cse16 [V115,T90] ( 3, 3.84) int -> rdx "CSE - conservative"
; V116 cse17 [V116,T89] ( 3, 3.84) ref -> [rbp-0x130] spill-single-def "CSE - conservative"-; V117 cse18 [V117,T33] ( 10, 47 ) long -> r15 multi-def "CSE - moderate"+; V117 cse18 [V117,T33] ( 9, 46 ) long -> r15 multi-def "CSE - moderate" ; V118 cse19 [V118,T29] ( 6, 170 ) int -> r12 "CSE - moderate"
; V119 cse20 [V119,T32] ( 5, 152 ) byref -> [rbp-0x138] "CSE - moderate"
; V120 cse21 [V120,T54] ( 5, 42.08) int -> [rbp-0x9C] spill-single-def "CSE - moderate"
@@ -133,7 +133,7 @@
; V122 rat1 [V122,T84] ( 3, 4 ) long -> rax "runtime lookup"
; V123 rat2 [V123,T80] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;* V124 rat3 [V124,T85] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V125 rat4 [V125,T81] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V125 rat4 [V125,T81] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V126 rat5 [V126,T88] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V127 rat6 [V127,T74] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V128 rat7 [V128,T75] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable"
@@ -229,17 +229,13 @@ G_M32652_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
;; size=56 bbWeight=1 PerfScore 20.50
G_M32652_IG06: ; bbWeight=1, gcVars=00000000000400000000000004004002 {V00 V05 V06 V99}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]- mov rcx, qword ptr [r15+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx mov r12d, dword ptr [rbx+0x08]
mov eax, r12d
mov dword ptr [rbp-0x44], eax
mov r8d, 1
cmp eax, 1
jle G_M32652_IG69- ;; size=39 bbWeight=1 PerfScore 11.00+ ;; size=25 bbWeight=1 PerfScore 4.75 G_M32652_IG07: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r10d, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x9C], r10d
@@ -1355,7 +1351,7 @@ G_M32652_IG79: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2883, prolog size 65, PerfScore 24368.95, instruction count 687, allocated bytes for code 2883 (MethodHash=bdda8073) for method 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)+; Total bytes of code 2869, prolog size 65, PerfScore 24362.70, instruction count 683, allocated bytes for code 2869 (MethodHash=bdda8073) for method 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) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rdx +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rdx ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V43 rat0 [V43,T02] ( 3, 6 ) int -> r10 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> r9 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 2, 2 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 64
@@ -66,7 +66,7 @@ G_M1090_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp edx, 14- je G_M1090_IG06+ je SHORT G_M1090_IG06 cmp edx, 12
je G_M1090_IG07
mov word ptr [rsp+0x28], dx
@@ -75,25 +75,20 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byre
lea r10d, [rdx-0x02]
cmp r10d, 34
ja SHORT G_M1090_IG03- mov r9d, r10d+ mov edx, r10d lea r10, [reloc @RWD00]- mov r10d, dword ptr [r10+4*r9]
- lea r11, G_M1090_IG02
- add r10, r11+ mov r10d, dword ptr [r10+4*rdx]
+ lea r9, G_M1090_IG02
+ add r10, r9 jmp r10- ;; size=65 bbWeight=1 PerfScore 11.75+ ;; size=61 bbWeight=1 PerfScore 11.75 G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rcx]- lea r9d, [rdx-0x40]
- cmp r9d, 9+ add edx, -64
+ cmp edx, 9 ja G_M1090_IG08- mov ecx, r9d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rcx]
- lea r8, G_M1090_IG02
- add rax, r8
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M1090_IG08
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref
; byrRegs +[rax rcx]
mov dword ptr [rax], r8d
@@ -173,12 +168,7 @@ G_M1090_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=70 bbWeight=0 PerfScore 0.00-G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, 65
- je SHORT G_M1090_IG09
- cmp edx, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -222,54 +212,44 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG09 - G_M1090_IG02+RWD00 dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
-RWD140 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
-; Total bytes of code 401, prolog size 10, PerfScore 30.88, instruction count 93, allocated bytes for code 401 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 367, prolog size 10, PerfScore 28.75, instruction count 85, allocated bytes for code 367 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rdx +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rdx ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V43 rat0 [V43,T02] ( 3, 6 ) int -> r10 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> r9 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 2, 2 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 64
@@ -66,7 +66,7 @@ G_M39522_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp edx, 14- je G_M39522_IG06+ je SHORT G_M39522_IG06 cmp edx, 12
je G_M39522_IG07
mov word ptr [rsp+0x28], dx
@@ -75,25 +75,20 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
lea r10d, [rdx-0x02]
cmp r10d, 34
ja SHORT G_M39522_IG03- mov r9d, r10d+ mov edx, r10d lea r10, [reloc @RWD00]- mov r10d, dword ptr [r10+4*r9]
- lea r11, G_M39522_IG02
- add r10, r11+ mov r10d, dword ptr [r10+4*rdx]
+ lea r9, G_M39522_IG02
+ add r10, r9 jmp r10- ;; size=65 bbWeight=1 PerfScore 11.75+ ;; size=61 bbWeight=1 PerfScore 11.75 G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rcx]- lea r9d, [rdx-0x40]
- cmp r9d, 9+ add edx, -64
+ cmp edx, 9 ja G_M39522_IG08- mov ecx, r9d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rcx]
- lea r8, G_M39522_IG02
- add rax, r8
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M39522_IG08
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref
; byrRegs +[rax rcx]
mov dword ptr [rax], r8d
@@ -173,12 +168,7 @@ G_M39522_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=70 bbWeight=0 PerfScore 0.00-G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, 65
- je SHORT G_M39522_IG09
- cmp edx, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -222,54 +212,44 @@ G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG09 - G_M39522_IG02+RWD00 dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
-RWD140 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
-; Total bytes of code 401, prolog size 10, PerfScore 30.88, instruction count 93, allocated bytes for code 401 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 367, prolog size 10, PerfScore 28.75, instruction count 85, allocated bytes for code 367 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
1[System.__Canon]:ProcessMessage(System.Action
1[System.Canon],System.Collections.Generic.KeyValuePair`2[System.Canon,long]):this (FullOpts)@@ -21,9 +21,9 @@
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Collections.Generic.KeyValuePair`2[System.__Canon,long]>
; V11 PSPSym [V11,T07] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"
; V12 cse0 [V12,T05] ( 3, 3 ) ref -> rdx "CSE - aggressive"-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rdx "Spilling to split statement for tree"+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T03] ( 2, 4 ) long -> rdx "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -41,11 +41,7 @@ G_M41561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=0003 {rax rcx}, byrefRegs=0100 {r8}, gcvars, byref, isz
; gcrRegs +[rcx]
; byrRegs +[r8]- mov rdx, qword ptr [rcx]
- mov rdx, qword ptr [rdx+0x38]
- mov rdx, qword ptr [rdx]
- mov rdx, qword ptr [rdx+0x50]
- test rdx, rdx+ cmp dword ptr [rcx], ecx mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
mov rcx, gword ptr [rax+0x08]
@@ -54,7 +50,7 @@ G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
; byrRegs -[r8]
; gcr arg pop 0
jmp SHORT G_M41561_IG04- ;; size=29 bbWeight=1 PerfScore 17.25+ ;; size=14 bbWeight=1 PerfScore 12.00 G_M41561_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
@@ -137,7 +133,7 @@ G_M41561_IG13: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 25, PerfScore 34.75, instruction count 59, allocated bytes for code 200 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)+; Total bytes of code 185, prolog size 25, PerfScore 29.50, instruction count 55, allocated bytes for code 185 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -24,9 +24,9 @@
; V13 arg13 [V13,T47] ( 1, 0.50) ref -> [rbp+0x78] class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticBag>
; V14 arg14 [V14,T39] ( 2, 2 ) byref -> [rbp+0x80] single-def
; V15 arg15 [V15,T36] ( 3, 2 ) byref -> r12 single-def-; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x70] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>+; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x68] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> ; V17 loc1 [V17,T09] ( 6, 8 ) ref -> r13 class-hnd exact single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>-; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rbx class-hnd exact single-def <<unknown class>>+; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rsi class-hnd exact single-def <<unknown class>> ; V19 loc3 [V19,T03] ( 5, 17 ) int -> [rbp-0x44]
; V20 loc4 [V20,T01] ( 7, 25 ) int -> [rbp-0x48]
;* V21 loc5 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>
@@ -41,36 +41,36 @@
;* V30 tmp8 [V30 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V31 tmp9 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V32 tmp10 [V32 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"-; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> rdi class-hnd exact "Inlining Arg" <<unknown class>>+; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>> ; V34 tmp12 [V34,T00] ( 6, 48 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V35 tmp13 [V35,T07] ( 3, 12 ) int -> [rbp-0x4C] spill-single-def "Inline stloc first use temp"
; V36 tmp14 [V36,T24] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
;* V37 tmp15 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V38 tmp16 [V38,T06] ( 7, 12 ) ref -> rbx single-def "field V01.array (fldOffset=0x0)" P-INDEP
; V39 tmp17 [V39,T29] ( 2, 1.50) ref -> rsi single-def "field V02.array (fldOffset=0x0)" P-INDEP-; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> [rbp+0x28] single-def "field V03.array (fldOffset=0x0)" P-INDEP+; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> rdi single-def "field V03.array (fldOffset=0x0)" P-INDEP ; V41 tmp19 [V41,T48] ( 1, 0.50) ref -> [rbp+0x30] single-def "field V04.array (fldOffset=0x0)" P-INDEP
; V42 tmp20 [V42,T02] ( 3, 24 ) ref -> rcx "argument with side effect"-; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rdx "argument with side effect"+; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rcx "argument with side effect" ; V44 tmp22 [V44,T26] ( 2, 4 ) long -> rcx "argument with side effect"
; V45 tmp23 [V45,T27] ( 2, 4 ) long -> rcx "argument with side effect"
; V46 tmp24 [V46,T28] ( 2, 4 ) long -> rcx "argument with side effect"
; V47 PSPSym [V47,T44] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[V] "PSPSym"
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - aggressive"-; V49 cse1 [V49,T33] ( 3, 3 ) long -> [rbp-0x58] spill-single-def "CSE - moderate"
-; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rbx "CSE - moderate"
-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x60] spill-single-def "CSE - aggressive"
-; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x64] spill-single-def "CSE - aggressive"
-; V53 cse5 [V53,T17] ( 2, 5 ) int -> rbx hoist "CSE - moderate"+; V49 cse1 [V49,T33] ( 3, 3 ) long -> rdi "CSE - moderate"
+; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rdi "CSE - moderate"
+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x58] spill-single-def "CSE - aggressive"
+; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x5C] spill-single-def "CSE - aggressive"
+; V53 cse5 [V53,T17] ( 2, 5 ) int -> rdi hoist "CSE - moderate" ; V54 rat0 [V54,T18] ( 3, 4.40) long -> rcx "Spilling to split statement for tree"
; V55 rat1 [V55,T19] ( 3, 4 ) long -> rdx "runtime lookup"
; V56 rat2 [V56,T12] ( 3, 5.60) long -> rdx "fgMakeTemp is creating a new local variable"
;* V57 rat3 [V57,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V58 rat4 [V58,T13] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V58 rat4 [V58,T13] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V59 rat5 [V59,T38] ( 3, 2 ) long -> rcx "runtime lookup"
; V60 rat6 [V60,T34] ( 3, 2.80) long -> rcx "fgMakeTemp is creating a new local variable"-; V61 rat7 [V61,T21] ( 3, 4 ) long -> rax "runtime lookup"
-; V62 rat8 [V62,T14] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"+; V61 rat7 [V61,T21] ( 3, 4 ) long -> rdi "runtime lookup"
+; V62 rat8 [V62,T14] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" ; V63 rat9 [V63,T22] ( 3, 4 ) long -> rcx "runtime lookup"
; V64 rat10 [V64,T15] ( 3, 5.60) long -> rcx "fgMakeTemp is creating a new local variable"
; V65 rat11 [V65,T23] ( 3, 4 ) long -> rcx "runtime lookup"
@@ -96,24 +96,24 @@ G_M65396_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov qword ptr [rbp-0x40], rcx
mov gword ptr [rbp+0x10], rcx
; GC ptr vars +{V00}- mov gword ptr [rbp+0x28], r9
- ; GC ptr vars +{V40} mov r14, rcx
; gcrRegs +[r14]
mov rbx, rdx
; gcrRegs +[rbx]
mov rsi, r8
; gcrRegs +[rsi]+ mov rdi, r9
+ ; gcrRegs +[rdi] mov r13, gword ptr [rbp+0x38]
; gcrRegs +[r13]
mov r15, bword ptr [rbp+0x58]
; byrRegs +[r15]
mov r12, bword ptr [rbp+0x88]
; byrRegs +[r12]- ;; size=76 bbWeight=1 PerfScore 17.75
-G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+ ;; size=75 bbWeight=1 PerfScore 17.00
+G_M65396_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz mov r9, qword ptr [r14]- mov qword ptr [rbp-0x60], r9+ mov qword ptr [rbp-0x58], r9 mov rcx, r9
mov rdx, qword ptr [rcx+0x38]
mov rdx, qword ptr [rdx]
@@ -121,37 +121,32 @@ G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs
test rdx, rdx
je SHORT G_M65396_IG04
;; size=26 bbWeight=1 PerfScore 10.50-G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz jmp SHORT G_M65396_IG05
;; size=2 bbWeight=0.80 PerfScore 1.60-G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdx, rax
;; size=18 bbWeight=0.20 PerfScore 0.30-G_M65396_IG05: ; bbWeight=1, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG05: ; bbWeight=1, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, rdx
call [Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:GetInstance():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]]
; gcrRegs +[rax]
; gcr arg pop 0- mov gword ptr [rbp-0x70], rax+ mov gword ptr [rbp-0x68], rax ; GC ptr vars +{V16}
;; size=13 bbWeight=1 PerfScore 4.25-G_M65396_IG06: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz ; gcrRegs -[rax]
xor r10d, r10d- mov r9, qword ptr [rbp-0x60]
- mov rcx, qword ptr [r9+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx
- mov r11d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x64], r11d
- test r11d, r11d+ mov r9d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x5C], r9d
+ test r9d, r9d jle SHORT G_M65396_IG08- ;; size=34 bbWeight=1 PerfScore 11.75
-G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M65396_IG07: ; bbWeight=4, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz mov dword ptr [rbp-0x44], r10d
mov ecx, r10d
mov rcx, gword ptr [rbx+8*rcx+0x10]
@@ -160,55 +155,56 @@ G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=
; gcrRegs +[r8]
mov rdx, rbx
; gcrRegs +[rdx]- mov rdi, qword ptr [rcx]
- mov rdi, qword ptr [rdi+0x50]
- call [rdi]<unknown method>+ mov r11, qword ptr [rcx]
+ mov r11, qword ptr [r11+0x50]
+ call [r11]<unknown method> ; gcrRegs -[rcx rdx r8] +[rax]
; gcr arg pop 0- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x70]
- mov r8, gword ptr [rax+0x08]+ mov gword ptr [rbp-0x70], rax
+ ; GC ptr vars +{V33}
+ mov r8, gword ptr [rbp-0x68] ; gcrRegs +[r8]- mov gword ptr [rbp-0x78], r8+ mov r10, gword ptr [r8+0x08]
+ ; gcrRegs +[r10]
+ mov gword ptr [rbp-0x78], r10 ; GC ptr vars +{V34}- mov r10d, dword ptr [r8+0x10]
- inc r10d
- mov dword ptr [rbp-0x4C], r10d
- mov rcx, r8+ mov r9d, dword ptr [r10+0x10]
+ inc r9d
+ mov dword ptr [rbp-0x4C], r9d
+ mov rcx, r10 ; gcrRegs +[rcx]- mov edx, r10d+ mov edx, r9d call [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:EnsureCapacity(int):this]- ; gcrRegs -[rax rcx r8]+ ; gcrRegs -[rax rcx r8 r10] ; gcr arg pop 0
mov rax, gword ptr [rbp-0x78]
; gcrRegs +[rax]
movsxd rdx, dword ptr [rax+0x10]
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]- mov r8, rdi+ mov r8, gword ptr [rbp-0x70] ; gcrRegs +[r8]+ ; GC ptr vars -{V33} call CORINFO_HELP_ARRADDR_ST- ; gcrRegs -[rax rcx rdi r8]+ ; gcrRegs -[rax rcx r8] ; gcr arg pop 0- mov rdi, gword ptr [rbp-0x78]
- ; gcrRegs +[rdi]
- mov ecx, dword ptr [rbp-0x4C]
- mov dword ptr [rdi+0x10], ecx
- mov edi, dword ptr [rbp-0x44]
- ; gcrRegs -[rdi]
- inc edi
- mov ecx, dword ptr [rbp-0x64]
- cmp ecx, edi
- mov r10d, edi+ mov rcx, gword ptr [rbp-0x78]
+ ; gcrRegs +[rcx]
+ mov r9d, dword ptr [rbp-0x4C]
+ mov dword ptr [rcx+0x10], r9d
+ mov r10d, dword ptr [rbp-0x44]
+ inc r10d
+ mov ecx, dword ptr [rbp-0x5C]
+ ; gcrRegs -[rcx]
+ cmp ecx, r10d jg SHORT G_M65396_IG07- ;; size=111 bbWeight=4 PerfScore 154.00
-G_M65396_IG08: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref+ ;; size=116 bbWeight=4 PerfScore 159.00
+G_M65396_IG08: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref ; GC ptr vars -{V00 V34}
test r13, r13
je G_M65396_IG19
;; size=9 bbWeight=1 PerfScore 1.25-G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, r13
; gcrRegs +[rcx]
mov rax, qword ptr [r13]
@@ -218,34 +214,36 @@ G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRe
; gcr arg pop 0
test eax, eax
je G_M65396_IG19- mov rdi, gword ptr [rbp+0x30]
- ; gcrRegs +[rdi]
- mov gword ptr [rsp+0x20], rdi+ mov rcx, gword ptr [rbp+0x30]
+ ; gcrRegs +[rcx]
+ mov gword ptr [rsp+0x20], rcx ; gcr arg write
mov gword ptr [rsp+0x28], r13
; gcr arg write
movzx rcx, byte ptr [rbp+0x40]+ ; gcrRegs -[rcx] mov dword ptr [rsp+0x30], ecx
movzx r13, byte ptr [rbp+0x48]
; gcrRegs -[r13]
movzx rcx, r13b
mov dword ptr [rsp+0x38], ecx- mov rdi, gword ptr [rbp-0x70]
- mov gword ptr [rsp+0x40], rdi
- ; gcr arg write
- mov rax, gword ptr [rbp+0x50]+ mov rax, gword ptr [rbp-0x68] ; gcrRegs +[rax]
...
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)@@ -125,7 +125,7 @@
; V114 cse15 [V114,T64] ( 3, 24 ) ref -> [rbp-0x128] spill-single-def "CSE - conservative"
; V115 cse16 [V115,T90] ( 3, 3.84) int -> rdx "CSE - conservative"
; V116 cse17 [V116,T89] ( 3, 3.84) ref -> [rbp-0x130] spill-single-def "CSE - conservative"-; V117 cse18 [V117,T33] ( 10, 47 ) long -> r15 multi-def "CSE - moderate"+; V117 cse18 [V117,T33] ( 9, 46 ) long -> r15 multi-def "CSE - moderate" ; V118 cse19 [V118,T29] ( 6, 170 ) int -> r12 "CSE - moderate"
; V119 cse20 [V119,T32] ( 5, 152 ) byref -> [rbp-0x138] "CSE - moderate"
; V120 cse21 [V120,T54] ( 5, 42.08) int -> [rbp-0x9C] spill-single-def "CSE - moderate"
@@ -133,7 +133,7 @@
; V122 rat1 [V122,T84] ( 3, 4 ) long -> rax "runtime lookup"
; V123 rat2 [V123,T80] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;* V124 rat3 [V124,T85] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V125 rat4 [V125,T81] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V125 rat4 [V125,T81] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V126 rat5 [V126,T88] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V127 rat6 [V127,T74] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V128 rat7 [V128,T75] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable"
@@ -229,17 +229,13 @@ G_M32652_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
;; size=56 bbWeight=1 PerfScore 20.50
G_M32652_IG06: ; bbWeight=1, gcVars=00000000000400000000000004004002 {V00 V05 V06 V99}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]- mov rcx, qword ptr [r15+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx mov r12d, dword ptr [rbx+0x08]
mov eax, r12d
mov dword ptr [rbp-0x44], eax
mov r8d, 1
cmp eax, 1
jle G_M32652_IG69- ;; size=39 bbWeight=1 PerfScore 11.00+ ;; size=25 bbWeight=1 PerfScore 4.75 G_M32652_IG07: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r10d, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x9C], r10d
@@ -1355,7 +1351,7 @@ G_M32652_IG79: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2883, prolog size 65, PerfScore 24368.95, instruction count 687, allocated bytes for code 2883 (MethodHash=bdda8073) for method 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)+; Total bytes of code 2869, prolog size 65, PerfScore 24362.70, instruction count 683, allocated bytes for code 2869 (MethodHash=bdda8073) for method 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) ; ============================================================
Unwind Info:
@@ -75,10 +75,10 @@ G_M24707_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmp eax, r8d
jae SHORT G_M24707_IG03
add edx, eax- cmp byte ptr [rcx+rdx+0x20], 0
- ;; size=48 bbWeight=1 PerfScore 21.25
-G_M24707_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ movzx rcx, byte ptr [rcx+rdx+0x20] ; gcrRegs -[rcx]+ ;; size=48 bbWeight=1 PerfScore 20.25
+G_M24707_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, rsp
call G_M24707_IG10
;; size=8 bbWeight=1 PerfScore 1.25
@@ -199,7 +199,7 @@ G_M24707_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 388, prolog size 19, PerfScore 98.75, instruction count 105, allocated bytes for code 388 (MethodHash=009c9f7c) for method Program:Test() (FullOpts)+; Total bytes of code 388, prolog size 19, PerfScore 97.75, instruction count 105, allocated bytes for code 388 (MethodHash=009c9f7c) for method Program:Test() (FullOpts) ; ============================================================
Unwind Info:
@@ -34,7 +34,7 @@
; V22 tmp14 [V22,T05] ( 2, 32 ) ref -> rcx "argument with side effect"
; V23 tmp15 [V23,T13] ( 2, 4 ) ref -> rcx "argument with side effect"
; V24 PSPSym [V24,T15] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym"-; V25 cse0 [V25,T09] ( 3, 24 ) int -> rcx "CSE - aggressive"+; V25 cse0 [V25,T09] ( 2, 16 ) int -> rsi "CSE - aggressive" ;
; Lcl frame size = 136
@@ -79,16 +79,12 @@ G_M40783_IG03: ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov dword ptr [rbp-0x20], ecx
mov rcx, gword ptr [rbp-0x70]
; gcrRegs +[rcx]- mov ecx, dword ptr [rcx+0x08]
- ; gcrRegs -[rcx]
- mov esi, ecx
- mov rdx, gword ptr [rbp-0x70]
- ; gcrRegs +[rdx]
- mov gword ptr [rbp-0x28], rdx
- test ecx, ecx
- ;; size=51 bbWeight=8 PerfScore 142.00+ mov esi, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x70]
+ mov gword ptr [rbp-0x28], rcx
+ ;; size=47 bbWeight=8 PerfScore 138.00 G_M40783_IG04: ; bbWeight=8, gcVars=0000000000004002 {V02 V07}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref- ; gcrRegs -[rax rdx]+ ; gcrRegs -[rax rcx] lea rcx, [rbp-0x48]
mov rdx, gword ptr [rbp-0x70]
; gcrRegs +[rdx]
@@ -267,7 +263,7 @@ G_M40783_IG23: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 3.25
-; Total bytes of code 431, prolog size 55, PerfScore 556.33, instruction count 126, allocated bytes for code 431 (MethodHash=e65960b0) for method System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)+; Total bytes of code 427, prolog size 55, PerfScore 552.33, instruction count 124, allocated bytes for code 427 (MethodHash=e65960b0) for method System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts) ; ============================================================
Unwind Info:
@@ -20,7 +20,7 @@
; V09 tmp4 [V09,T03] ( 4, 4 ) int -> [rbp-0x58] do-not-enreg[H] hidden-struct-arg "field V07._length (fldOffset=0x8)" P-DEP
; V10 tmp5 [V10 ] ( 4, 4 ) struct (16) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
; V11 PSPSym [V11,T06] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym"-; V12 cse0 [V12,T05] ( 2, 1 ) int -> rcx "CSE - moderate"+;* V12 cse0 [V12,T05] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 152
@@ -57,8 +57,7 @@ G_M25713_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
G_M25713_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rcx+0x08]
; gcrRegs -[rcx]- test ecx, ecx
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M25713_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x48]
call [System.Security.Cryptography.DSAKeyFormatHelper:WritePkcs8(byref):System.Formats.Asn1.AsnWriter]
@@ -127,7 +126,7 @@ G_M25713_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 218, prolog size 58, PerfScore 42.46, instruction count 57, allocated bytes for code 218 (MethodHash=da139b8e) for method System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)+; Total bytes of code 216, prolog size 58, PerfScore 42.33, instruction count 56, allocated bytes for code 216 (MethodHash=da139b8e) for method System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts) ; ============================================================
Unwind Info:
@@ -36,7 +36,7 @@
;* V25 cse2 [V25,T10] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V26 cse3 [V26,T11] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V27 cse4 [V27,T12] ( 0, 0 ) int -> zero-ref "CSE - moderate"-; V28 cse5 [V28,T13] ( 2, 1 ) int -> rcx "CSE - moderate"+;* V28 cse5 [V28,T13] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 152
@@ -130,8 +130,7 @@ G_M11604_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M11604_IG13: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rcx+0x08]
; gcrRegs -[rcx]- test ecx, ecx
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M11604_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x48]
call [<unknown method>]
@@ -176,7 +175,7 @@ G_M11604_IG19: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 260, prolog size 64, PerfScore 56.46, instruction count 74, allocated bytes for code 260 (MethodHash=8001d2ab) for method System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)+; Total bytes of code 258, prolog size 64, PerfScore 56.33, instruction count 73, allocated bytes for code 258 (MethodHash=8001d2ab) for method System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -82,7 +82,7 @@
;* V70 cse0 [V70,T33] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V71 cse1 [V71,T34] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V72 cse2 [V72,T35] ( 0, 0 ) int -> zero-ref "CSE - moderate"-; V73 cse3 [V73,T36] ( 2, 1 ) int -> rcx "CSE - moderate"+;* V73 cse3 [V73,T36] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 280
@@ -184,8 +184,7 @@ G_M62798_IG04: ; bbWeight=1, gcrefRegs=4301 {rax r8 r9 r14}, byrefRegs=00
;; size=9 bbWeight=1 PerfScore 2.25
G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=4301 {rax r8 r9 r14}, byrefRegs=00C8 {rbx rsi rdi}, byref
mov ecx, dword ptr [rax+0x08]- test ecx, ecx
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M62798_IG06: ; bbWeight=1, gcrefRegs=4100 {r8 r14}, byrefRegs=00C8 {rbx rsi rdi}, byref
; gcrRegs -[rax r9]
lea rcx, [rbp-0x80]
@@ -579,7 +578,7 @@ G_M62798_IG44: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1161, prolog size 98, PerfScore 236.21, instruction count 268, allocated bytes for code 1161 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1159, prolog size 98, PerfScore 236.08, instruction count 267, allocated bytes for code 1159 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -82,7 +82,7 @@
;* V70 cse0 [V70,T33] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V71 cse1 [V71,T34] ( 0, 0 ) int -> zero-ref "CSE - moderate"
;* V72 cse2 [V72,T35] ( 0, 0 ) int -> zero-ref "CSE - moderate"-; V73 cse3 [V73,T36] ( 2, 1 ) int -> rcx "CSE - moderate"+;* V73 cse3 [V73,T36] ( 0, 0 ) int -> zero-ref "CSE - moderate" ;
; Lcl frame size = 280
@@ -184,8 +184,7 @@ G_M62798_IG04: ; bbWeight=1, gcrefRegs=4301 {rax r8 r9 r14}, byrefRegs=00
;; size=9 bbWeight=1 PerfScore 2.25
G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=4301 {rax r8 r9 r14}, byrefRegs=00C8 {rbx rsi rdi}, byref
mov ecx, dword ptr [rax+0x08]- test ecx, ecx
- ;; size=5 bbWeight=0.50 PerfScore 1.12+ ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M62798_IG06: ; bbWeight=1, gcrefRegs=4100 {r8 r14}, byrefRegs=00C8 {rbx rsi rdi}, byref
; gcrRegs -[rax r9]
lea rcx, [rbp-0x80]
@@ -579,7 +578,7 @@ G_M62798_IG44: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1161, prolog size 98, PerfScore 236.21, instruction count 268, allocated bytes for code 1161 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1159, prolog size 98, PerfScore 236.08, instruction count 267, allocated bytes for code 1159 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -230,9 +230,9 @@ G_M33602_IG09: ; bbWeight=0.50, isz, extend
mov gword ptr [rbp-0x48], rax
test rax, rax
je SHORT G_M33602_IG10- cmp dword ptr [rax+0x08], 0+ mov ecx, dword ptr [rax+0x08] mov rax, gword ptr [rbp-0xE8]- ;; size=57 bbWeight=0.50 PerfScore 6.75+ ;; size=56 bbWeight=0.50 PerfScore 6.25 G_M33602_IG10: ; bbWeight=0.50, gcVars=0000000000000020 {V10}, gcrefRegs=2041 {rax rsi r13}, byrefRegs=4000 {r14}, gcvars, byref, isz
cmp gword ptr [r14], 0
je SHORT G_M33602_IG11
@@ -576,7 +576,7 @@ G_M33602_IG36: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1029, prolog size 92, PerfScore 135.96, instruction count 280, allocated bytes for code 1029 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts)+; Total bytes of code 1028, prolog size 92, PerfScore 135.46, instruction count 280, allocated bytes for code 1028 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rbx +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rbx ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V43 rat0 [V43,T02] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 2, 2 ) int -> rbx "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 64
@@ -67,13 +67,13 @@ G_M1090_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebx, edx
mov edi, r8d
;; size=18 bbWeight=1 PerfScore 5.00-G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref+G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz test byte ptr [(reloc)], 1 ; global ptr- je G_M1090_IG07
- ;; size=13 bbWeight=1 PerfScore 4.00+ je SHORT G_M1090_IG07
+ ;; size=9 bbWeight=1 PerfScore 4.00 G_M1090_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
cmp ebx, 14- je G_M1090_IG08+ je SHORT G_M1090_IG08 cmp ebx, 12
je G_M1090_IG09
mov word ptr [rsp+0x28], bx
@@ -82,25 +82,19 @@ G_M1090_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byre
lea ecx, [rbx-0x02]
cmp ecx, 34
ja SHORT G_M1090_IG04- mov edx, ecx
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rdx]+ lea rdx, [reloc @RWD00]
+ mov edx, dword ptr [rdx+4*rcx] lea r8, G_M1090_IG02- add rcx, r8
- jmp rcx
- ;; size=60 bbWeight=1 PerfScore 11.75+ add rdx, r8
+ jmp rdx
+ ;; size=54 bbWeight=1 PerfScore 11.50 G_M1090_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rsi]- lea edx, [rbx-0x40]
- cmp edx, 9+ add ebx, -64
+ cmp ebx, 9 ja G_M1090_IG10- mov ecx, edx
- lea rdx, [reloc @RWD140]
- mov edx, dword ptr [rdx+4*rcx]
- lea rax, G_M1090_IG02
- add rdx, rax
- jmp rdx
- ;; size=36 bbWeight=0.50 PerfScore 3.88+ jmp G_M1090_IG10
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M1090_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0041 {rax rsi}, byref
; byrRegs +[rax rsi]
mov dword ptr [rax], edi
@@ -119,14 +113,14 @@ G_M1090_IG06: ; bbWeight=1, epilog, nogc, extend
pop rdi
ret
;; size=8 bbWeight=1 PerfScore 2.75-G_M1090_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, gcvars, byref+G_M1090_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, gcvars, byref, isz ; byrRegs -[rax]
mov rcx, 0xD1FFAB1E
mov edx, 0x5FF
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0- jmp G_M1090_IG03
- ;; size=25 bbWeight=0 PerfScore 0.00+ jmp SHORT G_M1090_IG03
+ ;; size=22 bbWeight=0 PerfScore 0.00 G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rsi]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -188,12 +182,7 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=70 bbWeight=0 PerfScore 0.00-G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ebx, 65
- je SHORT G_M1090_IG11
- cmp ebx, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M1090_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -237,54 +226,44 @@ G_M1090_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG11 - G_M1090_IG02+RWD00 dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG05 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG05 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02 dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG05 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG10 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02
dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
-RWD140 dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02 dd G_M1090_IG10 - G_M1090_IG02- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02
- dd G_M1090_IG11 - G_M1090_IG02+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
+ dd G_M1090_IG10 - G_M1090_IG02
-; Total bytes of code 438, prolog size 10, PerfScore 35.62, instruction count 102, allocated bytes for code 438 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 398, prolog size 10, PerfScore 33.25, instruction count 93, allocated bytes for code 398 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -19,9 +19,9 @@
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.__Canon>
; V09 tmp6 [V09,T09] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"-; V11 rat0 [V11,T05] ( 2, 4 ) long -> rdx "Spilling to split statement for tree"+;* V11 rat0 [V11,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T02] ( 2, 4 ) long -> rdx "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 56
@@ -42,12 +42,8 @@ G_M1791_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=32 bbWeight=1 PerfScore 7.25
G_M1791_IG02: ; bbWeight=1, gcVars=000000000000000A {V00 V02}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]- mov rdx, qword ptr [rcx]
- mov rdx, qword ptr [rdx+0x38]
- mov rdx, qword ptr [rdx]
- mov rdx, qword ptr [rdx+0x28]
- test rdx, rdx
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M1791_IG03: ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
mov r8, rax
; gcrRegs +[r8]
@@ -128,7 +124,7 @@ G_M1791_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 32, PerfScore 30.19, instruction count 57, allocated bytes for code 187 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)+; Total bytes of code 172, prolog size 32, PerfScore 24.94, instruction count 53, allocated bytes for code 172 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
@@ -19,9 +19,9 @@
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.__Canon>
; V09 tmp6 [V09,T09] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V10 PSPSym [V10,T08] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"-; V11 rat0 [V11,T05] ( 2, 4 ) long -> rdx "Spilling to split statement for tree"+;* V11 rat0 [V11,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T02] ( 2, 4 ) long -> rdx "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 56
@@ -42,12 +42,8 @@ G_M1791_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=32 bbWeight=1 PerfScore 7.25
G_M1791_IG02: ; bbWeight=1, gcVars=000000000000000A {V00 V02}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]- mov rdx, qword ptr [rcx]
- mov rdx, qword ptr [rdx+0x38]
- mov rdx, qword ptr [rdx]
- mov rdx, qword ptr [rdx+0x28]
- test rdx, rdx
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M1791_IG03: ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
mov r8, rax
; gcrRegs +[r8]
@@ -128,7 +124,7 @@ G_M1791_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 32, PerfScore 30.19, instruction count 57, allocated bytes for code 187 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)+; Total bytes of code 172, prolog size 32, PerfScore 24.94, instruction count 53, allocated bytes for code 172 (MethodHash=29e0f900) for method Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts) ; ============================================================
Unwind Info:
@@ -254,8 +254,8 @@ G_M33602_IG09: ; bbWeight=0.50, gcrefRegs=A0C4 {rdx rsi rdi r13 r15}, byr
mov gword ptr [rbp-0x48], rax
test rax, rax
je SHORT G_M33602_IG10- cmp dword ptr [rax+0x08], 0
- ;; size=103 bbWeight=0.50 PerfScore 11.00+ mov ecx, dword ptr [rax+0x08]
+ ;; size=102 bbWeight=0.50 PerfScore 10.50 G_M33602_IG10: ; bbWeight=0.50, gcVars=0000000000000040 {V10}, gcrefRegs=2041 {rax rsi r13}, byrefRegs=4000 {r14}, gcvars, byref, isz
cmp gword ptr [r14], 0
je SHORT G_M33602_IG11
@@ -638,7 +638,7 @@ G_M33602_IG41: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1128, prolog size 93, PerfScore 124.08, instruction count 309, allocated bytes for code 1128 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts)+; Total bytes of code 1127, prolog size 93, PerfScore 123.58, instruction count 309, allocated bytes for code 1127 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -238,9 +238,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=00000000000000D8 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x58], rax
test rax, rax
je SHORT G_M62798_IG04- cmp dword ptr [rax+0x08], 0+ mov r8d, dword ptr [rax+0x08] mov rax, gword ptr [rbp-0xA0]- ;; size=20 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=040D {rax rdx rbx r10}, byrefRegs=60C0 {rsi rdi r13 r14}, byref, isz
lea r8, bword ptr [r10+0x10]
; byrRegs +[r8]
@@ -662,7 +662,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 1127, prolog size 61, PerfScore 238.08, instruction count 307, allocated bytes for code 1127 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1127, prolog size 61, PerfScore 237.08, instruction count 307, allocated bytes for code 1127 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -241,9 +241,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=00000000000000D8 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x58], rax
test rax, rax
je SHORT G_M62798_IG04- cmp dword ptr [rax+0x08], 0+ mov r8d, dword ptr [rax+0x08] mov rax, gword ptr [rbp-0xB0]- ;; size=20 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=040D {rax rdx rbx r10}, byrefRegs=60C0 {rsi rdi r13 r14}, byref, isz
lea r8, bword ptr [r10+0x10]
; byrRegs +[r8]
@@ -660,7 +660,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 1145, prolog size 68, PerfScore 242.58, instruction count 305, allocated bytes for code 1145 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1145, prolog size 68, PerfScore 241.58, instruction count 305, allocated bytes for code 1145 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -18,10 +18,10 @@
; V07 tmp4 [V07,T05] ( 2, 4 ) ref -> r8 single-def "argument with side effect"
; V08 tmp5 [V08,T09] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V09 PSPSym [V09,T08] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"-; V10 cse0 [V10,T06] ( 5, 3 ) long -> rsi multi-def "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 4 ) long -> rdx "Spilling to split statement for tree"+; V10 cse0 [V10,T06] ( 4, 2 ) long -> rsi multi-def "CSE - aggressive"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V13 rat2 [V13,T01] ( 2, 4 ) long -> rdx "fgMakeTemp is creating a new local variable"+;* V13 rat2 [V13,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -44,12 +44,7 @@ G_M3138_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
G_M3138_IG02: ; bbWeight=1, gcVars=0000000000000005 {V00 V02}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
mov rsi, qword ptr [rcx]- mov rdx, rsi
- mov rdx, qword ptr [rdx+0x38]
- mov rdx, qword ptr [rdx]
- mov rdx, qword ptr [rdx+0x128]
- test rdx, rdx
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M3138_IG03: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rdx, qword ptr [rsi+0x38]
@@ -127,7 +122,7 @@ G_M3138_IG08: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 209, prolog size 33, PerfScore 33.00, instruction count 60, allocated bytes for code 209 (MethodHash=ea9cf3bd) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1)+; Total bytes of code 189, prolog size 33, PerfScore 26.50, instruction count 55, allocated bytes for code 189 (MethodHash=ea9cf3bd) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1) ; ============================================================
Unwind Info:
@@ -20,10 +20,10 @@
; V08 tmp6 [V08,T04] ( 3, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <System.__Canon>
; V09 tmp7 [V09,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V10 PSPSym [V10,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"-; V11 cse0 [V11,T06] ( 5, 3 ) long -> rbx multi-def "CSE - aggressive"
-; V12 rat0 [V12,T03] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+; V11 cse0 [V11,T06] ( 4, 2 ) long -> rbx multi-def "CSE - aggressive"
+;* V12 rat0 [V12,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T01] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 56
@@ -42,12 +42,7 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000005 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]
mov rbx, qword ptr [rcx]- mov rax, rbx
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xD8]
- test rax, rax
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=3 bbWeight=1 PerfScore 2.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rax, qword ptr [rbx+0x38]
@@ -143,7 +138,7 @@ G_M44994_IG10: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 243, prolog size 27, PerfScore 45.54, instruction count 66, allocated bytes for code 243 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)+; Total bytes of code 223, prolog size 27, PerfScore 39.04, instruction count 61, allocated bytes for code 223 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1) ; ============================================================
Unwind Info:
@@ -21,9 +21,9 @@
; V09 tmp7 [V09,T05] ( 4, 3.05) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -40,12 +40,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xE0]
- test rax, rax
- ;; size=20 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -151,7 +147,7 @@ G_M44994_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 230, prolog size 26, PerfScore 43.41, instruction count 65, allocated bytes for code 230 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)+; Total bytes of code 212, prolog size 26, PerfScore 38.16, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1) ; ============================================================
Unwind Info:
1[ushort],System.ReadOnlySpan
1[ubyte],byref):this (Tier1)@@ -171,10 +171,10 @@ G_M7392_IG03: ; bbWeight=1, gcrefRegs=0288 {rbx rdi r9}, byrefRegs=6040 {
mov gword ptr [rbp-0x88], rdx
test rdx, rdx
je SHORT G_M7392_IG04- cmp dword ptr [rdx+0x08], 0
- ;; size=92 bbWeight=1 PerfScore 17.75
-G_M7392_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref+ mov edx, dword ptr [rdx+0x08] ; gcrRegs -[rdx]+ ;; size=91 bbWeight=1 PerfScore 16.75
+G_M7392_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref mov rdx, 0xD1FFAB1E ; System.Security.Cryptography.DSACng
cmp qword ptr [rbx], rdx
jne G_M7392_IG28
@@ -759,7 +759,7 @@ G_M7392_IG39: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1787, prolog size 106, PerfScore 226.49, instruction count 384, allocated bytes for code 1787 (MethodHash=88e7e31f) for method System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (Tier1)+; Total bytes of code 1786, prolog size 106, PerfScore 225.49, instruction count 384, allocated bytes for code 1786 (MethodHash=88e7e31f) for method System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (Tier1) ; ============================================================
Unwind Info:
1[System.ReadOnlyMemory
1[ubyte]],System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte],System.Span`1[ubyte]):int (Tier1)@@ -342,8 +342,8 @@ G_M52179_IG17: ; bbWeight=1, gcVars=00000000000000000600000000000020 {V07
mov gword ptr [rbp-0xB0], r13
test r13, r13
je SHORT G_M52179_IG18- cmp dword ptr [r13+0x08], 0
- ;; size=17 bbWeight=1 PerfScore 5.25+ mov ecx, dword ptr [r13+0x08]
+ ;; size=16 bbWeight=1 PerfScore 4.25 G_M52179_IG18: ; bbWeight=1, gcrefRegs=6000 {r13 r14}, byrefRegs=00C0 {rsi rdi}, byref, isz
test r13, r13
jne SHORT G_M52179_IG20
@@ -1078,7 +1078,7 @@ RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E0039
RWD32 dq 0031002E00300034h, 0034003500330031h, 002E0031002E0039h, 00320031002E0035h
-; Total bytes of code 2076, prolog size 115, PerfScore 314.49, instruction count 526, allocated bytes for code 2076 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)+; Total bytes of code 2075, prolog size 115, PerfScore 313.49, instruction count 526, allocated bytes for code 2075 (MethodHash=d4fe342c) for method System.Security.Cryptography.PasswordBasedEncryption:Pbes2Decrypt(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1) ; ============================================================
Unwind Info:
@@ -200,10 +200,10 @@ G_M29051_IG03: ; bbWeight=1, gcrefRegs=0188 {rbx rdi r8}, byrefRegs=4040
je SHORT G_M29051_IG05
;; size=59 bbWeight=1 PerfScore 11.00
G_M29051_IG04: ; bbWeight=1.33, gcrefRegs=000C {rdx rbx}, byrefRegs=0040 {rsi}, byref- cmp dword ptr [rdx+0x08], 0
- ;; size=4 bbWeight=1.33 PerfScore 4.00
-G_M29051_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref+ mov edx, dword ptr [rdx+0x08] ; gcrRegs -[rdx]+ ;; size=3 bbWeight=1.33 PerfScore 2.67
+G_M29051_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref mov rdx, 0xD1FFAB1E ; System.Security.Cryptography.DSACng
cmp qword ptr [rbx], rdx
jne G_M29051_IG49
@@ -1059,7 +1059,7 @@ G_M29051_IG60: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2486, prolog size 97, PerfScore 328.75, instruction count 552, allocated bytes for code 2486 (MethodHash=a0a18e84) for method System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)+; Total bytes of code 2485, prolog size 97, PerfScore 327.42, instruction count 552, allocated bytes for code 2485 (MethodHash=a0a18e84) for method System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rdx +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rdx ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V43 rat0 [V43,T02] ( 3, 6 ) int -> r10 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> r9 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 2, 2 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 64
@@ -66,7 +66,7 @@ G_M39522_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp edx, 14- je G_M39522_IG06+ je SHORT G_M39522_IG06 cmp edx, 12
je G_M39522_IG07
mov word ptr [rsp+0x28], dx
@@ -75,25 +75,20 @@ G_M39522_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
lea r10d, [rdx-0x02]
cmp r10d, 34
ja SHORT G_M39522_IG03- mov r9d, r10d+ mov edx, r10d lea r10, [reloc @RWD00]- mov r10d, dword ptr [r10+4*r9]
- lea r11, G_M39522_IG02
- add r10, r11+ mov r10d, dword ptr [r10+4*rdx]
+ lea r9, G_M39522_IG02
+ add r10, r9 jmp r10- ;; size=65 bbWeight=1 PerfScore 11.75+ ;; size=61 bbWeight=1 PerfScore 11.75 G_M39522_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rcx]- lea r9d, [rdx-0x40]
- cmp r9d, 9+ add edx, -64
+ cmp edx, 9 ja G_M39522_IG08- mov ecx, r9d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rcx]
- lea r8, G_M39522_IG02
- add rax, r8
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M39522_IG08
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M39522_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref
; byrRegs +[rax rcx]
mov dword ptr [rax], r8d
@@ -173,12 +168,7 @@ G_M39522_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=70 bbWeight=0 PerfScore 0.00-G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, 65
- je SHORT G_M39522_IG09
- cmp edx, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M39522_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -222,54 +212,44 @@ G_M39522_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M39522_IG09 - G_M39522_IG02+RWD00 dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG04 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG04 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02 dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG04 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG08 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02
dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
-RWD140 dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02 dd G_M39522_IG08 - G_M39522_IG02- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02
- dd G_M39522_IG09 - G_M39522_IG02+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
+ dd G_M39522_IG08 - G_M39522_IG02
-; Total bytes of code 401, prolog size 10, PerfScore 30.88, instruction count 93, allocated bytes for code 401 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 367, prolog size 10, PerfScore 28.75, instruction count 85, allocated bytes for code 367 (MethodHash=0f16659d) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
@@ -16,7 +16,7 @@
;* V05 loc2 [V05,T11] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) int -> zero-ref
;* V07 loc4 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.ValueTuple`2[int,int]>-; V08 loc5 [V08,T05] ( 5, 2.50) int -> rdx +; V08 loc5 [V08,T05] ( 3, 2.50) int -> rdx ;* V09 loc6 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 loc7 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -52,7 +52,7 @@
; V41 tmp30 [V41,T21] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V43 rat0 [V43,T02] ( 3, 6 ) int -> r10 "ReplaceWithLclVar is creating a new local variable"-; V44 rat1 [V44,T04] ( 3, 3 ) int -> r9 "ReplaceWithLclVar is creating a new local variable"+; V44 rat1 [V44,T04] ( 2, 2 ) int -> rdx "ReplaceWithLclVar is creating a new local variable" ;
; Lcl frame size = 64
@@ -66,7 +66,7 @@ G_M1090_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp edx, 14- je G_M1090_IG06+ je SHORT G_M1090_IG06 cmp edx, 12
je G_M1090_IG07
mov word ptr [rsp+0x28], dx
@@ -75,25 +75,20 @@ G_M1090_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byre
lea r10d, [rdx-0x02]
cmp r10d, 34
ja SHORT G_M1090_IG03- mov r9d, r10d+ mov edx, r10d lea r10, [reloc @RWD00]- mov r10d, dword ptr [r10+4*r9]
- lea r11, G_M1090_IG02
- add r10, r11+ mov r10d, dword ptr [r10+4*rdx]
+ lea r9, G_M1090_IG02
+ add r10, r9 jmp r10- ;; size=65 bbWeight=1 PerfScore 11.75+ ;; size=61 bbWeight=1 PerfScore 11.75 G_M1090_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax rcx]- lea r9d, [rdx-0x40]
- cmp r9d, 9+ add edx, -64
+ cmp edx, 9 ja G_M1090_IG08- mov ecx, r9d
- lea rax, [reloc @RWD140]
- mov eax, dword ptr [rax+4*rcx]
- lea r8, G_M1090_IG02
- add rax, r8
- jmp rax
- ;; size=39 bbWeight=0.50 PerfScore 3.88+ jmp G_M1090_IG08
+ ;; size=17 bbWeight=0.50 PerfScore 1.75 G_M1090_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref
; byrRegs +[rax rcx]
mov dword ptr [rax], r8d
@@ -173,12 +168,7 @@ G_M1090_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=70 bbWeight=0 PerfScore 0.00-G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, 65
- je SHORT G_M1090_IG09
- cmp edx, 70
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M1090_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -222,54 +212,44 @@ G_M1090_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=106 bbWeight=0 PerfScore 0.00-RWD00 dd G_M1090_IG09 - G_M1090_IG02+RWD00 dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG04 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG04 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02 dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG04 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG08 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02
dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
-RWD140 dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02 dd G_M1090_IG08 - G_M1090_IG02- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02
- dd G_M1090_IG09 - G_M1090_IG02+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
+ dd G_M1090_IG08 - G_M1090_IG02
-; Total bytes of code 401, prolog size 10, PerfScore 30.88, instruction count 93, allocated bytes for code 401 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)+; Total bytes of code 367, prolog size 10, PerfScore 28.75, instruction count 85, allocated bytes for code 367 (MethodHash=53a5fbbd) for method System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts) ; ============================================================
Unwind Info:
1[System.__Canon]:ProcessMessage(System.Action
1[System.Canon],System.Collections.Generic.KeyValuePair`2[System.Canon,long]):this (FullOpts)@@ -21,9 +21,9 @@
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Collections.Generic.KeyValuePair`2[System.__Canon,long]>
; V11 PSPSym [V11,T07] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"
; V12 cse0 [V12,T05] ( 3, 3 ) ref -> rdx "CSE - aggressive"-; V13 rat0 [V13,T04] ( 2, 4 ) long -> rdx "Spilling to split statement for tree"+;* V13 rat0 [V13,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V14 rat1 [V14,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V15 rat2 [V15,T03] ( 2, 4 ) long -> rdx "fgMakeTemp is creating a new local variable"+;* V15 rat2 [V15,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -41,11 +41,7 @@ G_M41561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=0003 {rax rcx}, byrefRegs=0100 {r8}, gcvars, byref, isz
; gcrRegs +[rcx]
; byrRegs +[r8]- mov rdx, qword ptr [rcx]
- mov rdx, qword ptr [rdx+0x38]
- mov rdx, qword ptr [rdx]
- mov rdx, qword ptr [rdx+0x50]
- test rdx, rdx+ cmp dword ptr [rcx], ecx mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
mov rcx, gword ptr [rax+0x08]
@@ -54,7 +50,7 @@ G_M41561_IG02: ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
; byrRegs -[r8]
; gcr arg pop 0
jmp SHORT G_M41561_IG04- ;; size=29 bbWeight=1 PerfScore 17.25+ ;; size=14 bbWeight=1 PerfScore 12.00 G_M41561_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
@@ -137,7 +133,7 @@ G_M41561_IG13: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 25, PerfScore 34.75, instruction count 59, allocated bytes for code 200 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)+; Total bytes of code 185, prolog size 25, PerfScore 29.50, instruction count 55, allocated bytes for code 185 (MethodHash=cfcc5da6) for method System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts) ; ============================================================
Unwind Info:
@@ -254,8 +254,8 @@ G_M33602_IG09: ; bbWeight=0.50, gcrefRegs=A0C4 {rdx rsi rdi r13 r15}, byr
mov gword ptr [rbp-0x48], rax
test rax, rax
je SHORT G_M33602_IG10- cmp dword ptr [rax+0x08], 0
- ;; size=103 bbWeight=0.50 PerfScore 11.00+ mov ecx, dword ptr [rax+0x08]
+ ;; size=102 bbWeight=0.50 PerfScore 10.50 G_M33602_IG10: ; bbWeight=0.50, gcVars=0000000000000040 {V10}, gcrefRegs=2041 {rax rsi r13}, byrefRegs=4000 {r14}, gcvars, byref, isz
cmp gword ptr [r14], 0
je SHORT G_M33602_IG11
@@ -638,7 +638,7 @@ G_M33602_IG41: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1128, prolog size 93, PerfScore 124.08, instruction count 309, allocated bytes for code 1128 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts)+; Total bytes of code 1127, prolog size 93, PerfScore 123.58, instruction count 309, allocated bytes for code 1127 (MethodHash=5ccd7cbd) for method Internal.Cryptography.Pal.Windows.DecryptorPalWindows:TryDecrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.AsymmetricAlgorithm,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,byref):System.Security.Cryptography.Pkcs.ContentInfo:this (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -236,9 +236,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=00000000000000D8 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x58], rax
test rax, rax
je SHORT G_M62798_IG04- cmp dword ptr [rax+0x08], 0+ mov r8d, dword ptr [rax+0x08] mov rax, gword ptr [rbp-0xB0]- ;; size=20 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=040D {rax rdx rbx r10}, byrefRegs=60C0 {rsi rdi r13 r14}, byref, isz
lea r8, bword ptr [r10+0x10]
; byrRegs +[r8]
@@ -655,7 +655,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 1125, prolog size 68, PerfScore 235.08, instruction count 301, allocated bytes for code 1125 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1125, prolog size 68, PerfScore 234.08, instruction count 301, allocated bytes for code 1125 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
1[ubyte],System.ReadOnlySpan
1[ubyte],System.ReadOnlySpan1[ubyte],System.Span
1[ubyte]):int (FullOpts)@@ -234,9 +234,9 @@ G_M62798_IG03: ; bbWeight=1, gcVars=00000000000000D8 {V05 V06 V07 V08}, g
mov gword ptr [rbp-0x58], rax
test rax, rax
je SHORT G_M62798_IG04- cmp dword ptr [rax+0x08], 0+ mov r8d, dword ptr [rax+0x08] mov rax, gword ptr [rbp-0xA0]- ;; size=20 bbWeight=1 PerfScore 6.25+ ;; size=20 bbWeight=1 PerfScore 5.25 G_M62798_IG04: ; bbWeight=1, gcrefRegs=040D {rax rdx rbx r10}, byrefRegs=60C0 {rsi rdi r13 r14}, byref, isz
lea r8, bword ptr [r10+0x10]
; byrRegs +[r8]
@@ -658,7 +658,7 @@ G_M62798_IG36: ; bbWeight=1, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 1100, prolog size 61, PerfScore 230.58, instruction count 303, allocated bytes for code 1100 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)+; Total bytes of code 1100, prolog size 61, PerfScore 229.58, instruction count 303, allocated bytes for code 1100 (MethodHash=04a50ab1) for method System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ; ============================================================
Unwind Info:
@@ -20,9 +20,9 @@
; V09 tmp7 [V09,T05] ( 4, 4 ) int -> r10 "Inline stloc first use temp"
; V10 tmp8 [V10,T10] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V11 PSPSym [V11,T09] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"-; V12 rat0 [V12,T04] ( 2, 4 ) long -> rax "Spilling to split statement for tree"+;* V12 rat0 [V12,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V14 rat2 [V14,T02] ( 2, 4 ) long -> rax "fgMakeTemp is creating a new local variable"+;* V14 rat2 [V14,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 48
@@ -39,12 +39,8 @@ G_M44994_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=26 bbWeight=1 PerfScore 5.75
G_M44994_IG02: ; bbWeight=1, gcVars=0000000000000009 {V00 V01}, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx rdx]- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x60]
- test rax, rax
- ;; size=17 bbWeight=1 PerfScore 8.25+ cmp dword ptr [rcx], ecx
+ ;; size=2 bbWeight=1 PerfScore 3.00 G_M44994_IG03: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
mov r8, rdx
; gcrRegs +[r8]
@@ -148,7 +144,7 @@ G_M44994_IG12: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 227, prolog size 26, PerfScore 47.62, instruction count 65, allocated bytes for code 227 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)+; Total bytes of code 212, prolog size 26, PerfScore 42.38, instruction count 61, allocated bytes for code 212 (MethodHash=21a4503d) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts) ; ============================================================
Unwind Info:
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;-; V00 this [V00,T00] ( 6, 5.50) ref -> [rbp+0x10] this class-hnd EH-live single-def <System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]>+; V00 this [V00,T00] ( 5, 4.50) ref -> [rbp+0x10] this class-hnd EH-live single-def <System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]> ; V01 arg1 [V01 ] ( 4, 4 ) struct ( 8) [rbp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Threading.CancellationToken>
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Threading.CancellationTokenRegistration>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Runtime.CompilerServices.TaskAwaiter`1[System.__Canon]>
@@ -61,9 +61,9 @@
; V50 rat0 [V50,T04] ( 3, 4.40) long -> rdx "Spilling to split statement for tree"
; V51 rat1 [V51,T07] ( 3, 4 ) long -> rax "runtime lookup"
; V52 rat2 [V52,T01] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"-; V53 rat3 [V53,T05] ( 2, 4 ) long -> rcx "Spilling to split statement for tree"+;* V53 rat3 [V53,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V54 rat4 [V54,T18] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V55 rat5 [V55,T02] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V55 rat5 [V55,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;
; Lcl frame size = 104
@@ -200,20 +200,13 @@ G_M33299_IG12: ; bbWeight=1, gcVars=0000000000000201 {V00 V40}, gcrefRegs
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]- mov r9, gword ptr [rbp+0x10]
- ; gcrRegs +[r9]
- mov rcx, qword ptr [r9]
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx+0x08]
- mov rcx, qword ptr [rcx+0x18]
- test rcx, rcx mov ecx, dword ptr [rbx+0x34]
and ecx, 0xD1FFAB1E
cmp ecx, 0xD1FFAB1E
je SHORT G_M33299_IG14- ;; size=58 bbWeight=1 PerfScore 22.00+ ;; size=36 bbWeight=1 PerfScore 12.75 G_M33299_IG13: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref- ; gcrRegs -[rax r9]+ ; gcrRegs -[rax] mov rcx, rbx
; gcrRegs +[rcx]
xor edx, edx
@@ -373,7 +366,7 @@ G_M33299_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 590, prolog size 41, PerfScore 98.44, instruction count 166, allocated bytes for code 590 (MethodHash=dea97dec) for method System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)+; Total bytes of code 568, prolog size 41, PerfScore 89.19, instruction count 160, allocated bytes for code 568 (MethodHash=dea97dec) for method System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts) ; ============================================================
Unwind Info:
2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray
1[System.Canon],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CommonReferenceManager
2+ResolvedReference[System.Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager
2+BoundInputAssembly[System.Canon,System.Canon][]:this (FullOpts)@@ -24,9 +24,9 @@
; V13 arg13 [V13,T47] ( 1, 0.50) ref -> [rbp+0x78] class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticBag>
; V14 arg14 [V14,T39] ( 2, 2 ) byref -> [rbp+0x80] single-def
; V15 arg15 [V15,T36] ( 3, 2 ) byref -> r12 single-def-; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x70] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>+; V16 loc0 [V16,T05] ( 9, 15.50) ref -> [rbp-0x68] class-hnd exact EH-live spill-single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]> ; V17 loc1 [V17,T09] ( 6, 8 ) ref -> r13 class-hnd exact single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>-; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rbx class-hnd exact single-def <<unknown class>>+; V18 loc2 [V18,T37] ( 3, 2 ) ref -> rsi class-hnd exact single-def <<unknown class>> ; V19 loc3 [V19,T03] ( 5, 17 ) int -> [rbp-0x44]
; V20 loc4 [V20,T01] ( 7, 25 ) int -> [rbp-0x48]
;* V21 loc5 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]>
@@ -41,36 +41,36 @@
;* V30 tmp8 [V30 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V31 tmp9 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V32 tmp10 [V32 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"-; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> rdi class-hnd exact "Inlining Arg" <<unknown class>>+; V33 tmp11 [V33,T04] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>> ; V34 tmp12 [V34,T00] ( 6, 48 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V35 tmp13 [V35,T07] ( 3, 12 ) int -> [rbp-0x4C] spill-single-def "Inline stloc first use temp"
; V36 tmp14 [V36,T24] ( 2, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
;* V37 tmp15 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V38 tmp16 [V38,T06] ( 7, 12 ) ref -> rbx single-def "field V01.array (fldOffset=0x0)" P-INDEP
; V39 tmp17 [V39,T29] ( 2, 1.50) ref -> rsi single-def "field V02.array (fldOffset=0x0)" P-INDEP-; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> [rbp+0x28] single-def "field V03.array (fldOffset=0x0)" P-INDEP+; V40 tmp18 [V40,T30] ( 2, 1.50) ref -> rdi single-def "field V03.array (fldOffset=0x0)" P-INDEP ; V41 tmp19 [V41,T48] ( 1, 0.50) ref -> [rbp+0x30] single-def "field V04.array (fldOffset=0x0)" P-INDEP
; V42 tmp20 [V42,T02] ( 3, 24 ) ref -> rcx "argument with side effect"-; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rdx "argument with side effect"+; V43 tmp21 [V43,T25] ( 2, 4 ) long -> rcx "argument with side effect" ; V44 tmp22 [V44,T26] ( 2, 4 ) long -> rcx "argument with side effect"
; V45 tmp23 [V45,T27] ( 2, 4 ) long -> rcx "argument with side effect"
; V46 tmp24 [V46,T28] ( 2, 4 ) long -> rcx "argument with side effect"
; V47 PSPSym [V47,T44] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[V] "PSPSym"
;* V48 cse0 [V48,T45] ( 0, 0 ) long -> zero-ref "CSE - aggressive"-; V49 cse1 [V49,T33] ( 3, 3 ) long -> [rbp-0x58] spill-single-def "CSE - moderate"
-; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rbx "CSE - moderate"
-; V51 cse3 [V51,T10] ( 11, 7.20) long -> [rbp-0x60] spill-single-def "CSE - aggressive"
-; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x64] spill-single-def "CSE - aggressive"
-; V53 cse5 [V53,T17] ( 2, 5 ) int -> rbx hoist "CSE - moderate"+; V49 cse1 [V49,T33] ( 3, 3 ) long -> rdi "CSE - moderate"
+; V50 cse2 [V50,T32] ( 3, 3 ) ref -> rdi "CSE - moderate"
+; V51 cse3 [V51,T10] ( 10, 6.20) long -> [rbp-0x58] spill-single-def "CSE - aggressive"
+; V52 cse4 [V52,T11] ( 3, 6 ) int -> [rbp-0x5C] spill-single-def "CSE - aggressive"
+; V53 cse5 [V53,T17] ( 2, 5 ) int -> rdi hoist "CSE - moderate" ; V54 rat0 [V54,T18] ( 3, 4.40) long -> rcx "Spilling to split statement for tree"
; V55 rat1 [V55,T19] ( 3, 4 ) long -> rdx "runtime lookup"
; V56 rat2 [V56,T12] ( 3, 5.60) long -> rdx "fgMakeTemp is creating a new local variable"
;* V57 rat3 [V57,T20] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V58 rat4 [V58,T13] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V58 rat4 [V58,T13] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V59 rat5 [V59,T38] ( 3, 2 ) long -> rcx "runtime lookup"
; V60 rat6 [V60,T34] ( 3, 2.80) long -> rcx "fgMakeTemp is creating a new local variable"-; V61 rat7 [V61,T21] ( 3, 4 ) long -> rax "runtime lookup"
-; V62 rat8 [V62,T14] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"+; V61 rat7 [V61,T21] ( 3, 4 ) long -> rdi "runtime lookup"
+; V62 rat8 [V62,T14] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" ; V63 rat9 [V63,T22] ( 3, 4 ) long -> rcx "runtime lookup"
; V64 rat10 [V64,T15] ( 3, 5.60) long -> rcx "fgMakeTemp is creating a new local variable"
; V65 rat11 [V65,T23] ( 3, 4 ) long -> rcx "runtime lookup"
@@ -96,24 +96,24 @@ G_M65396_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov qword ptr [rbp-0x40], rcx
mov gword ptr [rbp+0x10], rcx
; GC ptr vars +{V00}- mov gword ptr [rbp+0x28], r9
- ; GC ptr vars +{V40} mov r14, rcx
; gcrRegs +[r14]
mov rbx, rdx
; gcrRegs +[rbx]
mov rsi, r8
; gcrRegs +[rsi]+ mov rdi, r9
+ ; gcrRegs +[rdi] mov r13, gword ptr [rbp+0x38]
; gcrRegs +[r13]
mov r15, bword ptr [rbp+0x58]
; byrRegs +[r15]
mov r12, bword ptr [rbp+0x88]
; byrRegs +[r12]- ;; size=76 bbWeight=1 PerfScore 17.75
-G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+ ;; size=75 bbWeight=1 PerfScore 17.00
+G_M65396_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz mov r9, qword ptr [r14]- mov qword ptr [rbp-0x60], r9+ mov qword ptr [rbp-0x58], r9 mov rcx, r9
mov rdx, qword ptr [rcx+0x38]
mov rdx, qword ptr [rdx]
@@ -121,37 +121,32 @@ G_M65396_IG02: ; bbWeight=1, gcVars=0000000040000100 {V00 V40}, gcrefRegs
test rdx, rdx
je SHORT G_M65396_IG04
;; size=26 bbWeight=1 PerfScore 10.50-G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+G_M65396_IG03: ; bbWeight=0.80, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz jmp SHORT G_M65396_IG05
;; size=2 bbWeight=0.80 PerfScore 1.60-G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG04: ; bbWeight=0.20, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdx, rax
;; size=18 bbWeight=0.20 PerfScore 0.30-G_M65396_IG05: ; bbWeight=1, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG05: ; bbWeight=1, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, rdx
call [Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]:GetInstance():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]]
; gcrRegs +[rax]
; gcr arg pop 0- mov gword ptr [rbp-0x70], rax+ mov gword ptr [rbp-0x68], rax ; GC ptr vars +{V16}
;; size=13 bbWeight=1 PerfScore 4.25-G_M65396_IG06: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz+G_M65396_IG06: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz ; gcrRegs -[rax]
xor r10d, r10d- mov r9, qword ptr [rbp-0x60]
- mov rcx, qword ptr [r9+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx
- mov r11d, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x64], r11d
- test r11d, r11d+ mov r9d, dword ptr [rbx+0x08]
+ mov dword ptr [rbp-0x5C], r9d
+ test r9d, r9d jle SHORT G_M65396_IG08- ;; size=34 bbWeight=1 PerfScore 11.75
-G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M65396_IG07: ; bbWeight=4, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref, isz mov dword ptr [rbp-0x44], r10d
mov ecx, r10d
mov rcx, gword ptr [rbx+8*rcx+0x10]
@@ -160,55 +155,56 @@ G_M65396_IG07: ; bbWeight=4, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=
; gcrRegs +[r8]
mov rdx, rbx
; gcrRegs +[rdx]- mov rdi, qword ptr [rcx]
- mov rdi, qword ptr [rdi+0x50]
- call [rdi]<unknown method>+ mov r11, qword ptr [rcx]
+ mov r11, qword ptr [r11+0x50]
+ call [r11]<unknown method> ; gcrRegs -[rcx rdx r8] +[rax]
; gcr arg pop 0- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x70]
- mov r8, gword ptr [rax+0x08]+ mov gword ptr [rbp-0x70], rax
+ ; GC ptr vars +{V33}
+ mov r8, gword ptr [rbp-0x68] ; gcrRegs +[r8]- mov gword ptr [rbp-0x78], r8+ mov r10, gword ptr [r8+0x08]
+ ; gcrRegs +[r10]
+ mov gword ptr [rbp-0x78], r10 ; GC ptr vars +{V34}- mov r10d, dword ptr [r8+0x10]
- inc r10d
- mov dword ptr [rbp-0x4C], r10d
- mov rcx, r8+ mov r9d, dword ptr [r10+0x10]
+ inc r9d
+ mov dword ptr [rbp-0x4C], r9d
+ mov rcx, r10 ; gcrRegs +[rcx]- mov edx, r10d+ mov edx, r9d call [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:EnsureCapacity(int):this]- ; gcrRegs -[rax rcx r8]+ ; gcrRegs -[rax rcx r8 r10] ; gcr arg pop 0
mov rax, gword ptr [rbp-0x78]
; gcrRegs +[rax]
movsxd rdx, dword ptr [rax+0x10]
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]- mov r8, rdi+ mov r8, gword ptr [rbp-0x70] ; gcrRegs +[r8]+ ; GC ptr vars -{V33} call CORINFO_HELP_ARRADDR_ST- ; gcrRegs -[rax rcx rdi r8]+ ; gcrRegs -[rax rcx r8] ; gcr arg pop 0- mov rdi, gword ptr [rbp-0x78]
- ; gcrRegs +[rdi]
- mov ecx, dword ptr [rbp-0x4C]
- mov dword ptr [rdi+0x10], ecx
- mov edi, dword ptr [rbp-0x44]
- ; gcrRegs -[rdi]
- inc edi
- mov ecx, dword ptr [rbp-0x64]
- cmp ecx, edi
- mov r10d, edi+ mov rcx, gword ptr [rbp-0x78]
+ ; gcrRegs +[rcx]
+ mov r9d, dword ptr [rbp-0x4C]
+ mov dword ptr [rcx+0x10], r9d
+ mov r10d, dword ptr [rbp-0x44]
+ inc r10d
+ mov ecx, dword ptr [rbp-0x5C]
+ ; gcrRegs -[rcx]
+ cmp ecx, r10d jg SHORT G_M65396_IG07- ;; size=111 bbWeight=4 PerfScore 154.00
-G_M65396_IG08: ; bbWeight=1, gcVars=0000000040000120 {V00 V16 V40}, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref+ ;; size=116 bbWeight=4 PerfScore 159.00
+G_M65396_IG08: ; bbWeight=1, gcVars=0000000000000120 {V00 V16}, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, gcvars, byref ; GC ptr vars -{V00 V34}
test r13, r13
je G_M65396_IG19
;; size=9 bbWeight=1 PerfScore 1.25-G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=9000 {r12 r15}, byref+G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=60C8 {rbx rsi rdi r13 r14}, byrefRegs=9000 {r12 r15}, byref mov rcx, r13
; gcrRegs +[rcx]
mov rax, qword ptr [r13]
@@ -218,34 +214,36 @@ G_M65396_IG09: ; bbWeight=0.50, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRe
; gcr arg pop 0
test eax, eax
je G_M65396_IG19- mov rdi, gword ptr [rbp+0x30]
- ; gcrRegs +[rdi]
- mov gword ptr [rsp+0x20], rdi+ mov rcx, gword ptr [rbp+0x30]
+ ; gcrRegs +[rcx]
+ mov gword ptr [rsp+0x20], rcx ; gcr arg write
mov gword ptr [rsp+0x28], r13
; gcr arg write
movzx rcx, byte ptr [rbp+0x40]+ ; gcrRegs -[rcx] mov dword ptr [rsp+0x30], ecx
movzx r13, byte ptr [rbp+0x48]
; gcrRegs -[r13]
movzx rcx, r13b
mov dword ptr [rsp+0x38], ecx- mov rdi, gword ptr [rbp-0x70]
- mov gword ptr [rsp+0x40], rdi
- ; gcr arg write
- mov rax, gword ptr [rbp+0x50]+ mov rax, gword ptr [rbp-0x68] ; gcrRegs +[rax]
...
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)@@ -125,7 +125,7 @@
; V114 cse15 [V114,T64] ( 3, 24 ) ref -> [rbp-0x128] spill-single-def "CSE - conservative"
; V115 cse16 [V115,T90] ( 3, 3.84) int -> rdx "CSE - conservative"
; V116 cse17 [V116,T89] ( 3, 3.84) ref -> [rbp-0x130] spill-single-def "CSE - conservative"-; V117 cse18 [V117,T33] ( 10, 47 ) long -> r15 multi-def "CSE - moderate"+; V117 cse18 [V117,T33] ( 9, 46 ) long -> r15 multi-def "CSE - moderate" ; V118 cse19 [V118,T29] ( 6, 170 ) int -> r12 "CSE - moderate"
; V119 cse20 [V119,T32] ( 5, 152 ) byref -> [rbp-0x138] "CSE - moderate"
; V120 cse21 [V120,T54] ( 5, 42.08) int -> [rbp-0x9C] spill-single-def "CSE - moderate"
@@ -133,7 +133,7 @@
; V122 rat1 [V122,T84] ( 3, 4 ) long -> rax "runtime lookup"
; V123 rat2 [V123,T80] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;* V124 rat3 [V124,T85] ( 0, 0 ) long -> zero-ref "runtime lookup"-; V125 rat4 [V125,T81] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"+;* V125 rat4 [V125,T81] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V126 rat5 [V126,T88] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V127 rat6 [V127,T74] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V128 rat7 [V128,T75] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable"
@@ -229,17 +229,13 @@ G_M32652_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
;; size=56 bbWeight=1 PerfScore 20.50
G_M32652_IG06: ; bbWeight=1, gcVars=00000000000400000000000004004002 {V00 V05 V06 V99}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]- mov rcx, qword ptr [r15+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x70]
- test rcx, rcx mov r12d, dword ptr [rbx+0x08]
mov eax, r12d
mov dword ptr [rbp-0x44], eax
mov r8d, 1
cmp eax, 1
jle G_M32652_IG69- ;; size=39 bbWeight=1 PerfScore 11.00+ ;; size=25 bbWeight=1 PerfScore 4.75 G_M32652_IG07: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r10d, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x9C], r10d
@@ -1355,7 +1351,7 @@ G_M32652_IG79: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2883, prolog size 65, PerfScore 24368.95, instruction count 687, allocated bytes for code 2883 (MethodHash=bdda8073) for method 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)+; Total bytes of code 2869, prolog size 65, PerfScore 24362.70, instruction count 683, allocated bytes for code 2869 (MethodHash=bdda8073) for method 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) ; ============================================================
Unwind Info:
Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) |
---|---|---|---|---|---|---|
aspnet.run.windows.x64.checked.mch | 4 | 4 | 0 | 0 | -74 | +0 |
benchmarks.run.windows.x64.checked.mch | 4 | 4 | 0 | 0 | -67 | +0 |
benchmarks.run_pgo.windows.x64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
benchmarks.run_tiered.windows.x64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
coreclr_tests.run.windows.x64.checked.mch | 6 | 5 | 0 | 1 | -120 | +0 |
libraries.crossgen2.windows.x64.checked.mch | 32 | 32 | 0 | 0 | -70 | +0 |
libraries.pmi.windows.x64.checked.mch | 53 | 51 | 0 | 2 | -447 | +0 |
libraries_tests.run.windows.x64.Release.mch | 28 | 28 | 0 | 0 | -383 | +0 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch | 37 | 35 | 0 | 2 | -296 | +0 |
realworld.run.windows.x64.checked.mch | 4 | 4 | 0 | 0 | -74 | +0 |
smoke_tests.nativeaot.windows.x64.checked.mch | 0 | 0 | 0 | 0 | -0 | +0 |
168 | 163 | 0 | 5 | -1,531 | +0 |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
aspnet.run.windows.x64.checked.mch | 113,442 | 48,462 | 64,980 | 972 (0.85%) | 972 (0.85%) |
benchmarks.run.windows.x64.checked.mch | 28,174 | 4 | 28,170 | 4 (0.01%) | 4 (0.01%) |
benchmarks.run_pgo.windows.x64.checked.mch | 101,022 | 50,170 | 50,852 | 131 (0.13%) | 131 (0.13%) |
benchmarks.run_tiered.windows.x64.checked.mch | 54,253 | 36,844 | 17,409 | 2 (0.00%) | 2 (0.00%) |
coreclr_tests.run.windows.x64.checked.mch | 574,111 | 341,113 | 232,998 | 301 (0.05%) | 301 (0.05%) |
libraries.crossgen2.windows.x64.checked.mch | 243,023 | 15 | 243,008 | 0 (0.00%) | 0 (0.00%) |
libraries.pmi.windows.x64.checked.mch | 307,632 | 6 | 307,626 | 9 (0.00%) | 9 (0.00%) |
libraries_tests.run.windows.x64.Release.mch | 682,150 | 485,176 | 196,974 | 2,467 (0.36%) | 2,467 (0.36%) |
librariestestsnotieredcompilation.run.windows.x64.Release.mch | 319,776 | 21,886 | 297,890 | 10 (0.00%) | 10 (0.00%) |
realworld.run.windows.x64.checked.mch | 36,885 | 3 | 36,882 | 3 (0.01%) | 3 (0.01%) |
smoke_tests.nativeaot.windows.x64.checked.mch | 32,444 | 10 | 32,434 | 0 (0.00%) | 0 (0.00%) |
2,492,912 | 983,689 | 1,509,223 | 3,899 (0.16%) | 3,899 (0.16%) |
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 42178256 (overridden on cmd)
Total bytes of diff: 42178182 (overridden on cmd)
Total bytes of delta: -74 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-20 : 95144.dasm (-8.16 % of base)
-18 : 93460.dasm (-7.83 % of base)
-18 : 90477.dasm (-7.83 % of base)
-18 : 102493.dasm (-7.83 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-20 (-8.16 % of base) : 95144.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-18 (-7.83 % of base) : 93460.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 90477.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 102493.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
Top method improvements (percentages):
-20 (-8.16 % of base) : 95144.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-18 (-7.83 % of base) : 93460.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 90477.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 102493.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
4 total methods with Code Size differences (4 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 8747570 (overridden on cmd)
Total bytes of diff: 8747503 (overridden on cmd)
Total bytes of delta: -67 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-23 : 19819.dasm (-2.22 % of base)
-15 : 15455.dasm (-4.41 % of base)
-15 : 9124.dasm (-6.61 % of base)
-14 : 19859.dasm (-0.49 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-23 (-2.22 % of base) : 19819.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-4.41 % of base) : 15455.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
-15 (-6.61 % of base) : 9124.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-14 (-0.49 % of base) : 19859.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
Top method improvements (percentages):
-15 (-6.61 % of base) : 9124.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-15 (-4.41 % of base) : 15455.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
-23 (-2.22 % of base) : 19819.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-14 (-0.49 % of base) : 19859.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
4 total methods with Code Size differences (4 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 393404923 (overridden on cmd)
Total bytes of diff: 393404803 (overridden on cmd)
Total bytes of delta: -120 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-34 : 464176.dasm (-8.48 % of base)
-34 : 464173.dasm (-8.48 % of base)
-23 : 476149.dasm (-2.22 % of base)
-15 : 571809.dasm (-7.50 % of base)
-14 : 476189.dasm (-0.49 % of base)
5 total files with Code Size differences (5 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-34 (-8.48 % of base) : 464173.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-34 (-8.48 % of base) : 464176.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-23 (-2.22 % of base) : 476149.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-7.50 % of base) : 571809.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-14 (-0.49 % of base) : 476189.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)
Top method improvements (percentages):
-34 (-8.48 % of base) : 464173.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-34 (-8.48 % of base) : 464176.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-15 (-7.50 % of base) : 571809.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-23 (-2.22 % of base) : 476149.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-14 (-0.49 % of base) : 476189.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)
5 total methods with Code Size differences (5 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 39443922 (overridden on cmd)
Total bytes of diff: 39443852 (overridden on cmd)
Total bytes of delta: -70 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-4 : 177572.dasm (-0.59 % of base)
-4 : 177146.dasm (-0.93 % of base)
-4 : 177541.dasm (-0.73 % of base)
-4 : 177560.dasm (-0.61 % of base)
-2 : 174546.dasm (-0.76 % of base)
-2 : 174813.dasm (-0.65 % of base)
-2 : 174835.dasm (-0.37 % of base)
-2 : 174838.dasm (-0.61 % of base)
-2 : 174840.dasm (-0.65 % of base)
-2 : 175477.dasm (-0.54 % of base)
-2 : 175480.dasm (-0.76 % of base)
-2 : 175829.dasm (-0.36 % of base)
-2 : 177185.dasm (-0.92 % of base)
-2 : 177246.dasm (-0.50 % of base)
-2 : 178074.dasm (-0.17 % of base)
-2 : 59129.dasm (-0.17 % of base)
-2 : 174547.dasm (-0.76 % of base)
-2 : 174831.dasm (-0.33 % of base)
-2 : 174811.dasm (-0.65 % of base)
-2 : 174812.dasm (-0.65 % of base)
32 total files with Code Size differences (32 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4 (-0.93 % of base) : 177146.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)
-4 (-0.73 % of base) : 177541.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray[ubyte](System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.AsymmetricAlgorithm+TryExportPbe`1[ubyte]):ubyte[] (FullOpts)
-4 (-0.59 % of base) : 177572.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToEncryptedPem[System.__Canon,ubyte](System.__Canon,System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.PemKeyHelpers+TryExportEncryptedKeyAction`2[System.__Canon,ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
-4 (-0.61 % of base) : 177560.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.__Canon](System.__Canon,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.__Canon],System.Span`1[ushort],byref):ubyte (FullOpts)
-2 (-0.76 % of base) : 174548.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-0.76 % of base) : 174547.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-0.76 % of base) : 174546.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts)
-2 (-0.65 % of base) : 174811.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174812.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174813.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.92 % of base) : 177185.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.69 % of base) : 174839.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
-2 (-0.76 % of base) : 174842.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts)
-2 (-0.61 % of base) : 174838.dasm - System.Security.Cryptography.ECAlgorithm:ImportECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.37 % of base) : 174834.dasm - System.Security.Cryptography.ECAlgorithm:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.37 % of base) : 174835.dasm - System.Security.Cryptography.ECAlgorithm:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.43 % of base) : 174836.dasm - System.Security.Cryptography.ECAlgorithm:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174840.dasm - System.Security.Cryptography.ECAlgorithm:TryExportECPrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.33 % of base) : 174830.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.33 % of base) : 174831.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts)
Top method improvements (percentages):
-4 (-0.93 % of base) : 177146.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)
-2 (-0.92 % of base) : 177185.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.77 % of base) : 177247.dasm - System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.76 % of base) : 174548.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-0.76 % of base) : 174547.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportEncryptedPkcs8PrivateKeyPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters):System.String:this (FullOpts)
-2 (-0.76 % of base) : 174546.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportPkcs8PrivateKeyPem():System.String:this (FullOpts)
-2 (-0.76 % of base) : 174842.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKeyPem():System.String:this (FullOpts)
-2 (-0.76 % of base) : 175480.dasm - System.Security.Cryptography.RSA:ExportRSAPrivateKeyPem():System.String:this (FullOpts)
-4 (-0.73 % of base) : 177541.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray[ubyte](System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.AsymmetricAlgorithm+TryExportPbe`1[ubyte]):ubyte[] (FullOpts)
-2 (-0.69 % of base) : 174839.dasm - System.Security.Cryptography.ECAlgorithm:ExportECPrivateKey():ubyte[]:this (FullOpts)
-2 (-0.65 % of base) : 174811.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174812.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174813.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.65 % of base) : 174840.dasm - System.Security.Cryptography.ECAlgorithm:TryExportECPrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-2 (-0.61 % of base) : 174838.dasm - System.Security.Cryptography.ECAlgorithm:ImportECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-4 (-0.61 % of base) : 177560.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.__Canon](System.__Canon,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.__Canon],System.Span`1[ushort],byref):ubyte (FullOpts)
-4 (-0.59 % of base) : 177572.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToEncryptedPem[System.__Canon,ubyte](System.__Canon,System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Security.Cryptography.PemKeyHelpers+TryExportEncryptedKeyAction`2[System.__Canon,ubyte],System.Span`1[ushort],byref):ubyte (FullOpts)
-2 (-0.54 % of base) : 175477.dasm - System.Security.Cryptography.RSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.54 % of base) : 175478.dasm - System.Security.Cryptography.RSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.50 % of base) : 177246.dasm - System.Security.Cryptography.RSA:WritePkcs8PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
32 total methods with Code Size differences (32 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 61389190 (overridden on cmd)
Total bytes of diff: 61388743 (overridden on cmd)
Total bytes of delta: -447 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-40 : 33033.dasm (-9.13 % of base)
-33 : 33031.dasm (-7.52 % of base)
-33 : 33032.dasm (-7.52 % of base)
-17 : 36399.dasm (-3.01 % of base)
-17 : 161658.dasm (-5.26 % of base)
-17 : 201484.dasm (-5.26 % of base)
-17 : 161655.dasm (-6.18 % of base)
-17 : 176113.dasm (-5.26 % of base)
-17 : 176110.dasm (-6.18 % of base)
-17 : 201481.dasm (-6.18 % of base)
-17 : 36585.dasm (-2.31 % of base)
-15 : 161693.dasm (-8.02 % of base)
-15 : 176148.dasm (-8.02 % of base)
-15 : 36084.dasm (-1.79 % of base)
-15 : 36745.dasm (-2.40 % of base)
-15 : 36844.dasm (-3.89 % of base)
-15 : 201519.dasm (-8.02 % of base)
-15 : 36083.dasm (-7.50 % of base)
-15 : 36744.dasm (-2.02 % of base)
-15 : 36845.dasm (-2.48 % of base)
49 total files with Code Size differences (49 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-40 (-9.13 % of base) : 33033.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-7.52 % of base) : 33032.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-7.52 % of base) : 33031.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-17 (-5.26 % of base) : 161658.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.26 % of base) : 201484.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.26 % of base) : 176113.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-6.18 % of base) : 161655.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.18 % of base) : 176110.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.18 % of base) : 201481.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-3.01 % of base) : 36399.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-17 (-2.31 % of base) : 36585.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-15 (-8.02 % of base) : 161693.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.02 % of base) : 176148.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.02 % of base) : 201519.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-7.50 % of base) : 36083.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-1.79 % of base) : 36084.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.02 % of base) : 36744.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.Nullable`1[int]],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.40 % of base) : 36745.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.89 % of base) : 36844.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.48 % of base) : 36845.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
Top method improvements (percentages):
-40 (-9.13 % of base) : 33033.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-15 (-8.02 % of base) : 161693.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.02 % of base) : 176148.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-15 (-8.02 % of base) : 201519.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (FullOpts)
-33 (-7.52 % of base) : 33032.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-33 (-7.52 % of base) : 33031.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-15 (-7.50 % of base) : 36083.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-17 (-6.18 % of base) : 161655.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.18 % of base) : 176110.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-6.18 % of base) : 201481.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.set_Item(int,System.Object):this (FullOpts)
-17 (-5.26 % of base) : 161658.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.26 % of base) : 201484.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-17 (-5.26 % of base) : 176113.dasm - Microsoft.CodeAnalysis.Collections.SegmentedList`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-15 (-3.89 % of base) : 36844.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-17 (-3.01 % of base) : 36399.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-14 (-2.54 % of base) : 303949.dasm - System.Threading.Channels.ChannelReader`1[System.__Canon]:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.__Canon]:this (FullOpts)
-15 (-2.48 % of base) : 36845.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.40 % of base) : 36745.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-17 (-2.31 % of base) : 36585.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[System.__Canon]:ConsumeAndStoreOneMessageIfAvailable():ubyte:this (FullOpts)
-15 (-2.02 % of base) : 36744.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.Nullable`1[int]]:ProcessMessage(System.Func`2[System.__Canon,System.Nullable`1[int]],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 281642309 (overridden on cmd)
Total bytes of diff: 281641926 (overridden on cmd)
Total bytes of delta: -383 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-24 : 57894.dasm (-0.96 % of base)
-24 : 88595.dasm (-0.96 % of base)
-22 : 652180.dasm (-0.82 % of base)
-22 : 598149.dasm (-6.43 % of base)
-22 : 169246.dasm (-0.85 % of base)
-21 : 596833.dasm (-2.83 % of base)
-21 : 653502.dasm (-2.65 % of base)
-20 : 223666.dasm (-9.57 % of base)
-20 : 164606.dasm (-8.23 % of base)
-20 : 573062.dasm (-5.48 % of base)
-20 : 573326.dasm (-5.48 % of base)
-20 : 587054.dasm (-5.48 % of base)
-18 : 431796.dasm (-7.83 % of base)
-18 : 598191.dasm (-7.83 % of base)
-16 : 426430.dasm (-2.69 % of base)
-14 : 88645.dasm (-0.08 % of base)
-14 : 57906.dasm (-0.07 % of base)
-14 : 652369.dasm (-0.08 % of base)
-7 : 386916.dasm (-1.05 % of base)
-7 : 517150.dasm (-0.19 % of base)
28 total files with Code Size differences (28 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-24 (-0.96 % of base) : 57894.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-24 (-0.96 % of base) : 88595.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-0.82 % of base) : 652180.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-0.85 % of base) : 169246.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-6.43 % of base) : 598149.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-21 (-2.83 % of base) : 596833.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (Tier1)
-21 (-2.65 % of base) : 653502.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]):int:this (Tier1)
-20 (-5.48 % of base) : 573326.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.48 % of base) : 573062.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.48 % of base) : 587054.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-8.23 % of base) : 164606.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-20 (-9.57 % of base) : 223666.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1)
-18 (-7.83 % of base) : 431796.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 598191.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-16 (-2.69 % of base) : 426430.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this (Tier1)
-14 (-0.08 % of base) : 88645.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-14 (-0.07 % of base) : 57906.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-14 (-0.08 % of base) : 652369.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)
-7 (-0.19 % of base) : 517150.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-7 (-1.05 % of base) : 386916.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (Tier1)
Top method improvements (percentages):
-20 (-9.57 % of base) : 223666.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Insert(int,System.Object):this (Instrumented Tier1)
-20 (-8.23 % of base) : 164606.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Instrumented Tier1)
-18 (-7.83 % of base) : 431796.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-18 (-7.83 % of base) : 598191.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
-22 (-6.43 % of base) : 598149.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
-20 (-5.48 % of base) : 573326.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.Add(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.48 % of base) : 573062.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-20 (-5.48 % of base) : 587054.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Instrumented Tier1)
-21 (-2.83 % of base) : 596833.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (Tier1)
-16 (-2.69 % of base) : 426430.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+Graph`1[System.__Canon]:PropagateFlag(int):this (Tier1)
-21 (-2.65 % of base) : 653502.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]:IndexOf(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]],int,int,System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.ValueTuple`2[Microsoft.CodeAnalysis.NullabilityInfo,System.__Canon]]]):int:this (Tier1)
-7 (-1.05 % of base) : 386916.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (Tier1)
-24 (-0.96 % of base) : 57894.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-24 (-0.96 % of base) : 88595.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-0.85 % of base) : 169246.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-22 (-0.82 % of base) : 652180.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier1)
-2 (-0.59 % of base) : 530832.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
-7 (-0.19 % of base) : 517150.dasm - System.Security.Cryptography.PasswordBasedEncryption:Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (Tier1)
-6 (-0.15 % of base) : 169259.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)
-1 (-0.14 % of base) : 526552.dasm - System.Security.Cryptography.UniversalCryptoDecryptor:UncheckedTransformFinalBlock(ubyte[],int,int):ubyte[]:this (Tier1)
28 total methods with Code Size differences (28 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 133913806 (overridden on cmd)
Total bytes of diff: 133913510 (overridden on cmd)
Total bytes of delta: -296 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-34 : 197368.dasm (-8.48 % of base)
-34 : 197394.dasm (-8.48 % of base)
-23 : 49762.dasm (-2.18 % of base)
-23 : 44052.dasm (-2.18 % of base)
-22 : 5398.dasm (-1.47 % of base)
-15 : 2746.dasm (-3.00 % of base)
-15 : 2774.dasm (-7.50 % of base)
-15 : 15227.dasm (-0.93 % of base)
-15 : 2713.dasm (-3.89 % of base)
-15 : 80036.dasm (-3.07 % of base)
-15 : 310530.dasm (-2.38 % of base)
-15 : 80011.dasm (-3.14 % of base)
-14 : 5464.dasm (-0.29 % of base)
-7 : 163397.dasm (-1.18 % of base)
-3 : 199680.dasm (-0.59 % of base)
-2 : 226006.dasm (-0.59 % of base)
-2 : 226481.dasm (-0.50 % of base)
-2 : 228159.dasm (-0.56 % of base)
-2 : 226071.dasm (-0.59 % of base)
-2 : 226851.dasm (-0.61 % of base)
35 total files with Code Size differences (35 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-34 (-8.48 % of base) : 197368.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-34 (-8.48 % of base) : 197394.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-23 (-2.18 % of base) : 49762.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-23 (-2.18 % of base) : 44052.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-22 (-1.47 % of base) : 5398.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-15 (-0.93 % of base) : 15227.dasm - Microsoft.CodeAnalysis.Formatting.ContextIntervalTree`2[System.__Canon,Microsoft.CodeAnalysis.Formatting.FormattingContext+FormattingContextIntervalIntrospector]:GetSmallestContainingIntervalWorker(int,int,System.Func`4[System.__Canon,int,int,ubyte]):System.__Canon:this (FullOpts)
-15 (-3.14 % of base) : 80011.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveCurrentEnumerationContinues():this (FullOpts)
-15 (-3.07 % of base) : 80036.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveFirstEnumerationContinues():this (FullOpts)
-15 (-7.50 % of base) : 2774.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.00 % of base) : 2746.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.38 % of base) : 310530.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.89 % of base) : 2713.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-14 (-0.29 % of base) : 5464.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
-7 (-1.18 % of base) : 163397.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-3 (-0.59 % of base) : 199680.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
-2 (-0.59 % of base) : 226071.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.59 % of base) : 225569.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.59 % of base) : 226006.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.83 % of base) : 228804.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.61 % of base) : 226851.dasm - System.Security.Cryptography.ECAlgorithm:ImportECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
Top method improvements (percentages):
-34 (-8.48 % of base) : 197368.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-34 (-8.48 % of base) : 197394.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-15 (-7.50 % of base) : 2774.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[System.__Canon]:ProcessMessage(System.Action`1[System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.89 % of base) : 2713.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-3.14 % of base) : 80011.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveCurrentEnumerationContinues():this (FullOpts)
-15 (-3.07 % of base) : 80036.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[System.__Canon,System.__Canon]:Dictionary_Generic_Remove_RemoveFirstEnumerationContinues():this (FullOpts)
-15 (-3.00 % of base) : 2746.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessage(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-15 (-2.38 % of base) : 310530.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[System.__Canon,System.__Canon]:ProcessMessageWithTask(System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,long]):this (FullOpts)
-23 (-2.18 % of base) : 49762.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-23 (-2.18 % of base) : 44052.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-22 (-1.47 % of base) : 5398.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-7 (-1.18 % of base) : 163397.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-15 (-0.93 % of base) : 15227.dasm - Microsoft.CodeAnalysis.Formatting.ContextIntervalTree`2[System.__Canon,Microsoft.CodeAnalysis.Formatting.FormattingContext+FormattingContextIntervalIntrospector]:GetSmallestContainingIntervalWorker(int,int,System.Func`4[System.__Canon,int,int,ubyte]):System.__Canon:this (FullOpts)
-2 (-0.83 % of base) : 228804.dasm - System.Security.Cryptography.DSA:WritePkcs8():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.82 % of base) : 226447.dasm - System.Security.Cryptography.RSA:WritePkcs1PrivateKey():System.Formats.Asn1.AsnWriter:this (FullOpts)
-2 (-0.61 % of base) : 226851.dasm - System.Security.Cryptography.ECAlgorithm:ImportECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.59 % of base) : 226071.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.59 % of base) : 225569.dasm - System.Security.Cryptography.DSA:ImportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-2 (-0.59 % of base) : 226006.dasm - System.Security.Cryptography.DSA:ImportPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-3 (-0.59 % of base) : 199680.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
35 total methods with Code Size differences (35 improved, 0 regressed).
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 14170687 (overridden on cmd)
Total bytes of diff: 14170613 (overridden on cmd)
Total bytes of delta: -74 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Top file improvements (bytes):
-23 : 21546.dasm (-2.22 % of base)
-22 : 17986.dasm (-3.73 % of base)
-15 : 4802.dasm (-6.61 % of base)
-14 : 21622.dasm (-0.49 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-23 (-2.22 % of base) : 21546.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-22 (-3.73 % of base) : 17986.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-15 (-6.61 % of base) : 4802.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-14 (-0.49 % of base) : 21622.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
Top method improvements (percentages):
-15 (-6.61 % of base) : 4802.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
-22 (-3.73 % of base) : 17986.dasm - System.Threading.Tasks.TaskCompletionSourceWithCancellation`1[System.__Canon]:WaitWithCancellation(System.Threading.CancellationToken):System.__Canon:this (FullOpts)
-23 (-2.22 % of base) : 21546.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
-14 (-0.49 % of base) : 21622.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
4 total methods with Code Size differences (4 improved, 0 regressed).