Assembly Diffs
linux arm64
Diffs are based on 2,506,606 contexts (1,007,092 MinOpts, 1,499,514 FullOpts).
MISSED contexts: base: 258 (0.01%), diff: 712 (0.03%)
Overall (-477,608 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm64.checked.mch |
15,544,288 |
-192 |
benchmarks.run_pgo.linux.arm64.checked.mch |
80,065,512 |
-2,200 |
benchmarks.run_tiered.linux.arm64.checked.mch |
24,588,280 |
-1,508 |
coreclr_tests.run.linux.arm64.checked.mch |
508,077,808 |
-118,216 |
libraries.crossgen2.linux.arm64.checked.mch |
55,844,436 |
-416 |
libraries.pmi.linux.arm64.checked.mch |
76,132,168 |
+13,896 |
libraries_tests.run.linux.arm64.Release.mch |
395,282,448 |
-240,652 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
164,682,828 |
-128,904 |
realworld.run.linux.arm64.checked.mch |
15,897,044 |
+668 |
smoke_tests.nativeaot.linux.arm64.checked.mch |
2,830,580 |
-84 |
MinOpts (-487,164 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.linux.arm64.checked.mch |
25,934,784 |
-2,264 |
benchmarks.run_tiered.linux.arm64.checked.mch |
19,738,436 |
-1,480 |
coreclr_tests.run.linux.arm64.checked.mch |
348,148,152 |
-110,752 |
libraries_tests.run.linux.arm64.Release.mch |
215,131,952 |
-241,596 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
13,497,464 |
-131,072 |
FullOpts (+9,556 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm64.checked.mch |
15,239,360 |
-192 |
benchmarks.run_pgo.linux.arm64.checked.mch |
54,130,728 |
+64 |
benchmarks.run_tiered.linux.arm64.checked.mch |
4,849,844 |
-28 |
coreclr_tests.run.linux.arm64.checked.mch |
159,929,656 |
-7,464 |
libraries.crossgen2.linux.arm64.checked.mch |
55,842,800 |
-416 |
libraries.pmi.linux.arm64.checked.mch |
76,012,184 |
+13,896 |
libraries_tests.run.linux.arm64.Release.mch |
180,150,496 |
+944 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
151,185,364 |
+2,168 |
realworld.run.linux.arm64.checked.mch |
15,316,120 |
+668 |
smoke_tests.nativeaot.linux.arm64.checked.mch |
2,829,592 |
-84 |
Example diffs
benchmarks.run.linux.arm64.checked.mch
-16 (-2.27%) : 8441.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 8227.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 7976.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+0.95%) : 22562.dasm - System.Formats.Tar.Tests.PerfTarWriter+<V7TarEntryWriteEntryAsync>d_7:MoveNext():this (FullOpts)
@@ -17,29 +17,29 @@
; V06 loc5 [V06,T37] ( 4, 2 ) ref -> x19 class-hnd single-def <System.Object>
; V07 loc6 [V07 ] ( 8, 8 ) struct (16) [fp+0x18] do-not-enreg[XSFR] multireg-ret must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret ld-addr-op <System.Threading.Tasks.ValueTask>
-; V09 loc8 [V09,T51] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
+; V09 loc8 [V09,T49] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
;* V10 loc9 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V13 tmp2 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V14 tmp3 [V14,T07] ( 6, 10 ) ref -> x23 class-hnd exact single-def "impAppendStmt" <System.Formats.Tar.TarWriter>
-; V15 tmp4 [V15,T52] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V15 tmp4 [V15,T50] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V16 tmp5 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V17 tmp6 [V17,T12] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
-; V18 tmp7 [V18,T53] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V18 tmp7 [V18,T51] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V19 tmp8 [V19,T08] ( 5, 8 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp9 [V20,T44] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V21 tmp10 [V21,T03] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V23 tmp12 [V23,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V23 tmp12 [V23,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp14 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V26 tmp15 [V26,T45] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V28 tmp17 [V28,T46] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V28 tmp17 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V29 tmp18 [V29,T25] ( 3, 3 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V30 tmp19 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;* V31 tmp20 [V31,T48] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V31 tmp20 [V31,T46] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp23 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -52,7 +52,7 @@
;* V41 tmp30 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V42 tmp31 [V42,T13] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V43 tmp32 [V43 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter>
-;* V44 tmp33 [V44,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V44 tmp33 [V44,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V45 tmp34 [V45,T09] ( 7, 7 ) ref -> x20 class-hnd single-def "Inline stloc first use temp" <System.Object>
; V46 tmp35 [V46,T33] ( 2, 2 ) int -> x0
; V47 tmp36 [V47,T26] ( 3, 3 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
@@ -93,18 +93,18 @@
;* V82 tmp71 [V82 ] ( 0, 0 ) ubyte -> zero-ref "field V08._continueOnCapturedContext (fldOffset=0xa)" P-DEP
; V83 tmp72 [V83,T42] ( 2, 2 ) short -> x0 "field V22._offsetMinutes (fldOffset=0x0)" P-INDEP
; V84 tmp73 [V84,T43] ( 2, 2 ) long -> x1 "field V22._dateTime (fldOffset=0x8)" P-INDEP
-;* V85 tmp74 [V85,T47] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
+;* V85 tmp74 [V85,T45] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
; V86 tmp75 [V86,T39] ( 2, 2 ) ref -> x0 single-def "field V34.m_task (fldOffset=0x0)" P-INDEP
-; V87 tmp76 [V87,T54] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V87 tmp76 [V87,T52] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V88 tmp77 [V88,T20] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V89 tmp78 [V89,T21] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V90 PSPSym [V90,T50] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V90 PSPSym [V90,T48] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
; V91 cse0 [V91,T29] ( 3, 3 ) ref -> x22 "CSE - moderate"
; V92 cse1 [V92,T36] ( 3, 3 ) int -> x1 "CSE - moderate"
; V93 cse2 [V93,T30] ( 3, 3 ) ref -> x1 "CSE - moderate"
; V94 cse3 [V94,T31] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V95 cse4 [V95,T05] ( 7, 14 ) byref -> x0 "CSE - aggressive"
-; V96 cse5 [V96,T11] ( 3, 3 ) ref -> x1 multi-def "CSE - aggressive"
+; V96 cse5 [V96,T11] ( 6, 6 ) ref -> x1 multi-def "CSE - aggressive"
; V97 cse6 [V97,T32] ( 3, 3 ) ref -> x23 "CSE - moderate"
;
; Lcl frame size = 40
@@ -199,10 +199,23 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb wzr, [x23, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x1]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x1 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x23
@@ -230,7 +243,7 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
; byrRegs -[x14]
str xzr, [x23, #0x10]
str wzr, [x23, #0x1C]
- ;; size=224 bbWeight=1 PerfScore 50.50
+ ;; size=244 bbWeight=1 PerfScore 53.50
G_M28013_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x23]
cbz w20, G_M28013_IG08
@@ -958,7 +971,7 @@ G_M28013_IG47: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2116, prolog size 44, PerfScore 514.00, instruction count 529, allocated bytes for code 2116 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
+; Total bytes of code 2136, prolog size 44, PerfScore 517.00, instruction count 534, allocated bytes for code 2136 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -969,7 +982,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 490 (0x001ea) Actual length = 1960 (0x0007a8)
+ Function Length : 495 (0x001ef) Actual length = 1980 (0x0007bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+4.17%) : 19232.dasm - System.Formats.Tar.Tests.PerfTarWriter:V7TarEntryWriteEntry():this (FullOpts)
@@ -17,17 +17,17 @@
;* V06 tmp3 [V06,T08] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V07 tmp4 [V07,T00] ( 10, 20 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V09 tmp6 [V09,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V09 tmp6 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V14 tmp11 [V14,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V15 tmp12 [V15,T06] ( 2, 2 ) short -> x0 "field V08._offsetMinutes (fldOffset=0x0)" P-INDEP
; V16 tmp13 [V16,T07] ( 2, 2 ) long -> x1 "field V08._dateTime (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T12] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V18 PSPSym [V18,T11] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-;* V19 cse0 [V19,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 tmp14 [V17,T10] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V18 PSPSym [V18,T09] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V19 cse0 [V19,T04] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -110,10 +110,23 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
strh w0, [x22, #0x88]
str x1, [x22, #0x90]
strb wzr, [x22, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x22, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x22, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x22, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x20, #8
; byrRegs +[x14]
mov x15, x22
@@ -132,7 +145,7 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
; gcr arg pop 0
str x0, [fp, #0x10] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=176 bbWeight=1 PerfScore 36.00
+ ;; size=196 bbWeight=1 PerfScore 39.00
G_M5976_IG06: ; bbWeight=1, gcVars=0000000000000020 {V02}, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, gcvars, byref
mov x1, x20
; gcrRegs +[x1]
@@ -222,7 +235,7 @@ G_M5976_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 480, prolog size 28, PerfScore 78.00, instruction count 120, allocated bytes for code 480 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
+; Total bytes of code 500, prolog size 28, PerfScore 81.00, instruction count 125, allocated bytes for code 500 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
; ============================================================
Unwind Info:
@@ -233,7 +246,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 104 (0x00068) Actual length = 416 (0x0001a0)
+ Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_pgo.linux.arm64.checked.mch
-16 (-28.57%) : 47.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-28.57%) : 67.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 1117.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 38599.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 38631.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.70%) : 578.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
@@ -37,8 +37,9 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmn w0, #1
beq G_M19587_IG04
ldr w0, [fp, #0x14] // [V01 loc0]
- and w0, w0, #0xD1FFAB1E
- ;; size=76 bbWeight=1 PerfScore 21.00
+ sxtw x0, w0
+ uxth w0, w0
+ ;; size=80 bbWeight=1 PerfScore 21.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -51,7 +52,7 @@ G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.linux.arm64.checked.mch
-16 (-28.57%) : 47.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 963.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-21.43%) : 964.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
@@ -21,18 +21,15 @@ G_M32312_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x14] // [V01 arg1]
ldr w1, [fp, #0x18] // [V00 arg0]
sub w0, w0, w1
- mov w1, #16
- sub w1, w1, #1
- mvn w1, w1
- and w0, w0, w1
+ and w0, w0, #0xD1FFAB1E
mov w0, w0
- ;; size=32 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M32312_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 11.00, instruction count 11, allocated bytes for code 44 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.70%) : 522.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
@@ -37,8 +37,9 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmn w0, #1
beq G_M19587_IG04
ldr w0, [fp, #0x14] // [V01 loc0]
- and w0, w0, #0xD1FFAB1E
- ;; size=76 bbWeight=1 PerfScore 21.00
+ sxtw x0, w0
+ uxth w0, w0
+ ;; size=80 bbWeight=1 PerfScore 21.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -51,7 +52,7 @@ G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 27101.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
@@ -110,7 +110,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -128,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -153,7 +157,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -164,7 +168,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================
Unwind Info:
@@ -175,7 +179,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 26384.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
@@ -112,7 +112,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -132,7 +134,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -157,7 +161,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -168,7 +172,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================
Unwind Info:
@@ -179,7 +183,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.linux.arm64.checked.mch
-44 (-68.75%) : 513738.dasm - _simple:main():int (Tier0)
@@ -14,25 +14,14 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movn w0, #0
- neg w0, w0
- cmp w0, #1
- cset x0, eq
- sub w0, w0, #1
- mov w1, #1
- neg w1, w1
- cmn w1, #1
- cset x1, eq
- sub w1, w1, #1
- orr w0, w0, w1
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 6.00
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 64, prolog size 8, PerfScore 9.50, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-68.75%) : 513791.dasm - _simple:main():int (Tier0)
@@ -13,31 +13,15 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr d16, [@RWD00]
- ldr d17, [@RWD08]
- fadd d16, d16, d17
- ldr d17, [@RWD16]
- fmul d16, d16, d17
- ldr d17, [@RWD24]
- fcmp d16, d17
- cset x0, lo
- scvtf d16, w0
- fcmp d16, #0.0
- cset x0, gt
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 22.50
+G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dq 061F619384F62E0Eh ; 3.45758597e-279
-RWD08 dq 638961F533A745DFh ; 3.06538108e+171
-RWD16 dq 73DD472C6FD616C1h ; 1.31014133e+250
-RWD24 dq 073DD472C6FD66C1h ; 8.61579601e-274
-
-; Total bytes of code 64, prolog size 8, PerfScore 26.00, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -48,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-66.67%) : 524994.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
@@ -13,27 +13,15 @@ G_M4347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movn w0, #0
- mov w1, #1
- umull x0, w0, w1
- lsr x2, x0, #32
- cmp w2, #0
- bne G_M4347_IG04
- mov w1, #4
- lsr w0, w1, w0
- add w0, w0, #100
- ;; size=36 bbWeight=1 PerfScore 7.00
+G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M4347_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M4347_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- bl CORINFO_HELP_OVERFLOW
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 8, PerfScore 10.50, instruction count 15, allocated bytes for code 60 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -44,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+4.17%) : 311305.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -34,7 +34,8 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w9, #1
- uxth w10, w0
+ sxtw x10, w0
+ uxth w10, w10
cmn w0, #1
csel w0, w9, w10, eq
movz x10, #0xD1FFAB1E
@@ -42,13 +43,13 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x10, #0xD1FFAB1E LSL #32
add x11, fp, #16
bl CORINFO_HELP_PROF_FCN_LEAVE
- ;; size=60 bbWeight=1 PerfScore 11.00
+ ;; size=64 bbWeight=1 PerfScore 11.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 28, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 100, prolog size 28, PerfScore 18.00, instruction count 25, allocated bytes for code 100 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +60,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+4.17%) : 251354.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -37,17 +37,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0 x19]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=68 bbWeight=1 PerfScore 14.50
+ ;; size=72 bbWeight=1 PerfScore 15.00
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 21.50, instruction count 24, allocated bytes for code 96 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 22.00, instruction count 25, allocated bytes for code 100 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -58,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+4.73%) : 712.dasm - MulticastDelegateCombineImpl:PosTest3():ubyte:this (FullOpts)
@@ -9,26 +9,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <MulticastDelegateCombineImpl>
-; V01 loc0 [V01,T14] ( 3, 2 ) ubyte -> [fp+0x14] do-not-enreg[M] EH-live
+; V01 loc0 [V01,T15] ( 3, 2 ) ubyte -> [fp+0x1C] do-not-enreg[M] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <DelegateDefinitions>
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T00] ( 7, 14 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <DelegateDefinitions>
-; V06 tmp2 [V06,T01] ( 5, 10 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <ValueParameterVoidDelegate>
+; V06 tmp2 [V06,T01] ( 6, 12 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <ValueParameterVoidDelegate>
; V07 tmp3 [V07,T03] ( 4, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <ValueParameterVoidDelegate>
; V08 tmp4 [V08,T08] ( 2, 4 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <ValueParameterVoidDelegate>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "CASTCLASS eval op1"
-; V10 tmp6 [V10,T15] ( 3, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+; V10 tmp6 [V10,T16] ( 3, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
; V11 tmp7 [V11,T04] ( 4, 7 ) ref -> x15 class-hnd single-def "spilling QMark2" <ValueParameterVoidDelegate>
-; V12 tmp8 [V12,T19] ( 6, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V12 tmp8 [V12,T20] ( 6, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) ref -> zero-ref single-def
-; V18 tmp14 [V18,T20] ( 3, 0 ) ref -> x1
-; V19 tmp15 [V19,T16] ( 2, 2 ) ref -> x0 class-hnd single-def "Inline return value spill temp" <System.String>
-;* V20 tmp16 [V20,T17] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V18 tmp14 [V18,T21] ( 3, 0 ) ref -> x1
+; V19 tmp15 [V19,T17] ( 2, 2 ) ref -> x0 class-hnd single-def "Inline return value spill temp" <System.String>
+;* V20 tmp16 [V20,T18] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V21 tmp17 [V21 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V22 tmp18 [V22,T05] ( 7, 6.85) ref -> x19 class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V23 tmp19 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -39,32 +39,32 @@
;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V29 tmp25 [V29,T11] ( 2, 3.79) byref -> x0 single-def "Inlining Arg"
; V30 tmp26 [V30,T12] ( 2, 3.79) byref -> x1 single-def "Inlining Arg"
-;* V31 tmp27 [V31 ] ( 0, 0 ) long -> zero-ref "spilling arg"
+;* V31 tmp27 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V35 tmp31 [V35,T09] ( 2, 4 ) byref -> x0 single-def "Inlining Arg"
-; V36 tmp32 [V36,T10] ( 2, 4 ) byref -> x1 single-def "Inlining Arg"
-;* V37 tmp33 [V37 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V38 tmp34 [V38,T13] ( 3, 2 ) ref -> x1 class-hnd "Inline return value spill temp" <System.Delegate>
-; V39 tmp35 [V39,T21] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V40 PSPSym [V40,T18] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V41 cse0 [V41,T02] ( 9, 8.54) ref -> x1 multi-def "CSE - aggressive"
-; V42 cse1 [V42,T07] ( 5, 4.50) long -> x19 "CSE - aggressive"
-; V43 rat0 [V43,T06] ( 3, 6 ) ref -> x2 "delegate invoke call"
+; V34 tmp30 [V34,T09] ( 2, 4 ) byref -> x0 single-def "Inlining Arg"
+; V35 tmp31 [V35,T10] ( 2, 4 ) byref -> x1 single-def "Inlining Arg"
+; V36 tmp32 [V36,T14] ( 3, 2 ) ref -> x1 class-hnd "Inline return value spill temp" <System.Delegate>
+; V37 tmp33 [V37,T22] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V38 PSPSym [V38,T19] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V39 cse0 [V39,T02] ( 9, 8.54) ref -> x1 multi-def "CSE - aggressive"
+; V40 cse1 [V40,T07] ( 5, 4.50) long -> x19 "CSE - aggressive"
+; V41 cse2 [V41,T13] ( 3, 3 ) long -> x21 "CSE - aggressive"
+; V42 rat0 [V42,T06] ( 3, 6 ) ref -> x2 "delegate invoke call"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M44315_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x20]
+ stp fp, lr, [sp, #-0x40]!
+ stp x19, x20, [sp, #0x28]
+ str x21, [sp, #0x38]
mov fp, sp
- add x1, sp, #48
- str x1, [fp, #0x18] // [V40 PSPSym]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ add x1, sp, #64
+ str x1, [fp, #0x20] // [V38 PSPSym]
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M44315_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, #1
- str w0, [fp, #0x14] // [V01 loc0]
+ str w0, [fp, #0x1C] // [V01 loc0]
mov w0, #103
bl <unknown method>
; gcrRegs +[x0]
@@ -181,8 +181,14 @@ G_M44315_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- ldr q16, [@RWD00]
- str q16, [x0, #0x18]
+ movz x14, #0xD1FFAB1E
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ str x14, [x0, #0x18]
+ movz x21, #0xD1FFAB1E // code for <unknown method>
+ movk x21, #0xD1FFAB1E LSL #16
+ movk x21, #0xD1FFAB1E LSL #32
+ str x21, [x0, #0x20]
add x14, x20, #8
; byrRegs +[x14]
mov x15, x0
@@ -204,9 +210,7 @@ G_M44315_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
+ add x2, x21, #144
str x2, [x1, #0x18]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -220,7 +224,7 @@ G_M44315_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov x15, x1
; gcrRegs +[x15]
cbz x15, G_M44315_IG10
- ;; size=148 bbWeight=1 PerfScore 30.50
+ ;; size=164 bbWeight=1 PerfScore 31.50
G_M44315_IG08: ; bbWeight=0.50, gcrefRegs=108002 {x1 x15 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x14, [x15]
@@ -254,20 +258,22 @@ G_M44315_IG10: ; bbWeight=1, gcrefRegs=108000 {x15 x20}, byrefRegs=0000 {
; gcr arg pop 0
;; size=28 bbWeight=1 PerfScore 12.00
G_M44315_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [fp, #0x14] // [V01 loc0]
+ ldr w0, [fp, #0x1C] // [V01 loc0]
;; size=4 bbWeight=1 PerfScore 2.00
G_M44315_IG12: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x30
+ ldr x21, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M44315_IG13: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x20]
- add x3, fp, #48
- str x3, [sp, #0x18]
- ;; size=16 bbWeight=0 PerfScore 0.00
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
+ add x3, fp, #64
+ str x3, [sp, #0x10]
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M44315_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
mov x19, x0
; gcrRegs +[x19]
@@ -328,18 +334,17 @@ G_M44315_IG16: ; bbWeight=0, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str wzr, [fp, #0x14] // [V01 loc0]
+ str wzr, [fp, #0x1C] // [V01 loc0]
adr x0, [G_M44315_IG11]
;; size=116 bbWeight=0 PerfScore 0.00
G_M44315_IG17: ; bbWeight=0, funclet epilog, nogc, extend
- ldp x19, x20, [sp, #0x20]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
-RWD00 dq 0000FFFF65AFD090h, 0000FFFF67B18B58h
+ ;; size=16 bbWeight=0 PerfScore 0.00
-
-; Total bytes of code 676, prolog size 20, PerfScore 112.34, instruction count 169, allocated bytes for code 676 (MethodHash=784252e4) for method MulticastDelegateCombineImpl:PosTest3():ubyte:this (FullOpts)
+; Total bytes of code 708, prolog size 24, PerfScore 116.34, instruction count 177, allocated bytes for code 708 (MethodHash=784252e4) for method MulticastDelegateCombineImpl:PosTest3():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -350,7 +355,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 123 (0x0007b) Actual length = 492 (0x0001ec)
+ Function Length : 129 (0x00081) Actual length = 516 (0x000204)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -358,28 +363,30 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
- E4 end
- E4 end
+ D0 87 save_reg X#2 Z#7 (0x07); str x21, [sp, #56]
+ C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 0
E bit : 1
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+ D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
+ E4 end
+ E4 end
*************** EH table for MulticastDelegateCombineImpl:PosTest3():ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
libraries.crossgen2.linux.arm64.checked.mch
-16 (-11.11%) : 27233.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp+0x10] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str x2, [fp, #-0x08] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str x2, [fp, #0x10] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M56019_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #8 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #16 // [V02 arg2]
str x11, [x4]
mov w11, #8
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M56019_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-11.11%) : 27230.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp+0x14] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str w2, [fp, #-0x04] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str w2, [fp, #0x14] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M63626_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M63626_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #4 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #20 // [V02 arg2]
str x11, [x4]
mov w11, #4
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M63626_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-8.00%) : 27236.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
@@ -12,27 +12,27 @@
; V00 this [V00,T01] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T02] ( 3, 2.50) int -> x1 single-def
; V02 arg2 [V02,T00] ( 7, 4.50) ref -> x2 class-hnd <System.String>
-;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref
-; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp-0x08] must-init pinned
+;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref ptr
+; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp+0x10] must-init pinned ptr
; V05 loc2 [V05,T03] ( 5, 2.50) long -> x11
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T05] ( 3, 1.50) long -> x4
-;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V09 tmp3 [V09,T04] ( 2, 2 ) long -> x4 "Cast away GC"
-; V10 GsCookie [V10 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp2 [V08 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp4 [V10,T04] ( 2, 2 ) long -> x4 "Cast away GC"
+; V11 GsCookie [V11 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M49383_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
- str xzr, [fp, #-0x08] // [V04 loc1]
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V04 loc1]
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V10 GsCookie]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V11 GsCookie]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M49383_IG02: ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x2]
ldrb w4, [x0, #0x9D]
@@ -55,13 +55,12 @@ G_M49383_IG04: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
G_M49383_IG05: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
add x4, x2, #12
; byrRegs +[x4]
- str x4, [fp, #-0x08] // [V04 loc1]
- ldr x4, [fp, #-0x08] // [V04 loc1]
+ str x4, [fp, #0x10] // [V04 loc1]
+ ldr x4, [fp, #0x10] // [V04 loc1]
;; size=12 bbWeight=0.50 PerfScore 1.75
G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
; byrRegs -[x4]
- ldr wzr, [sp], #-0x10
- mov x11, sp
+ add x11, fp, #24 // [V08 tmp2]
str x4, [x11]
ldr w4, [x2, #0x08]
lsl w4, w4, #1
@@ -76,13 +75,13 @@ G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- str xzr, [fp, #-0x08] // [V04 loc1]
- ;; size=60 bbWeight=0.50 PerfScore 8.25
+ str xzr, [fp, #0x10] // [V04 loc1]
+ ;; size=56 bbWeight=0.50 PerfScore 7.25
G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V10 GsCookie]
+ ldr xip1, [fp, #0x28] // [V11 GsCookie]
cmp xip0, xip1
beq G_M49383_IG08
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -91,32 +90,30 @@ G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M49383_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 200, prolog size 32, PerfScore 42.75, instruction count 50, allocated bytes for code 200 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
+; Total bytes of code 184, prolog size 28, PerfScore 40.25, instruction count 46, allocated bytes for code 184 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 50 (0x00032) Actual length = 200 (0x0000c8)
- --- One epilog, unwind codes at 0
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+0 (0.00%) : 186932.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -8,15 +8,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> x19 single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> x1 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> x1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x1 single-def "arr expr"
-; V04 tmp2 [V04,T01] ( 3, 6 ) ref -> x0 single-def "arr expr"
-; V05 tmp3 [V05,T02] ( 3, 6 ) int -> x1 "index expr"
+; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> x1 single-def "arr expr"
+; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> x0 single-def "arr expr"
+; V05 tmp3 [V05,T03] ( 3, 6 ) int -> x1 "index expr"
; V06 cse0 [V06,T04] ( 3, 3 ) byref -> x0 "CSE - aggressive"
-; V07 cse1 [V07,T05] ( 3, 3 ) int -> x3 "CSE - aggressive"
-; V08 cse2 [V08,T06] ( 3, 3 ) int -> x2 "CSE - aggressive"
+; V07 cse1 [V07,T05] ( 3, 3 ) int -> x2 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -35,20 +34,20 @@ G_M53790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x0, #0xD1FFAB1E]
; gcrRegs +[x1]
uxth w2, w19
- asr w3, w2, #8
- ldr w4, [x1, #0x08]
- cmp w3, w4
+ asr w2, w2, #8
+ ldr w3, [x1, #0x08]
+ cmp w2, w3
bhs G_M53790_IG04
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- ldrb w1, [x1, w3, UXTW #2]
+ ldrb w1, [x1, w2, UXTW #2]
; byrRegs -[x1]
ldr x0, [x0, #0xD1FFAB1E]
; gcrRegs +[x0]
; byrRegs -[x0]
lsl w1, w1, #8
- add w1, w1, w2, UXTB
+ add w1, w1, w19, UXTB
ldr w2, [x0, #0x08]
cmp w1, w2
bhs G_M53790_IG04
+4 (+3.12%) : 159074.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,12 +8,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
; V01 loc0 [V01 ] ( 4, 4 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.String>
; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -21,10 +20,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
str w0, [fp, #0x18] // [V01 loc0]
add x0, fp, #24 // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -63,7 +63,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 128, prolog size 12, PerfScore 34.00, instruction count 32, allocated bytes for code 128 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 34.50, instruction count 33, allocated bytes for code 132 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +74,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.69%) : 36753.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.linux.arm64.checked.mch
-36 (-19.57%) : 2888.dasm - System.SpanHelpers:Fill[System.Numerics.Vector1[float]](byref,ulong,System.Numerics.Vector
1[float]) (FullOpts)
@@ -10,19 +10,19 @@
;
; V00 arg0 [V00,T02] ( 10, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T03] ( 8, 5.50) long -> x1 single-def
-; V02 arg2 [V02,T09] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
-; V03 loc0 [V03,T04] ( 12, 6 ) long -> x2
+; V02 arg2 [V02,T08] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
+; V03 loc0 [V03,T05] ( 7, 3.50) long -> x2
;* V04 loc1 [V04 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ld-addr-op <System.Numerics.Vector`1[float]>
-; V05 loc2 [V05,T08] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T07] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 9.50) byref -> x0 single-def
; V07 loc4 [V07,T06] ( 4, 2 ) long -> x2
-; V08 loc5 [V08,T05] ( 2, 4.50) long -> x3
+; V08 loc5 [V08,T04] ( 2, 4.50) long -> x3
; V09 loc6 [V09,T00] ( 7, 21 ) long -> x4
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V11 loc8 [V11 ] ( 0, 0 ) long -> zero-ref
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V14 tmp2 [V14,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -64,19 +64,10 @@ G_M26735_IG07: ; bbWeight=0.50, epilog, nogc, extend
G_M26735_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
mov x2, xzr
tbz w1, #2, G_M26735_IG09
- lsl x3, x2, #4
- str q0, [x0, x3]
- add x3, x2, #1
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #2
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #3
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x2, x2, #4
- ;; size=56 bbWeight=0.50 PerfScore 5.75
+ stp q0, q0, [x0]
+ stp q0, q0, [x0, #0x20]
+ mov x2, #4
+ ;; size=20 bbWeight=0.50 PerfScore 2.00
G_M26735_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
tbz w1, #1, G_M26735_IG10
lsl x3, x2, #4
@@ -97,7 +88,7 @@ G_M26735_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 184, prolog size 8, PerfScore 36.25, instruction count 46, allocated bytes for code 184 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
+; Total bytes of code 148, prolog size 8, PerfScore 32.50, instruction count 37, allocated bytes for code 148 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +99,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-12.50%) : 5203.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,9 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> x0 this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> x0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 3 ) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -21,16 +22,15 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
; byrRegs +[x0]
ldrh w1, [x0]
- ldrh w2, [x0]
- orr w1, w1, w2, LSL #16
+ orr w1, w1, w1, LSL #16
str w1, [x0]
- ;; size=16 bbWeight=1 PerfScore 8.00
+ ;; size=12 bbWeight=1 PerfScore 5.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 11.50, instruction count 8, allocated bytes for code 32 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 28, prolog size 8, PerfScore 8.50, instruction count 7, allocated bytes for code 28 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-4.17%) : 212093.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
@@ -56,13 +56,11 @@ G_M11197_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
str s0, [x0, #0x10]
ldr w0, [x0, #0x10]
; gcrRegs -[x0]
- sxtw x0, w0
- mov w0, w0
asr x1, x0, #24
adds x0, x0, x1
bvs G_M11197_IG07
and w20, w0, #0xD1FFAB1E
- ;; size=64 bbWeight=0.50 PerfScore 8.00
+ ;; size=56 bbWeight=0.50 PerfScore 7.50
G_M11197_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz w0, #0xD1FFAB1E
movk w0, #0xD1FFAB1E LSL #16
@@ -92,7 +90,7 @@ G_M11197_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
RWD00 dd 33800000h ; 5.96046e-08
-; Total bytes of code 192, prolog size 12, PerfScore 44.50, instruction count 48, allocated bytes for code 192 (MethodHash=6611d442) for method Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
+; Total bytes of code 184, prolog size 12, PerfScore 44.00, instruction count 46, allocated bytes for code 184 (MethodHash=6611d442) for method Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
; ============================================================
Unwind Info:
@@ -103,7 +101,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+1.25%) : 4686.dasm - System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) ushort -> x19 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V03 tmp2 [V03 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
@@ -19,8 +19,8 @@
;* V08 tmp7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V09 tmp8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V10 tmp9 [V10,T06] ( 4, 2.50) ushort -> x0 "Inline return value spill temp"
-; V11 tmp10 [V11,T02] ( 5, 3.50) int -> x20 "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> x21 class-hnd "Inline stloc first use temp" <ushort[]>
+; V11 tmp10 [V11,T01] ( 5, 3.50) int -> x21 "Inline stloc first use temp"
+; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> x22 class-hnd "Inline stloc first use temp" <ushort[]>
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
@@ -29,21 +29,22 @@
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
; V19 tmp18 [V19,T04] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V20 tmp19 [V20,T05] ( 3, 3 ) ref -> x0 single-def "arr expr"
-; V21 cse0 [V21,T07] ( 3, 1.50) int -> x0 "CSE - moderate"
-; V22 cse1 [V22,T01] ( 6, 4 ) int -> x19 "CSE - aggressive"
+; V21 cse0 [V21,T02] ( 5, 3.50) int -> x20 "CSE - aggressive"
+; V22 cse1 [V22,T07] ( 3, 1.50) int -> x0 "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M59106_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ mov w19, w0
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M59106_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- uxth w19, w0
- asr w20, w19, #8
- cbnz w20, G_M59106_IG05
+ uxth w20, w19
+ asr w21, w20, #8
+ cbnz w21, G_M59106_IG05
;; size=12 bbWeight=1 PerfScore 2.50
G_M59106_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
@@ -59,12 +60,12 @@ G_M59106_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x0, [x0]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
- cmp w19, w1
+ cmp w20, w1
bhs G_M59106_IG10
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- ldrh w0, [x0, w19, UXTW #2]
+ ldrh w0, [x0, w20, UXTW #2]
; byrRegs -[x0]
b G_M59106_IG09
;; size=40 bbWeight=0.50 PerfScore 6.75
@@ -82,13 +83,13 @@ G_M59106_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x0, [x0]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
- cmp w20, w1
+ cmp w21, w1
bhs G_M59106_IG10
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- ldr x21, [x0, w20, UXTW #3]
- ; gcrRegs +[x21]
+ ldr x22, [x0, w21, UXTW #3]
+ ; gcrRegs +[x22]
movz x0, #0xD1FFAB1E
; byrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -100,42 +101,42 @@ G_M59106_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- cmp x21, x0
+ cmp x22, x0
bne G_M59106_IG07
- sxtw w0, w19
+ sxtw w0, w20
; gcrRegs -[x0]
b G_M59106_IG09
;; size=88 bbWeight=0.50 PerfScore 11.50
-G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
- cbnz x21, G_M59106_IG08
- mov w0, w20
+G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M59106_IG08
+ mov w0, w21
movz x1, #0xD1FFAB1E // code for System.Globalization.OrdinalCasing:InitOrdinalCasingPage(int):ushort[]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ; gcrRegs -[x21] +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
+ ; gcrRegs -[x22] +[x0]
+ mov x22, x0
+ ; gcrRegs +[x22]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
+G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
uxtb w0, w19
- ldr w1, [x21, #0x08]
+ ldr w1, [x22, #0x08]
cmp w0, w1
bhs G_M59106_IG10
- add x1, x21, #16
+ add x1, x22, #16
; byrRegs +[x1]
ldrh w0, [x1, w0, UXTW #2]
;; size=24 bbWeight=0.50 PerfScore 4.25
G_M59106_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x21]
+ ; gcrRegs -[x22]
; byrRegs -[x1]
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M59106_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
;; size=4 bbWeight=0 PerfScore 0.00
@@ -156,7 +157,7 @@ G_M59106_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
b G_M59106_IG06
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 320, prolog size 16, PerfScore 42.75, instruction count 80, allocated bytes for code 320 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
+; Total bytes of code 324, prolog size 16, PerfScore 42.25, instruction count 81, allocated bytes for code 324 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
; ============================================================
Unwind Info:
@@ -167,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 81 (0x00051) Actual length = 324 (0x000144)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -175,9 +176,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
+ E6 save_next
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+ E4 end
+4 (+3.33%) : 200823.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,13 +8,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> x20 single-def "argument with side effect"
; V05 tmp3 [V05,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V06 cse0 [V06,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -22,10 +21,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
movz x1, #0xD1FFAB1E // code for System.Number:Int32ToDecStr(int):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -61,7 +61,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 120, prolog size 12, PerfScore 27.00, instruction count 30, allocated bytes for code 120 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 27.50, instruction count 31, allocated bytes for code 124 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+6.85%) : 264944.dasm - System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
@@ -15,17 +15,17 @@
; V04 tmp1 [V04,T04] ( 3, 4 ) int -> x22 "impAppendStmt"
; V05 tmp2 [V05,T00] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V07 tmp4 [V07,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp5 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V10 tmp7 [V10,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T11] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V13 tmp10 [V13,T07] ( 2, 2 ) short -> x0 "field V06._offsetMinutes (fldOffset=0x0)" P-INDEP
; V14 tmp11 [V14,T08] ( 2, 2 ) long -> x1 "field V06._dateTime (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T13] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V15 tmp12 [V15,T11] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V16 cse0 [V16,T05] ( 4, 3.50) int -> x22 "CSE - aggressive"
-;* V17 cse1 [V17,T06] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 cse1 [V17,T06] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -99,10 +99,23 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb w20, [x23, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x21, #8
; byrRegs +[x14]
mov x15, x23
@@ -110,7 +123,7 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x21 x23]
; byrRegs -[x14]
- ;; size=104 bbWeight=1 PerfScore 20.50
+ ;; size=124 bbWeight=1 PerfScore 23.50
G_M15258_IG08: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -138,7 +151,7 @@ G_M15258_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
brk_unix #0
;; size=52 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 20, PerfScore 47.13, instruction count 73, allocated bytes for code 292 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
+; Total bytes of code 312, prolog size 20, PerfScore 50.13, instruction count 78, allocated bytes for code 312 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
; ============================================================
Unwind Info:
@@ -149,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 73 (0x00049) Actual length = 292 (0x000124)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries_tests.run.linux.arm64.Release.mch
-28 (-58.33%) : 482417.dasm - TestType:meth1():int (Tier0)
@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- mov w1, #1
- add w1, w1, #1
- add w1, w1, #1
- add w0, w0, w1
- add w0, w0, #2
- add w0, w0, #1
- ;; size=32 bbWeight=1 PerfScore 4.00
+ mov w0, #8
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 48, prolog size 8, PerfScore 7.50, instruction count 12, allocated bytes for code 48 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-37.50%) : 482416.dasm - TestType:meth1():int (Tier0)
@@ -14,17 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- add w0, w0, #1
- add w0, w0, #1
- ;; size=16 bbWeight=1 PerfScore 2.00
+ mov w0, #4
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 5.50, instruction count 8, allocated bytes for code 32 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-28.57%) : 73791.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
@@ -14,16 +14,14 @@ G_M23088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M23088_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #0xD1FFAB1E
- mov w1, #8
- udiv w0, w0, w1
- ;; size=12 bbWeight=1 PerfScore 12.00
+ mov w0, #64
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M23088_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 15.50, instruction count 7, allocated bytes for code 28 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 186520.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
@@ -19,20 +19,21 @@ G_M43989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
sxtb w0, w0
sxtw x0, w0
- and x0, x0, #255
+ uxtb w0, w0
+ mov w0, w0
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 9.50
G_M43989_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 13.50, instruction count 14, allocated bytes for code 56 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
+; Total bytes of code 60, prolog size 8, PerfScore 14.00, instruction count 15, allocated bytes for code 60 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +44,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+12.50%) : 275970.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,14 +18,15 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
asr w0, w0, #16
+ uxth w0, w0
sxth w0, w0
- ;; size=12 bbWeight=1 PerfScore 3.50
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 36, prolog size 8, PerfScore 8.50, instruction count 9, allocated bytes for code 36 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -36,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 9 (0x00009) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 275969.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,14 +17,15 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
+ uxth w0, w0
sxth w0, w0
- ;; size=8 bbWeight=1 PerfScore 2.50
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 7.00, instruction count 7, allocated bytes for code 28 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 7.50, instruction count 8, allocated bytes for code 32 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
-8 (-6.90%) : 74668.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass50:b__0():this (FullOpts)
@@ -32,9 +32,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M1950_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- add x1, x1, x2
+ add x1, x1, #12
; gcrRegs -[x1]
; byrRegs +[x1]
ldr w2, [x1]
@@ -44,7 +42,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; byrRegs -[x1]
add w1, w1, #1
str w1, [x0, #0x14]
- ;; size=68 bbWeight=1 PerfScore 25.50
+ ;; size=60 bbWeight=1 PerfScore 24.50
G_M1950_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
@@ -63,7 +61,7 @@ G_M1950_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 116, prolog size 8, PerfScore 29.00, instruction count 29, allocated bytes for code 116 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-6.25%) : 74658.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__2():System.Object:this (FullOpts)
@@ -39,14 +39,12 @@ G_M31437_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M31437_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- ldr w1, [x1, x2]
+ ldr w1, [x1, #0x0C]
; gcrRegs -[x1]
tst w1, #0xD1FFAB1E
cset x1, ne
strb w1, [x0, #0x08]
- ;; size=72 bbWeight=1 PerfScore 23.50
+ ;; size=64 bbWeight=1 PerfScore 22.50
G_M31437_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -66,7 +64,7 @@ G_M31437_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 12, PerfScore 30.00, instruction count 32, allocated bytes for code 128 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 29.00, instruction count 30, allocated bytes for code 120 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-6.25%) : 74655.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__0():System.Object:this (FullOpts)
@@ -39,14 +39,12 @@ G_M55567_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M55567_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- ldr w1, [x1, x2]
+ ldr w1, [x1, #0x0C]
; gcrRegs -[x1]
tst w1, #0xD1FFAB1E
cset x1, ne
strb w1, [x0, #0x08]
- ;; size=72 bbWeight=1 PerfScore 23.50
+ ;; size=64 bbWeight=1 PerfScore 22.50
G_M55567_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -66,7 +64,7 @@ G_M55567_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 12, PerfScore 30.00, instruction count 32, allocated bytes for code 128 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 29.00, instruction count 30, allocated bytes for code 120 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 117096.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_11():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #52
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M8078_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=b788e071) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=b788e071) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 117100.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_15():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M56330_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #120
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M56330_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M56330_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=732723f5) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=732723f5) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 117104.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_18():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M21223_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #75
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M21223_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M21223_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=82d2ad18) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=82d2ad18) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
realworld.run.linux.arm64.checked.mch
-4 (-4.00%) : 5126.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
@@ -31,8 +31,7 @@ G_M26680_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w2, w1
- and w2, w2, #0xD1FFAB1E
+ and w2, w1, #0xD1FFAB1E
sxtw w3, w2
and x4, x0, #0xD1FFAB1E
asr x4, x4, #24
@@ -41,7 +40,7 @@ G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w2, w5, w2
cmp w2, w3
bgt G_M26680_IG04
- ;; size=40 bbWeight=1 PerfScore 6.50
+ ;; size=36 bbWeight=1 PerfScore 6.00
G_M26680_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
@@ -62,7 +61,7 @@ G_M26680_IG05: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 100, prolog size 8, PerfScore 12.50, instruction count 25, allocated bytes for code 100 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 12.00, instruction count 24, allocated bytes for code 96 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
; ============================================================
Unwind Info:
@@ -73,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 14936.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-2.11%) : 7257.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
@@ -84,10 +84,8 @@ G_M52754_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M52754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov w4, w1
- and w4, w4, #0xD1FFAB1E
- mov w5, w3
- and w5, w5, #0xD1FFAB1E
+ and w4, w1, #0xD1FFAB1E
+ and w5, w3, #0xD1FFAB1E
cmp w4, w5
bgt G_M52754_IG08
cmp w4, w5
@@ -98,7 +96,7 @@ G_M52754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
asr x7, x7, #24
cmp w6, w7
ble G_M52754_IG09
- ;; size=56 bbWeight=0.50 PerfScore 4.75
+ ;; size=48 bbWeight=0.50 PerfScore 4.25
G_M52754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x6, x2
mov x7, x3
@@ -184,7 +182,7 @@ G_M52754_IG16: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 380, prolog size 8, PerfScore 34.25, instruction count 95, allocated bytes for code 380 (MethodHash=9aa731ed) for method FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
+; Total bytes of code 372, prolog size 8, PerfScore 33.75, instruction count 93, allocated bytes for code 372 (MethodHash=9aa731ed) for method FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
; ============================================================
Unwind Info:
@@ -195,7 +193,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.17%) : 1814.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 5, 5 ) byref -> x20 this single-def
+; V00 this [V00,T01] ( 4, 4 ) byref -> x20 this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> x21 single-def
; V02 arg2 [V02,T00] ( 6, 6 ) ref -> x19 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 3 ) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
-; V06 tmp2 [V06,T04] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
-;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V05 tmp1 [V05,T05] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
+; V06 tmp2 [V06,T06] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T04] ( 2, 4 ) byref -> x22 single-def "Inlining Arg"
+; V08 tmp4 [V08,T07] ( 2, 4 ) int -> x0 "Inlining Arg"
+; V09 tmp5 [V09,T08] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V10 tmp6 [V10,T09] ( 2, 4 ) long -> x1 "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V12 tmp8 [V12 ] ( 3, 3 ) long -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V13 tmp9 [V13 ] ( 2, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
; V14 tmp10 [V14 ] ( 2, 2 ) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
-; V15 cse0 [V15,T05] ( 3, 3 ) byref -> x22 "CSE - aggressive"
-; V16 cse1 [V16,T06] ( 3, 3 ) long -> x23 "CSE - aggressive"
+; V15 cse0 [V15,T03] ( 4, 4 ) byref -> x22 "CSE - aggressive"
+; V16 cse1 [V16,T10] ( 3, 3 ) long -> x23 "CSE - aggressive"
;
; Lcl frame size = 24
@@ -64,14 +64,15 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
mov w1, w21
blr x3
; gcrRegs -[x0]
- ; byrRegs -[x2 x22]
- ldr x0, [x20, #0x08]
+ ; byrRegs -[x2]
+ ldr w0, [x20, #0x04]
+ ldr x3, [x22]
ldr x1, [fp, #0x18] // [V12 tmp8]
- ldr w2, [x20, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ lsl w0, w0, #2
+ mov w2, w0
+ mov x0, x3
bl CORINFO_HELP_MEMCPY
- ; byrRegs -[x20]
+ ; byrRegs -[x20 x22]
mov x0, x19
; gcrRegs +[x0]
mov x1, x23
@@ -86,7 +87,7 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x19]
- ;; size=132 bbWeight=1 PerfScore 29.00
+ ;; size=136 bbWeight=1 PerfScore 29.50
G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
@@ -95,7 +96,7 @@ G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 184, prolog size 20, PerfScore 41.00, instruction count 46, allocated bytes for code 184 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 188, prolog size 20, PerfScore 41.50, instruction count 47, allocated bytes for code 188 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -106,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+3.39%) : 1706.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -15,16 +15,16 @@
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V06 tmp2 [V06,T04] ( 3, 3 ) int -> x0 "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T08] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
+; V08 tmp4 [V08,T09] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> x22 "Inline return value spill temp"
+; V11 tmp7 [V11,T13] ( 2, 1 ) int -> x22 "Inline return value spill temp"
; V12 tmp8 [V12,T05] ( 3, 3 ) int -> x1 "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V13 tmp9 [V13,T07] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V14 tmp10 [V14,T10] ( 2, 2 ) int -> x1 "Inlining Arg"
+; V15 tmp11 [V15,T11] ( 2, 2 ) long -> x0 "Inlining Arg"
+; V16 tmp12 [V16,T12] ( 2, 2 ) long -> x3 "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V18 tmp14 [V18,T06] ( 3, 3 ) int -> x1 "Inline stloc first use temp"
; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> x0 single-def "impAppendStmt"
@@ -78,11 +78,15 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
blr x3
; gcrRegs -[x0]
; byrRegs -[x2]
- ldr x0, [x19, #0x08]
- ldr x1, [fp, #0x10] // [V20 tmp16]
- ldr w2, [x19, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ add x0, x19, #8
+ ; byrRegs +[x0]
+ ldr w1, [x19, #0x04]
+ ldr x0, [x0]
+ ; byrRegs -[x0]
+ ldr x3, [fp, #0x10] // [V20 tmp16]
+ lsl w1, w1, #2
+ mov w2, w1
+ mov x1, x3
bl CORINFO_HELP_MEMCPY
mov x0, x20
; gcrRegs +[x0]
@@ -100,7 +104,7 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x20]
- ;; size=152 bbWeight=0.50 PerfScore 18.50
+ ;; size=160 bbWeight=0.50 PerfScore 19.00
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
add x0, x19, #8
; byrRegs +[x0]
@@ -118,7 +122,7 @@ G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 236, prolog size 16, PerfScore 44.00, instruction count 59, allocated bytes for code 236 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 244, prolog size 16, PerfScore 44.50, instruction count 61, allocated bytes for code 244 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
smoke_tests.nativeaot.linux.arm64.checked.mch
-16 (-2.31%) : 4244.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -13,7 +13,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -21,13 +21,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -186,45 +184,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
@@ -260,7 +254,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 692, prolog size 24, PerfScore 792.00, instruction count 173, allocated bytes for code 692 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 676, prolog size 24, PerfScore 795.00, instruction count 169, allocated bytes for code 676 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Cfi Info:
-4 (-1.61%) : 4230.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
@@ -11,20 +11,18 @@
; V01 arg1 [V01,T02] ( 5, 5 ) int -> x20 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Threading.Lock+Scope>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T08] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V04 tmp1 [V04,T07] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V06 tmp3 [V06,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V07 tmp4 [V07,T00] ( 4, 8 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Threading.Lock>
+; V06 tmp3 [V06,T08] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp4 [V07,T00] ( 5, 10 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Threading.Lock>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Lock+Scope>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Lock+ThreadId>
-;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Lock>
-; V13 tmp10 [V13,T07] ( 4, 1 ) ref -> [fp+0x18] EH-live single-def "field V02._lockObj (fldOffset=0x0)" P-INDEP
-; V14 tmp11 [V14,T03] ( 3, 2 ) int -> [fp+0x24] do-not-enreg[Z] EH-live "field V02._currentThreadId (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T04] ( 2, 2 ) ref -> x21 single-def "field V08._lockObj (fldOffset=0x0)" P-INDEP
-; V16 tmp13 [V16,T05] ( 2, 2 ) int -> x0 "field V08._currentThreadId (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T06] ( 2, 2 ) int -> x0 "field V09._id (fldOffset=0x0)" P-INDEP
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Lock>
+; V11 tmp8 [V11,T09] ( 3, 0 ) ref -> [fp+0x18] EH-live single-def "field V02._lockObj (fldOffset=0x0)" P-INDEP
+; V12 tmp9 [V12,T03] ( 3, 2 ) int -> [fp+0x24] do-not-enreg[Z] EH-live "field V02._currentThreadId (fldOffset=0x8)" P-INDEP
+;* V13 tmp10 [V13,T06] ( 0, 0 ) ref -> zero-ref single-def "field V08._lockObj (fldOffset=0x0)" P-INDEP
+; V14 tmp11 [V14,T04] ( 2, 2 ) int -> x0 "field V08._currentThreadId (fldOffset=0x8)" P-INDEP
+; V15 tmp12 [V15,T05] ( 2, 2 ) int -> x0 "field V09._id (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 24
@@ -55,18 +53,18 @@ G_M62244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- str x21, [fp, #0x18] // [V13 tmp10]
- ; GC ptr vars +{V13}
- str w0, [fp, #0x24] // [V14 tmp11]
+ str x21, [fp, #0x18] // [V11 tmp8]
+ ; GC ptr vars +{V11}
+ str w0, [fp, #0x24] // [V12 tmp9]
;; size=52 bbWeight=1 PerfScore 16.50
-G_M62244_IG03: ; bbWeight=1, gcVars=0000000000000080 {V13}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M62244_IG03: ; bbWeight=1, gcVars=0000000000000200 {V11}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
str w20, [x19, #0x54]
;; size=4 bbWeight=1 PerfScore 1.00
-G_M62244_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M62244_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars -{V11}
mov x0, x21
; gcrRegs +[x0]
- ldr w1, [fp, #0x24] // [V14 tmp11]
- ; GC ptr vars -{V13}
+ ldr w1, [fp, #0x24] // [V12 tmp9]
bl <unknown method>
; gcrRegs -[x0 x21]
; gcr arg pop 0
@@ -90,18 +88,18 @@ G_M62244_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x21, x0
- ; gcrRegs +[x21]
+ mov x19, x0
+ ; gcrRegs +[x19]
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
bl <unknown method>
; gcrRegs -[x0-x1]
; gcr arg pop 0
- mov x0, x21
+ mov x0, x19
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x21]
+ ; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=36 bbWeight=0 PerfScore 0.00
G_M62244_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -125,24 +123,22 @@ G_M62244_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=40 bbWeight=0 PerfScore 0.00
-G_M62244_IG09: ; bbWeight=0, gcVars=0000000000000080 {V13}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
- ; GC ptr vars +{V07 V13}
+G_M62244_IG09: ; bbWeight=0, gcVars=0000000000000200 {V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+ ; GC ptr vars +{V11}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
str x21, [sp, #0x28]
;; size=12 bbWeight=0 PerfScore 0.00
-G_M62244_IG10: ; bbWeight=0, gcVars=0000000000000080 {V13}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x21, [fp, #0x18] // [V13 tmp10]
- ; gcrRegs +[x21]
- cbz x21, G_M62244_IG11
- mov x0, x21
+G_M62244_IG10: ; bbWeight=0, gcVars=0000000000000200 {V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr x0, [fp, #0x18] // [V11 tmp8]
; gcrRegs +[x0]
- ldr w1, [fp, #0x24] // [V14 tmp11]
- ; GC ptr vars -{V07 V13}
+ cbz x0, G_M62244_IG11
+ ldr w1, [fp, #0x24] // [V12 tmp9]
+ ; GC ptr vars -{V11}
bl <unknown method>
- ; gcrRegs -[x0 x21]
+ ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M62244_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -150,7 +146,7 @@ G_M62244_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 248, prolog size 24, PerfScore 32.75, instruction count 62, allocated bytes for code 248 (MethodHash=db8f0cdb) for method System.Threading.Thread:set_Priority(int):this (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 32.75, instruction count 61, allocated bytes for code 244 (MethodHash=db8f0cdb) for method System.Threading.Thread:set_Priority(int):this (FullOpts)
; ============================================================
Cfi Info:
-4 (-1.45%) : 4161.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
@@ -12,12 +12,12 @@
; V02 arg2 [V02,T05] ( 3, 3 ) int -> x20 single-def
; V03 arg3 [V03,T06] ( 3, 3 ) int -> x21 single-def
; V04 arg4 [V04,T07] ( 3, 3 ) ubyte -> x4 single-def
-; V05 loc0 [V05,T00] ( 24, 17 ) int -> x22
+; V05 loc0 [V05,T00] ( 22, 16 ) int -> x22
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 rat0 [V07,T08] ( 3, 3 ) long -> x23 "fgMakeTemp is creating a new local variable"
; V08 rat1 [V08,T09] ( 3, 3 ) long -> x24 "fgMakeTemp is creating a new local variable"
; V09 rat2 [V09,T01] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable"
-; V10 rat3 [V10,T02] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V10 rat3 [V10,T02] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -50,7 +50,7 @@ G_M31052_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
adrp x23, [HIGH RELOC #0xD1FFAB1E]
add x23, x23, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x23, #-0x08]
- cbnz x0, G_M31052_IG16
+ cbnz x0, G_M31052_IG15
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M31052_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x23]
@@ -69,7 +69,7 @@ G_M31052_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
adrp x24, [HIGH RELOC #0xD1FFAB1E]
add x24, x24, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x24, #-0x08]
- cbnz x0, G_M31052_IG17
+ cbnz x0, G_M31052_IG16
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M31052_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x24]
@@ -80,10 +80,10 @@ G_M31052_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
orr w22, w22, #96
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M31052_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w19, #1
- cmp w1, #2
- bhi G_M31052_IG14
- mov w0, w1
+ sub w0, w19, #1
+ cmp w0, #2
+ bhi G_M31052_IG13
+ mov w0, w0
adr x1, [@RWD24]
ldr w1, [x1, x0, LSL #2]
adr x2, [G_M31052_IG02]
@@ -91,16 +91,13 @@ G_M31052_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
br x1
;; size=36 bbWeight=1 PerfScore 8.00
G_M31052_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- b G_M31052_IG14
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w22, w22, #2
- b G_M31052_IG14
+ b G_M31052_IG13
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M31052_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w22, w22, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M31052_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w0, w22, #16
tst w20, #16
csel w22, w22, w0, ne
@@ -109,19 +106,19 @@ G_M31052_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
csel w22, w22, w0, eq
mov w0, w22
;; size=28 bbWeight=1 PerfScore 3.50
-G_M31052_IG15: ; bbWeight=1, epilog, nogc, extend
+G_M31052_IG14: ; bbWeight=1, epilog, nogc, extend
ldp x23, x24, [sp, #0x30]
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-G_M31052_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M31052_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE
; byrRegs +[x0]
b G_M31052_IG04
;; size=8 bbWeight=0 PerfScore 0.00
-G_M31052_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x0]
bl CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE
; byrRegs +[x0]
@@ -133,12 +130,12 @@ RWD00 dd G_M31052_IG09 - G_M31052_IG02
dd G_M31052_IG06 - G_M31052_IG02
dd G_M31052_IG03 - G_M31052_IG02
dd G_M31052_IG06 - G_M31052_IG02
-RWD24 dd G_M31052_IG11 - G_M31052_IG02
- dd G_M31052_IG13 - G_M31052_IG02
+RWD24 dd G_M31052_IG13 - G_M31052_IG02
dd G_M31052_IG12 - G_M31052_IG02
+ dd G_M31052_IG11 - G_M31052_IG02
-; Total bytes of code 276, prolog size 20, PerfScore 45.50, instruction count 69, allocated bytes for code 276 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
+; Total bytes of code 272, prolog size 20, PerfScore 45.00, instruction count 68, allocated bytes for code 272 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
; ============================================================
Cfi Info:
+4 (+2.00%) : 1409.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable
2[System.Canon,System.Canon]):this (FullOpts)
@@ -13,10 +13,9 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V06 tmp3 [V06,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V07 tmp4 [V07,T00] ( 3, 24 ) ref -> x2 "arr expr"
; V08 cse0 [V08,T02] ( 4, 10 ) ref -> x1 "CSE - aggressive"
-; V09 cse1 [V09,T05] ( 3, 1.50) ref -> x1 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -34,15 +33,16 @@ G_M9941_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}
cbnz x20, G_M9941_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M9941_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ adrp x0, [HIGH RELOC #0xD1FFAB1E]
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x0]
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
- mov x0, x1
- ; gcrRegs +[x0]
bl <unknown method>
; gcrRegs -[x0-x1]
; gcr arg pop 0
- ;; size=16 bbWeight=0.50 PerfScore 1.25
+ ;; size=20 bbWeight=0.50 PerfScore 1.50
G_M9941_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -116,7 +116,7 @@ G_M9941_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 200, prolog size 24, PerfScore 84.75, instruction count 50, allocated bytes for code 200 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 204, prolog size 24, PerfScore 85.00, instruction count 51, allocated bytes for code 204 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Cfi Info:
+16 (+6.25%) : 8569.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
@@ -8,17 +8,17 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd exact single-def <Internal.Runtime.TypeLoader.TypeBuilderState>
-; V01 arg1 [V01,T02] ( 4, 3 ) long -> x20 single-def
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> x22 single-def
-; V03 arg3 [V03,T03] ( 3, 3 ) ubyte -> x21 single-def
-; V04 loc0 [V04,T05] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
+; V01 arg1 [V01,T01] ( 4, 3 ) long -> x20 single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> x22 single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) ubyte -> x21 single-def
+; V04 loc0 [V04,T04] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
; V05 loc1 [V05,T06] ( 4, 2 ) int -> x22
; V06 loc2 [V06,T07] ( 3, 1.50) int -> x0 single-def
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.RuntimeTypeHandle>
;* V09 tmp2 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.RuntimeTypeHandle>
-; V11 tmp4 [V11,T01] ( 5, 5 ) int -> x0 "Single return block return value"
+; V11 tmp4 [V11,T05] ( 4, 4 ) int -> x0 "Single return block return value"
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V13 tmp6 [V13 ] ( 0, 0 ) long -> zero-ref single-def "field V10._value (fldOffset=0x0)" P-INDEP
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
@@ -45,7 +45,7 @@ G_M27966_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
mov x23, x0
; gcrRegs +[x23]
tst w21, #255
- beq G_M27966_IG07
+ beq G_M27966_IG08
;; size=24 bbWeight=1 PerfScore 6.50
G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
@@ -54,22 +54,28 @@ G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=000
bl Internal.Runtime.TypeLoader.TypeBuilderState:get_IsArrayOfReferenceTypes():ubyte:this
; gcrRegs -[x0 x19]
cbnz w0, G_M27966_IG04
- cbz x23, G_M27966_IG05
+ cbz x23, G_M27966_IG06
mov x0, x23
; gcrRegs +[x0]
bl Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte
; gcrRegs -[x0]
- cbz w0, G_M27966_IG05
+ cbz w0, G_M27966_IG06
;; size=28 bbWeight=0.50 PerfScore 3.00
G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
mov w0, #24
- b G_M27966_IG09
- ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M27966_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x40
+ ret lr
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M27966_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x23]
mov w22, wzr
- cbz x23, G_M27966_IG06
+ cbz x23, G_M27966_IG07
mov x0, x23
; gcrRegs +[x0]
mov w1, #1
@@ -79,16 +85,16 @@ G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
; gcrRegs -[x0 x23]
sxtw w22, w0
;; size=32 bbWeight=0.50 PerfScore 2.50
-G_M27966_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp w22, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w2, w22, #3
add w0, w2, #16
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x23]
- cbz x23, G_M27966_IG08
+ cbz x23, G_M27966_IG09
uxtb w2, w22
mov x0, x23
; gcrRegs +[x0]
@@ -98,28 +104,28 @@ G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
bl <unknown method>
; gcrRegs -[x0 x23]
cmp w0, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w0, w0, #1
lsl w0, w0, #3
add w0, w0, #8
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=52 bbWeight=0.50 PerfScore 4.75
-G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M27966_IG10
+G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cbz x20, G_M27966_IG11
mov x0, x20
bl <unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M27966_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M27966_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M27966_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -127,7 +133,7 @@ G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-; Total bytes of code 256, prolog size 20, PerfScore 33.50, instruction count 64, allocated bytes for code 256 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
+; Total bytes of code 272, prolog size 20, PerfScore 36.00, instruction count 68, allocated bytes for code 272 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
; ============================================================
Cfi Info:
+4 (+10.00%) : 1643.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -23,16 +23,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
bl <unknown method>
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=24 bbWeight=1 PerfScore 3.50
+ ;; size=28 bbWeight=1 PerfScore 4.00
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 7.00, instruction count 10, allocated bytes for code 40 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 7.50, instruction count 11, allocated bytes for code 44 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Cfi Info:
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.linux.arm64.checked.mch |
43 |
19 |
12 |
12 |
-296 |
+104 |
benchmarks.run_pgo.linux.arm64.checked.mch |
234 |
135 |
7 |
92 |
-2,896 |
+696 |
benchmarks.run_tiered.linux.arm64.checked.mch |
142 |
88 |
7 |
47 |
-1,692 |
+184 |
coreclr_tests.run.linux.arm64.checked.mch |
8,070 |
6,677 |
553 |
840 |
-124,612 |
+6,396 |
libraries.crossgen2.linux.arm64.checked.mch |
44 |
18 |
2 |
24 |
-424 |
+8 |
libraries.pmi.linux.arm64.checked.mch |
207 |
53 |
112 |
42 |
-924 |
+14,820 |
libraries_tests.run.linux.arm64.Release.mch |
1,013 |
559 |
58 |
396 |
-246,188 |
+5,536 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
435 |
191 |
154 |
90 |
-133,556 |
+4,652 |
realworld.run.linux.arm64.checked.mch |
104 |
66 |
15 |
23 |
-792 |
+1,460 |
smoke_tests.nativeaot.linux.arm64.checked.mch |
15 |
4 |
4 |
7 |
-112 |
+28 |
|
10,307 |
7,810 |
924 |
1,573 |
-511,492 |
+33,884 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.arm64.checked.mch |
33,701 |
2,779 |
30,922 |
0 (0.00%) |
9 (0.03%) |
benchmarks.run_pgo.linux.arm64.checked.mch |
152,891 |
61,290 |
91,601 |
0 (0.00%) |
13 (0.01%) |
benchmarks.run_tiered.linux.arm64.checked.mch |
63,805 |
48,019 |
15,786 |
0 (0.00%) |
9 (0.01%) |
coreclr_tests.run.linux.arm64.checked.mch |
625,160 |
382,318 |
242,842 |
27 (0.00%) |
116 (0.02%) |
libraries.crossgen2.linux.arm64.checked.mch |
234,496 |
15 |
234,481 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.arm64.checked.mch |
295,700 |
6 |
295,694 |
0 (0.00%) |
45 (0.02%) |
libraries_tests.run.linux.arm64.Release.mch |
744,025 |
490,908 |
253,117 |
0 (0.00%) |
141 (0.02%) |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
304,719 |
21,599 |
283,120 |
0 (0.00%) |
146 (0.05%) |
realworld.run.linux.arm64.checked.mch |
33,307 |
151 |
33,156 |
0 (0.00%) |
2 (0.01%) |
smoke_tests.nativeaot.linux.arm64.checked.mch |
18,802 |
7 |
18,795 |
231 (1.21%) |
231 (1.21%) |
|
2,506,606 |
1,007,092 |
1,499,514 |
258 (0.01%) |
712 (0.03%) |
jit-analyze output
benchmarks.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15544288 (overridden on cmd)
Total bytes of diff: 15544096 (overridden on cmd)
Total bytes of delta: -192 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
20 : 19232.dasm (4.17 % of base)
20 : 22562.dasm (0.95 % of base)
16 : 10235.dasm (0.19 % of base)
8 : 12599.dasm (0.29 % of base)
8 : 10299.dasm (0.33 % of base)
8 : 10325.dasm (0.40 % of base)
4 : 11531.dasm (0.88 % of base)
4 : 160.dasm (7.14 % of base)
4 : 19327.dasm (0.88 % of base)
4 : 25203.dasm (0.88 % of base)
4 : 19326.dasm (0.88 % of base)
4 : 11530.dasm (0.88 % of base)
Top file improvements (bytes):
-88 : 1176.dasm (-32.84 % of base)
-32 : 21642.dasm (-1.24 % of base)
-32 : 21656.dasm (-1.27 % of base)
-20 : 20183.dasm (-0.46 % of base)
-16 : 7976.dasm (-2.27 % of base)
-16 : 8227.dasm (-2.27 % of base)
-16 : 8441.dasm (-2.27 % of base)
-8 : 16647.dasm (-0.35 % of base)
-8 : 23561.dasm (-0.35 % of base)
-8 : 115.dasm (-0.35 % of base)
-8 : 26796.dasm (-0.35 % of base)
-8 : 25390.dasm (-0.35 % of base)
-8 : 29435.dasm (-0.35 % of base)
-8 : 13418.dasm (-0.35 % of base)
-4 : 11070.dasm (-0.05 % of base)
-4 : 28326.dasm (-0.07 % of base)
-4 : 432.dasm (-1.23 % of base)
-4 : 33302.dasm (-0.04 % of base)
-4 : 20174.dasm (-0.24 % of base)
31 total files with Code Size differences (19 improved, 12 regressed), 12 unchanged.
Top method regressions (bytes):
20 (4.17 % of base) : 19232.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 22562.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
16 (0.19 % of base) : 10235.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
8 (0.29 % of base) : 12599.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
8 (0.33 % of base) : 10299.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 10325.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (7.14 % of base) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (0.88 % of base) : 19326.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 25203.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 11530.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 11531.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 19327.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 1176.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-32 (-1.27 % of base) : 21656.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 21642.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-20 (-0.46 % of base) : 20183.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-16 (-2.27 % of base) : 7976.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8227.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8441.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-8 (-0.35 % of base) : 16647.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 23561.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 26796.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 25390.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 29435.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 13418.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-4 (-0.05 % of base) : 11070.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.07 % of base) : 28326.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 33302.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.24 % of base) : 20174.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-1.23 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
20 (4.17 % of base) : 19232.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 22562.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
4 (0.88 % of base) : 19326.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 25203.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 11530.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 11531.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 19327.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 10325.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.33 % of base) : 10299.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.29 % of base) : 12599.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
16 (0.19 % of base) : 10235.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 1176.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-2.27 % of base) : 7976.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8227.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8441.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-32 (-1.27 % of base) : 21656.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 21642.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-4 (-1.23 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-20 (-0.46 % of base) : 20183.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-8 (-0.35 % of base) : 16647.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 23561.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 26796.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 25390.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 29435.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-8 (-0.35 % of base) : 13418.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-4 (-0.24 % of base) : 20174.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-0.07 % of base) : 28326.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.05 % of base) : 11070.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 33302.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
31 total methods with Code Size differences (19 improved, 12 regressed).
benchmarks.run_pgo.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 80065512 (overridden on cmd)
Total bytes of diff: 80063312 (overridden on cmd)
Total bytes of delta: -2200 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
508 : 137671.dasm (5.63 % of base)
120 : 134866.dasm (1.27 % of base)
16 : 46734.dasm (3.51 % of base)
16 : 38599.dasm (3.51 % of base)
16 : 38631.dasm (3.51 % of base)
16 : 46709.dasm (3.51 % of base)
4 : 578.dasm (3.70 % of base)
Top file improvements (bytes):
-120 : 27147.dasm (-40.00 % of base)
-120 : 37949.dasm (-40.00 % of base)
-120 : 103768.dasm (-40.00 % of base)
-120 : 146192.dasm (-40.00 % of base)
-100 : 11860.dasm (-8.45 % of base)
-100 : 24917.dasm (-8.45 % of base)
-96 : 13871.dasm (-17.39 % of base)
-92 : 12848.dasm (-6.99 % of base)
-92 : 7826.dasm (-7.80 % of base)
-88 : 3594.dasm (-2.88 % of base)
-88 : 24535.dasm (-2.88 % of base)
-88 : 3904.dasm (-7.51 % of base)
-88 : 9828.dasm (-7.51 % of base)
-60 : 14038.dasm (-5.49 % of base)
-60 : 7804.dasm (-5.49 % of base)
-56 : 109883.dasm (-2.73 % of base)
-56 : 94149.dasm (-4.19 % of base)
-48 : 14320.dasm (-4.92 % of base)
-48 : 52653.dasm (-4.92 % of base)
-28 : 185.dasm (-1.47 % of base)
43 total files with Code Size differences (36 improved, 7 regressed), 29 unchanged.
Top method regressions (bytes):
508 (5.63 % of base) : 137671.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
120 (1.27 % of base) : 134866.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
16 (3.51 % of base) : 38599.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 38631.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 46734.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 46709.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (3.70 % of base) : 578.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-120 (-40.00 % of base) : 27147.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 37949.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 103768.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 146192.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-100 (-8.45 % of base) : 11860.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-100 (-8.45 % of base) : 24917.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-96 (-17.39 % of base) : 13871.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-92 (-7.80 % of base) : 7826.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-92 (-6.99 % of base) : 12848.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Instrumented Tier0)
-88 (-7.51 % of base) : 3904.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-88 (-7.51 % of base) : 9828.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-88 (-2.88 % of base) : 3594.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-88 (-2.88 % of base) : 24535.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-60 (-5.49 % of base) : 14038.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-60 (-5.49 % of base) : 7804.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-56 (-4.19 % of base) : 94149.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Instrumented Tier0)
-56 (-2.73 % of base) : 109883.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Instrumented Tier0)
-48 (-4.92 % of base) : 14320.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-48 (-4.92 % of base) : 52653.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-28 (-1.47 % of base) : 185.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Instrumented Tier0)
Top method regressions (percentages):
508 (5.63 % of base) : 137671.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
4 (3.70 % of base) : 578.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
16 (3.51 % of base) : 38599.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 38631.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 46734.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 46709.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
120 (1.27 % of base) : 134866.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (percentages):
-120 (-40.00 % of base) : 27147.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 37949.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 103768.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 146192.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-16 (-28.57 % of base) : 67.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
-16 (-28.57 % of base) : 47.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
-20 (-27.78 % of base) : 3957.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
-20 (-27.78 % of base) : 1117.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-12 (-21.43 % of base) : 4000.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Instrumented Tier0)
-12 (-21.43 % of base) : 1118.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
-96 (-17.39 % of base) : 13871.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-8 (-16.67 % of base) : 1080.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-4 (-16.67 % of base) : 16525.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
-4 (-16.67 % of base) : 2497.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-12 (-16.67 % of base) : 66.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Instrumented Tier0)
-12 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-8 (-14.29 % of base) : 80489.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Instrumented Tier0)
-8 (-14.29 % of base) : 75813.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-12 (-13.04 % of base) : 108.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-12 (-13.04 % of base) : 39687.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Instrumented Tier0)
benchmarks.run_tiered.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 24588280 (overridden on cmd)
Total bytes of diff: 24586772 (overridden on cmd)
Total bytes of delta: -1508 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
116 : 47659.dasm (2.51 % of base)
16 : 27101.dasm (4.08 % of base)
16 : 26384.dasm (4.08 % of base)
16 : 61455.dasm (0.19 % of base)
8 : 24840.dasm (0.33 % of base)
8 : 61487.dasm (0.40 % of base)
4 : 522.dasm (3.70 % of base)
Top file improvements (bytes):
-100 : 5498.dasm (-9.92 % of base)
-96 : 20079.dasm (-17.39 % of base)
-92 : 5158.dasm (-9.66 % of base)
-92 : 7885.dasm (-8.46 % of base)
-88 : 3051.dasm (-3.51 % of base)
-88 : 3419.dasm (-9.32 % of base)
-88 : 9070.dasm (-32.84 % of base)
-60 : 5127.dasm (-6.22 % of base)
-56 : 47958.dasm (-4.47 % of base)
-56 : 51839.dasm (-2.85 % of base)
-48 : 6850.dasm (-6.56 % of base)
-28 : 171.dasm (-1.76 % of base)
-24 : 1156.dasm (-2.73 % of base)
-24 : 31251.dasm (-3.90 % of base)
-24 : 58202.dasm (-2.35 % of base)
-24 : 8889.dasm (-2.71 % of base)
-24 : 8989.dasm (-2.97 % of base)
-20 : 22065.dasm (-2.26 % of base)
-20 : 18677.dasm (-8.47 % of base)
-20 : 963.dasm (-27.78 % of base)
42 total files with Code Size differences (35 improved, 7 regressed), 28 unchanged.
Top method regressions (bytes):
116 (2.51 % of base) : 47659.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
16 (4.08 % of base) : 26384.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27101.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
16 (0.19 % of base) : 61455.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
8 (0.33 % of base) : 24840.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.40 % of base) : 61487.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
4 (3.70 % of base) : 522.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-100 (-9.92 % of base) : 5498.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-96 (-17.39 % of base) : 20079.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-92 (-9.66 % of base) : 5158.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-92 (-8.46 % of base) : 7885.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
-88 (-9.32 % of base) : 3419.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-88 (-32.84 % of base) : 9070.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-88 (-3.51 % of base) : 3051.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
-60 (-6.22 % of base) : 5127.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
-56 (-4.47 % of base) : 47958.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Tier0)
-56 (-2.85 % of base) : 51839.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Tier0)
-48 (-6.56 % of base) : 6850.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-28 (-1.76 % of base) : 171.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Tier0)
-24 (-2.73 % of base) : 1156.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
-24 (-2.71 % of base) : 8889.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
-24 (-2.97 % of base) : 8989.dasm - System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default](byref,int,byref):int (Tier0)
-24 (-2.35 % of base) : 58202.dasm - System.HexConverter:TryDecodeFromUtf16_Vector128(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0)
-24 (-3.90 % of base) : 31251.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
-20 (-2.26 % of base) : 22065.dasm - BenchmarksGame.MandelBrot_7:DoBench(int,int):ubyte[] (Tier0)
-20 (-8.47 % of base) : 18677.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-20 (-27.78 % of base) : 963.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
Top method regressions (percentages):
16 (4.08 % of base) : 26384.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27101.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
4 (3.70 % of base) : 522.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
116 (2.51 % of base) : 47659.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
8 (0.40 % of base) : 61487.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.33 % of base) : 24840.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
16 (0.19 % of base) : 61455.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
Top method improvements (percentages):
-88 (-32.84 % of base) : 9070.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-16 (-28.57 % of base) : 47.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
-20 (-27.78 % of base) : 963.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-12 (-21.43 % of base) : 964.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
-96 (-17.39 % of base) : 20079.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-8 (-16.67 % of base) : 920.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-4 (-16.67 % of base) : 2063.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-12 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-8 (-14.29 % of base) : 38177.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-12 (-13.04 % of base) : 101.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-12 (-13.04 % of base) : 11174.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-8 (-12.50 % of base) : 38589.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
-8 (-12.50 % of base) : 1676.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-12 (-12.00 % of base) : 2035.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
-16 (-10.53 % of base) : 4015.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-4 (-10.00 % of base) : 18791.dasm - System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[ubyte]:ScalarResult(byref,byref):int (Tier0)
-4 (-10.00 % of base) : 53503.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-100 (-9.92 % of base) : 5498.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-92 (-9.66 % of base) : 5158.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-88 (-9.32 % of base) : 3419.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
coreclr_tests.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 508077808 (overridden on cmd)
Total bytes of diff: 507959592 (overridden on cmd)
Total bytes of delta: -118216 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1044 : 293936.dasm (9.12 % of base)
320 : 293927.dasm (3.05 % of base)
192 : 313019.dasm (9.09 % of base)
156 : 177680.dasm (2.47 % of base)
132 : 241236.dasm (2.19 % of base)
108 : 180169.dasm (7.56 % of base)
104 : 177684.dasm (1.36 % of base)
96 : 311251.dasm (1.01 % of base)
80 : 223223.dasm (3.02 % of base)
64 : 587518.dasm (20.78 % of base)
64 : 615329.dasm (20.78 % of base)
52 : 716.dasm (7.78 % of base)
44 : 454172.dasm (0.96 % of base)
32 : 712.dasm (4.73 % of base)
24 : 112278.dasm (1.57 % of base)
24 : 87779.dasm (1.57 % of base)
24 : 112263.dasm (1.57 % of base)
24 : 87794.dasm (1.57 % of base)
16 : 466256.dasm (3.51 % of base)
16 : 466268.dasm (3.51 % of base)
Top file improvements (bytes):
-2112 : 526761.dasm (-4.30 % of base)
-1164 : 525289.dasm (-67.99 % of base)
-496 : 527189.dasm (-25.62 % of base)
-380 : 316248.dasm (-12.73 % of base)
-332 : 501960.dasm (-3.06 % of base)
-328 : 526987.dasm (-3.85 % of base)
-324 : 526157.dasm (-50.62 % of base)
-308 : 526296.dasm (-11.03 % of base)
-292 : 515333.dasm (-19.16 % of base)
-280 : 526459.dasm (-9.27 % of base)
-272 : 506392.dasm (-8.10 % of base)
-272 : 506404.dasm (-8.09 % of base)
-264 : 526959.dasm (-6.87 % of base)
-224 : 526471.dasm (-7.08 % of base)
-216 : 526566.dasm (-5.71 % of base)
-200 : 526396.dasm (-8.24 % of base)
-176 : 526712.dasm (-1.83 % of base)
-176 : 513884.dasm (-19.21 % of base)
-176 : 515281.dasm (-9.54 % of base)
-144 : 327151.dasm (-21.82 % of base)
83 total files with Code Size differences (55 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
1044 (9.12 % of base) : 293936.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
320 (3.05 % of base) : 293927.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 313019.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
156 (2.47 % of base) : 177680.dasm - div_r4._div:main():int (FullOpts)
132 (2.19 % of base) : 241236.dasm - Test_throw2dimarray.App:Main():int (FullOpts)
108 (7.56 % of base) : 180169.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
104 (1.36 % of base) : 177684.dasm - div_r8._div:main():int (FullOpts)
96 (1.01 % of base) : 311251.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
80 (3.02 % of base) : 223223.dasm - PropsArIList:TestEntryPoint():int (FullOpts)
64 (20.78 % of base) : 615329.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 587518.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
52 (7.78 % of base) : 716.dasm - MulticastDelegateCombineImpl:PosTest6():ubyte:this (FullOpts)
44 (0.96 % of base) : 454172.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
32 (4.73 % of base) : 712.dasm - MulticastDelegateCombineImpl:PosTest3():ubyte:this (FullOpts)
24 (1.57 % of base) : 87779.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupByte:RunReflectionScenario_UnsafeRead():this (FullOpts)
24 (1.57 % of base) : 87794.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunReflectionScenario_UnsafeRead():this (FullOpts)
24 (1.57 % of base) : 112263.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunReflectionScenario_UnsafeRead():this (FullOpts)
24 (1.57 % of base) : 112278.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunReflectionScenario_UnsafeRead():this (FullOpts)
16 (3.51 % of base) : 466256.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 466268.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
Top method improvements (bytes):
-2112 (-4.30 % of base) : 526761.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
-1164 (-67.99 % of base) : 525289.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-496 (-25.62 % of base) : 527189.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-380 (-12.73 % of base) : 316248.dasm - Tracing.Tests.ReverseValidation.ReverseValidation+<>c__DisplayClass0_1+<<TEST_ReverseConnectionCanRecycleWhileTracing>b__1>d:MoveNext():this (FullOpts)
-332 (-3.06 % of base) : 501960.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-328 (-3.85 % of base) : 526987.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-324 (-50.62 % of base) : 526157.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-308 (-11.03 % of base) : 526296.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-292 (-19.16 % of base) : 515333.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-280 (-9.27 % of base) : 526459.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-272 (-8.10 % of base) : 506392.dasm - convr4a:Main():int (Tier0)
-272 (-8.09 % of base) : 506404.dasm - convr8d:Main():int (Tier0)
-264 (-6.87 % of base) : 526959.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-224 (-7.08 % of base) : 526471.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-216 (-5.71 % of base) : 526566.dasm - ILGEN_0x12984aee:Method_0x786cd2b5(byte,ubyte,byte,long,long,short,long,uint):int (Tier0)
-200 (-8.24 % of base) : 526396.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-176 (-1.83 % of base) : 526712.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(long,int,byte,float,ushort,float):int (Tier0)
-176 (-9.54 % of base) : 515281.dasm - ILGEN_3171381355:main():int (Tier0)
-176 (-19.21 % of base) : 513884.dasm - ILGEN_941132142:main():int (Tier0)
-144 (-21.82 % of base) : 327151.dasm - testout1:Sub_Funclet_192():double (Tier0)
Top method regressions (percentages):
64 (20.78 % of base) : 615329.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 587518.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
1044 (9.12 % of base) : 293936.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 313019.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
52 (7.78 % of base) : 716.dasm - MulticastDelegateCombineImpl:PosTest6():ubyte:this (FullOpts)
108 (7.56 % of base) : 180169.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
32 (4.73 % of base) : 712.dasm - MulticastDelegateCombineImpl:PosTest3():ubyte:this (FullOpts)
4 (4.17 % of base) : 251354.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (4.17 % of base) : 311305.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.57 % of base) : 515206.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
16 (3.51 % of base) : 466256.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 466268.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 466315.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 466323.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
320 (3.05 % of base) : 293927.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
80 (3.02 % of base) : 223223.dasm - PropsArIList:TestEntryPoint():int (FullOpts)
12 (2.73 % of base) : 312881.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
4 (2.56 % of base) : 603518.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
156 (2.47 % of base) : 177680.dasm - div_r4._div:main():int (FullOpts)
8 (2.38 % of base) : 356402.dasm - JIT.HardwareIntrinsics.Arm.Helpers:SignedShift(byte,byte,ubyte,ubyte):byte (Tier0)
Top method improvements (percentages):
-96 (-75.00 % of base) : 525276.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-56 (-73.68 % of base) : 524908.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-56 (-73.68 % of base) : 515328.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-52 (-72.22 % of base) : 525018.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-44 (-68.75 % of base) : 513791.dasm - _simple:main():int (Tier0)
-44 (-68.75 % of base) : 513738.dasm - _simple:main():int (Tier0)
-1164 (-67.99 % of base) : 525289.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-124 (-67.39 % of base) : 506102.dasm - JitTest_sizeof_Target_64Bit_and_arm_il.Test:Main():int (Tier0)
-40 (-66.67 % of base) : 524994.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-36 (-64.29 % of base) : 513789.dasm - _simple:main():int (Tier0)
-36 (-64.29 % of base) : 513734.dasm - _simple:main():int (Tier0)
-32 (-61.54 % of base) : 525322.dasm - _n:main():int (Tier0)
-28 (-58.33 % of base) : 525320.dasm - _shl:main():int (Tier0)
-28 (-58.33 % of base) : 513785.dasm - _simple:main():int (Tier0)
-32 (-57.14 % of base) : 502011.dasm - LongMulOn32BitTest:LongMul_23(int):long (Tier0)
-32 (-57.14 % of base) : 502026.dasm - LongMulOn32BitTest:LongMul_38(int):long (Tier0)
-32 (-57.14 % of base) : 502027.dasm - LongMulOn32BitTest:LongMul_39(int):long (Tier0)
-32 (-57.14 % of base) : 502041.dasm - LongMulOn32BitTest:LongMul_53(int):long (Tier0)
-32 (-57.14 % of base) : 502042.dasm - LongMulOn32BitTest:LongMul_54(int):long (Tier0)
-32 (-57.14 % of base) : 501997.dasm - LongMulOn32BitTest:LongMul_9(int):long (Tier0)
libraries.crossgen2.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 55844436 (overridden on cmd)
Total bytes of diff: 55844020 (overridden on cmd)
Total bytes of delta: -416 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 159074.dasm (3.12 % of base)
4 : 36753.dasm (7.69 % of base)
Top file improvements (bytes):
-88 : 36438.dasm (-32.84 % of base)
-88 : 36467.dasm (-32.84 % of base)
-88 : 34605.dasm (-32.84 % of base)
-16 : 181411.dasm (-1.96 % of base)
-16 : 227307.dasm (-1.96 % of base)
-16 : 35548.dasm (-7.55 % of base)
-16 : 219469.dasm (-1.96 % of base)
-16 : 27233.dasm (-11.11 % of base)
-16 : 231074.dasm (-1.96 % of base)
-16 : 27230.dasm (-11.11 % of base)
-16 : 27236.dasm (-8.00 % of base)
-8 : 137761.dasm (-1.13 % of base)
-4 : 177848.dasm (-1.96 % of base)
-4 : 219846.dasm (-0.62 % of base)
-4 : 25312.dasm (-0.35 % of base)
-4 : 34920.dasm (-1.59 % of base)
-4 : 57.dasm (-0.62 % of base)
-4 : 210353.dasm (-1.96 % of base)
20 total files with Code Size differences (18 improved, 2 regressed), 24 unchanged.
Top method regressions (bytes):
4 (7.69 % of base) : 36753.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 159074.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 36438.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 36467.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 34605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-11.11 % of base) : 27230.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 27233.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 27236.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-1.96 % of base) : 181411.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 227307.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 219469.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 231074.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-7.55 % of base) : 35548.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-1.13 % of base) : 137761.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-1.96 % of base) : 177848.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-4 (-1.59 % of base) : 34920.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-4 (-0.62 % of base) : 219846.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 57.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.35 % of base) : 25312.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
-4 (-1.96 % of base) : 210353.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
Top method regressions (percentages):
4 (7.69 % of base) : 36753.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 159074.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 36438.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 36467.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 34605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-11.11 % of base) : 27230.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 27233.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 27236.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-7.55 % of base) : 35548.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-4 (-1.96 % of base) : 177848.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-16 (-1.96 % of base) : 181411.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 227307.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 219469.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 231074.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-1.96 % of base) : 210353.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-4 (-1.59 % of base) : 34920.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-8 (-1.13 % of base) : 137761.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-0.62 % of base) : 219846.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 57.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.35 % of base) : 25312.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
20 total methods with Code Size differences (18 improved, 2 regressed).
libraries.pmi.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 76132168 (overridden on cmd)
Total bytes of diff: 76146064 (overridden on cmd)
Total bytes of delta: 13896 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1236 : 87230.dasm (63.32 % of base)
1016 : 225151.dasm (7.72 % of base)
1016 : 26807.dasm (7.72 % of base)
1016 : 87146.dasm (8.82 % of base)
944 : 87229.dasm (41.70 % of base)
736 : 273399.dasm (8.98 % of base)
640 : 87115.dasm (6.11 % of base)
576 : 85582.dasm (15.62 % of base)
576 : 85583.dasm (13.97 % of base)
576 : 85585.dasm (14.62 % of base)
392 : 85606.dasm (11.60 % of base)
384 : 85586.dasm (11.55 % of base)
384 : 85597.dasm (14.93 % of base)
384 : 85611.dasm (8.93 % of base)
384 : 85613.dasm (17.81 % of base)
384 : 85614.dasm (18.71 % of base)
344 : 85591.dasm (18.66 % of base)
296 : 80412.dasm (3.03 % of base)
268 : 118484.dasm (14.63 % of base)
200 : 151101.dasm (37.04 % of base)
Top file improvements (bytes):
-116 : 169216.dasm (-1.42 % of base)
-88 : 80564.dasm (-2.44 % of base)
-80 : 225179.dasm (-2.75 % of base)
-80 : 26835.dasm (-2.75 % of base)
-36 : 2888.dasm (-19.57 % of base)
-32 : 225178.dasm (-1.14 % of base)
-32 : 26834.dasm (-1.14 % of base)
-28 : 26837.dasm (-1.09 % of base)
-28 : 225181.dasm (-1.09 % of base)
-28 : 282337.dasm (-0.38 % of base)
-24 : 260954.dasm (-0.74 % of base)
-24 : 85168.dasm (-2.14 % of base)
-20 : 158896.dasm (-1.29 % of base)
-20 : 260895.dasm (-0.27 % of base)
-20 : 260897.dasm (-1.09 % of base)
-16 : 259063.dasm (-2.27 % of base)
-16 : 209321.dasm (-0.64 % of base)
-16 : 232744.dasm (-2.27 % of base)
-16 : 253416.dasm (-2.27 % of base)
-16 : 282216.dasm (-2.27 % of base)
57 total files with Code Size differences (26 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
1236 (63.32 % of base) : 87230.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
1016 (8.82 % of base) : 87146.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
1016 (7.72 % of base) : 225151.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
1016 (7.72 % of base) : 26807.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
944 (41.70 % of base) : 87229.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
736 (8.98 % of base) : 273399.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseHelper(System.Text.StringBuilder):this (FullOpts)
640 (6.11 % of base) : 87115.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
576 (14.62 % of base) : 85585.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 85582.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (13.97 % of base) : 85583.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
392 (11.60 % of base) : 85606.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.55 % of base) : 85586.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 85613.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 85614.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (8.93 % of base) : 85611.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
384 (14.93 % of base) : 85597.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 85591.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (3.03 % of base) : 80412.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
268 (14.63 % of base) : 118484.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
200 (37.04 % of base) : 151101.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
Top method improvements (bytes):
-116 (-1.42 % of base) : 169216.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-88 (-2.44 % of base) : 80564.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-80 (-2.75 % of base) : 225179.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 26835.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-36 (-19.57 % of base) : 2888.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-32 (-1.14 % of base) : 225178.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.14 % of base) : 26834.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.09 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.09 % of base) : 225181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-0.38 % of base) : 282337.dasm - System.Net.Quic.MsQuicApi:.cctor() (FullOpts)
-24 (-2.14 % of base) : 85168.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-24 (-0.74 % of base) : 260954.dasm - R2RDump.TextDumper:DumpAllMethods():this (FullOpts)
-20 (-0.27 % of base) : 260895.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.DebugInfo,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-20 (-1.09 % of base) : 260897.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-20 (-1.29 % of base) : 158896.dasm - System.Xml.XmlTextWriter:WriteDocType(System.String,System.String,System.String,System.String):this (FullOpts)
-16 (-2.27 % of base) : 259063.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 232744.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 253416.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 282216.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-0.64 % of base) : 209321.dasm - System.Net.Http.HttpConnectionPool+<<DisableHttp2Connection>g__DisableHttp2ConnectionAsync|120_0>d:MoveNext():this (FullOpts)
Top method regressions (percentages):
1236 (63.32 % of base) : 87230.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
944 (41.70 % of base) : 87229.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
200 (37.04 % of base) : 151101.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
192 (21.15 % of base) : 151004.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (20.69 % of base) : 85686.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (19.51 % of base) : 85602.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (19.28 % of base) : 85599.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 85614.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 85591.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 85613.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 85582.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (14.93 % of base) : 85597.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
268 (14.63 % of base) : 118484.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
576 (14.62 % of base) : 85585.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (13.97 % of base) : 85583.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (13.12 % of base) : 151088.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
392 (11.60 % of base) : 85606.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.55 % of base) : 85586.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (11.09 % of base) : 85581.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (9.18 % of base) : 151087.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
Top method improvements (percentages):
-36 (-19.57 % of base) : 2888.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-4 (-12.50 % of base) : 5203.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-8 (-4.17 % of base) : 212093.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-80 (-2.75 % of base) : 225179.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 26835.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-88 (-2.44 % of base) : 80564.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-4 (-2.38 % of base) : 242132.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-16 (-2.27 % of base) : 259063.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 232744.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 253416.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 282216.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-24 (-2.14 % of base) : 85168.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-8 (-1.54 % of base) : 147243.dasm - System.Xml.XmlDictionaryWriter:WriteXmlnsAttribute(System.String,System.String):this (FullOpts)
-116 (-1.42 % of base) : 169216.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-20 (-1.29 % of base) : 158896.dasm - System.Xml.XmlTextWriter:WriteDocType(System.String,System.String,System.String,System.String):this (FullOpts)
-32 (-1.14 % of base) : 225178.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.14 % of base) : 26834.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.09 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.09 % of base) : 225181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-20 (-1.09 % of base) : 260897.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
libraries_tests.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 395282448 (overridden on cmd)
Total bytes of diff: 395041796 (overridden on cmd)
Total bytes of delta: -240652 (-0.06 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
2944 : 701490.dasm (82.23 % of base)
440 : 695626.dasm (4.42 % of base)
272 : 649884.dasm (2.29 % of base)
240 : 692917.dasm (1.65 % of base)
192 : 65062.dasm (2.94 % of base)
148 : 641677.dasm (1.30 % of base)
140 : 694743.dasm (0.90 % of base)
132 : 572320.dasm (4.24 % of base)
112 : 70265.dasm (2.14 % of base)
96 : 693911.dasm (2.32 % of base)
84 : 682263.dasm (2.38 % of base)
68 : 648676.dasm (4.70 % of base)
68 : 72387.dasm (1.46 % of base)
60 : 88961.dasm (0.48 % of base)
52 : 93151.dasm (0.82 % of base)
44 : 572239.dasm (0.37 % of base)
44 : 112890.dasm (0.98 % of base)
28 : 682268.dasm (1.20 % of base)
28 : 682566.dasm (2.21 % of base)
28 : 687371.dasm (2.15 % of base)
Top file improvements (bytes):
-131072 : 482400.dasm (-40.00 % of base)
-8192 : 482243.dasm (-39.95 % of base)
-1336 : 411643.dasm (-30.12 % of base)
-1336 : 412160.dasm (-30.12 % of base)
-1336 : 427918.dasm (-30.12 % of base)
-1336 : 428052.dasm (-30.12 % of base)
-1028 : 411478.dasm (-26.66 % of base)
-1028 : 411886.dasm (-26.66 % of base)
-1028 : 413970.dasm (-26.66 % of base)
-1028 : 419510.dasm (-26.66 % of base)
-1028 : 424754.dasm (-26.66 % of base)
-1028 : 424841.dasm (-26.66 % of base)
-1028 : 427574.dasm (-26.66 % of base)
-1028 : 427605.dasm (-26.66 % of base)
-1028 : 427657.dasm (-27.49 % of base)
-1028 : 427689.dasm (-26.66 % of base)
-1028 : 427717.dasm (-26.66 % of base)
-1028 : 427973.dasm (-26.66 % of base)
-1028 : 429034.dasm (-26.66 % of base)
-1028 : 429054.dasm (-26.66 % of base)
76 total files with Code Size differences (45 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
2944 (82.23 % of base) : 701490.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
440 (4.42 % of base) : 695626.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|29(System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
272 (2.29 % of base) : 649884.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
240 (1.65 % of base) : 692917.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitRegexDerivedTypeRunnerFactory(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte) (Tier1)
192 (2.94 % of base) : 65062.dasm - Microsoft.Interop.ComInterfaceGenerator:<GenerateInterfaceInformation>g__CreateEmbeddedDataBlobCreationStatement|15_0(System.ReadOnlySpan`1[ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax (Tier1)
148 (1.30 % of base) : 641677.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteNumbers(System.Text.Json.JsonWriterOptions,System.String):this (Tier1-OSR)
140 (0.90 % of base) : 694743.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|24_4(byref) (Tier1)
132 (4.24 % of base) : 572320.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
112 (2.14 % of base) : 70265.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (Tier0-FullOpts)
96 (2.32 % of base) : 693911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
84 (2.38 % of base) : 682263.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
68 (1.46 % of base) : 72387.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
68 (4.70 % of base) : 648676.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
60 (0.48 % of base) : 88961.dasm - Microsoft.Interop.LibraryImportGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,Microsoft.Interop.StubEnvironment,Microsoft.Interop.TargetFrameworkSettings,Microsoft.Interop.LibraryImportGeneratorOptions,System.Threading.CancellationToken):Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext (Tier1)
52 (0.82 % of base) : 93151.dasm - Microsoft.Interop.LibraryImportGenerator:CreateForwarderDllImport(Microsoft.Interop.LibraryImportData):Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax (Tier1)
44 (0.98 % of base) : 112890.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
44 (0.37 % of base) : 572239.dasm - System.Security.Cryptography.X509Certificates.Tests.TestDataGenerator:MakeTestChain(System.ReadOnlySpan`1[System.Security.Cryptography.RSA],System.Span`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.String) (Tier1)
28 (2.21 % of base) : 682566.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
28 (1.20 % of base) : 682268.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
28 (2.15 % of base) : 687371.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 482400.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 482243.dasm - TestType:meth1():int (Tier0)
-1336 (-30.12 % of base) : 411643.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 412160.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 427918.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 428052.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 424841.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,double,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 429034.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 429054.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 427574.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 419510.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 427973.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 413970.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-1028 (-27.49 % of base) : 427657.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized128|228_1[int,System.Numerics.Tensors.TensorPrimitives+BitwiseAndOperator`1[int]](byref,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 424754.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,byref,double,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 427605.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 427717.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 411478.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 411886.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 427689.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
Top method regressions (percentages):
2944 (82.23 % of base) : 701490.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
4 (14.29 % of base) : 275969.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
4 (12.50 % of base) : 275970.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
4 (7.14 % of base) : 190021.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Instrumented Tier0)
4 (7.14 % of base) : 186520.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
4 (7.14 % of base) : 190023.dasm - Microsoft.VisualBasic.Conversion:Oct(short):System.String (Instrumented Tier0)
4 (7.14 % of base) : 186454.dasm - Microsoft.VisualBasic.Conversion:Oct(short):System.String (Tier0)
8 (6.06 % of base) : 275967.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
68 (4.70 % of base) : 648676.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
440 (4.42 % of base) : 695626.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|29(System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
132 (4.24 % of base) : 572320.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
4 (3.70 % of base) : 673287.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
4 (3.70 % of base) : 180792.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
192 (2.94 % of base) : 65062.dasm - Microsoft.Interop.ComInterfaceGenerator:<GenerateInterfaceInformation>g__CreateEmbeddedDataBlobCreationStatement|15_0(System.ReadOnlySpan`1[ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax (Tier1)
4 (2.78 % of base) : 243150.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
84 (2.38 % of base) : 682263.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
96 (2.32 % of base) : 693911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
272 (2.29 % of base) : 649884.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
28 (2.21 % of base) : 682566.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
28 (2.15 % of base) : 687371.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
Top method improvements (percentages):
-676 (-97.13 % of base) : 482418.dasm - TestType:meth1():int (Tier0)
-28 (-58.33 % of base) : 482417.dasm - TestType:meth1():int (Tier0)
-124 (-40.79 % of base) : 365257.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 362285.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (Tier1)
-120 (-40.00 % of base) : 422729.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (Tier1)
-120 (-40.00 % of base) : 588924.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-131072 (-40.00 % of base) : 482400.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 482243.dasm - TestType:meth1():int (Tier0)
-120 (-39.47 % of base) : 190633.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-39.47 % of base) : 230382.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-39.47 % of base) : 497827.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-39.47 % of base) : 530308.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-39.47 % of base) : 271747.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-39.47 % of base) : 317127.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 644073.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 360381.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 64980.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 670388.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 176970.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-256 (-38.32 % of base) : 482221.dasm - TestType:meth1():int (Tier0)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 164682828 (overridden on cmd)
Total bytes of diff: 164553924 (overridden on cmd)
Total bytes of delta: -128904 (-0.08 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
824 : 56616.dasm (6.89 % of base)
688 : 173526.dasm (3.58 % of base)
232 : 31904.dasm (1.67 % of base)
156 : 191635.dasm (2.14 % of base)
132 : 218644.dasm (15.21 % of base)
112 : 17578.dasm (2.14 % of base)
104 : 57503.dasm (4.09 % of base)
96 : 194154.dasm (7.06 % of base)
92 : 97687.dasm (3.89 % of base)
72 : 96116.dasm (0.80 % of base)
64 : 182142.dasm (3.17 % of base)
44 : 46256.dasm (0.78 % of base)
40 : 266809.dasm (1.04 % of base)
40 : 267213.dasm (0.82 % of base)
40 : 268344.dasm (0.65 % of base)
40 : 55857.dasm (0.72 % of base)
36 : 55865.dasm (1.27 % of base)
28 : 117273.dasm (1.47 % of base)
28 : 151188.dasm (0.35 % of base)
24 : 154424.dasm (0.40 % of base)
Top file improvements (bytes):
-131072 : 177918.dasm (-40.00 % of base)
-88 : 211365.dasm (-32.84 % of base)
-68 : 265328.dasm (-0.69 % of base)
-68 : 213674.dasm (-2.15 % of base)
-68 : 71685.dasm (-2.27 % of base)
-52 : 182245.dasm (-1.51 % of base)
-52 : 203882.dasm (-1.83 % of base)
-48 : 213762.dasm (-1.07 % of base)
-44 : 213721.dasm (-2.36 % of base)
-40 : 213664.dasm (-1.07 % of base)
-40 : 213796.dasm (-1.32 % of base)
-36 : 261734.dasm (-0.45 % of base)
-36 : 41462.dasm (-0.59 % of base)
-36 : 156868.dasm (-1.03 % of base)
-32 : 54795.dasm (-1.24 % of base)
-32 : 262231.dasm (-2.64 % of base)
-32 : 4634.dasm (-0.69 % of base)
-32 : 54814.dasm (-1.27 % of base)
-28 : 54430.dasm (-1.23 % of base)
-28 : 156834.dasm (-0.73 % of base)
84 total files with Code Size differences (45 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 56616.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
688 (3.58 % of base) : 173526.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
232 (1.67 % of base) : 31904.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderCollectionTests:TestOptionsWithDifferentCollectionInterfaces():this (FullOpts)
156 (2.14 % of base) : 191635.dasm - System.Numerics.Tests.ComplexTests:ToStringTest(double,double) (FullOpts)
132 (15.21 % of base) : 218644.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
112 (2.14 % of base) : 17578.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
104 (4.09 % of base) : 57503.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
96 (7.06 % of base) : 194154.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
92 (3.89 % of base) : 97687.dasm - System.Diagnostics.FileVersionInfo:ToString():System.String:this (FullOpts)
72 (0.80 % of base) : 96116.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest:SqlStringToSqlDateTime():this (FullOpts)
64 (3.17 % of base) : 182142.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
44 (0.78 % of base) : 46256.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
40 (0.65 % of base) : 268344.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 55857.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 266809.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 267213.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 55865.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
28 (1.47 % of base) : 117273.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntry_Gnu_Tests:Write_LongName_And_LongLinkName(ubyte):this (FullOpts)
28 (0.35 % of base) : 151188.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (FullOpts)
24 (0.40 % of base) : 154424.dasm - System.Security.Cryptography.X509Certificates.Tests.Common.RevocationResponder:HandleRequest(System.Net.HttpListenerContext,byref):this (FullOpts)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 177918.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 211365.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-68 (-2.27 % of base) : 71685.dasm - System.Collections.Tests.SortedListTests:Ctor_IDictionary_IComparer(int,ubyte):this (FullOpts)
-68 (-2.15 % of base) : 213674.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-68 (-0.69 % of base) : 265328.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TrySkipHelper(System.String,ubyte,System.Collections.Generic.List`1[ubyte],ubyte) (FullOpts)
-52 (-1.51 % of base) : 182245.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-52 (-1.83 % of base) : 203882.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-48 (-1.07 % of base) : 213762.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_AddSignatureWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-44 (-2.36 % of base) : 213721.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithStringAlgorithm():this (FullOpts)
-40 (-1.32 % of base) : 213796.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected_BodyProtected():this (FullOpts)
-40 (-1.07 % of base) : 213664.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-36 (-0.59 % of base) : 41462.dasm - Microsoft.Extensions.Logging.Test.EventSourceLoggerTest:VerifySingleEvent(System.String,System.String,System.String,System.Nullable`1[int],System.String,System.Nullable`1[int],System.String[]) (FullOpts)
-36 (-1.03 % of base) : 156868.dasm - System.Net.Http.Http2Connection+<>c:<SendHeadersAsync>b__97_0(System.ValueTuple`5[System.Net.Http.Http2Connection,System.Net.Http.Http2Connection+Http2Stream,System.ReadOnlyMemory`1[ubyte],ubyte,ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts)
-36 (-0.45 % of base) : 261734.dasm - System.Text.Json.Tests.JsonDocumentTests:GetPropertyFindsLast_WithEscaping(System.String) (FullOpts)
-32 (-1.27 % of base) : 54814.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 54795.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-0.69 % of base) : 4634.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-32 (-2.64 % of base) : 262231.dasm - System.Text.Json.Serialization.Tests.CustomConverterTests:CustomArrayConverterFail() (FullOpts)
-28 (-1.23 % of base) : 54430.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-0.73 % of base) : 156834.dasm - System.Net.Http.Http2Connection+<SendAsync>d__111:MoveNext():this (FullOpts)
Top method regressions (percentages):
132 (15.21 % of base) : 218644.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
20 (9.80 % of base) : 117094.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_0():System.Object:this (FullOpts)
20 (9.80 % of base) : 117096.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
20 (9.80 % of base) : 117107.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
20 (9.80 % of base) : 117109.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
20 (9.80 % of base) : 117111.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
20 (9.80 % of base) : 117113.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
20 (9.80 % of base) : 117115.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_14():System.Object:this (FullOpts)
20 (9.80 % of base) : 117097.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_2():System.Object:this (FullOpts)
20 (9.80 % of base) : 117098.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
20 (9.80 % of base) : 117099.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
20 (9.80 % of base) : 117100.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
20 (9.80 % of base) : 117101.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_6():System.Object:this (FullOpts)
20 (9.80 % of base) : 117102.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
20 (9.80 % of base) : 117104.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
20 (9.80 % of base) : 117106.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
20 (7.58 % of base) : 117084.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests:SupportedEntryType_HardLink():this (FullOpts)
20 (7.58 % of base) : 117083.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests:SupportedEntryType_SymbolicLink():this (FullOpts)
20 (7.25 % of base) : 117872.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntry_V7_Tests+<>c__DisplayClass5_0:<Write_LinkEntry_EmptyLinkName_Throws>b__0():this (FullOpts)
96 (7.06 % of base) : 194154.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
Top method improvements (percentages):
-131072 (-40.00 % of base) : 177918.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 211365.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-8 (-6.90 % of base) : 74668.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
-8 (-6.25 % of base) : 74655.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
-8 (-6.25 % of base) : 74658.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-8 (-5.71 % of base) : 74670.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-20 (-4.76 % of base) : 74532.dasm - System.Collections.Tests.BitArray_CtorTests:Ctor_Int_Bool_ShouldNotLeaveDirtyBits() (FullOpts)
-20 (-4.46 % of base) : 74645.dasm - System.Collections.Tests.BitArray_GetSetTests:SetAll_ShouldNotLeaveDirtyBits() (FullOpts)
-8 (-4.17 % of base) : 59476.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-8 (-4.00 % of base) : 203137.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.92 % of base) : 203138.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-16 (-3.88 % of base) : 45938.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-16 (-3.88 % of base) : 50932.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-8 (-3.57 % of base) : 203364.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.51 % of base) : 203365.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-8 (-3.23 % of base) : 203139.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__7():System.Object:this (FullOpts)
-8 (-3.17 % of base) : 203140.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__8():System.Object:this (FullOpts)
-8 (-2.94 % of base) : 203367.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__7():System.Object:this (FullOpts)
-8 (-2.90 % of base) : 203368.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__8():System.Object:this (FullOpts)
-8 (-2.90 % of base) : 203141.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__9():System.Object:this (FullOpts)
realworld.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15897044 (overridden on cmd)
Total bytes of diff: 15897712 (overridden on cmd)
Total bytes of delta: 668 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
824 : 27181.dasm (6.89 % of base)
236 : 27738.dasm (2.61 % of base)
116 : 16905.dasm (2.51 % of base)
60 : 27515.dasm (1.05 % of base)
40 : 26911.dasm (0.72 % of base)
40 : 27210.dasm (1.04 % of base)
40 : 27213.dasm (0.82 % of base)
40 : 27182.dasm (0.65 % of base)
36 : 27516.dasm (1.27 % of base)
8 : 1706.dasm (3.39 % of base)
4 : 160.dasm (7.14 % of base)
4 : 1814.dasm (2.17 % of base)
4 : 27060.dasm (0.14 % of base)
4 : 27167.dasm (0.08 % of base)
4 : 27312.dasm (0.20 % of base)
Top file improvements (bytes):
-88 : 1179.dasm (-32.84 % of base)
-88 : 12567.dasm (-32.84 % of base)
-48 : 16835.dasm (-1.08 % of base)
-44 : 2220.dasm (-1.92 % of base)
-32 : 26929.dasm (-1.27 % of base)
-32 : 26925.dasm (-1.24 % of base)
-28 : 26917.dasm (-1.23 % of base)
-20 : 16348.dasm (-0.76 % of base)
-20 : 16429.dasm (-0.46 % of base)
-20 : 16560.dasm (-0.43 % of base)
-16 : 14936.dasm (-2.27 % of base)
-16 : 16365.dasm (-1.22 % of base)
-16 : 16635.dasm (-0.39 % of base)
-16 : 12100.dasm (-1.72 % of base)
-16 : 16404.dasm (-1.17 % of base)
-16 : 17494.dasm (-0.49 % of base)
-12 : 16380.dasm (-1.20 % of base)
-12 : 16391.dasm (-1.67 % of base)
-12 : 12099.dasm (-1.15 % of base)
-12 : 17531.dasm (-0.74 % of base)
48 total files with Code Size differences (33 improved, 15 regressed), 21 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 27181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
236 (2.61 % of base) : 27738.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
116 (2.51 % of base) : 16905.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
60 (1.05 % of base) : 27515.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (0.65 % of base) : 27182.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 26911.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 27210.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 27213.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 27516.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
8 (3.39 % of base) : 1706.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (2.17 % of base) : 1814.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (0.08 % of base) : 27167.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
4 (0.14 % of base) : 27060.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 27312.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
4 (7.14 % of base) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 12567.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 1179.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-48 (-1.08 % of base) : 16835.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-44 (-1.92 % of base) : 2220.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-32 (-1.27 % of base) : 26929.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 26925.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.23 % of base) : 26917.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-20 (-0.76 % of base) : 16348.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAssemblyReferences(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineReference]) (FullOpts)
-20 (-0.46 % of base) : 16429.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-20 (-0.43 % of base) : 16560.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-16 (-1.17 % of base) : 16404.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:GetCompilationAndModuleNames(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],int,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineSourceFile],ubyte,System.String,byref,byref,byref):this (FullOpts)
-16 (-1.22 % of base) : 16365.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-16 (-0.49 % of base) : 17494.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseOperatorDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExplicitInterfaceSpecifierSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.OperatorDeclarationSyntax:this (FullOpts)
-16 (-0.39 % of base) : 16635.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-16 (-1.72 % of base) : 12100.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-16 (-2.27 % of base) : 14936.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-12 (-1.20 % of base) : 16380.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAnalyzers(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineAnalyzerReference],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-1.67 % of base) : 16391.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-0.74 % of base) : 17531.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
-12 (-1.15 % of base) : 12099.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 160.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
824 (6.89 % of base) : 27181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
8 (3.39 % of base) : 1706.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
236 (2.61 % of base) : 27738.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
116 (2.51 % of base) : 16905.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
4 (2.17 % of base) : 1814.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
36 (1.27 % of base) : 27516.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
60 (1.05 % of base) : 27515.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (1.04 % of base) : 27210.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 27213.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.72 % of base) : 26911.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (0.65 % of base) : 27182.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 27312.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
4 (0.14 % of base) : 27060.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.08 % of base) : 27167.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 12567.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 1179.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-4.00 % of base) : 5126.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-16 (-2.27 % of base) : 14936.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-8 (-2.11 % of base) : 7257.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-44 (-1.92 % of base) : 2220.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-4 (-1.89 % of base) : 11124.dasm - FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
-16 (-1.72 % of base) : 12100.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-12 (-1.67 % of base) : 16391.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-4 (-1.56 % of base) : 1518.dasm - BepuUtilities.Collections.QuickSet`2[int,BepuUtilities.Collections.PrimitiveComparer`1[int]]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuUtilities.Collections.PrimitiveComparer`1[int]):this (FullOpts)
-4 (-1.52 % of base) : 17828.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDouble(System.String):double:this (FullOpts)
-4 (-1.52 % of base) : 17813.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueSingle(System.String):float:this (FullOpts)
-4 (-1.49 % of base) : 7293.dasm - FSharp.Compiler.NameResolution:CallNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.47 % of base) : 8190.dasm - FSharp.Compiler.NameResolution:CallMethodGroupNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.28 % of base) : 1388.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints,int,BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints):this (FullOpts)
-32 (-1.27 % of base) : 26929.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.27 % of base) : 18007.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:HandleCloseBraceInContent(int,int):this (FullOpts)
-32 (-1.24 % of base) : 26925.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-4 (-1.23 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-28 (-1.23 % of base) : 26917.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
smoke_tests.nativeaot.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 2830580 (overridden on cmd)
Total bytes of diff: 2830496 (overridden on cmd)
Total bytes of delta: -84 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 8569.dasm (6.25 % of base)
4 : 1643.dasm (10.00 % of base)
4 : 1409.dasm (2.00 % of base)
4 : 12903.dasm (1.54 % of base)
Top file improvements (bytes):
-88 : 726.dasm (-32.84 % of base)
-16 : 4244.dasm (-2.31 % of base)
-4 : 4230.dasm (-1.61 % of base)
-4 : 4161.dasm (-1.45 % of base)
8 total files with Code Size differences (4 improved, 4 regressed), 7 unchanged.
Top method regressions (bytes):
16 (6.25 % of base) : 8569.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
4 (10.00 % of base) : 1643.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (1.54 % of base) : 12903.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
4 (2.00 % of base) : 1409.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 726.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-2.31 % of base) : 4244.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-1.45 % of base) : 4161.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-4 (-1.61 % of base) : 4230.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
Top method regressions (percentages):
4 (10.00 % of base) : 1643.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
16 (6.25 % of base) : 8569.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
4 (2.00 % of base) : 1409.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
4 (1.54 % of base) : 12903.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 726.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-2.31 % of base) : 4244.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-1.61 % of base) : 4230.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-1.45 % of base) : 4161.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
8 total methods with Code Size differences (4 improved, 4 regressed).
linux x64
Diffs are based on 2,517,106 contexts (991,070 MinOpts, 1,526,036 FullOpts).
MISSED contexts: base: 389 (0.02%), diff: 803 (0.03%)
Overall (-297,323 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.x64.checked.mch |
14,324,040 |
+34 |
benchmarks.run_pgo.linux.x64.checked.mch |
71,543,293 |
-2,069 |
benchmarks.run_tiered.linux.x64.checked.mch |
21,423,888 |
-1,575 |
coreclr_tests.run.linux.x64.checked.mch |
403,358,568 |
-124,022 |
libraries.crossgen2.linux.x64.checked.mch |
38,727,480 |
-245 |
libraries.pmi.linux.x64.checked.mch |
60,296,613 |
+10,311 |
libraries_tests.run.linux.x64.Release.mch |
336,741,912 |
-115,547 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
132,296,201 |
-64,666 |
realworld.run.linux.x64.checked.mch |
13,168,575 |
+602 |
smoke_tests.nativeaot.linux.x64.checked.mch |
4,067,946 |
-146 |
MinOpts (-310,501 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.linux.x64.checked.mch |
23,799,989 |
-2,568 |
benchmarks.run_tiered.linux.x64.checked.mch |
17,740,780 |
-1,663 |
coreclr_tests.run.linux.x64.checked.mch |
279,754,460 |
-124,548 |
libraries_tests.run.linux.x64.Release.mch |
183,759,609 |
-116,186 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
10,617,768 |
-65,536 |
FullOpts (+13,178 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.x64.checked.mch |
14,024,737 |
+34 |
benchmarks.run_pgo.linux.x64.checked.mch |
47,743,304 |
+499 |
benchmarks.run_tiered.linux.x64.checked.mch |
3,683,108 |
+88 |
coreclr_tests.run.linux.x64.checked.mch |
123,604,108 |
+526 |
libraries.crossgen2.linux.x64.checked.mch |
38,726,282 |
-245 |
libraries.pmi.linux.x64.checked.mch |
60,183,756 |
+10,311 |
libraries_tests.run.linux.x64.Release.mch |
152,982,303 |
+639 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
121,678,433 |
+870 |
realworld.run.linux.x64.checked.mch |
12,782,691 |
+602 |
smoke_tests.nativeaot.linux.x64.checked.mch |
4,066,997 |
-146 |
Example diffs
benchmarks.run.linux.x64.checked.mch
-18 (-1.06%) : 22161.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,151 +5,145 @@
; rbp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> r15 single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> r15 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V05 tmp2 [V05,T44] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V06 tmp3 [V06,T50] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V07 tmp4 [V07,T13] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V05 tmp2 [V05,T46] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V06 tmp3 [V06,T52] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V07 tmp4 [V07,T14] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V08 tmp5 [V08,T02] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp8 [V11,T20] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V21 tmp18 [V21,T03] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V22 tmp19 [V22,T38] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V24 tmp21 [V24,T57] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V25 tmp22 [V25,T39] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V26 tmp23 [V26,T26] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V28 tmp25 [V28,T45] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V29 tmp26 [V29,T51] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T14] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V31 tmp28 [V31,T04] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V34 tmp31 [V34,T21] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V19 tmp16 [V19,T03] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V20 tmp17 [V20,T38] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V22 tmp19 [V22,T59] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V23 tmp20 [V23,T39] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V24 tmp21 [V24,T26] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
+;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V26 tmp23 [V26,T47] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V27 tmp24 [V27,T53] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T15] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V29 tmp26 [V29,T04] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V32 tmp29 [V32,T21] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V36 tmp33 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V44 tmp41 [V44,T05] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V45 tmp42 [V45,T40] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp44 [V47,T58] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V48 tmp45 [V48,T41] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V49 tmp46 [V49,T27] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V51 tmp48 [V51,T46] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V52 tmp49 [V52,T52] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T15] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V54 tmp51 [V54,T06] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V40 tmp37 [V40,T05] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V41 tmp38 [V41,T40] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V43 tmp40 [V43,T60] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V44 tmp41 [V44,T41] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V45 tmp42 [V45,T27] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V47 tmp44 [V47,T48] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V48 tmp45 [V48,T54] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T16] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V50 tmp47 [V50,T06] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V53 tmp50 [V53,T22] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V57 tmp54 [V57,T22] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
-;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp63 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V67 tmp64 [V67,T07] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V68 tmp65 [V68,T42] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V69 tmp66 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V70 tmp67 [V70,T59] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V71 tmp68 [V71,T43] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V72 tmp69 [V72,T28] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
-;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V74 tmp71 [V74,T47] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V75 tmp72 [V75,T53] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T16] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp74 [V77,T08] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V61 tmp58 [V61,T07] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V62 tmp59 [V62,T42] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V64 tmp61 [V64,T61] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V65 tmp62 [V65,T43] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V66 tmp63 [V66,T28] ( 3, 3 ) byref -> rdi single-def "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V68 tmp65 [V68,T49] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V69 tmp66 [V69,T55] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T17] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V71 tmp68 [V71,T08] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V74 tmp71 [V74,T23] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp77 [V80,T23] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V81 tmp78 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V83 tmp80 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V85 tmp82 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp86 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V90 tmp87 [V90,T29] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
-;* V91 tmp88 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V92 tmp89 [V92,T48] ( 2, 2 ) int -> r14 "Inlining Arg"
-; V93 tmp90 [V93,T54] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T17] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V95 tmp92 [V95,T09] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V82 tmp79 [V82,T09] ( 6, 6 ) byref -> rax single-def "Inlining Arg"
+; V83 tmp80 [V83,T44] ( 3, 3 ) int -> rcx "impAppendStmt"
+;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V85 tmp82 [V85,T62] ( 2, 1 ) int -> rcx "Inline return value spill temp"
+; V86 tmp83 [V86,T45] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V87 tmp84 [V87,T29] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
+;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V89 tmp86 [V89,T50] ( 2, 2 ) int -> r14 "Inlining Arg"
+; V90 tmp87 [V90,T56] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T18] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V92 tmp89 [V92,T10] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp91 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V95 tmp92 [V95,T24] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
+;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp95 [V98,T24] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
+;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp96 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp99 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V107 tmp104 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V108 tmp105 [V108,T30] ( 3, 3 ) byref -> r13 single-def "Inlining Arg"
-;* V109 tmp106 [V109 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V110 tmp107 [V110,T55] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T18] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V112 tmp109 [V112,T10] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V113 tmp110 [V113 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp112 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp113 [V116,T25] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
-;* V117 tmp114 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp115 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp116 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V120 tmp117 [V120,T49] ( 2, 2 ) int -> r14 "Inlining Arg"
-; V121 tmp118 [V121,T56] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T19] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V123 tmp120 [V123,T31] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V124 tmp121 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V103 tmp100 [V103,T30] ( 3, 3 ) byref -> r13 single-def "Inlining Arg"
+;* V104 tmp101 [V104 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V105 tmp102 [V105,T57] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T19] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V107 tmp104 [V107,T11] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V109 tmp106 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V111 tmp108 [V111,T25] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp110 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V115 tmp112 [V115,T51] ( 2, 2 ) int -> r14 "Inlining Arg"
+; V116 tmp113 [V116,T58] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V117 tmp114 [V117,T31] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V121 tmp118 [V121,T32] ( 3, 3 ) ref -> rdi single-def "arr expr"
+; V122 tmp119 [V122,T33] ( 3, 3 ) ref -> rdi single-def "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V125 tmp122 [V125,T34] ( 3, 3 ) ref -> rax single-def "arr expr"
;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V127 tmp124 [V127,T32] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V128 tmp125 [V128,T33] ( 3, 3 ) ref -> rdi single-def "arr expr"
+;* V127 tmp124 [V127 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V128 tmp125 [V128,T35] ( 3, 3 ) ref -> rdi single-def "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V130 tmp127 [V130 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V131 tmp128 [V131,T34] ( 3, 3 ) ref -> rdi single-def "arr expr"
...
-6 (-0.89%) : 2581.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -197,23 +197,23 @@ G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rcx, rdx
jmp rcx
;; size=42 bbWeight=0.50 PerfScore 4.25
-G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 0xD1FFAB1E
cmp qword ptr [r8], rax
jg G_M13748_IG26
mov rax, qword ptr [r8]
- jmp G_M13748_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.12
+ jmp SHORT G_M13748_IG23
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r8+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r8+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG26
- mov rax, qword ptr [r8]
- shl rax, 24
- mov r8, qword ptr [r8+0x08]
- and r8, 0xD1FFAB1E
+ mov r8, qword ptr [r8]
+ shl r8, 24
+ and rax, 0xD1FFAB1E
or rax, r8
jmp SHORT G_M13748_IG23
- ;; size=37 bbWeight=0.50 PerfScore 5.50
+ ;; size=34 bbWeight=0.50 PerfScore 4.12
G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r8+0x10], 0xFFFF
jg SHORT G_M13748_IG26
@@ -227,20 +227,19 @@ G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp SHORT G_M13748_IG23
;; size=39 bbWeight=0.50 PerfScore 6.75
G_M13748_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r8+0x18]
- cmp rax, 255
+ cmp qword ptr [r8+0x18], 255
jg SHORT G_M13748_IG26
- mov rcx, qword ptr [r8]
- shl rcx, 24
- movzx rdx, byte ptr [r8+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r8+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r8]
+ shl rax, 24
+ movzx rcx, byte ptr [r8+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=49 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r8+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r8+0x18]
+ or rax, rcx
+ ;; size=49 bbWeight=0.50 PerfScore 7.12
G_M13748_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E
cmp qword ptr [rbp-0x20], rdi
@@ -284,7 +283,7 @@ RWD00 dd G_M13748_IG19 - G_M13748_IG02
dd G_M13748_IG22 - G_M13748_IG02
-; Total bytes of code 677, prolog size 29, PerfScore 660.50, instruction count 185, allocated bytes for code 677 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 671, prolog size 29, PerfScore 660.38, instruction count 184, allocated bytes for code 671 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
-6 (-0.89%) : 5650.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -197,23 +197,23 @@ G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rcx, rdx
jmp rcx
;; size=42 bbWeight=0.50 PerfScore 4.25
-G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 0xD1FFAB1E
cmp qword ptr [r8], rax
jg G_M13748_IG26
mov rax, qword ptr [r8]
- jmp G_M13748_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.12
+ jmp SHORT G_M13748_IG23
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r8+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r8+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG26
- mov rax, qword ptr [r8]
- shl rax, 24
- mov r8, qword ptr [r8+0x08]
- and r8, 0xD1FFAB1E
+ mov r8, qword ptr [r8]
+ shl r8, 24
+ and rax, 0xD1FFAB1E
or rax, r8
jmp SHORT G_M13748_IG23
- ;; size=37 bbWeight=0.50 PerfScore 5.50
+ ;; size=34 bbWeight=0.50 PerfScore 4.12
G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r8+0x10], 0xFFFF
jg SHORT G_M13748_IG26
@@ -227,20 +227,19 @@ G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp SHORT G_M13748_IG23
;; size=39 bbWeight=0.50 PerfScore 6.75
G_M13748_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r8+0x18]
- cmp rax, 255
+ cmp qword ptr [r8+0x18], 255
jg SHORT G_M13748_IG26
- mov rcx, qword ptr [r8]
- shl rcx, 24
- movzx rdx, byte ptr [r8+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r8+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r8]
+ shl rax, 24
+ movzx rcx, byte ptr [r8+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=49 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r8+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r8+0x18]
+ or rax, rcx
+ ;; size=49 bbWeight=0.50 PerfScore 7.12
G_M13748_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E
cmp qword ptr [rbp-0x20], rdi
@@ -284,7 +283,7 @@ RWD00 dd G_M13748_IG19 - G_M13748_IG02
dd G_M13748_IG22 - G_M13748_IG02
-; Total bytes of code 677, prolog size 29, PerfScore 660.50, instruction count 185, allocated bytes for code 677 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 671, prolog size 29, PerfScore 660.38, instruction count 184, allocated bytes for code 671 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
+45 (+1.61%) : 14072.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
@@ -11,150 +11,150 @@
; V00 this [V00,T07] ( 9, 6.50) ref -> r15 this class-hnd single-def <System.Formats.Tar.TarWriter>
; V01 arg1 [V01,T09] ( 8, 5 ) ref -> r14 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 15, 8 ) ref -> rbx class-hnd single-def <System.String>
-; V03 arg3 [V03,T19] ( 4, 3 ) int -> r13 single-def
+; V03 arg3 [V03,T18] ( 4, 3 ) int -> r13 single-def
; V04 loc0 [V04 ] ( 16, 13.50) struct (120) [rbp-0xA0] do-not-enreg[XSF] addr-exposed ld-addr-op <Interop+Sys+FileStatus>
-; V05 loc1 [V05,T01] ( 19, 11 ) ubyte -> r12
-; V06 loc2 [V06,T64] ( 2, 1.50) ref -> [rbp-0x118] class-hnd spill-single-def <System.IO.FileSystemInfo>
+;* V05 loc1 [V05 ] ( 0, 0 ) ubyte -> zero-ref
+;* V06 loc2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.IO.FileSystemInfo>
;* V07 loc3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Formats.Tar.TarEntry>
-; V08 loc4 [V08,T32] ( 4, 2.50) ref -> r12 ld-addr-op class-hnd <System.String>
-; V09 loc5 [V09,T29] ( 5, 3 ) ref -> r12 ld-addr-op class-hnd <System.String>
-; V10 loc6 [V10,T10] ( 10, 6.50) ubyte -> r12
-; V11 loc7 [V11,T17] ( 8, 5 ) long -> rdi
-; V12 loc8 [V12,T00] ( 15, 11.50) ref -> rbx class-hnd <System.Formats.Tar.TarEntry>
+; V08 loc4 [V08,T31] ( 4, 2.50) ref -> r12 ld-addr-op class-hnd <System.String>
+; V09 loc5 [V09,T28] ( 5, 3 ) ref -> r12 ld-addr-op class-hnd <System.String>
+; V10 loc6 [V10,T00] ( 27, 15.50) ubyte -> r12
+; V11 loc7 [V11,T16] ( 8, 5 ) long -> rdi
+; V12 loc8 [V12,T01] ( 15, 11.50) ref -> rbx class-hnd <System.Formats.Tar.TarEntry>
;* V13 loc9 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 loc10 [V14,T50] ( 0, 0 ) ubyte -> zero-ref
+;* V14 loc10 [V14,T49] ( 0, 0 ) ubyte -> zero-ref
; V15 loc11 [V15 ] ( 2, 1 ) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed ld-addr-op
; V16 loc12 [V16 ] ( 2, 1 ) int -> [rbp-0xB0] do-not-enreg[X] addr-exposed ld-addr-op
; V17 OutArgs [V17 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V18 tmp1 [V18,T33] ( 3, 3 ) ref -> [rbp-0x120] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
-; V19 tmp2 [V19,T51] ( 3, 2 ) ref -> rax
-; V20 tmp3 [V20,T96] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
-; V21 tmp4 [V21,T91] ( 3, 0 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V22 tmp5 [V22,T92] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V23 tmp6 [V23,T21] ( 4, 4 ) ref -> [rbp-0x128] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.GnuTarEntry>
+; V18 tmp1 [V18,T32] ( 3, 3 ) ref -> [rbp-0x118] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+; V19 tmp2 [V19,T60] ( 3, 1.50) ref -> [rbp-0x120]
+; V20 tmp3 [V20,T86] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
+; V21 tmp4 [V21,T81] ( 3, 0 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V22 tmp5 [V22,T82] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V23 tmp6 [V23,T20] ( 4, 4 ) ref -> [rbp-0x128] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.GnuTarEntry>
;* V24 tmp7 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Formats.Tar.TarHeader>
;* V25 tmp8 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Formats.Tar.TarHeader>
;* V26 tmp9 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Formats.Tar.TarHeader>
-; V27 tmp10 [V27,T22] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileStream>
-; V28 tmp11 [V28,T52] ( 2, 2 ) ref -> r15 class-hnd exact single-def "finalizable newobj spill" <System.Formats.Tar.TarHeader>
-; V29 tmp12 [V29,T53] ( 2, 2 ) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
+; V27 tmp10 [V27,T21] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileStream>
+; V28 tmp11 [V28,T50] ( 2, 2 ) ref -> r15 class-hnd exact single-def "finalizable newobj spill" <System.Formats.Tar.TarHeader>
+; V29 tmp12 [V29,T51] ( 2, 2 ) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
;* V30 tmp13 [V30 ] ( 0, 0 ) ref -> zero-ref single-def
-; V31 tmp14 [V31,T47] ( 5, 2.50) ref -> rsi
-; V32 tmp15 [V32,T18] ( 5, 5 ) ref -> [rbp-0x130] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.PaxTarEntry>
-; V33 tmp16 [V33,T23] ( 4, 4 ) ref -> [rbp-0x138] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.UstarTarEntry>
-; V34 tmp17 [V34,T34] ( 3, 3 ) ref -> [rbp-0x140] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
-; V35 tmp18 [V35,T35] ( 3, 3 ) ref -> [rbp-0x148] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.FileInfo>
-; V36 tmp19 [V36,T66] ( 2, 1 ) int -> rdi
-; V37 tmp20 [V37,T93] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V38 tmp21 [V38,T25] ( 2, 4 ) int -> rax "Inlining Arg"
-; V39 tmp22 [V39,T26] ( 2, 4 ) long -> rdi "Inlining Arg"
+; V31 tmp14 [V31,T46] ( 5, 2.50) ref -> rsi
+; V32 tmp15 [V32,T17] ( 5, 5 ) ref -> [rbp-0x130] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.PaxTarEntry>
+; V33 tmp16 [V33,T22] ( 4, 4 ) ref -> [rbp-0x138] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.UstarTarEntry>
+; V34 tmp17 [V34,T33] ( 3, 3 ) ref -> [rbp-0x140] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
+; V35 tmp18 [V35,T34] ( 3, 3 ) ref -> [rbp-0x148] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.FileInfo>
+; V36 tmp19 [V36,T64] ( 2, 1 ) int -> rdi
+; V37 tmp20 [V37,T83] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V38 tmp21 [V38,T24] ( 2, 4 ) int -> rax "Inlining Arg"
+; V39 tmp22 [V39,T25] ( 2, 4 ) long -> rdi "Inlining Arg"
;* V40 tmp23 [V40 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <Interop+ErrorInfo>
;* V41 tmp24 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <Interop+ErrorInfo>
-; V42 tmp25 [V42,T94] ( 3, 0 ) int -> rbx "Inlining Arg"
-; V43 tmp26 [V43,T42] ( 3, 3 ) int -> [rbp-0xB4] "impAppendStmt"
+; V42 tmp25 [V42,T84] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V43 tmp26 [V43,T41] ( 3, 3 ) int -> [rbp-0xB4] "impAppendStmt"
; V44 tmp27 [V44,T03] ( 10, 10 ) ref -> [rbp-0x150] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V45 tmp28 [V45 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V46 tmp29 [V46,T103] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V47 tmp30 [V47,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V46 tmp29 [V46,T93] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V47 tmp30 [V47,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp31 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V49 tmp32 [V49,T81] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V49 tmp32 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V50 tmp33 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V51 tmp34 [V51,T82] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V52 tmp35 [V52,T43] ( 3, 3 ) int -> [rbp-0xB8] "impAppendStmt"
+;* V51 tmp34 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V52 tmp35 [V52,T42] ( 3, 3 ) int -> [rbp-0xB8] "impAppendStmt"
; V53 tmp36 [V53,T04] ( 10, 10 ) ref -> [rbp-0x158] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V54 tmp37 [V54 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V55 tmp38 [V55,T104] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V56 tmp39 [V56,T68] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V55 tmp38 [V55,T94] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V56 tmp39 [V56,T66] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V57 tmp40 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V58 tmp41 [V58,T83] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V58 tmp41 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V59 tmp42 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V60 tmp43 [V60,T84] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V61 tmp44 [V61,T44] ( 3, 3 ) int -> [rbp-0xBC] "impAppendStmt"
+;* V60 tmp43 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V61 tmp44 [V61,T43] ( 3, 3 ) int -> [rbp-0xBC] "impAppendStmt"
; V62 tmp45 [V62,T05] ( 10, 10 ) ref -> [rbp-0x160] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V63 tmp46 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V64 tmp47 [V64,T105] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V65 tmp48 [V65,T69] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V64 tmp47 [V64,T95] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V65 tmp48 [V65,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V66 tmp49 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V67 tmp50 [V67,T85] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V67 tmp50 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V68 tmp51 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V69 tmp52 [V69,T86] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V70 tmp53 [V70,T45] ( 3, 3 ) int -> [rbp-0xC0] "impAppendStmt"
+;* V69 tmp52 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V70 tmp53 [V70,T44] ( 3, 3 ) int -> [rbp-0xC0] "impAppendStmt"
; V71 tmp54 [V71,T06] ( 10, 10 ) ref -> [rbp-0x168] class-hnd exact spill-single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V72 tmp55 [V72 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V73 tmp56 [V73,T106] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V74 tmp57 [V74,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V73 tmp56 [V73,T96] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V74 tmp57 [V74,T68] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V75 tmp58 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V76 tmp59 [V76,T87] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V76 tmp59 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V77 tmp60 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V78 tmp61 [V78,T88] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V78 tmp61 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V79 tmp62 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "RetBuf for struct inline return candidates." <System.DateTimeOffset>
;* V80 tmp63 [V80 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "RetBuf for struct inline return candidates." <System.DateTimeOffset>
;* V81 tmp64 [V81 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "RetBuf for struct inline return candidates." <System.DateTimeOffset>
-;* V82 tmp65 [V82,T71] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V83 tmp66 [V83,T11] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
-; V84 tmp67 [V84,T27] ( 2, 4 ) int -> rsi "Inlining Arg"
-; V85 tmp68 [V85,T48] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
-; V86 tmp69 [V86,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
-; V87 tmp70 [V87,T54] ( 2, 2 ) int -> rsi "Inlining Arg"
+;* V82 tmp65 [V82,T69] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V83 tmp66 [V83,T10] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
+; V84 tmp67 [V84,T26] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V85 tmp68 [V85,T47] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
+; V86 tmp69 [V86,T35] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
+; V87 tmp70 [V87,T52] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V88 tmp71 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V89 tmp72 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V90 tmp73 [V90,T72] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V91 tmp74 [V91,T12] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
-; V92 tmp75 [V92,T28] ( 2, 4 ) int -> rsi "Inlining Arg"
-; V93 tmp76 [V93,T49] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
+;* V90 tmp73 [V90,T70] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V91 tmp74 [V91,T11] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
+; V92 tmp75 [V92,T27] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V93 tmp76 [V93,T48] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V94 tmp77 [V94 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V95 tmp78 [V95,T37] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
-; V96 tmp79 [V96,T55] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V95 tmp78 [V95,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <<unknown class>>
+; V96 tmp79 [V96,T53] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V97 tmp80 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V98 tmp81 [V98 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V99 tmp82 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
-; V100 tmp83 [V100,T65] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
+; V100 tmp83 [V100,T63] ( 2, 1 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
;* V101 tmp84 [V101 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]>
;* V102 tmp85 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.IO.Strategies.FileStreamStrategy>
-; V103 tmp86 [V103,T38] ( 3, 3 ) ref -> [rbp-0x170] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy>
+; V103 tmp86 [V103,T37] ( 3, 3 ) ref -> [rbp-0x170] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy>
;* V104 tmp87 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
-; V105 tmp88 [V105,T24] ( 4, 4 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.IO.Strategies.BufferedFileStreamStrategy>
+; V105 tmp88 [V105,T23] ( 4, 4 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.IO.Strategies.BufferedFileStreamStrategy>
;* V106 tmp89 [V106 ] ( 0, 0 ) int -> zero-ref "field V40._error (fldOffset=0x0)" P-INDEP
;* V107 tmp90 [V107 ] ( 0, 0 ) int -> zero-ref "field V40._rawErrno (fldOffset=0x4)" P-INDEP
-; V108 tmp91 [V108,T101] ( 2, 0 ) int -> r15 "field V41._error (fldOffset=0x0)" P-INDEP
-; V109 tmp92 [V109,T102] ( 2, 0 ) int -> rbx "field V41._rawErrno (fldOffset=0x4)" P-INDEP
-; V110 tmp93 [V110,T73] ( 2, 1 ) short -> [rbp-0xC4] spill-single-def "field V45._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V111 tmp94 [V111,T74] ( 2, 1 ) long -> [rbp-0xD0] spill-single-def "field V45._dateTime (fldOffset=0x8)" P-INDEP
-; V112 tmp95 [V112,T75] ( 2, 1 ) short -> [rbp-0xD4] spill-single-def "field V54._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V113 tmp96 [V113,T76] ( 2, 1 ) long -> [rbp-0xE0] spill-single-def "field V54._dateTime (fldOffset=0x8)" P-INDEP
-; V114 tmp97 [V114,T77] ( 2, 1 ) short -> [rbp-0xE4] spill-single-def "field V63._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V115 tmp98 [V115,T78] ( 2, 1 ) long -> [rbp-0xF0] spill-single-def "field V63._dateTime (fldOffset=0x8)" P-INDEP
-; V116 tmp99 [V116,T79] ( 2, 1 ) short -> [rbp-0xF4] spill-single-def "field V72._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V117 tmp100 [V117,T80] ( 2, 1 ) long -> [rbp-0x100] spill-single-def "field V72._dateTime (fldOffset=0x8)" P-INDEP
-; V118 tmp101 [V118,T56] ( 2, 2 ) short -> rax "field V79._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V119 tmp102 [V119,T57] ( 2, 2 ) long -> rdx "field V79._dateTime (fldOffset=0x8)" P-INDEP
-; V120 tmp103 [V120,T58] ( 2, 2 ) short -> rax "field V80._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V121 tmp104 [V121,T59] ( 2, 2 ) long -> rdx "field V80._dateTime (fldOffset=0x8)" P-INDEP
-; V122 tmp105 [V122,T60] ( 2, 2 ) short -> rax "field V81._offsetMinutes (fldOffset=0x0)" P-INDEP
-; V123 tmp106 [V123,T61] ( 2, 2 ) long -> rdx "field V81._dateTime (fldOffset=0x8)" P-INDEP
+; V108 tmp91 [V108,T91] ( 2, 0 ) int -> r15 "field V41._error (fldOffset=0x0)" P-INDEP
+; V109 tmp92 [V109,T92] ( 2, 0 ) int -> rbx "field V41._rawErrno (fldOffset=0x4)" P-INDEP
+; V110 tmp93 [V110,T71] ( 2, 1 ) short -> [rbp-0xC4] spill-single-def "field V45._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V111 tmp94 [V111,T72] ( 2, 1 ) long -> [rbp-0xD0] spill-single-def "field V45._dateTime (fldOffset=0x8)" P-INDEP
+; V112 tmp95 [V112,T73] ( 2, 1 ) short -> [rbp-0xD4] spill-single-def "field V54._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V113 tmp96 [V113,T74] ( 2, 1 ) long -> [rbp-0xE0] spill-single-def "field V54._dateTime (fldOffset=0x8)" P-INDEP
+; V114 tmp97 [V114,T75] ( 2, 1 ) short -> [rbp-0xE4] spill-single-def "field V63._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V115 tmp98 [V115,T76] ( 2, 1 ) long -> [rbp-0xF0] spill-single-def "field V63._dateTime (fldOffset=0x8)" P-INDEP
+; V116 tmp99 [V116,T77] ( 2, 1 ) short -> [rbp-0xF4] spill-single-def "field V72._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V117 tmp100 [V117,T78] ( 2, 1 ) long -> [rbp-0x100] spill-single-def "field V72._dateTime (fldOffset=0x8)" P-INDEP
+; V118 tmp101 [V118,T54] ( 2, 2 ) short -> rax "field V79._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V119 tmp102 [V119,T55] ( 2, 2 ) long -> rdx "field V79._dateTime (fldOffset=0x8)" P-INDEP
+; V120 tmp103 [V120,T56] ( 2, 2 ) short -> rax "field V80._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V121 tmp104 [V121,T57] ( 2, 2 ) long -> rdx "field V80._dateTime (fldOffset=0x8)" P-INDEP
+; V122 tmp105 [V122,T58] ( 2, 2 ) short -> rax "field V81._offsetMinutes (fldOffset=0x0)" P-INDEP
+; V123 tmp106 [V123,T59] ( 2, 2 ) long -> rdx "field V81._dateTime (fldOffset=0x8)" P-INDEP
;* V124 tmp107 [V124 ] ( 0, 0 ) ubyte -> zero-ref "field V99.hasValue (fldOffset=0x0)" P-INDEP
;* V125 tmp108 [V125 ] ( 0, 0 ) int -> zero-ref "field V99.value (fldOffset=0x4)" P-INDEP
-;* V126 tmp109 [V126,T89] ( 0, 0 ) ubyte -> zero-ref "field V101.hasValue (fldOffset=0x0)" P-INDEP
-;* V127 tmp110 [V127,T90] ( 0, 0 ) int -> zero-ref "field V101.value (fldOffset=0x4)" P-INDEP
-; V128 tmp111 [V128,T95] ( 3, 0 ) struct ( 8) [rbp-0x108] do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
-; V129 tmp112 [V129,T97] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V130 tmp113 [V130,T98] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V131 tmp114 [V131,T99] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V132 tmp115 [V132,T100] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V133 tmp116 [V133,T13] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
-; V134 tmp117 [V134,T14] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
-; V135 tmp118 [V135,T15] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
-; V136 tmp119 [V136,T46] ( 3, 3 ) struct ( 8) [rbp-0x110] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-; V137 cse0 [V137,T62] ( 3, 1.50) byref -> rdx "CSE - conservative"
-; V138 cse1 [V138,T20] ( 8, 4 ) ref -> [rbp-0x178] spill-single-def "CSE - moderate"
-; V139 cse2 [V139,T30] ( 6, 3 ) ref -> [rbp-0x180] spill-single-def "CSE - conservative"
-; V140 cse3 [V140,T31] ( 6, 3 ) ref -> [rbp-0x188] spill-single-def "CSE - conservative"
-; V141 cse4 [V141,T39] ( 3, 3 ) ref -> rdi "CSE - conservative"
-; V142 cse5 [V142,T40] ( 3, 3 ) ref -> [rbp-0x190] spill-single-def "CSE - conservative"
-; V143 cse6 [V143,T41] ( 3, 3 ) ref -> r15 "CSE - conservative"
-; V144 cse7 [V144,T63] ( 3, 1.50) ref -> rdi "CSE - conservative"
-; V145 cse8 [V145,T08] ( 13, 6.50) ref -> [rbp-0x198] multi-def "CSE - moderate"
-; V146 rat0 [V146,T16] ( 3, 6 ) int -> rdi "ReplaceWithLclVar is creating a new local variable"
+;* V126 tmp109 [V126,T79] ( 0, 0 ) ubyte -> zero-ref "field V101.hasValue (fldOffset=0x0)" P-INDEP
+;* V127 tmp110 [V127,T80] ( 0, 0 ) int -> zero-ref "field V101.value (fldOffset=0x4)" P-INDEP
+; V128 tmp111 [V128,T85] ( 3, 0 ) struct ( 8) [rbp-0x108] do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
+; V129 tmp112 [V129,T87] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V130 tmp113 [V130,T88] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V131 tmp114 [V131,T89] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V132 tmp115 [V132,T90] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V133 tmp116 [V133,T12] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
+; V134 tmp117 [V134,T13] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
+; V135 tmp118 [V135,T14] ( 3, 6 ) byref -> r12 single-def "Block morph LHS addr"
+; V136 tmp119 [V136,T45] ( 3, 3 ) struct ( 8) [rbp-0x110] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
+; V137 cse0 [V137,T61] ( 3, 1.50) byref -> rdx "CSE - conservative"
+; V138 cse1 [V138,T19] ( 8, 4 ) ref -> [rbp-0x178] spill-single-def "CSE - moderate"
+; V139 cse2 [V139,T29] ( 6, 3 ) ref -> [rbp-0x180] spill-single-def "CSE - conservative"
+; V140 cse3 [V140,T30] ( 6, 3 ) ref -> [rbp-0x188] spill-single-def "CSE - conservative"
+; V141 cse4 [V141,T38] ( 3, 3 ) ref -> rdi "CSE - conservative"
+; V142 cse5 [V142,T39] ( 3, 3 ) ref -> [rbp-0x190] spill-single-def "CSE - conservative"
+; V143 cse6 [V143,T40] ( 3, 3 ) ref -> r15 "CSE - conservative"
+; V144 cse7 [V144,T62] ( 3, 1.50) ref -> rdi "CSE - conservative"
+; V145 cse8 [V145,T08] ( 15, 7.50) ref -> [rbp-0x198] multi-def "CSE - moderate"
+; V146 rat0 [V146,T15] ( 3, 6 ) int -> rdi "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 392
...
+16 (+4.04%) : 23286.dasm - System.Formats.Tar.Tests.PerfTarWriter:V7TarEntryWriteEntry():this (FullOpts)
@@ -17,17 +17,17 @@
;* V06 tmp3 [V06,T08] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V07 tmp4 [V07,T00] ( 10, 20 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V09 tmp6 [V09,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V09 tmp6 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V14 tmp11 [V14,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V15 tmp12 [V15,T06] ( 2, 2 ) short -> r12 "field V08._offsetMinutes (fldOffset=0x0)" P-INDEP
; V16 tmp13 [V16,T07] ( 2, 2 ) long -> [rbp-0x30] spill-single-def "field V08._dateTime (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V18 PSPSym [V18,T11] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-;* V19 cse0 [V19,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 tmp14 [V17,T10] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V18 PSPSym [V18,T09] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
+; V19 cse0 [V19,T04] ( 3, 3 ) ref -> r14 "CSE - aggressive"
;
; Lcl frame size = 24
@@ -98,9 +98,22 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov r14, qword ptr [rbp-0x30]
mov qword ptr [r13+0x90], r14
mov byte ptr [r13+0x84], 0
- mov rdi, 0xD1FFAB1E
- mov gword ptr [r13+0x20], rdi
- mov gword ptr [r13+0x28], rdi
+ mov r14, 0xD1FFAB1E
+ ; gcrRegs +[r14]
+ lea rdi, bword ptr [r13+0x20]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r13+0x28]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi r14]
+ ; byrRegs -[rdi]
lea rdi, bword ptr [r15+0x08]
; byrRegs +[rdi]
mov rsi, r13
@@ -115,7 +128,7 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcr arg pop 0
mov gword ptr [rbp-0x38], rax
; GC ptr vars +{V02}
- ;; size=152 bbWeight=1 PerfScore 25.50
+ ;; size=168 bbWeight=1 PerfScore 27.00
G_M5976_IG06: ; bbWeight=1, gcVars=0000000000000020 {V02}, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, gcvars, byref
mov rdi, rax
; gcrRegs +[rdi]
@@ -207,7 +220,7 @@ G_M5976_IG14: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 396, prolog size 26, PerfScore 59.75, instruction count 99, allocated bytes for code 396 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
+; Total bytes of code 412, prolog size 26, PerfScore 61.25, instruction count 103, allocated bytes for code 412 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
; ============================================================
Unwind Info:
+3 (+9.09%) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -24,17 +24,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.linux.x64.checked.mch
-24 (-37.50%) : 1060.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,40 +7,29 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- xor eax, eax
- mov qword ptr [rbp-0x18], rax
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x08], rdi
mov qword ptr [rbp-0x10], rdi
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov bword ptr [rbp-0x18], rax
- mov eax, 512
- ; byrRegs -[rax]
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- mov rcx, bword ptr [rbp-0x18]
- ; byrRegs +[rcx]
- mov dword ptr [rcx+0x08], eax
- ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -53,5 +42,5 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-11 (-23.40%) : 82.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp-0x10]
sub rax, qword ptr [rbp-0x08]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
-11 (-23.40%) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp-0x10]
sub rax, qword ptr [rbp-0x08]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
+6 (+1.66%) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -121,7 +121,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp-0x38]
; byrRegs +[rax]
@@ -140,7 +142,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp-0x2C]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp-0x38]
; byrRegs +[rax]
@@ -162,7 +166,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax rdi]
; gcr arg pop 0
nop
- ;; size=122 bbWeight=1 PerfScore 34.00
+ ;; size=128 bbWeight=1 PerfScore 35.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
@@ -174,7 +178,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 361, prolog size 25, PerfScore 92.52, instruction count 99, allocated bytes for code 361 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 367, prolog size 25, PerfScore 93.52, instruction count 103, allocated bytes for code 367 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
+6 (+2.90%) : 27031.dasm - System.SpanHelpers:Fillushort (Tier1)
@@ -5,26 +5,26 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 20160.98
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 20160.98
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T04] ( 18, 3.01) byref -> rdi single-def
; V01 arg1 [V01,T03] ( 10, 5.00) long -> rsi single-def
; V02 arg2 [V02,T05] ( 18, 3.01) ushort -> rdx single-def
-; V03 loc0 [V03,T08] ( 23, 0.01) long -> rax
+; V03 loc0 [V03,T07] ( 23, 0.01) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
-; V05 loc2 [V05,T11] ( 5, 621.70) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T10] ( 5, 621.70) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 621.70) byref -> rdi single-def
; V07 loc4 [V07,T06] ( 4, 3.98) long -> rax
; V08 loc5 [V08,T02] ( 2, 310.60) long -> rcx
; V09 loc6 [V09,T00] ( 7,1549.52) long -> rdx
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V11 loc8 [V11,T10] ( 2, 0.00) long -> rcx
+; V11 loc8 [V11,T09] ( 2, 0.00) long -> rcx
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V13 tmp1 [V13,T09] ( 2, 0.00) long -> rax "dup spill"
+; V13 tmp1 [V13,T08] ( 2, 0.00) long -> rax "dup spill"
;* V14 tmp2 [V14 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ushort]>
-;* V15 tmp3 [V15,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -73,13 +73,49 @@ G_M51983_IG08: ; bbWeight=0.99, epilog, nogc, extend
G_M51983_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz
xor eax, eax
cmp rsi, 8
- jb SHORT G_M51983_IG12
+ jae SHORT G_M51983_IG17
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 4
+ jne SHORT G_M51983_IG16
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 2
+ jne SHORT G_M51983_IG15
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 1
+ je SHORT G_M51983_IG14
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+ mov word ptr [rdi+2*rax], dx
+ ;; size=4 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; byrRegs -[rdi]
+ vzeroupper
+ pop rbp
+ ret
+ ;; size=5 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz
+ ; byrRegs +[rdi]
+ mov word ptr [rdi+2*rax], dx
+ mov word ptr [rdi+2*rax+0x02], dx
+ add rax, 2
+ jmp SHORT G_M51983_IG12
+ ;; size=15 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ mov word ptr [rdi+2*rax], dx
+ mov word ptr [rdi+2*rax+0x02], dx
+ mov word ptr [rdi+2*rax+0x04], dx
+ mov word ptr [rdi+2*rax+0x06], dx
+ add rax, 4
+ jmp SHORT G_M51983_IG11
+ ;; size=25 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
mov rcx, rsi
and rcx, -8
;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
mov word ptr [rdi+2*rax], dx
mov word ptr [rdi+2*rax+0x02], dx
mov word ptr [rdi+2*rax+0x04], dx
@@ -90,43 +126,11 @@ G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
mov word ptr [rdi+2*rax+0x0E], dx
add rax, 8
cmp rax, rcx
- jb SHORT G_M51983_IG11
- ;; size=48 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 4
- je SHORT G_M51983_IG14
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- mov word ptr [rdi+2*rax+0x02], dx
- mov word ptr [rdi+2*rax+0x04], dx
- mov word ptr [rdi+2*rax+0x06], dx
- add rax, 4
- ;; size=23 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 2
- je SHORT G_M51983_IG16
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG15: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- mov word ptr [rdi+2*rax+0x02], dx
- add rax, 2
- ;; size=13 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 1
- je SHORT G_M51983_IG18
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; byrRegs -[rdi]
- vzeroupper
- pop rbp
- ret
- ;; size=5 bbWeight=0.00 PerfScore 0.00
+ jb SHORT G_M51983_IG18
+ jmp SHORT G_M51983_IG10
+ ;; size=50 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 207, prolog size 7, PerfScore 1717.78, instruction count 59, allocated bytes for code 207 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
+; Total bytes of code 213, prolog size 7, PerfScore 1717.78, instruction count 62, allocated bytes for code 213 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
; ============================================================
Unwind Info:
+6 (+2.90%) : 115120.dasm - System.SpanHelpers:Fillushort (Tier1)
@@ -5,26 +5,26 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 20297.02
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 20297.02
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T04] ( 18, 3.01) byref -> rdi single-def
; V01 arg1 [V01,T03] ( 10, 5.00) long -> rsi single-def
; V02 arg2 [V02,T05] ( 18, 3.01) ushort -> rdx single-def
-; V03 loc0 [V03,T08] ( 23, 0.01) long -> rax
+; V03 loc0 [V03,T07] ( 23, 0.01) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
-; V05 loc2 [V05,T11] ( 5, 618.53) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T10] ( 5, 618.53) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 618.53) byref -> rdi single-def
; V07 loc4 [V07,T06] ( 4, 3.97) long -> rax
; V08 loc5 [V08,T02] ( 2, 309.03) long -> rcx
; V09 loc6 [V09,T00] ( 7,1541.63) long -> rdx
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V11 loc8 [V11,T10] ( 2, 0.00) long -> rcx
+; V11 loc8 [V11,T09] ( 2, 0.00) long -> rcx
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V13 tmp1 [V13,T09] ( 2, 0.00) long -> rax "dup spill"
+; V13 tmp1 [V13,T08] ( 2, 0.00) long -> rax "dup spill"
;* V14 tmp2 [V14 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ushort]>
-;* V15 tmp3 [V15,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -73,13 +73,49 @@ G_M51983_IG08: ; bbWeight=0.99, epilog, nogc, extend
G_M51983_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz
xor eax, eax
cmp rsi, 8
- jb SHORT G_M51983_IG12
+ jae SHORT G_M51983_IG17
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M51983_IG10: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 4
+ jne SHORT G_M51983_IG16
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 2
+ jne SHORT G_M51983_IG15
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ test sil, 1
+ je SHORT G_M51983_IG14
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+ mov word ptr [rdi+2*rax], dx
+ ;; size=4 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; byrRegs -[rdi]
+ vzeroupper
+ pop rbp
+ ret
+ ;; size=5 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref, isz
+ ; byrRegs +[rdi]
+ mov word ptr [rdi+2*rax], dx
+ mov word ptr [rdi+2*rax+0x02], dx
+ add rax, 2
+ jmp SHORT G_M51983_IG12
+ ;; size=15 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ mov word ptr [rdi+2*rax], dx
+ mov word ptr [rdi+2*rax+0x02], dx
+ mov word ptr [rdi+2*rax+0x04], dx
+ mov word ptr [rdi+2*rax+0x06], dx
+ add rax, 4
+ jmp SHORT G_M51983_IG11
+ ;; size=25 bbWeight=0.00 PerfScore 0.00
+G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
mov rcx, rsi
and rcx, -8
;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
mov word ptr [rdi+2*rax], dx
mov word ptr [rdi+2*rax+0x02], dx
mov word ptr [rdi+2*rax+0x04], dx
@@ -90,43 +126,11 @@ G_M51983_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
mov word ptr [rdi+2*rax+0x0E], dx
add rax, 8
cmp rax, rcx
- jb SHORT G_M51983_IG11
- ;; size=48 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 4
- je SHORT G_M51983_IG14
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- mov word ptr [rdi+2*rax+0x02], dx
- mov word ptr [rdi+2*rax+0x04], dx
- mov word ptr [rdi+2*rax+0x06], dx
- add rax, 4
- ;; size=23 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 2
- je SHORT G_M51983_IG16
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG15: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- mov word ptr [rdi+2*rax+0x02], dx
- add rax, 2
- ;; size=13 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG16: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- test sil, 1
- je SHORT G_M51983_IG18
- ;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- mov word ptr [rdi+2*rax], dx
- ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M51983_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; byrRegs -[rdi]
- vzeroupper
- pop rbp
- ret
- ;; size=5 bbWeight=0.00 PerfScore 0.00
+ jb SHORT G_M51983_IG18
+ jmp SHORT G_M51983_IG10
+ ;; size=50 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 207, prolog size 7, PerfScore 1709.07, instruction count 59, allocated bytes for code 207 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
+; Total bytes of code 213, prolog size 7, PerfScore 1709.07, instruction count 62, allocated bytes for code 213 (MethodHash=267434f0) for method System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
; ============================================================
Unwind Info:
benchmarks.run_tiered.linux.x64.checked.mch
-24 (-37.50%) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,40 +7,29 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- xor eax, eax
- mov qword ptr [rbp-0x18], rax
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
mov qword ptr [rbp-0x08], rdi
mov qword ptr [rbp-0x10], rdi
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov bword ptr [rbp-0x18], rax
- mov eax, 512
- ; byrRegs -[rax]
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- mov rcx, bword ptr [rbp-0x18]
- ; byrRegs +[rcx]
- mov dword ptr [rcx+0x08], eax
- ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -53,5 +42,5 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-11 (-23.40%) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
@@ -21,19 +21,15 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp-0x10]
sub rax, qword ptr [rbp-0x08]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 47, prolog size 10, PerfScore 9.75, instruction count 15, allocated bytes for code 47 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 36, prolog size 10, PerfScore 8.75, instruction count 11, allocated bytes for code 36 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
-3 (-21.43%) : 2069.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
@@ -14,15 +14,14 @@ G_M22219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M22219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 2
- shl eax, 2
- ;; size=8 bbWeight=1 PerfScore 0.75
+ mov eax, 8
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M22219_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 14, prolog size 4, PerfScore 3.50, instruction count 6, allocated bytes for code 14 (MethodHash=0716a934) for method System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=0716a934) for method System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
; ============================================================
Unwind Info:
+44 (+0.45%) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
@@ -30,11 +30,11 @@
; V19 loc17 [V19,T207] ( 3, 8 ) ubyte -> rdx
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T185] ( 3, 10 ) ref -> [rbp-0x488] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T314] ( 2, 0.50) ref -> r13 class-hnd exact <System.String>
-; V23 loc21 [V23,T315] ( 10, 0 ) ref -> rbx class-hnd <System.String>
-; V24 loc22 [V24,T312] ( 6, 1.50) ubyte -> rax
+; V22 loc20 [V22,T310] ( 2, 0.50) ref -> r13 class-hnd exact <System.String>
+; V23 loc21 [V23,T311] ( 10, 0 ) ref -> rbx class-hnd <System.String>
+; V24 loc22 [V24,T308] ( 6, 1.50) ubyte -> rax
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T69] ( 2, 36 ) ref -> r15 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T65] ( 2, 36 ) ref -> r15 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> [rbp-0x48]
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T71] ( 6, 24 ) ref -> r15 class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -53,7 +53,7 @@
; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [rbp-0x498] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [rbp-0x4A0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V44 tmp7 [V44 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V45 tmp8 [V45,T316] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp8 [V45,T312] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [rbp-0x4A8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [rbp-0x4B0] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
;* V48 tmp11 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
@@ -72,10 +72,10 @@
;* V61 tmp24 [V61 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [rbp-0x4C8]
; V63 tmp26 [V63,T72] ( 6, 24 ) ref -> r15
-; V64 tmp27 [V64,T253] ( 3, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V64 tmp27 [V64,T257] ( 3, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V65 tmp28 [V65,T237] ( 3, 5 ) int -> rax "Inlining Arg"
-; V66 tmp29 [V66,T250] ( 4, 3 ) int -> r15 "Inline stloc first use temp"
-; V67 tmp30 [V67,T252] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V66 tmp29 [V66,T254] ( 4, 3 ) int -> r15 "Inline stloc first use temp"
+; V67 tmp30 [V67,T256] ( 3, 2.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V68 tmp31 [V68 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V69 tmp32 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V70 tmp33 [V70,T105] ( 3, 20 ) ref -> r15 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
@@ -94,14 +94,14 @@
;* V83 tmp46 [V83 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [rbp-0x4D8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V85 tmp48 [V85,T50] ( 10, 40 ) ref -> [rbp-0x4E0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V86 tmp49 [V86,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V86 tmp49 [V86,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V87 tmp50 [V87,T163] ( 3, 12 ) ref -> [rbp-0x4E8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V88 tmp51 [V88,T95] ( 5, 20 ) struct (40) [rbp-0x80] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V89 tmp52 [V89,T221] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V90 tmp53 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V91 tmp54 [V91,T256] ( 0, 0 ) ref -> zero-ref
+;* V91 tmp54 [V91,T260] ( 0, 0 ) ref -> zero-ref
;* V92 tmp55 [V92 ] ( 0, 0 ) ref -> zero-ref
-;* V93 tmp56 [V93,T257] ( 0, 0 ) ref -> zero-ref
+;* V93 tmp56 [V93,T261] ( 0, 0 ) ref -> zero-ref
; V94 tmp57 [V94,T164] ( 3, 12 ) ref -> [rbp-0x4F0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V95 tmp58 [V95,T96] ( 5, 20 ) struct (40) [rbp-0xA8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V96 tmp59 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -123,14 +123,14 @@
;* V112 tmp75 [V112 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [rbp-0x500] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V114 tmp77 [V114,T51] ( 10, 40 ) ref -> [rbp-0x508] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V115 tmp78 [V115,T240] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V115 tmp78 [V115,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V116 tmp79 [V116,T165] ( 3, 12 ) ref -> [rbp-0x510] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V117 tmp80 [V117,T97] ( 5, 20 ) struct (40) [rbp-0xD8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V118 tmp81 [V118,T222] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V119 tmp82 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V120 tmp83 [V120,T258] ( 0, 0 ) ref -> zero-ref
+;* V120 tmp83 [V120,T262] ( 0, 0 ) ref -> zero-ref
;* V121 tmp84 [V121 ] ( 0, 0 ) ref -> zero-ref
-;* V122 tmp85 [V122,T259] ( 0, 0 ) ref -> zero-ref
+;* V122 tmp85 [V122,T263] ( 0, 0 ) ref -> zero-ref
; V123 tmp86 [V123,T166] ( 3, 12 ) ref -> [rbp-0x518] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V124 tmp87 [V124,T98] ( 5, 20 ) struct (40) [rbp-0x100] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V125 tmp88 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -155,14 +155,14 @@
;* V144 tmp107 [V144 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [rbp-0x530] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V146 tmp109 [V146,T52] ( 10, 40 ) ref -> [rbp-0x538] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V147 tmp110 [V147,T241] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V147 tmp110 [V147,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V148 tmp111 [V148,T167] ( 3, 12 ) ref -> [rbp-0x540] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V149 tmp112 [V149,T99] ( 5, 20 ) struct (40) [rbp-0x130] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V150 tmp113 [V150,T223] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V151 tmp114 [V151 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V152 tmp115 [V152,T260] ( 0, 0 ) ref -> zero-ref
+;* V152 tmp115 [V152,T264] ( 0, 0 ) ref -> zero-ref
;* V153 tmp116 [V153 ] ( 0, 0 ) ref -> zero-ref
-;* V154 tmp117 [V154,T261] ( 0, 0 ) ref -> zero-ref
+;* V154 tmp117 [V154,T265] ( 0, 0 ) ref -> zero-ref
; V155 tmp118 [V155,T168] ( 3, 12 ) ref -> [rbp-0x548] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V156 tmp119 [V156,T100] ( 5, 20 ) struct (40) [rbp-0x158] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V157 tmp120 [V157 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -202,14 +202,14 @@
; V191 tmp154 [V191,T15] ( 2,128 ) ref -> rax "CASTCLASS eval op1"
;* V192 tmp155 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V193 tmp156 [V193,T26] ( 4, 76 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V194 tmp157 [V194,T67] ( 3, 36 ) ref -> rax "CASTCLASS eval op1"
+; V194 tmp157 [V194,T63] ( 3, 36 ) ref -> rax "CASTCLASS eval op1"
; V195 tmp158 [V195,T108] ( 3, 20 ) long -> rdi "fgMakeTemp is creating a new local variable"
; V196 tmp159 [V196,T28] ( 6, 76 ) ref -> rcx class-hnd "spilling QMark2" <<unknown class>>
; V197 tmp160 [V197,T43] ( 3, 48 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V198 tmp161 [V198,T16] ( 2,128 ) ref -> rdi "CASTCLASS eval op1"
;* V199 tmp162 [V199 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V200 tmp163 [V200,T27] ( 4, 76 ) ref -> rdi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V201 tmp164 [V201,T68] ( 3, 36 ) ref -> rsi "CASTCLASS eval op1"
+; V201 tmp164 [V201,T64] ( 3, 36 ) ref -> rsi "CASTCLASS eval op1"
; V202 tmp165 [V202,T109] ( 3, 20 ) long -> rdi "fgMakeTemp is creating a new local variable"
; V203 tmp166 [V203,T29] ( 6, 76 ) ref -> r8 class-hnd "spilling QMark2" <<unknown class>>
; V204 tmp167 [V204,T44] ( 3, 48 ) ref -> rax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -234,14 +234,14 @@
;* V223 tmp186 [V223 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [rbp-0x590] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V225 tmp188 [V225,T53] ( 10, 40 ) ref -> [rbp-0x598] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V226 tmp189 [V226,T242] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V226 tmp189 [V226,T246] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V227 tmp190 [V227,T169] ( 3, 12 ) ref -> [rbp-0x5A0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V228 tmp191 [V228,T101] ( 5, 20 ) struct (40) [rbp-0x1E8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V229 tmp192 [V229,T224] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V230 tmp193 [V230 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V231 tmp194 [V231,T262] ( 0, 0 ) ref -> zero-ref
+;* V231 tmp194 [V231,T266] ( 0, 0 ) ref -> zero-ref
;* V232 tmp195 [V232 ] ( 0, 0 ) ref -> zero-ref
-;* V233 tmp196 [V233,T263] ( 0, 0 ) ref -> zero-ref
+;* V233 tmp196 [V233,T267] ( 0, 0 ) ref -> zero-ref
; V234 tmp197 [V234,T170] ( 3, 12 ) ref -> [rbp-0x5A8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V235 tmp198 [V235,T102] ( 5, 20 ) struct (40) [rbp-0x210] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V236 tmp199 [V236 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -262,199 +262,199 @@
;* V251 tmp214 [V251 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [rbp-0x5C0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V253 tmp216 [V253,T54] ( 10, 40 ) ref -> [rbp-0x5C8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V254 tmp217 [V254,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V254 tmp217 [V254,T247] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V255 tmp218 [V255,T171] ( 3, 12 ) ref -> [rbp-0x5D0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V256 tmp219 [V256,T103] ( 5, 20 ) struct (40) [rbp-0x240] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V257 tmp220 [V257,T225] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V258 tmp221 [V258 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V259 tmp222 [V259,T264] ( 0, 0 ) ref -> zero-ref
+;* V259 tmp222 [V259,T268] ( 0, 0 ) ref -> zero-ref
;* V260 tmp223 [V260 ] ( 0, 0 ) ref -> zero-ref
-;* V261 tmp224 [V261,T265] ( 0, 0 ) ref -> zero-ref
+;* V261 tmp224 [V261,T269] ( 0, 0 ) ref -> zero-ref
; V262 tmp225 [V262,T172] ( 3, 12 ) ref -> [rbp-0x5D8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V263 tmp226 [V263,T104] ( 5, 20 ) struct (40) [rbp-0x268] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V264 tmp227 [V264 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V265 tmp228 [V265 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V266 tmp229 [V266 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V267 tmp230 [V267,T61] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V267 tmp230 [V267,T66] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V268 tmp231 [V268,T121] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V269 tmp232 [V269,T140] ( 4, 14 ) ref -> rsi
;* V270 tmp233 [V270 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V271 tmp234 [V271 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V272 tmp235 [V272 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V273 tmp236 [V273,T266] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V274 tmp237 [V274,T284] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V275 tmp238 [V275,T267] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V276 tmp239 [V276,T285] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V273 tmp236 [V273,T239] ( 2, 4 ) ref -> [rbp-0x5E0] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V274 tmp237 [V274,T280] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V275 tmp238 [V275 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V276 tmp239 [V276,T281] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V277 tmp240 [V277 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V278 tmp241 [V278 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V279 tmp242 [V279 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V280 tmp243 [V280,T194] ( 4, 8 ) ref -> [rbp-0x5E0] spill-single-def
+; V280 tmp243 [V280,T194] ( 4, 8 ) ref -> [rbp-0x5E8] spill-single-def
;* V281 tmp244 [V281 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V282 tmp245 [V282 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V283 tmp246 [V283,T149] ( 5, 10 ) ref -> [rbp-0x5E8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V284 tmp247 [V284,T55] ( 10, 40 ) ref -> [rbp-0x5F0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V285 tmp248 [V285,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V286 tmp249 [V286,T173] ( 3, 12 ) ref -> [rbp-0x5F8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V283 tmp246 [V283,T149] ( 5, 10 ) ref -> [rbp-0x5F0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V284 tmp247 [V284,T55] ( 10, 40 ) ref -> [rbp-0x5F8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V285 tmp248 [V285,T248] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V286 tmp249 [V286,T173] ( 3, 12 ) ref -> [rbp-0x600] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V287 tmp250 [V287,T73] ( 6, 24 ) struct (40) [rbp-0x290] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V288 tmp251 [V288,T226] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V289 tmp252 [V289 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V290 tmp253 [V290 ] ( 0, 0 ) ref -> zero-ref
;* V291 tmp254 [V291 ] ( 0, 0 ) ref -> zero-ref
; V292 tmp255 [V292,T227] ( 3, 6 ) ref -> rcx
-; V293 tmp256 [V293,T174] ( 3, 12 ) ref -> [rbp-0x600] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V293 tmp256 [V293,T174] ( 3, 12 ) ref -> [rbp-0x608] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V294 tmp257 [V294,T74] ( 6, 24 ) struct (40) [rbp-0x2B8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V295 tmp258 [V295 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V296 tmp259 [V296 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V297 tmp260 [V297 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V298 tmp261 [V298,T62] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V298 tmp261 [V298,T67] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V299 tmp262 [V299,T122] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V300 tmp263 [V300,T141] ( 4, 14 ) ref -> rsi
;* V301 tmp264 [V301 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V302 tmp265 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V303 tmp266 [V303 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V304 tmp267 [V304,T268] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V305 tmp268 [V305,T286] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V306 tmp269 [V306,T269] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V307 tmp270 [V307,T287] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V304 tmp267 [V304,T240] ( 2, 4 ) ref -> [rbp-0x610] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V305 tmp268 [V305,T282] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V306 tmp269 [V306 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V307 tmp270 [V307,T283] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V308 tmp271 [V308 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V309 tmp272 [V309 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V310 tmp273 [V310 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V311 tmp274 [V311,T195] ( 4, 8 ) ref -> [rbp-0x608] spill-single-def
+; V311 tmp274 [V311,T195] ( 4, 8 ) ref -> [rbp-0x618] spill-single-def
;* V312 tmp275 [V312 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V313 tmp276 [V313 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V314 tmp277 [V314,T150] ( 5, 10 ) ref -> [rbp-0x610] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V315 tmp278 [V315,T56] ( 10, 40 ) ref -> [rbp-0x618] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V316 tmp279 [V316,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V317 tmp280 [V317,T175] ( 3, 12 ) ref -> [rbp-0x620] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V314 tmp277 [V314,T150] ( 5, 10 ) ref -> [rbp-0x620] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V315 tmp278 [V315,T56] ( 10, 40 ) ref -> [rbp-0x628] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V316 tmp279 [V316,T249] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V317 tmp280 [V317,T175] ( 3, 12 ) ref -> [rbp-0x630] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V318 tmp281 [V318,T75] ( 6, 24 ) struct (40) [rbp-0x2E0] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V319 tmp282 [V319,T228] ( 3, 6 ) byref -> rax "Inline stloc first use temp"
;* V320 tmp283 [V320 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V321 tmp284 [V321 ] ( 0, 0 ) ref -> zero-ref
;* V322 tmp285 [V322 ] ( 0, 0 ) ref -> zero-ref
; V323 tmp286 [V323,T229] ( 3, 6 ) ref -> rcx
-; V324 tmp287 [V324,T176] ( 3, 12 ) ref -> [rbp-0x628] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
+; V324 tmp287 [V324,T176] ( 3, 12 ) ref -> [rbp-0x638] class-hnd spill-single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V325 tmp288 [V325,T76] ( 6, 24 ) struct (40) [rbp-0x308] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V326 tmp289 [V326 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V327 tmp290 [V327 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V328 tmp291 [V328 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V329 tmp292 [V329,T63] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
+; V329 tmp292 [V329,T68] ( 6, 32 ) ref -> r15 class-hnd exact "Inlining Arg" <<unknown class>>
; V330 tmp293 [V330,T123] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V331 tmp294 [V331,T142] ( 4, 14 ) ref -> rsi
;* V332 tmp295 [V332 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V333 tmp296 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V334 tmp297 [V334 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V335 tmp298 [V335,T270] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V336 tmp299 [V336,T288] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V337 tmp300 [V337,T271] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V338 tmp301 [V338,T289] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V335 tmp298 [V335,T241] ( 2, 4 ) ref -> [rbp-0x640] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V336 tmp299 [V336,T284] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V337 tmp300 [V337 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V338 tmp301 [V338,T285] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V339 tmp302 [V339 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V340 tmp303 [V340 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V341 tmp304 [V341 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
...
+6 (+1.97%) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
@@ -107,7 +107,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp-0x38]
; gcrRegs +[rax]
@@ -124,7 +126,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp-0x2C]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp-0x38]
; gcrRegs +[rax]
@@ -145,7 +149,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
; gcr arg pop 0
nop
- ;; size=109 bbWeight=1 PerfScore 32.75
+ ;; size=115 bbWeight=1 PerfScore 33.75
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
@@ -157,7 +161,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 304, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 304 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 310, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 310 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================
Unwind Info:
+6 (+1.99%) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
@@ -109,7 +109,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp-0x38]
; byrRegs +[rax]
@@ -128,7 +130,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp-0x2C]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp-0x38]
; byrRegs +[rax]
@@ -150,7 +154,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax rdi]
; gcr arg pop 0
nop
- ;; size=107 bbWeight=1 PerfScore 32.75
+ ;; size=113 bbWeight=1 PerfScore 33.75
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
@@ -162,7 +166,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 301, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 301 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 307, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 307 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================
Unwind Info:
coreclr_tests.run.linux.x64.checked.mch
-47 (-81.03%) : 285689.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
@@ -11,35 +11,17 @@
G_M094_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- vzeroupper
mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M094_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov eax, 44
- mov eax, eax
- xor ecx, ecx
- mul rdx:rax, rcx
- jb SHORT G_M094_IG04
- vxorps xmm0, xmm0, xmm0
- vcvtsi2sd xmm0, xmm0, rax
- vxorps xmm1, xmm1, xmm1
- xor eax, eax
- vucomisd xmm1, xmm0
- seta al
- inc eax
- dec eax
- add eax, 100
- ;; size=43 bbWeight=1 PerfScore 15.42
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M094_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, 100
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M094_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-G_M094_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call CORINFO_HELP_OVERFLOW
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 58, prolog size 7, PerfScore 19.17, instruction count 21, allocated bytes for code 58 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
; ============================================================
Unwind Info:
-42 (-79.25%) : 296598.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
@@ -6,38 +6,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01 ] ( 1, 1 ) int -> [rbp-0x04] "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M23300_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- ;; size=10 bbWeight=1 PerfScore 1.75
-G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov eax, 2
- mov ecx, 1
- mul edx:eax, ecx
- jb SHORT G_M23300_IG04
- mov dword ptr [rbp-0x04], eax
- mov eax, dword ptr [rbp-0x04]
- shr eax, 31
- add eax, dword ptr [rbp-0x04]
- sar eax, 1
- add eax, 99
- ;; size=31 bbWeight=1 PerfScore 9.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, 100
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M23300_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M23300_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call CORINFO_HELP_OVERFLOW
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 53, prolog size 10, PerfScore 13.25, instruction count 18, allocated bytes for code 53 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -45,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-38 (-77.55%) : 297008.dasm - _n:main():int (Tier0)
@@ -9,39 +9,19 @@
;
; Lcl frame size = 0
-G_M4754_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M4754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- vzeroupper
mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmovsd xmm0, qword ptr [reloc @RWD00]
- vxorps xmm0, xmm0, xmmword ptr [reloc @RWD16]
- vucomisd xmm0, qword ptr [reloc @RWD32]
- jp SHORT G_M4754_IG03
- je SHORT G_M4754_IG05
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M4754_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 5
- ;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG04: ; bbWeight=1, epilog, nogc, extend
- pop rbp
- ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M4754_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 100
;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M4754_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-RWD00 dq 4058C66666666666h ; 99.1
-RWD08 dd 00000000h, 00000000h
-RWD16 dq 8000000000000000h, 8000000000000000h
-RWD32 dq C058C66666666666h ; -99.1
-
-; Total bytes of code 49, prolog size 7, PerfScore 16.75, instruction count 14, allocated bytes for code 49 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
; ============================================================
Unwind Info:
+21 (+5.22%) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)
@@ -9,16 +9,16 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <ArrayInit>
-; V01 loc0 [V01,T06] ( 4, 3 ) ubyte -> [rbp-0x0C] do-not-enreg[M] EH-live
+; V01 loc0 [V01,T06] ( 4, 3 ) ubyte -> [rbp-0x14] do-not-enreg[M] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T10] ( 3, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V05 tmp1 [V05,T11] ( 3, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V07 tmp3 [V07,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
-;* V08 tmp4 [V08,T08] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V07 tmp3 [V07,T08] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
+;* V08 tmp4 [V08,T09] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V10 tmp6 [V10,T01] ( 7, 6.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V10 tmp6 [V10,T01] ( 6, 5.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V13 tmp9 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -27,29 +27,29 @@
;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V17 tmp13 [V17,T04] ( 2, 3.79) byref -> rdi single-def "Inlining Arg"
; V18 tmp14 [V18,T05] ( 2, 3.79) byref -> rsi single-def "Inlining Arg"
-;* V19 tmp15 [V19 ] ( 0, 0 ) long -> zero-ref "spilling arg"
+;* V19 tmp15 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp16 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp17 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp18 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V23 tmp19 [V23,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V24 tmp20 [V24,T03] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
-;* V25 tmp21 [V25 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V27 tmp23 [V27,T11] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V28 tmp24 [V28,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V29 PSPSym [V29,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
-; V30 cse0 [V30,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V22 tmp18 [V22,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V23 tmp19 [V23,T03] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
+;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
+; V25 tmp21 [V25,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V26 tmp22 [V26,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V27 PSPSym [V27,T10] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
+; V28 cse0 [V28,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V29 cse1 [V29,T07] ( 3, 2.90) byref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M43472_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
+ push r15
push rbx
- sub rsp, 24
+ sub rsp, 16
vzeroupper
lea rbp, [rsp+0x20]
mov qword ptr [rbp-0x20], rsp
- ;; size=18 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 5.75
G_M43472_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edi, 91
call <unknown method>
@@ -82,7 +82,9 @@ G_M43472_IG04: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
;; size=25 bbWeight=0.95 PerfScore 7.11
G_M43472_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- lea rdi, bword ptr [rbx+0x0C]
+ lea r15, bword ptr [rbx+0x0C]
+ ; byrRegs +[r15]
+ mov rdi, r15
; byrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; byrRegs +[rsi]
@@ -103,22 +105,22 @@ G_M43472_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=62 bbWeight=0.95 PerfScore 19.68
-G_M43472_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- lea rdi, bword ptr [rbx+0x34]
+ ;; size=65 bbWeight=0.95 PerfScore 19.91
+G_M43472_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+ lea rdi, bword ptr [r15+0x28]
; byrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; byrRegs +[rsi]
mov edx, 142
call [<unknown method>]
- ; byrRegs -[rsi rdi]
+ ; byrRegs -[rsi rdi r15]
; gcr arg pop 0
mov rdi, rbx
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rbx rdi]
; gcr arg pop 0
- mov dword ptr [rbp-0x0C], 1
+ mov dword ptr [rbp-0x14], 1
;; size=41 bbWeight=1 PerfScore 8.25
G_M43472_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -149,45 +151,49 @@ G_M43472_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rdi]
; gcr arg pop 0
xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
;; size=91 bbWeight=1 PerfScore 16.25
G_M43472_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x0C]
+ mov eax, dword ptr [rbp-0x14]
;; size=3 bbWeight=1 PerfScore 1.00
G_M43472_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M43472_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M43472_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
lea rax, G_M43472_IG08
;; size=7 bbWeight=0 PerfScore 0.00
G_M43472_IG12: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M43472_IG13: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[rsi]
push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M43472_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
mov rdi, rsi
; gcrRegs +[rdi]
@@ -211,17 +217,18 @@ G_M43472_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
lea rax, G_M43472_IG08
;; size=63 bbWeight=0 PerfScore 0.00
G_M43472_IG15: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 402, prolog size 18, PerfScore 65.36, instruction count 95, allocated bytes for code 402 (MethodHash=ebd7562f) for method ArrayInit:PosTest1():ubyte:this (FullOpts)
+; Total bytes of code 423, prolog size 20, PerfScore 67.10, instruction count 102, allocated bytes for code 423 (MethodHash=ebd7562f) for method ArrayInit:PosTest1():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -229,39 +236,42 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for ArrayInit:PosTest1():ubyte:this
2 EH table entries, 0 duplicate clauses, 0 cloned finallys, 2 total EH entries reported to VM
+24 (+5.99%) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)
@@ -9,23 +9,23 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <TypeGetType2>
-; V01 loc0 [V01,T06] ( 3, 3 ) ubyte -> [rbp-0x0C] do-not-enreg[M] EH-live
+; V01 loc0 [V01,T06] ( 3, 3 ) ubyte -> [rbp-0x14] do-not-enreg[M] EH-live
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ubyte -> zero-ref single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T10] ( 4, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V06 tmp1 [V06,T11] ( 4, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
-; V12 tmp7 [V12,T11] ( 3, 0 ) ref -> rsi
+; V12 tmp7 [V12,T12] ( 3, 0 ) ref -> rsi
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V14 tmp9 [V14,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
-;* V15 tmp10 [V15,T08] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V14 tmp9 [V14,T08] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <System.String>
+;* V15 tmp10 [V15,T09] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V17 tmp12 [V17,T01] ( 7, 6.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V17 tmp12 [V17,T01] ( 6, 5.84) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V20 tmp15 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -34,30 +34,30 @@
;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V24 tmp19 [V24,T04] ( 2, 3.79) byref -> rdi single-def "Inlining Arg"
; V25 tmp20 [V25,T05] ( 2, 3.79) byref -> rsi single-def "Inlining Arg"
-;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "spilling arg"
+;* V26 tmp21 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V30 tmp25 [V30,T02] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V31 tmp26 [V31,T03] ( 2, 4 ) byref -> rax single-def "Inlining Arg"
-;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-;* V33 tmp28 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V34 tmp29 [V34,T12] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V35 PSPSym [V35,T09] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
-; V36 cse0 [V36,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V29 tmp24 [V29,T02] ( 2, 4 ) byref -> r15 single-def "Inlining Arg"
+; V30 tmp25 [V30,T03] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
+; V32 tmp27 [V32,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V33 PSPSym [V33,T10] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
+; V34 cse0 [V34,T00] ( 9, 8.53) ref -> rsi multi-def "CSE - aggressive"
+; V35 cse1 [V35,T07] ( 3, 2.90) byref -> r15 "CSE - aggressive"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M53239_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
+ push r15
push rbx
- sub rsp, 24
+ sub rsp, 16
vzeroupper
lea rbp, [rsp+0x20]
mov qword ptr [rbp-0x20], rsp
- ;; size=18 bbWeight=1 PerfScore 4.75
+ ;; size=20 bbWeight=1 PerfScore 5.75
G_M53239_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov dword ptr [rbp-0x0C], 1
+ mov dword ptr [rbp-0x14], 1
mov edi, 58
call <unknown method>
; gcrRegs +[rax]
@@ -89,7 +89,9 @@ G_M53239_IG04: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
;; size=25 bbWeight=0.95 PerfScore 7.11
G_M53239_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- lea rdi, bword ptr [rbx+0x0C]
+ lea r15, bword ptr [rbx+0x0C]
+ ; byrRegs +[r15]
+ mov rdi, r15
; byrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; byrRegs +[rsi]
@@ -110,27 +112,26 @@ G_M53239_IG05: ; bbWeight=0.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=62 bbWeight=0.95 PerfScore 19.68
-G_M53239_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- lea rdi, bword ptr [rbx+0x34]
+ ;; size=65 bbWeight=0.95 PerfScore 19.91
+G_M53239_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+ add r15, 40
+ mov rdi, 0xD1FFAB1E
; byrRegs +[rdi]
- mov rax, 0xD1FFAB1E
- ; byrRegs +[rax]
- vmovdqu ymm0, ymmword ptr [rax]
- vmovdqu ymm1, ymmword ptr [rax+0x20]
- vmovdqu xmm2, xmmword ptr [rax+0x3C]
- vmovdqu ymmword ptr [rdi], ymm0
- vmovdqu ymmword ptr [rdi+0x20], ymm1
- vmovdqu xmmword ptr [rdi+0x3C], xmm2
+ vmovdqu ymm0, ymmword ptr [rdi]
+ vmovdqu ymm1, ymmword ptr [rdi+0x20]
+ vmovdqu xmm2, xmmword ptr [rdi+0x3C]
+ vmovdqu ymmword ptr [r15], ymm0
+ vmovdqu ymmword ptr [r15+0x20], ymm1
+ vmovdqu xmmword ptr [r15+0x3C], xmm2
mov rdi, rbx
; gcrRegs +[rdi]
; byrRegs -[rdi]
call [<unknown method>]
; gcrRegs -[rbx rdi]
- ; byrRegs -[rax]
+ ; byrRegs -[r15]
; gcr arg pop 0
nop
- ;; size=52 bbWeight=1 PerfScore 24.25
+ ;; size=55 bbWeight=1 PerfScore 24.00
G_M53239_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor rdi, rdi
; gcrRegs +[rdi]
@@ -154,45 +155,49 @@ G_M53239_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rdi]
; gcr arg pop 0
xor eax, eax
- mov dword ptr [rbp-0x0C], eax
+ mov dword ptr [rbp-0x14], eax
;; size=68 bbWeight=1 PerfScore 11.75
G_M53239_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x0C]
+ mov eax, dword ptr [rbp-0x14]
;; size=3 bbWeight=1 PerfScore 1.00
G_M53239_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M53239_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M53239_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
lea rax, G_M53239_IG08
;; size=7 bbWeight=0 PerfScore 0.00
G_M53239_IG12: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
G_M53239_IG13: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[rsi]
push rbp
+ push r15
push rbx
- push rax
+ sub rsp, 16
vzeroupper
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M53239_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
test rsi, rsi
jne SHORT G_M53239_IG15
@@ -227,13 +232,14 @@ G_M53239_IG16: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
lea rax, G_M53239_IG08
;; size=42 bbWeight=0 PerfScore 0.00
G_M53239_IG17: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 401, prolog size 18, PerfScore 77.86, instruction count 98, allocated bytes for code 401 (MethodHash=625d3008) for method TypeGetType2:NegTest1():ubyte:this (FullOpts)
+; Total bytes of code 425, prolog size 20, PerfScore 79.35, instruction count 105, allocated bytes for code 425 (MethodHash=625d3008) for method TypeGetType2:NegTest1():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -241,39 +247,42 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
...
+5 (+27.78%) : 284622.dasm - ILGEN_622380794:main():int (Tier0)
@@ -14,15 +14,16 @@ G_M30338_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M30338_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- shl dword ptr [(reloc)], 0
+ mov eax, dword ptr [(reloc)] ; static handle
+ mov dword ptr [(reloc)], eax
mov eax, 100
- ;; size=12 bbWeight=1 PerfScore 4.25
+ ;; size=17 bbWeight=1 PerfScore 3.25
G_M30338_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 18, prolog size 4, PerfScore 7.00, instruction count 6, allocated bytes for code 18 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
+; Total bytes of code 23, prolog size 4, PerfScore 6.00, instruction count 7, allocated bytes for code 23 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
; ============================================================
Unwind Info:
libraries.crossgen2.linux.x64.checked.mch
-5 (-45.45%) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
@@ -3,7 +3,7 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
@@ -13,24 +13,19 @@
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 0xFFFD
;; size=5 bbWeight=1 PerfScore 0.25
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================
Unwind Info:
@@ -38,9 +33,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x01
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-7 (-6.67%) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -9,22 +9,25 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-; V01 arg1 [V01,T01] ( 3, 2.50) int -> rsi single-def
-; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
+; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def
+; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x1C] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rbp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rdi single-def "shadowVar"
+; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rsi "shadowVar"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp-0x10], rax
- mov dword ptr [rbp-0x04], edx
+ mov qword ptr [rbp-0x08], rax
+ mov dword ptr [rbp-0x1C], edx
;; size=24 bbWeight=1 PerfScore 5.75
G_M63626_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
@@ -32,15 +35,13 @@ G_M63626_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
je SHORT G_M63626_IG05
;; size=9 bbWeight=1 PerfScore 4.00
G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp
- sub rsp, 16
- lea r8, [rsp]
- lea rdx, [rbp-0x04]
+ lea r8, [rbp-0x18]
+ lea rdx, [rbp-0x1C]
mov qword ptr [r8], rdx
mov dword ptr [r8+0x08], 4
xor edx, edx
mov dword ptr [r8+0x0C], edx
- ;; size=32 bbWeight=0.50 PerfScore 3.75
+ ;; size=25 bbWeight=0.50 PerfScore 2.12
G_M63626_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov ecx, 1
call [<unknown method>]
@@ -49,7 +50,7 @@ G_M63626_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [(reloc)]
mov rdi, qword ptr [rdi]
- cmp qword ptr [rbp-0x10], rdi
+ cmp qword ptr [rbp-0x08], rdi
je SHORT G_M63626_IG06
call [CORINFO_HELP_FAIL_FAST]
;; size=22 bbWeight=1 PerfScore 8.50
@@ -57,12 +58,12 @@ G_M63626_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M63626_IG07: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp]
+ add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 105, prolog size 21, PerfScore 25.88, instruction count 27, allocated bytes for code 105 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 98, prolog size 21, PerfScore 24.00, instruction count 25, allocated bytes for code 98 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -70,11 +71,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0A
- CountOfUnwindCodes: 3
- FrameRegister : rbp (5)
- FrameOffset : 1 * 16 = 0x10
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
+ FrameRegister : none (0)
+ FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0)
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-7 (-6.60%) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -9,22 +9,25 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-; V01 arg1 [V01,T01] ( 3, 2.50) int -> rsi single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
+; V01 arg1 [V01,T01] ( 3, 3 ) int -> rsi single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rbp-0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rdi single-def "shadowVar"
+; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rsi "shadowVar"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp-0x10], rax
- mov qword ptr [rbp-0x08], rdx
+ mov qword ptr [rbp-0x08], rax
+ mov qword ptr [rbp-0x20], rdx
;; size=25 bbWeight=1 PerfScore 5.75
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
@@ -32,15 +35,13 @@ G_M56019_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
je SHORT G_M56019_IG05
;; size=9 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp
- sub rsp, 16
- lea r8, [rsp]
- lea rdx, [rbp-0x08]
+ lea r8, [rbp-0x18]
+ lea rdx, [rbp-0x20]
mov qword ptr [r8], rdx
mov dword ptr [r8+0x08], 8
xor edx, edx
mov dword ptr [r8+0x0C], edx
- ;; size=32 bbWeight=0.50 PerfScore 3.75
+ ;; size=25 bbWeight=0.50 PerfScore 2.12
G_M56019_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov ecx, 1
call [<unknown method>]
@@ -49,7 +50,7 @@ G_M56019_IG04: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [(reloc)]
mov rdi, qword ptr [rdi]
- cmp qword ptr [rbp-0x10], rdi
+ cmp qword ptr [rbp-0x08], rdi
je SHORT G_M56019_IG06
call [CORINFO_HELP_FAIL_FAST]
;; size=22 bbWeight=1 PerfScore 8.50
@@ -57,12 +58,12 @@ G_M56019_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M56019_IG07: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp]
+ add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 106, prolog size 21, PerfScore 25.88, instruction count 27, allocated bytes for code 106 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 99, prolog size 21, PerfScore 24.00, instruction count 25, allocated bytes for code 99 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
@@ -70,11 +71,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0A
- CountOfUnwindCodes: 3
- FrameRegister : rbp (5)
- FrameOffset : 1 * 16 = 0x10
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
+ FrameRegister : none (0)
+ FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0)
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+1 (+0.12%) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -267,18 +267,18 @@ G_M13748_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp G_M13748_IG31
;; size=24 bbWeight=0.50 PerfScore 4.12
G_M13748_IG28: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r12+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r12+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG34
- mov rax, qword ptr [r12]
- shl rax, 24
- mov rcx, qword ptr [r12+0x08]
- and rcx, 0xD1FFAB1E
+ mov rcx, qword ptr [r12]
+ shl rcx, 24
+ and rax, 0xD1FFAB1E
or rax, rcx
jmp SHORT G_M13748_IG31
- ;; size=40 bbWeight=0.50 PerfScore 5.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r12+0x10], 0xFFFF
- jg SHORT G_M13748_IG34
+ jg G_M13748_IG34
mov rax, qword ptr [r12]
shl rax, 24
movzx rcx, byte ptr [r12+0x08]
@@ -287,22 +287,21 @@ G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movzx rcx, word ptr [r12+0x10]
or rax, rcx
jmp SHORT G_M13748_IG31
- ;; size=43 bbWeight=0.50 PerfScore 6.75
+ ;; size=47 bbWeight=0.50 PerfScore 6.75
G_M13748_IG30: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r12+0x18]
- cmp rax, 255
+ cmp qword ptr [r12+0x18], 255
jg SHORT G_M13748_IG34
- mov rcx, qword ptr [r12]
- shl rcx, 24
- movzx rdx, byte ptr [r12+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r12+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r12]
+ shl rax, 24
+ movzx rcx, byte ptr [r12+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=53 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r12+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r12+0x18]
+ or rax, rcx
+ ;; size=54 bbWeight=0.50 PerfScore 7.12
G_M13748_IG31: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [(reloc)]
mov rdi, qword ptr [rdi]
@@ -352,7 +351,7 @@ RWD00 dd G_M13748_IG27 - G_M13748_IG02
dd G_M13748_IG30 - G_M13748_IG02
-; Total bytes of code 830, prolog size 32, PerfScore 1190.50, instruction count 233, allocated bytes for code 830 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 831, prolog size 32, PerfScore 1190.38, instruction count 232, allocated bytes for code 831 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
+1 (+0.12%) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -267,18 +267,18 @@ G_M13748_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp G_M13748_IG31
;; size=24 bbWeight=0.50 PerfScore 4.12
G_M13748_IG28: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r12+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r12+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG34
- mov rax, qword ptr [r12]
- shl rax, 24
- mov rcx, qword ptr [r12+0x08]
- and rcx, 0xD1FFAB1E
+ mov rcx, qword ptr [r12]
+ shl rcx, 24
+ and rax, 0xD1FFAB1E
or rax, rcx
jmp SHORT G_M13748_IG31
- ;; size=40 bbWeight=0.50 PerfScore 5.50
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r12+0x10], 0xFFFF
- jg SHORT G_M13748_IG34
+ jg G_M13748_IG34
mov rax, qword ptr [r12]
shl rax, 24
movzx rcx, byte ptr [r12+0x08]
@@ -287,22 +287,21 @@ G_M13748_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movzx rcx, word ptr [r12+0x10]
or rax, rcx
jmp SHORT G_M13748_IG31
- ;; size=43 bbWeight=0.50 PerfScore 6.75
+ ;; size=47 bbWeight=0.50 PerfScore 6.75
G_M13748_IG30: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r12+0x18]
- cmp rax, 255
+ cmp qword ptr [r12+0x18], 255
jg SHORT G_M13748_IG34
- mov rcx, qword ptr [r12]
- shl rcx, 24
- movzx rdx, byte ptr [r12+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r12+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r12]
+ shl rax, 24
+ movzx rcx, byte ptr [r12+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=53 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r12+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r12+0x18]
+ or rax, rcx
+ ;; size=54 bbWeight=0.50 PerfScore 7.12
G_M13748_IG31: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [(reloc)]
mov rdi, qword ptr [rdi]
@@ -352,7 +351,7 @@ RWD00 dd G_M13748_IG27 - G_M13748_IG02
dd G_M13748_IG30 - G_M13748_IG02
-; Total bytes of code 830, prolog size 32, PerfScore 1190.50, instruction count 233, allocated bytes for code 830 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 831, prolog size 32, PerfScore 1190.38, instruction count 232, allocated bytes for code 831 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
+3 (+9.09%) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -25,17 +25,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.linux.x64.checked.mch
-31 (-15.74%) : 28809.dasm - System.SpanHelpers:Fill[System.Numerics.Vector1[float]](byref,ulong,System.Numerics.Vector
1[float]) (FullOpts)
@@ -10,19 +10,19 @@
;
; V00 arg0 [V00,T02] ( 10, 6 ) byref -> rdi single-def
; V01 arg1 [V01,T03] ( 8, 5.50) long -> rsi single-def
-; V02 arg2 [V02,T09] ( 8, 4 ) simd32 -> mm0 single-def <System.Numerics.Vector`1[float]>
-; V03 loc0 [V03,T04] ( 12, 6 ) long -> rax
+; V02 arg2 [V02,T08] ( 8, 4 ) simd32 -> mm0 single-def <System.Numerics.Vector`1[float]>
+; V03 loc0 [V03,T05] ( 7, 3.50) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op <System.Numerics.Vector`1[float]>
-; V05 loc2 [V05,T08] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T07] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 9.50) byref -> rdi single-def
; V07 loc4 [V07,T06] ( 4, 2 ) long -> rax
-; V08 loc5 [V08,T05] ( 2, 4.50) long -> rcx
+; V08 loc5 [V08,T04] ( 2, 4.50) long -> rcx
; V09 loc6 [V09,T00] ( 7, 21 ) long -> rdx
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V11 loc8 [V11 ] ( 0, 0 ) long -> zero-ref
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V14 tmp2 [V14,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -70,20 +70,12 @@ G_M26735_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
xor eax, eax
test sil, 4
je SHORT G_M26735_IG09
- mov rcx, rax
- shl rcx, 5
- vmovups ymmword ptr [rdi+rcx], ymm0
- lea rcx, [rax+0x01]
- shl rcx, 5
- vmovups ymmword ptr [rdi+rcx], ymm0
- lea rcx, [rax+0x02]
- shl rcx, 5
- vmovups ymmword ptr [rdi+rcx], ymm0
- lea rcx, [rax+0x03]
- shl rcx, 5
- vmovups ymmword ptr [rdi+rcx], ymm0
- add rax, 4
- ;; size=63 bbWeight=0.50 PerfScore 6.75
+ vmovups ymmword ptr [rdi], ymm0
+ vmovups ymmword ptr [rdi+0x20], ymm0
+ vmovups ymmword ptr [rdi+0x40], ymm0
+ vmovups ymmword ptr [rdi+0x60], ymm0
+ mov eax, 4
+ ;; size=32 bbWeight=0.50 PerfScore 4.88
G_M26735_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
test sil, 2
je SHORT G_M26735_IG10
@@ -108,7 +100,7 @@ G_M26735_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 197, prolog size 12, PerfScore 48.25, instruction count 57, allocated bytes for code 197 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
+; Total bytes of code 166, prolog size 12, PerfScore 46.38, instruction count 49, allocated bytes for code 166 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
; ============================================================
Unwind Info:
-12 (-8.22%) : 257265.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
@@ -11,27 +11,21 @@
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
; V02 tmp2 [V02,T00] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment>
-;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impImportAndPushBox" <System.String>
-;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V06 tmp6 [V06 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V08 cse0 [V08,T02] ( 3, 3 ) ref -> r14 "CSE - aggressive"
+;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V04 cse0 [V04,T02] ( 3, 3 ) ref -> r14 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M11047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
push r15
push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
- ;; size=12 bbWeight=1 PerfScore 5.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M11047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String]
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
+ ; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
mov rdi, 0xD1FFAB1E
@@ -40,6 +34,7 @@ G_M11047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment
; gcrRegs -[rdi]
call CORINFO_HELP_NEWSFAST
+ ; gcr arg pop 0
mov r15, rax
; gcrRegs +[r15]
mov dword ptr [r15+0x20], 5
@@ -74,15 +69,13 @@ G_M11047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=123 bbWeight=1 PerfScore 12.50
G_M11047_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
pop r14
pop r15
- pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 146, prolog size 12, PerfScore 21.25, instruction count 35, allocated bytes for code 146 (MethodHash=60b0d4d8) for method Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
+; Total bytes of code 134, prolog size 5, PerfScore 18.00, instruction count 30, allocated bytes for code 134 (MethodHash=60b0d4d8) for method Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -90,13 +83,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x07
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
-12 (-7.89%) : 229184.dasm - System.Configuration.BaseConfigurationRecord:.cctor() (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 2 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -15,24 +15,21 @@
; V04 tmp4 [V04,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inline stloc first use temp" <ushort[]>
; V05 tmp5 [V05,T01] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
; V06 tmp6 [V06,T02] ( 2, 4 ) byref -> rsi single-def "Inlining Arg"
-;* V07 tmp7 [V07 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V08 cse0 [V08,T04] ( 3, 3 ) long -> rbx "CSE - aggressive"
+; V07 cse0 [V07,T04] ( 3, 3 ) long -> rbx "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M15227_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
push rbx
- push rax
vzeroupper
- lea rbp, [rsp+0x10]
- ;; size=11 bbWeight=1 PerfScore 4.50
+ ;; size=4 bbWeight=1 PerfScore 2.00
G_M15227_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rbx, 0xD1FFAB1E ; ushort[]
mov rdi, rbx
mov esi, 1
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
+ ; gcr arg pop 0
mov word ptr [rax+0x10], 47
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax
@@ -42,6 +39,7 @@ G_M15227_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Configuration.BaseConfigurationRecord+IndirectLocationInputComparer
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
+ ; gcr arg pop 0
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, rax
; gcrRegs +[rsi]
@@ -51,6 +49,7 @@ G_M15227_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov esi, 8
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
+ ; gcr arg pop 0
lea rdi, bword ptr [rax+0x10]
; byrRegs +[rdi]
mov rsi, 0xD1FFAB1E
@@ -67,13 +66,11 @@ G_M15227_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=134 bbWeight=1 PerfScore 17.00
G_M15227_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 152, prolog size 11, PerfScore 23.75, instruction count 33, allocated bytes for code 152 (MethodHash=ad51c484) for method System.Configuration.BaseConfigurationRecord:.cctor() (FullOpts)
+; Total bytes of code 140, prolog size 4, PerfScore 20.50, instruction count 28, allocated bytes for code 140 (MethodHash=ad51c484) for method System.Configuration.BaseConfigurationRecord:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -81,11 +78,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+5 (+2.04%) : 30861.dasm - System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> rdi single-def
+; V00 arg0 [V00,T00] ( 4, 3.50) ushort -> rbx single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) ushort -> zero-ref "Inline return value spill temp"
;* V03 tmp2 [V03 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
@@ -19,8 +19,8 @@
;* V08 tmp7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V09 tmp8 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V10 tmp9 [V10,T06] ( 4, 2.50) ushort -> rax "Inline return value spill temp"
-; V11 tmp10 [V11,T02] ( 5, 3.50) int -> r15 "Inline stloc first use temp"
-; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> r14 class-hnd "Inline stloc first use temp" <ushort[]>
+; V11 tmp10 [V11,T01] ( 5, 3.50) int -> r14 "Inline stloc first use temp"
+; V12 tmp11 [V12,T03] ( 6, 3 ) ref -> r13 class-hnd "Inline stloc first use temp" <ushort[]>
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
@@ -29,25 +29,26 @@
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
; V19 tmp18 [V19,T04] ( 3, 3 ) ref -> rdi single-def "arr expr"
; V20 tmp19 [V20,T05] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V21 cse0 [V21,T07] ( 3, 1.50) int -> rax "CSE - moderate"
-; V22 cse1 [V22,T01] ( 6, 4 ) int -> rbx "CSE - aggressive"
+; V21 cse0 [V21,T02] ( 5, 3.50) int -> r15 "CSE - aggressive"
+; V22 cse1 [V22,T07] ( 3, 1.50) int -> rax "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M59106_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
+ push r13
push rbx
- push rax
lea rbp, [rsp+0x20]
- ;; size=12 bbWeight=1 PerfScore 5.50
+ mov ebx, edi
+ ;; size=15 bbWeight=1 PerfScore 5.75
G_M59106_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rbx, di
- mov r15d, ebx
- sar r15d, 8
+ movzx r15, bx
+ mov r14d, r15d
+ sar r14d, 8
jne SHORT G_M59106_IG05
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=13 bbWeight=1 PerfScore 2.00
G_M59106_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test byte ptr [(reloc)], 1 ; global ptr
je G_M59106_IG11
@@ -56,12 +57,12 @@ G_M59106_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
- cmp ebx, dword ptr [rdi+0x08]
+ cmp r15d, dword ptr [rdi+0x08]
jae G_M59106_IG10
- mov esi, ebx
+ mov esi, r15d
movzx rax, word ptr [rdi+2*rsi+0x10]
jmp SHORT G_M59106_IG09
- ;; size=31 bbWeight=0.50 PerfScore 5.25
+ ;; size=33 bbWeight=0.50 PerfScore 5.25
G_M59106_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
test byte ptr [(reloc)], 1 ; global ptr
@@ -71,46 +72,46 @@ G_M59106_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
- cmp r15d, dword ptr [rdi+0x08]
+ cmp r14d, dword ptr [rdi+0x08]
jae SHORT G_M59106_IG10
- mov esi, r15d
- mov r14, gword ptr [rdi+8*rsi+0x10]
- ; gcrRegs +[r14]
+ mov esi, r14d
+ mov r13, gword ptr [rdi+8*rsi+0x10]
+ ; gcrRegs +[r13]
mov rdi, 0xD1FFAB1E
; gcrRegs -[rdi]
mov esi, 155
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp r14, gword ptr [rdi]
+ cmp r13, gword ptr [rdi]
jne SHORT G_M59106_IG07
- mov eax, ebx
+ mov eax, r15d
jmp SHORT G_M59106_IG09
- ;; size=66 bbWeight=0.50 PerfScore 8.25
-G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
- test r14, r14
+ ;; size=67 bbWeight=0.50 PerfScore 8.25
+G_M59106_IG07: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
+ test r13, r13
jne SHORT G_M59106_IG08
- mov edi, r15d
+ mov edi, r14d
call [System.Globalization.OrdinalCasing:InitOrdinalCasingPage(int):ushort[]]
- ; gcrRegs -[r14] +[rax]
- mov r14, rax
- ; gcrRegs +[r14]
+ ; gcrRegs -[r13] +[rax]
+ mov r13, rax
+ ; gcrRegs +[r13]
;; size=17 bbWeight=0.50 PerfScore 2.38
-G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M59106_IG08: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
movzx rax, bl
- cmp eax, dword ptr [r14+0x08]
+ cmp eax, dword ptr [r13+0x08]
jae SHORT G_M59106_IG10
- movzx rax, word ptr [r14+2*rax+0x10]
+ movzx rax, word ptr [r13+2*rax+0x10]
;; size=15 bbWeight=0.50 PerfScore 3.12
G_M59106_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r14]
- add rsp, 8
+ ; gcrRegs -[r13]
pop rbx
+ pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=9 bbWeight=1 PerfScore 3.50
G_M59106_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
@@ -127,7 +128,7 @@ G_M59106_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jmp G_M59106_IG06
;; size=25 bbWeight=0 PerfScore 0.00
-; Total bytes of code 245, prolog size 12, PerfScore 33.75, instruction count 59, allocated bytes for code 245 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
+; Total bytes of code 250, prolog size 13, PerfScore 34.25, instruction count 60, allocated bytes for code 250 (MethodHash=3335191d) for method System.Globalization.TextInfo:ToUpperOrdinal(ushort):ushort (FullOpts)
; ============================================================
Unwind Info:
@@ -135,13 +136,13 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x07
+ SizeOfProlog : 0x08
CountOfUnwindCodes: 5
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+4 (+5.26%) : 61696.dasm - ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)
@@ -8,14 +8,14 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 6, 6 ) long -> rdi single-def
-; V01 arg1 [V01,T04] ( 3, 3 ) ushort -> rsi single-def
+; V01 arg1 [V01,T03] ( 4, 4 ) ushort -> rsi single-def
; V02 loc0 [V02,T01] ( 6, 6 ) int -> rax
; V03 loc1 [V03,T02] ( 6, 6 ) int -> rcx
;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 cse0 [V08,T03] ( 5, 5 ) int -> rdx "CSE - aggressive"
+; V08 cse0 [V08,T04] ( 4, 4 ) int -> rdx "CSE - aggressive"
;
; Lcl frame size = 0
@@ -29,29 +29,28 @@ G_M34447_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
and eax, -0x410
and ecx, -0x7100
movzx rdx, si
- mov esi, edx
- and esi, 0xF000
- shr esi, 12
- or esi, eax
+ mov r8d, edx
+ and r8d, 0xF000
+ shr r8d, 12
+ or r8d, eax
mov eax, edx
and eax, 0x800
shr eax, 1
- or eax, esi
- mov esi, edx
- and esi, 0x700
- shl esi, 4
- or esi, ecx
- movzx rcx, dl
- or ecx, esi
+ or eax, r8d
+ and edx, 0x700
+ shl edx, 4
+ or edx, ecx
+ movzx rcx, sil
+ or ecx, edx
mov word ptr [rdi], ax
mov word ptr [rdi+0x02], cx
- ;; size=70 bbWeight=1 PerfScore 11.00
+ ;; size=74 bbWeight=1 PerfScore 10.75
G_M34447_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 76, prolog size 4, PerfScore 13.75, instruction count 25, allocated bytes for code 76 (MethodHash=1b677970) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)
+; Total bytes of code 80, prolog size 4, PerfScore 13.50, instruction count 24, allocated bytes for code 80 (MethodHash=1b677970) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(ulong,ushort) (FullOpts)
; ============================================================
Unwind Info:
+16 (+5.82%) : 283511.dasm - System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
@@ -15,17 +15,17 @@
; V04 tmp1 [V04,T04] ( 3, 4 ) int -> r13 "impAppendStmt"
; V05 tmp2 [V05,T00] ( 10, 20 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V07 tmp4 [V07,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp5 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V10 tmp7 [V10,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T11] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V13 tmp10 [V13,T07] ( 2, 2 ) short -> [rbp-0x2C] spill-single-def "field V06._offsetMinutes (fldOffset=0x0)" P-INDEP
; V14 tmp11 [V14,T08] ( 2, 2 ) long -> [rbp-0x38] spill-single-def "field V06._dateTime (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V15 tmp12 [V15,T11] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V16 cse0 [V16,T05] ( 4, 3.50) int -> r13 "CSE - aggressive"
-;* V17 cse1 [V17,T06] ( 0, 0 ) ref -> zero-ref "CSE - moderate"
+; V17 cse1 [V17,T06] ( 3, 3 ) ref -> rbx "CSE - moderate"
;
; Lcl frame size = 24
@@ -96,9 +96,22 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
mov rbx, qword ptr [rbp-0x38]
mov qword ptr [r12+0x90], rbx
mov byte ptr [r12+0x84], r15b
- mov rdi, 0xD1FFAB1E
- mov gword ptr [r12+0x20], rdi
- mov gword ptr [r12+0x28], rdi
+ mov rbx, 0xD1FFAB1E
+ ; gcrRegs +[rbx]
+ lea rdi, bword ptr [r12+0x20]
+ ; byrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r12+0x28]
+ ; byrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rbx rsi]
+ ; byrRegs -[rdi]
lea rdi, bword ptr [r14+0x08]
; byrRegs +[rdi]
mov rsi, r12
@@ -107,7 +120,7 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
; gcrRegs -[rsi r12 r14]
; byrRegs -[rdi]
nop
- ;; size=126 bbWeight=1 PerfScore 21.50
+ ;; size=142 bbWeight=1 PerfScore 23.00
G_M15258_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 24
pop rbx
@@ -133,7 +146,7 @@ G_M15258_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
int3
;; size=33 bbWeight=0 PerfScore 0.00
-; Total bytes of code 275, prolog size 19, PerfScore 43.50, instruction count 65, allocated bytes for code 275 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
+; Total bytes of code 291, prolog size 19, PerfScore 45.00, instruction count 69, allocated bytes for code 291 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.linux.x64.Release.mch
-18 (-62.07%) : 496410.dasm - TestType:meth1():int (Tier0)
@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 1
- inc eax
- mov ecx, 1
- inc ecx
- inc ecx
- add eax, ecx
- add eax, 2
- inc eax
- ;; size=23 bbWeight=1 PerfScore 2.00
+ mov eax, 8
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 29, prolog size 4, PerfScore 4.75, instruction count 12, allocated bytes for code 29 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
-5 (-45.45%) : 608423.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Instrumented Tier1 code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,23 +11,19 @@
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 0xFFFD
;; size=5 bbWeight=1 PerfScore 0.25
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
; ============================================================
Unwind Info:
@@ -35,9 +31,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x01
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-9 (-45.00%) : 74278.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
@@ -14,17 +14,14 @@ G_M23088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M23088_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 512
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- ;; size=14 bbWeight=1 PerfScore 25.75
+ mov eax, 64
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M23088_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 20, prolog size 4, PerfScore 28.50, instruction count 8, allocated bytes for code 20 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
+6 (+6.82%) : 296448.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
@@ -29,8 +29,10 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
mov eax, dword ptr [rbp-0x0C]
sar eax, 16
+ movzx rax, ax
movsx rdx, ax
mov eax, dword ptr [rbp-0x0C]
+ movzx rax, ax
movsx rsi, ax
lea rdi, [rbp-0x20]
call [<unknown method>]
@@ -38,14 +40,14 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rsi, qword ptr [rbp-0x20]
call [<unknown method>]
nop
- ;; size=55 bbWeight=1 PerfScore 16.25
+ ;; size=61 bbWeight=1 PerfScore 16.75
G_M34188_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 88, prolog size 20, PerfScore 24.00, instruction count 25, allocated bytes for code 88 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
+; Total bytes of code 94, prolog size 20, PerfScore 24.50, instruction count 27, allocated bytes for code 94 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
; ============================================================
Unwind Info:
+3 (+11.54%) : 296451.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -19,15 +19,16 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbp-0x04]
sar eax, 16
+ movzx rax, ax
cwde
- ;; size=7 bbWeight=1 PerfScore 1.75
+ ;; size=10 bbWeight=1 PerfScore 2.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 26, prolog size 10, PerfScore 6.25, instruction count 10, allocated bytes for code 26 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 29, prolog size 10, PerfScore 6.50, instruction count 11, allocated bytes for code 29 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
+3 (+13.04%) : 296450.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -18,15 +18,16 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=13 bbWeight=1 PerfScore 2.75
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbp-0x04]
+ movzx rax, ax
cwde
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=7 bbWeight=1 PerfScore 1.50
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 23, prolog size 10, PerfScore 5.75, instruction count 9, allocated bytes for code 23 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 26, prolog size 10, PerfScore 6.00, instruction count 10, allocated bytes for code 26 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
librariestestsnotieredcompilation.run.linux.x64.Release.mch
-3 (-18.75%) : 206073.dasm - System.Tests.StringTests+<>c:b_1651():System.Object:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
@@ -13,12 +13,12 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp6 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp7 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V09 tmp8 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V10 tmp9 [V10 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V10 tmp9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp10 [V11 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
@@ -28,19 +28,19 @@
;* V17 tmp16 [V17 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M64506_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M64506_IG02: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 92
call [System.ThrowHelper:ThrowArgumentNullException(int)]
+ ; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 16, prolog size 4, PerfScore 0.00, instruction count 5, allocated bytes for code 16 (MethodHash=0b990405) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_1():System.Object:this (FullOpts)
+; Total bytes of code 13, prolog size 1, PerfScore 0.00, instruction count 4, allocated bytes for code 13 (MethodHash=0b990405) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_1():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,4 +53,4 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
-3 (-18.75%) : 206074.dasm - System.Tests.StringTests+<>c:b__165_2():System.Object:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
@@ -13,12 +13,12 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp6 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp7 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V09 tmp8 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V10 tmp9 [V10 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V10 tmp9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp10 [V11 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
@@ -28,19 +28,19 @@
;* V17 tmp16 [V17 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10777_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M10777_IG02: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 92
call [System.ThrowHelper:ThrowArgumentNullException(int)]
+ ; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 16, prolog size 4, PerfScore 0.00, instruction count 5, allocated bytes for code 16 (MethodHash=5a86d5e6) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
+; Total bytes of code 13, prolog size 1, PerfScore 0.00, instruction count 4, allocated bytes for code 13 (MethodHash=5a86d5e6) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,4 +53,4 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
-3 (-14.29%) : 206277.dasm - System.Tests.StringTests+<>c:b__117_26():System.Object:this (FullOpts)
@@ -2,10 +2,10 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
-; 2 inlinees with PGO data; 8 single block inlinees; 5 inlinees without PGO data
+; 2 inlinees with PGO data; 7 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Tests.StringTests+<>c>
@@ -19,44 +19,37 @@
;* V08 tmp7 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp8 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp9 [V10 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V11 tmp10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V12 tmp11 [V12 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V13 tmp12 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
-;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V15 tmp14 [V15 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V16 tmp15 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-;* V18 tmp17 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-;* V20 tmp19 [V20 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V22 tmp21 [V22 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp23 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V26 tmp25 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V27 tmp26 [V27 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-;* V28 tmp27 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp28 [V29 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-;* V30 tmp29 [V30 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V31 tmp30 [V31 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-;* V32 tmp31 [V32 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V33 tmp32 [V33 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+;* V11 tmp10 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V12 tmp11 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
+;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V16 tmp15 [V16 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
+;* V17 tmp16 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V19 tmp18 [V19 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+;* V21 tmp20 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp21 [V22 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp22 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp23 [V24 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp24 [V25 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V26 tmp25 [V26 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M29878_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M29878_IG02: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 27
mov esi, 41
call [System.ThrowHelper:ThrowArgumentException(int,int)]
+ ; gcr arg pop 0
int3
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 21, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 21 (MethodHash=acd98b49) for method System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_26():System.Object:this (FullOpts)
+; Total bytes of code 18, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 18 (MethodHash=acd98b49) for method System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_26():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -69,4 +62,4 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+25 (+14.88%) : 119040.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:b__1_8():System.Object:this (FullOpts)
@@ -17,23 +17,25 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> rax "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> rdx "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> r14 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M21223_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
push rbx
- lea rbp, [rsp+0x10]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ push rax
+ lea rbp, [rsp+0x20]
+ ;; size=12 bbWeight=1 PerfScore 5.50
G_M21223_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -61,10 +63,23 @@ G_M21223_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov word ptr [r15+0x88], ax
mov qword ptr [r15+0x90], rdx
mov byte ptr [r15+0x84], 75
- mov rdi, 0xD1FFAB1E
+ mov r14, 0xD1FFAB1E
+ ; gcrRegs +[r14]
+ lea rdi, bword ptr [r15+0x20]
; gcrRegs -[rdi]
- mov gword ptr [r15+0x20], rdi
- mov gword ptr [r15+0x28], rdi
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r15+0x28]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi r14]
+ ; byrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
mov rsi, r15
@@ -74,15 +89,17 @@ G_M21223_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rdi]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=154 bbWeight=1 PerfScore 20.25
+ ;; size=170 bbWeight=1 PerfScore 21.75
G_M21223_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 168, prolog size 9, PerfScore 26.25, instruction count 33, allocated bytes for code 168 (MethodHash=82d2ad18) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
+; Total bytes of code 193, prolog size 12, PerfScore 30.50, instruction count 41, allocated bytes for code 193 (MethodHash=82d2ad18) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -90,11 +107,13 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 5
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+25 (+14.88%) : 119044.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_19():System.Object:this (FullOpts)
@@ -17,23 +17,25 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> rax "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> rdx "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> r14 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M8838_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
push rbx
- lea rbp, [rsp+0x10]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ push rax
+ lea rbp, [rsp+0x20]
+ ;; size=12 bbWeight=1 PerfScore 5.50
G_M8838_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -61,10 +63,23 @@ G_M8838_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov word ptr [r15+0x88], ax
mov qword ptr [r15+0x90], rdx
mov byte ptr [r15+0x84], 76
- mov rdi, 0xD1FFAB1E
+ mov r14, 0xD1FFAB1E
+ ; gcrRegs +[r14]
+ lea rdi, bword ptr [r15+0x20]
; gcrRegs -[rdi]
- mov gword ptr [r15+0x20], rdi
- mov gword ptr [r15+0x28], rdi
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r15+0x28]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi r14]
+ ; byrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
mov rsi, r15
@@ -74,15 +89,17 @@ G_M8838_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rdi]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=154 bbWeight=1 PerfScore 20.25
+ ;; size=170 bbWeight=1 PerfScore 21.75
G_M8838_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 168, prolog size 9, PerfScore 26.25, instruction count 33, allocated bytes for code 168 (MethodHash=466bdd79) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
+; Total bytes of code 193, prolog size 12, PerfScore 30.50, instruction count 41, allocated bytes for code 193 (MethodHash=466bdd79) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -90,11 +107,13 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 5
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+25 (+14.88%) : 119048.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_113():System.Object:this (FullOpts)
@@ -17,23 +17,25 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> rax "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> rdx "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> r14 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M15069_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
push rbx
- lea rbp, [rsp+0x10]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ push rax
+ lea rbp, [rsp+0x20]
+ ;; size=12 bbWeight=1 PerfScore 5.50
G_M15069_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -61,10 +63,23 @@ G_M15069_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov word ptr [r15+0x88], ax
mov qword ptr [r15+0x90], rdx
mov byte ptr [r15+0x84], 83
- mov rdi, 0xD1FFAB1E
+ mov r14, 0xD1FFAB1E
+ ; gcrRegs +[r14]
+ lea rdi, bword ptr [r15+0x20]
; gcrRegs -[rdi]
- mov gword ptr [r15+0x20], rdi
- mov gword ptr [r15+0x28], rdi
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r15+0x28]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi r14]
+ ; byrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
mov rsi, r15
@@ -74,15 +89,17 @@ G_M15069_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rdi]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=154 bbWeight=1 PerfScore 20.25
+ ;; size=170 bbWeight=1 PerfScore 21.75
G_M15069_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
+ ;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 168, prolog size 9, PerfScore 26.25, instruction count 33, allocated bytes for code 168 (MethodHash=09aac522) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
+; Total bytes of code 193, prolog size 12, PerfScore 30.50, instruction count 41, allocated bytes for code 193 (MethodHash=09aac522) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -90,11 +107,13 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 5
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
realworld.run.linux.x64.checked.mch
-8 (-3.25%) : 12617.dasm - Microsoft.ML.RandomUtils:Create(System.Nullable`1[int]):Microsoft.ML.TauswortheHybrid (FullOpts)
@@ -10,28 +10,28 @@
;
; V00 arg0 [V00,T01] ( 4, 3.50) struct ( 8) [rbp-0x30] do-not-enreg[SF] ld-addr-op single-def <System.Nullable`1[int]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T05] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Random>
-; V03 tmp2 [V03,T06] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.ML.TauswortheHybrid>
+; V02 tmp1 [V02,T02] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Random>
+; V03 tmp2 [V03,T03] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <Microsoft.ML.TauswortheHybrid>
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.ML.TauswortheHybrid+State>
; V06 tmp5 [V06,T00] ( 7, 7 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.ML.TauswortheHybrid>
-; V07 tmp6 [V07,T10] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V08 tmp7 [V08,T02] ( 5, 5 ) int -> r14 "Inlining Arg"
-;* V09 tmp8 [V09,T11] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V10 tmp9 [V10,T03] ( 5, 5 ) int -> r13 "Inlining Arg"
-;* V11 tmp10 [V11,T12] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V12 tmp11 [V12,T04] ( 4, 4 ) int -> r15 "Inlining Arg"
+; V07 tmp6 [V07,T07] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V08 tmp7 [V08,T08] ( 2, 2 ) int -> rax "Inlining Arg"
+;* V09 tmp8 [V09,T14] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp9 [V10,T09] ( 2, 2 ) int -> rax "Inlining Arg"
+;* V11 tmp10 [V11,T15] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V12 tmp11 [V12,T10] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V13 tmp12 [V13 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <Microsoft.ML.TauswortheHybrid+State>
-; V14 tmp13 [V14,T07] ( 4, 2 ) int -> rbx "field V05.U1 (fldOffset=0x0)" P-INDEP
-;* V15 tmp14 [V15 ] ( 0, 0 ) int -> zero-ref "field V05.U2 (fldOffset=0x4)" P-INDEP
-;* V16 tmp15 [V16 ] ( 0, 0 ) int -> zero-ref "field V05.U3 (fldOffset=0x8)" P-INDEP
-;* V17 tmp16 [V17 ] ( 0, 0 ) int -> zero-ref "field V05.U4 (fldOffset=0xc)" P-INDEP
+; V14 tmp13 [V14,T04] ( 4, 2 ) int -> rbx "field V05.U1 (fldOffset=0x0)" P-INDEP
+; V15 tmp14 [V15,T11] ( 3, 1.50) int -> r15 "field V05.U2 (fldOffset=0x4)" P-INDEP
+; V16 tmp15 [V16,T12] ( 3, 1.50) int -> r14 "field V05.U3 (fldOffset=0x8)" P-INDEP
+; V17 tmp16 [V17,T13] ( 2, 1 ) int -> r13 "field V05.U4 (fldOffset=0xc)" P-INDEP
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V13.U1 (fldOffset=0x0)" P-INDEP
;* V19 tmp18 [V19 ] ( 0, 0 ) int -> zero-ref "field V13.U2 (fldOffset=0x4)" P-INDEP
;* V20 tmp19 [V20 ] ( 0, 0 ) int -> zero-ref "field V13.U3 (fldOffset=0x8)" P-INDEP
;* V21 tmp20 [V21 ] ( 0, 0 ) int -> zero-ref "field V13.U4 (fldOffset=0xc)" P-INDEP
-; V22 cse0 [V22,T08] ( 4, 2 ) int -> r15 "CSE - moderate"
-; V23 cse1 [V23,T09] ( 2, 1 ) int -> rdi "CSE - moderate"
+; V22 cse0 [V22,T05] ( 4, 2 ) int -> rdi "CSE - moderate"
+; V23 cse1 [V23,T06] ( 2, 1 ) int -> rdi "CSE - moderate"
;
; Lcl frame size = 8
@@ -89,21 +89,21 @@ G_M57089_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov ebx, dword ptr [rbp-0x2C]
imul edi, ebx, 0xD1FFAB1E
rol edi, 15
- imul r15d, edi, 0xD1FFAB1E
- mov r14d, ebx
- xor r14d, r15d
- rol r14d, 13
- lea r14d, [r14+4*r14]
- add r14d, 0xD1FFAB1E
- mov r13d, r14d
- xor r13d, r15d
- rol r13d, 13
- lea r13d, [r13+4*r13]
- add r13d, 0xD1FFAB1E
- xor r15d, r13d
- rol r15d, 13
- lea r15d, [r15+4*r15]
+ imul edi, edi, 0xD1FFAB1E
+ mov eax, ebx
+ xor eax, edi
+ rol eax, 13
+ lea r15d, [rax+4*rax]
add r15d, 0xD1FFAB1E
+ mov eax, r15d
+ xor eax, edi
+ rol eax, 13
+ lea r14d, [rax+4*rax]
+ add r14d, 0xD1FFAB1E
+ xor edi, r14d
+ rol edi, 13
+ lea r13d, [rdi+4*rdi]
+ add r13d, 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; Microsoft.ML.TauswortheHybrid
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -114,12 +114,12 @@ G_M57089_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
call [System.Random:.ctor():this]
; gcrRegs -[rax rdi]
mov dword ptr [r12+0x10], ebx
- mov dword ptr [r12+0x14], r14d
- mov dword ptr [r12+0x18], r13d
- mov dword ptr [r12+0x1C], r15d
+ mov dword ptr [r12+0x14], r15d
+ mov dword ptr [r12+0x18], r14d
+ mov dword ptr [r12+0x1C], r13d
mov rax, r12
; gcrRegs +[rax]
- ;; size=130 bbWeight=0.50 PerfScore 10.50
+ ;; size=122 bbWeight=0.50 PerfScore 9.75
G_M57089_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -131,7 +131,7 @@ G_M57089_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 246, prolog size 16, PerfScore 31.25, instruction count 67, allocated bytes for code 246 (MethodHash=ee6020fe) for method Microsoft.ML.RandomUtils:Create(System.Nullable`1[int]):Microsoft.ML.TauswortheHybrid (FullOpts)
+; Total bytes of code 238, prolog size 16, PerfScore 30.50, instruction count 67, allocated bytes for code 238 (MethodHash=ee6020fe) for method Microsoft.ML.RandomUtils:Create(System.Nullable`1[int]):Microsoft.ML.TauswortheHybrid (FullOpts)
; ============================================================
Unwind Info:
-7 (-2.50%) : 15704.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 7 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 7, 11 ) int -> rdi
+; V00 arg0 [V00,T05] ( 7, 11 ) int -> rdi
; V01 arg1 [V01,T06] ( 9, 9.54) ref -> rsi class-hnd single-def <uint[]>
-; V02 arg2 [V02,T08] ( 7, 7 ) int -> rdx single-def
-; V03 arg3 [V03,T03] ( 10, 12 ) int -> rcx single-def
+; V02 arg2 [V02,T07] ( 7, 7 ) int -> rdx single-def
+; V03 arg3 [V03,T04] ( 10, 12 ) int -> rcx single-def
; V04 loc0 [V04,T01] ( 10, 17.04) int -> rax
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -19,10 +19,10 @@
; V08 tmp3 [V08,T10] ( 3, 2 ) int -> rax "Inline return value spill temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V10 tmp5 [V10,T02] ( 4, 16 ) int -> r8 "Inlining Arg"
-; V11 tmp6 [V11,T00] ( 8, 32 ) int -> r8 "Inlining Arg"
-; V12 tmp7 [V12,T09] ( 2, 4 ) int -> rax "Inlining Arg"
-; V13 tmp8 [V13,T07] ( 5, 10 ) int -> rax "Inlining Arg"
-; V14 tmp9 [V14,T05] ( 6, 12 ) int -> rax "Inlining Arg"
+; V11 tmp6 [V11,T03] ( 4, 16 ) int -> r8 "Inlining Arg"
+; V12 tmp7 [V12,T08] ( 2, 4 ) int -> rax "Inlining Arg"
+; V13 tmp8 [V13,T09] ( 2, 4 ) int -> rax "Inlining Arg"
+; V14 tmp9 [V14,T00] ( 9, 18 ) int -> rax "Inlining Arg"
;
; Lcl frame size = 0
@@ -66,13 +66,12 @@ G_M8803_IG06: ; bbWeight=3.96, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
imul r8d, r8d, 0xD1FFAB1E
xor r8d, edi
rol r8d, 13
- lea r8d, [r8+4*r8]
- add r8d, 0xD1FFAB1E
- mov edi, r8d
+ lea edi, [r8+4*r8]
+ add edi, 0xD1FFAB1E
inc eax
cmp eax, ecx
jl SHORT G_M8803_IG06
- ;; size=50 bbWeight=3.96 PerfScore 43.56
+ ;; size=46 bbWeight=3.96 PerfScore 42.57
G_M8803_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
jmp SHORT G_M8803_IG09
@@ -86,14 +85,14 @@ G_M8803_IG08: ; bbWeight=0.04, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
rol r8d, 15
imul r8d, r8d, 0xD1FFAB1E
xor r8d, edi
- rol r8d, 13
- lea r8d, [r8+4*r8]
- add r8d, 0xD1FFAB1E
mov edi, r8d
+ rol edi, 13
+ lea edi, [rdi+4*rdi]
+ add edi, 0xD1FFAB1E
inc eax
cmp eax, ecx
jl SHORT G_M8803_IG08
- ;; size=55 bbWeight=0.04 PerfScore 0.60
+ ;; size=52 bbWeight=0.04 PerfScore 0.60
G_M8803_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
sub ecx, edx
@@ -156,7 +155,7 @@ G_M8803_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 280, prolog size 4, PerfScore 77.28, instruction count 81, allocated bytes for code 280 (MethodHash=e9b3dd9c) for method Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
+; Total bytes of code 273, prolog size 4, PerfScore 76.29, instruction count 80, allocated bytes for code 273 (MethodHash=e9b3dd9c) for method Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
; ============================================================
Unwind Info:
-21 (-2.38%) : 15785.dasm - Microsoft.ML.Transforms.HashingTransformer+<>cDisplayClass44_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:b1(byref):this (FullOpts)
@@ -21,8 +21,8 @@
; V10 tmp1 [V10,T47] ( 2, 4 ) int -> rdx "impAppendStmt"
;* V11 tmp2 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Nullable`1[int]>
; V12 tmp3 [V12,T05] ( 3, 24 ) int -> rdx "Span.get_Item index"
-; V13 tmp4 [V13,T11] ( 2, 16 ) byref -> rdx "impAppendStmt"
-; V14 tmp5 [V14,T12] ( 2, 16 ) byref -> rax "impAppendStmt"
+; V13 tmp4 [V13,T07] ( 2, 16 ) byref -> rdx "impAppendStmt"
+; V14 tmp5 [V14,T08] ( 2, 16 ) byref -> rax "impAppendStmt"
;* V15 tmp6 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]>
; V16 tmp7 [V16,T31] ( 3, 6 ) byref -> rdi single-def "Inlining Arg"
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[double]>
@@ -37,20 +37,20 @@
;* V26 tmp17 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp18 [V27,T46] ( 2, 4 ) byref -> rax single-def "Inlining Arg"
;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V29 tmp20 [V29,T15] ( 2, 12 ) int -> rcx "Inlining Arg"
-; V30 tmp21 [V30,T16] ( 2, 12 ) int -> rdx "Inlining Arg"
-; V31 tmp22 [V31,T13] ( 2, 16 ) byref -> rsi "Inlining Arg"
-; V32 tmp23 [V32,T23] ( 3, 8 ) int -> rsi "Inline return value spill temp"
+; V29 tmp20 [V29,T11] ( 2, 12 ) int -> rcx "Inlining Arg"
+; V30 tmp21 [V30,T12] ( 2, 12 ) int -> rdx "Inlining Arg"
+; V31 tmp22 [V31,T09] ( 2, 16 ) byref -> rsi "Inlining Arg"
+; V32 tmp23 [V32,T19] ( 3, 8 ) int -> rsi "Inline return value spill temp"
; V33 tmp24 [V33,T71] ( 3, 6 ) double -> mm0
; V34 tmp25 [V34,T33] ( 3, 6 ) long -> rsi "Inline stloc first use temp"
-; V35 tmp26 [V35,T21] ( 4, 8 ) int -> r8 "Inline stloc first use temp"
+; V35 tmp26 [V35,T15] ( 5, 10 ) int -> rcx "Inline stloc first use temp"
; V36 tmp27 [V36,T34] ( 3, 6 ) int -> rsi "Inline stloc first use temp"
; V37 tmp28 [V37,T67] ( 3, 24 ) double -> mm1 "Inlining Arg"
; V38 tmp29 [V38,T49] ( 2, 4 ) struct ( 8) [rbp-0x68] do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.ML.Internal.Utilities.FloatUtils+DoubleBits>
-; V39 tmp30 [V39,T25] ( 2, 8 ) int -> r8 "Inlining Arg"
-; V40 tmp31 [V40,T07] ( 5, 20 ) int -> rcx "Inlining Arg"
-; V41 tmp32 [V41,T26] ( 2, 8 ) int -> r8 "Inlining Arg"
-; V42 tmp33 [V42,T09] ( 4, 16 ) int -> rsi "Inlining Arg"
+; V39 tmp30 [V39,T21] ( 2, 8 ) int -> r8 "Inlining Arg"
+; V40 tmp31 [V40,T22] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V41 tmp32 [V41,T23] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V42 tmp33 [V42,T24] ( 2, 8 ) int -> rcx "Inlining Arg"
; V43 tmp34 [V43,T03] ( 6, 24 ) int -> rcx "Inlining Arg"
; V44 tmp35 [V44,T42] ( 4, 4 ) byref -> rdi single-def "Inlining Arg"
;* V45 tmp36 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[int]>
@@ -63,24 +63,24 @@
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V53 tmp44 [V53 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V54 tmp45 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V55 tmp46 [V55,T17] ( 2, 12 ) int -> rcx "Inlining Arg"
-; V56 tmp47 [V56,T18] ( 2, 12 ) int -> r8 "Inlining Arg"
-; V57 tmp48 [V57,T14] ( 2, 16 ) byref -> rax "Inlining Arg"
-; V58 tmp49 [V58,T24] ( 3, 8 ) int -> rax "Inline return value spill temp"
+; V55 tmp46 [V55,T13] ( 2, 12 ) int -> rcx "Inlining Arg"
+; V56 tmp47 [V56,T14] ( 2, 12 ) int -> r8 "Inlining Arg"
+; V57 tmp48 [V57,T10] ( 2, 16 ) byref -> rax "Inlining Arg"
+; V58 tmp49 [V58,T20] ( 3, 8 ) int -> rax "Inline return value spill temp"
; V59 tmp50 [V59,T72] ( 3, 6 ) double -> mm0
; V60 tmp51 [V60,T35] ( 3, 6 ) long -> rax "Inline stloc first use temp"
-; V61 tmp52 [V61,T22] ( 4, 8 ) int -> r9 "Inline stloc first use temp"
+; V61 tmp52 [V61,T16] ( 5, 10 ) int -> rcx "Inline stloc first use temp"
; V62 tmp53 [V62,T36] ( 3, 6 ) int -> rax "Inline stloc first use temp"
; V63 tmp54 [V63,T68] ( 3, 24 ) double -> mm1 "Inlining Arg"
; V64 tmp55 [V64,T50] ( 2, 4 ) struct ( 8) [rbp-0x70] do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.ML.Internal.Utilities.FloatUtils+DoubleBits>
-; V65 tmp56 [V65,T27] ( 2, 8 ) int -> r9 "Inlining Arg"
-; V66 tmp57 [V66,T08] ( 5, 20 ) int -> rcx "Inlining Arg"
-; V67 tmp58 [V67,T28] ( 2, 8 ) int -> r9 "Inlining Arg"
-; V68 tmp59 [V68,T10] ( 4, 16 ) int -> rax "Inlining Arg"
+; V65 tmp56 [V65,T25] ( 2, 8 ) int -> r9 "Inlining Arg"
+; V66 tmp57 [V66,T26] ( 2, 8 ) int -> rcx "Inlining Arg"
+; V67 tmp58 [V67,T27] ( 2, 8 ) int -> rax "Inlining Arg"
+; V68 tmp59 [V68,T28] ( 2, 8 ) int -> rcx "Inlining Arg"
; V69 tmp60 [V69,T04] ( 6, 24 ) int -> rcx "Inlining Arg"
; V70 tmp61 [V70 ] ( 2, 4 ) struct (24) [rbp-0x88] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.ML.Data.VBuffer`1[uint]>
-; V71 tmp62 [V71,T20] ( 3, 9 ) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V72 tmp63 [V72,T19] ( 5, 10 ) int -> r14 single-def "field V03._length (fldOffset=0x8)" P-INDEP
+; V71 tmp62 [V71,T18] ( 3, 9 ) byref -> r13 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V72 tmp63 [V72,T17] ( 5, 10 ) int -> r14 single-def "field V03._length (fldOffset=0x8)" P-INDEP
;* V73 tmp64 [V73,T63] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
;* V74 tmp65 [V74,T64] ( 0, 0 ) int -> zero-ref single-def "field V04.value (fldOffset=0x4)" P-INDEP
; V75 tmp66 [V75,T40] ( 2, 4.50) byref -> r12 single-def "field V06._reference (fldOffset=0x0)" P-INDEP
@@ -255,24 +255,22 @@ G_M51946_IG14: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=A001 {rax r1
rol ecx, 13
lea ecx, [rcx+4*rcx]
add ecx, 0xD1FFAB1E
- mov r8d, ecx
shr rsi, 32
test esi, esi
je SHORT G_M51946_IG15
- imul r8d, esi, 0xD1FFAB1E
- rol r8d, 15
- imul esi, r8d, 0xD1FFAB1E
- xor esi, ecx
- rol esi, 13
- lea esi, [rsi+4*rsi]
- add esi, 0xD1FFAB1E
- mov r8d, esi
- ;; size=88 bbWeight=2 PerfScore 32.50
+ imul esi, esi, 0xD1FFAB1E
+ rol esi, 15
+ imul esi, esi, 0xD1FFAB1E
+ xor ecx, esi
+ rol ecx, 13
+ lea ecx, [rcx+4*rcx]
+ add ecx, 0xD1FFAB1E
+ ;; size=79 bbWeight=2 PerfScore 31.50
G_M51946_IG15: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=A001 {rax r13 r15}, byref
- mov ecx, r8d
- shr ecx, 16
- xor ecx, r8d
- imul ecx, ecx, 0xD1FFAB1E
+ mov esi, ecx
+ shr esi, 16
+ xor esi, ecx
+ imul ecx, esi, 0xD1FFAB1E
mov esi, ecx
shr esi, 13
xor esi, ecx
@@ -282,7 +280,7 @@ G_M51946_IG15: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=A001 {rax r1
xor esi, ecx
and esi, edx
inc esi
- ;; size=39 bbWeight=2 PerfScore 15.00
+ ;; size=37 bbWeight=2 PerfScore 15.00
G_M51946_IG16: ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=A001 {rax r13 r15}, byref
mov dword ptr [rax], esi
inc edi
@@ -414,24 +412,22 @@ G_M51946_IG30: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=B004 {rdx r1
rol ecx, 13
lea ecx, [rcx+4*rcx]
add ecx, 0xD1FFAB1E
- mov r9d, ecx
shr rax, 32
test eax, eax
je SHORT G_M51946_IG31
- imul r9d, eax, 0xD1FFAB1E
- rol r9d, 15
- imul eax, r9d, 0xD1FFAB1E
- xor eax, ecx
- rol eax, 13
- lea eax, [rax+4*rax]
- add eax, 0xD1FFAB1E
- mov r9d, eax
- ;; size=87 bbWeight=2 PerfScore 32.50
+ imul eax, eax, 0xD1FFAB1E
+ rol eax, 15
+ imul eax, eax, 0xD1FFAB1E
+ xor ecx, eax
+ rol ecx, 13
+ lea ecx, [rcx+4*rcx]
+ add ecx, 0xD1FFAB1E
+ ;; size=79 bbWeight=2 PerfScore 31.50
G_M51946_IG31: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=B004 {rdx r12 r13 r15}, byref
- mov ecx, r9d
- shr ecx, 16
- xor ecx, r9d
- imul ecx, ecx, 0xD1FFAB1E
+ mov eax, ecx
+ shr eax, 16
+ xor eax, ecx
+ imul ecx, eax, 0xD1FFAB1E
mov eax, ecx
shr eax, 13
xor eax, ecx
@@ -441,7 +437,7 @@ G_M51946_IG31: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=B004 {rdx r1
xor eax, ecx
and eax, r8d
inc eax
- ;; size=40 bbWeight=2 PerfScore 15.00
+ ;; size=38 bbWeight=2 PerfScore 15.00
G_M51946_IG32: ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=B004 {rdx r12 r13 r15}, byref
mov dword ptr [rdx], eax
inc esi
@@ -491,7 +487,7 @@ G_M51946_IG36: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 884, prolog size 67, PerfScore 449.50, instruction count 241, allocated bytes for code 884 (MethodHash=66d73515) for method Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass44_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeVectorHashGetter>b__1(byref):this (FullOpts)
+; Total bytes of code 863, prolog size 67, PerfScore 447.50, instruction count 237, allocated bytes for code 863 (MethodHash=66d73515) for method Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass44_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeVectorHashGetter>b__1(byref):this (FullOpts)
; ============================================================
Unwind Info:
+28 (+1.47%) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -5,163 +5,154 @@
; rbp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 115 single block inlinees; 43 inlinees without PGO data
+; 0 inlinees with PGO data; 115 single block inlinees; 44 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 10 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T08] ( 11, 6.50) ref -> r15 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T17] ( 3, 3 ) ubyte -> rdx single-def
-; V03 arg3 [V03,T16] ( 5, 3.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V02 arg2 [V02,T18] ( 3, 3 ) ubyte -> rdx single-def
+; V03 arg3 [V03,T17] ( 5, 3.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V04 loc0 [V04,T49] ( 5, 2.50) ref -> r12 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T68] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V06 tmp1 [V06,T69] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V07 tmp2 [V07,T01] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp4 [V09,T56] ( 2, 2 ) int -> r13 "Inlining Arg"
-; V10 tmp5 [V10,T61] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V11 tmp6 [V11,T18] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp4 [V09,T57] ( 2, 2 ) int -> r13 "Inlining Arg"
+; V10 tmp5 [V10,T62] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V11 tmp6 [V11,T19] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp7 [V12,T09] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V15 tmp10 [V15,T25] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V25 tmp20 [V25,T10] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V26 tmp21 [V26,T43] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp23 [V28,T70] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V29 tmp24 [V29,T44] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V30 tmp25 [V30,T31] ( 3, 3 ) byref -> r15 single-def "Inlining Arg"
-; V31 tmp26 [V31,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V33 tmp28 [V33,T57] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V34 tmp29 [V34,T62] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp30 [V35,T19] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V36 tmp31 [V36,T11] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V39 tmp34 [V39,T26] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V23 tmp18 [V23,T10] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V24 tmp19 [V24,T43] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V26 tmp21 [V26,T71] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V27 tmp22 [V27,T44] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V28 tmp23 [V28,T31] ( 3, 3 ) byref -> r15 single-def "Inlining Arg"
+; V29 tmp24 [V29,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V31 tmp26 [V31,T58] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V32 tmp27 [V32,T63] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V33 tmp28 [V33,T20] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp29 [V34,T11] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp32 [V37,T26] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V49 tmp44 [V49,T12] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V50 tmp45 [V50,T45] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp47 [V52,T71] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V53 tmp48 [V53,T46] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V54 tmp49 [V54,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
-; V55 tmp50 [V55,T03] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V57 tmp52 [V57,T58] ( 2, 2 ) int -> r14 "Inlining Arg"
-; V58 tmp53 [V58,T63] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V59 tmp54 [V59,T20] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V60 tmp55 [V60,T13] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp40 [V45,T12] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V46 tmp41 [V46,T45] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V48 tmp43 [V48,T72] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V49 tmp44 [V49,T46] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V50 tmp45 [V50,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
+; V51 tmp46 [V51,T03] ( 12, 12 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V53 tmp48 [V53,T59] ( 2, 2 ) int -> r14 "Inlining Arg"
+; V54 tmp49 [V54,T64] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V55 tmp50 [V55,T21] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V56 tmp51 [V56,T13] ( 6, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp54 [V59,T27] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp58 [V63,T27] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V69 tmp64 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V73 tmp68 [V73,T14] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
-; V74 tmp69 [V74,T47] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp71 [V76,T72] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V77 tmp72 [V77,T48] ( 3, 3 ) int -> rcx "Inlining Arg"
-; V78 tmp73 [V78,T33] ( 3, 3 ) byref -> r15 single-def "Inlining Arg"
-; V79 tmp74 [V79,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V81 tmp76 [V81,T59] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V82 tmp77 [V82,T64] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V83 tmp78 [V83,T21] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V84 tmp79 [V84,T15] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V67 tmp62 [V67,T14] ( 6, 6 ) byref -> rdi single-def "Inlining Arg"
+; V68 tmp63 [V68,T47] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V70 tmp65 [V70,T73] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V71 tmp66 [V71,T48] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V72 tmp67 [V72,T33] ( 3, 3 ) byref -> r15 single-def "Inlining Arg"
+; V73 tmp68 [V73,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V75 tmp70 [V75,T60] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V76 tmp71 [V76,T65] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V77 tmp72 [V77,T22] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V78 tmp73 [V78,T15] ( 6, 6 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V81 tmp76 [V81,T28] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp82 [V87,T28] ( 6, 3 ) int -> r13 "Inline stloc first use temp"
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp83 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp85 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V97 tmp92 [V97,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
-; V98 tmp93 [V98,T51] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V99 tmp94 [V99,T52] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
-;* V100 tmp95 [V100 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V101 tmp96 [V101,T53] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
-;* V102 tmp97 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;* V103 tmp98 [V103 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V104 tmp99 [V104,T05] ( 12, 12 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V106 tmp101 [V106,T60] ( 2, 2 ) int -> [rbp-0x2C] spill-single-def "Inlining Arg"
-; V107 tmp102 [V107,T65] ( 3, 1.50) ref -> [rbp-0x38] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V108 tmp103 [V108,T22] ( 4, 4 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V109 tmp104 [V109,T06] ( 10, 10 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V113 tmp108 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp111 [V116,T29] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
-;* V117 tmp112 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V120 tmp115 [V120,T30] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
-;* V121 tmp116 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V122 tmp117 [V122,T35] ( 3, 3 ) byref -> r12 single-def "Inlining Arg"
-; V123 tmp118 [V123,T54] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V124 tmp119 [V124,T07] ( 10, 10 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V125 tmp120 [V125,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <<unknown class>>
-;* V126 tmp121 [V126 ] ( 0, 0 ) ref -> zero-ref single-def
-; V127 tmp122 [V127,T55] ( 2, 2 ) ref -> rcx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V128 tmp123 [V128,T69] ( 3, 1.50) int -> r12
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V130 tmp125 [V130,T66] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V131 tmp126 [V131,T23] ( 4, 4 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V132 tmp127 [V132,T24] ( 4, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-; V133 tmp128 [V133,T73] ( 2, 1 ) int -> rsi single-def "Inline stloc first use temp"
-;* V134 tmp129 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "field V100.array (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135,T74] ( 0, 0 ) ref -> zero-ref single-def "field V102.array (fldOffset=0x0)" P-INDEP
-;* V136 tmp131 [V136,T75] ( 0, 0 ) ref -> zero-ref single-def "field V103.array (fldOffset=0x0)" P-INDEP
-; V137 tmp132 [V137,T37] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V138 tmp133 [V138,T38] ( 3, 3 ) ref -> rdi single-def "arr expr"
-;* V139 tmp134 [V139 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V89 tmp84 [V89,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
+; V90 tmp85 [V90,T52] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V91 tmp86 [V91,T53] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V93 tmp88 [V93,T54] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
+;* V94 tmp89 [V94 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;* V95 tmp90 [V95 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V96 tmp91 [V96,T05] ( 12, 12 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V98 tmp93 [V98,T61] ( 2, 2 ) int -> [rbp-0x2C] spill-single-def "Inlining Arg"
+; V99 tmp94 [V99,T66] ( 3, 1.50) ref -> [rbp-0x38] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V100 tmp95 [V100,T23] ( 4, 4 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V101 tmp96 [V101,T06] ( 10, 10 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V107 tmp102 [V107,T29] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
+;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V110 tmp105 [V110,T30] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
+;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V112 tmp107 [V112,T35] ( 3, 3 ) byref -> r12 single-def "Inlining Arg"
+; V113 tmp108 [V113,T55] ( 2, 2 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V114 tmp109 [V114,T07] ( 10, 10 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V115 tmp110 [V115,T36] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <<unknown class>>
+;* V116 tmp111 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
+; V117 tmp112 [V117,T56] ( 2, 2 ) ref -> rcx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V118 tmp113 [V118,T70] ( 3, 1.50) int -> r12
+;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
...
+15 (+7.65%) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,93 +8,100 @@
; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 13, 10 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 11, 9 ) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> r14 single-def
; V02 arg2 [V02,T01] ( 6, 4 ) ref -> r15 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
-; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
+; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V06 tmp2 [V06,T04] ( 3, 3 ) int -> r13 "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V06 tmp2 [V06,T05] ( 3, 3 ) int -> r12 "impAppendStmt"
+; V07 tmp3 [V07,T09] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V08 tmp4 [V08,T10] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> r13 "Inline return value spill temp"
-; V12 tmp8 [V12,T05] ( 3, 3 ) int -> rdi "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V11 tmp7 [V11,T14] ( 2, 1 ) int -> r12 "Inline return value spill temp"
+; V12 tmp8 [V12,T06] ( 3, 3 ) int -> rdi "Inlining Arg"
+; V13 tmp9 [V13,T08] ( 2, 2 ) byref -> r13 single-def "Inlining Arg"
+; V14 tmp10 [V14,T11] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V15 tmp11 [V15,T12] ( 2, 2 ) long -> rdi "Inlining Arg"
+; V16 tmp12 [V16,T13] ( 2, 2 ) long -> rsi "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V18 tmp14 [V18,T06] ( 3, 3 ) int -> rcx "Inline stloc first use temp"
-; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> rax single-def "impAppendStmt"
-; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
-; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
-; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rbp-0x24] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
+; V18 tmp14 [V18,T07] ( 3, 3 ) int -> rcx "Inline stloc first use temp"
+; V19 tmp15 [V19,T04] ( 2, 4 ) byref -> rax single-def "impAppendStmt"
+; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
+; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
+; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
+; V23 cse0 [V23,T03] ( 6, 4 ) byref -> r13 multi-def "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M19315_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ sub rsp, 24
vzeroupper
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x40]
mov rbx, rdi
; byrRegs +[rbx]
mov r14d, esi
mov r15, rdx
; gcrRegs +[r15]
- ;; size=29 bbWeight=1 PerfScore 7.50
-G_M19315_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
+ ;; size=31 bbWeight=1 PerfScore 8.50
+G_M19315_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
mov edi, dword ptr [rbx+0x04]
cmp edi, dword ptr [rbx+0x10]
- jne SHORT G_M19315_IG04
- ;; size=8 bbWeight=1 PerfScore 6.00
+ jne G_M19315_IG04
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- vmovups xmm0, xmmword ptr [rbx+0x08]
- vmovups xmmword ptr [rbp-0x30], xmm0
- mov r13d, dword ptr [rbx+0x04]
- add r13d, r13d
+ lea r13, bword ptr [rbx+0x08]
+ ; byrRegs +[r13]
+ vmovups xmm0, xmmword ptr [r13]
+ vmovups xmmword ptr [rbp-0x38], xmm0
+ mov r12d, dword ptr [rbx+0x04]
+ add r12d, r12d
mov edi, dword ptr [rbx+0x10]
- cmp r13d, edi
- cmovl r13d, edi
+ cmp r12d, edi
+ cmovl r12d, edi
mov rdi, r15
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
- lea rdx, bword ptr [rbx+0x08]
+ mov rdx, r13
; byrRegs +[rdx]
mov rdi, r15
; gcrRegs +[rdi]
- mov esi, r13d
+ mov esi, r12d
call rax
; gcrRegs -[rdi]
; byrRegs -[rdx]
- mov rdi, qword ptr [rbx+0x08]
- mov rsi, qword ptr [rbp-0x30]
mov edx, dword ptr [rbx+0x04]
+ mov rdi, qword ptr [r13]
+ mov rsi, qword ptr [rbp-0x38]
shl edx, 2
call CORINFO_HELP_MEMCPY
+ ; byrRegs -[r13]
mov rdi, r15
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool
mov rdx, 0xD1FFAB1E ; token handle
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
- lea rsi, [rbp-0x30]
+ lea rsi, [rbp-0x38]
mov rdi, r15
; gcrRegs +[rdi]
call rax
; gcrRegs -[rdi r15]
- ;; size=123 bbWeight=0.50 PerfScore 13.75
+ ;; size=127 bbWeight=0.50 PerfScore 13.88
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
- lea rax, bword ptr [rbx+0x08]
+ lea r13, bword ptr [rbx+0x08]
+ ; byrRegs +[r13]
+ mov rax, r13
; byrRegs +[rax]
mov ecx, dword ptr [rbx+0x04]
lea edx, [rcx+0x01]
@@ -103,18 +110,19 @@ G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
; byrRegs -[rax]
movsxd rcx, ecx
mov dword ptr [rax+4*rcx], r14d
- ;; size=23 bbWeight=1 PerfScore 7.25
+ ;; size=26 bbWeight=1 PerfScore 7.50
G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 24
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 196, prolog size 20, PerfScore 38.25, instruction count 55, allocated bytes for code 196 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 211, prolog size 22, PerfScore 40.12, instruction count 59, allocated bytes for code 211 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -122,13 +130,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0E
+ CountOfUnwindCodes: 7
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
- CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
+ CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+3 (+9.09%) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -24,17 +24,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=27 bbWeight=1 PerfScore 4.50
+ ;; size=30 bbWeight=1 PerfScore 4.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 33, prolog size 1, PerfScore 6.75, instruction count 10, allocated bytes for code 33 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 7.00, instruction count 11, allocated bytes for code 36 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
smoke_tests.nativeaot.linux.x64.checked.mch
-5 (-45.45%) : 8944.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
@@ -3,7 +3,7 @@
; FullOpts code
; NativeAOT compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; Final local variable assignments
;
@@ -11,28 +11,21 @@
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 0xFFFD
;; size=5 bbWeight=1 PerfScore 0.25
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================
Cfi Info:
>> Start offset : 0x000000
>> End offset : 0xd1ffab1e
- CodeOffset: 0x01 Op: AdjustCfaOffset Offset:0x8
- CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0
-5 (-33.33%) : 20414.dasm - System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
@@ -9,14 +9,11 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd exact single-def <System.Threading.Thread>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1 [V02 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V03 tmp2 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M64966_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rax
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M64966_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdi]
xor eax, eax
@@ -24,14 +21,12 @@ G_M64966_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
sete al
;; size=9 bbWeight=1 PerfScore 4.25
G_M64966_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 15, prolog size 1, PerfScore 6.50, instruction count 6, allocated bytes for code 15 (MethodHash=a75e0239) for method System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
+; Total bytes of code 10, prolog size 0, PerfScore 5.25, instruction count 4, allocated bytes for code 10 (MethodHash=a75e0239) for method System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
; ============================================================
Cfi Info:
>> Start offset : 0x000000
>> End offset : 0xd1ffab1e
- CodeOffset: 0x01 Op: AdjustCfaOffset Offset:0x8
-12 (-16.67%) : 13983.dasm - System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts)
@@ -3,24 +3,19 @@
; FullOpts code
; NativeAOT compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00,T00] ( 4, 4 ) ref -> rdi this class-hnd exact single-def <System.Threading.Thread>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T01] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V03 tmp2 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V04 tmp3 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M13248_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
G_M13248_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
test dword ptr [rdi+0x50], 272
@@ -30,16 +25,15 @@ G_M13248_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
setne al
;; size=18 bbWeight=1 PerfScore 8.25
G_M13248_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
pop rbx
- pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 1.50
G_M13248_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi]
lea rdi, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
+ ; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
mov rdi, rbx
@@ -48,21 +42,20 @@ G_M13248_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs +[rsi]
call <unknown method>
; gcrRegs -[rax rsi rdi]
+ ; gcr arg pop 0
mov rdi, rbx
; gcrRegs +[rdi]
call CORINFO_HELP_THROW
; gcrRegs -[rbx rdi]
+ ; gcr arg pop 0
int3
;; size=39 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.00, instruction count 22, allocated bytes for code 72 (MethodHash=dccacc3f) for method System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts)
+; Total bytes of code 60, prolog size 1, PerfScore 10.75, instruction count 17, allocated bytes for code 60 (MethodHash=dccacc3f) for method System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts)
; ============================================================
Cfi Info:
>> Start offset : 0x000000
>> End offset : 0xd1ffab1e
CodeOffset: 0x01 Op: AdjustCfaOffset Offset:0x8
- CodeOffset: 0x01 Op: RelOffset DwarfReg:0x6 Offset:0x0
- CodeOffset: 0x02 Op: AdjustCfaOffset Offset:0x8
- CodeOffset: 0x02 Op: RelOffset DwarfReg:0x3 Offset:0x0
- CodeOffset: 0x03 Op: AdjustCfaOffset Offset:0x8
+ CodeOffset: 0x01 Op: RelOffset DwarfReg:0x3 Offset:0x0
+3 (+9.38%) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Cfi Info:
+3 (+9.38%) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Cfi Info:
+3 (+9.38%) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -23,17 +23,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=26 bbWeight=1 PerfScore 2.50
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 32, prolog size 1, PerfScore 4.75, instruction count 10, allocated bytes for code 32 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 5.00, instruction count 11, allocated bytes for code 35 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Cfi Info:
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.linux.x64.checked.mch |
55 |
16 |
20 |
19 |
-123 |
+157 |
benchmarks.run_pgo.linux.x64.checked.mch |
266 |
230 |
8 |
28 |
-2,650 |
+581 |
benchmarks.run_tiered.linux.x64.checked.mch |
156 |
144 |
5 |
7 |
-1,713 |
+138 |
coreclr_tests.run.linux.x64.checked.mch |
7,016 |
5,954 |
311 |
751 |
-128,593 |
+4,571 |
libraries.crossgen2.linux.x64.checked.mch |
42 |
19 |
6 |
17 |
-253 |
+8 |
libraries.pmi.linux.x64.checked.mch |
242 |
82 |
116 |
44 |
-1,098 |
+11,409 |
libraries_tests.run.linux.x64.Release.mch |
1,053 |
818 |
68 |
167 |
-117,712 |
+2,165 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
633 |
230 |
200 |
203 |
-70,202 |
+5,536 |
realworld.run.linux.x64.checked.mch |
96 |
62 |
18 |
16 |
-534 |
+1,136 |
smoke_tests.nativeaot.linux.x64.checked.mch |
36 |
11 |
5 |
20 |
-171 |
+25 |
|
9,595 |
7,566 |
757 |
1,272 |
-323,049 |
+25,726 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.x64.checked.mch |
36,208 |
3,549 |
32,659 |
0 (0.00%) |
9 (0.02%) |
benchmarks.run_pgo.linux.x64.checked.mch |
160,310 |
63,207 |
97,103 |
0 (0.00%) |
17 (0.01%) |
benchmarks.run_tiered.linux.x64.checked.mch |
65,377 |
50,236 |
15,141 |
0 (0.00%) |
9 (0.01%) |
coreclr_tests.run.linux.x64.checked.mch |
598,940 |
355,942 |
242,998 |
28 (0.00%) |
73 (0.01%) |
libraries.crossgen2.linux.x64.checked.mch |
234,329 |
15 |
234,314 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.x64.checked.mch |
296,886 |
6 |
296,880 |
0 (0.00%) |
45 (0.02%) |
libraries_tests.run.linux.x64.Release.mch |
759,624 |
496,184 |
263,440 |
0 (0.00%) |
142 (0.02%) |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
305,298 |
21,912 |
283,386 |
0 (0.00%) |
145 (0.05%) |
realworld.run.linux.x64.checked.mch |
33,081 |
9 |
33,072 |
0 (0.00%) |
2 (0.01%) |
smoke_tests.nativeaot.linux.x64.checked.mch |
27,053 |
10 |
27,043 |
361 (1.32%) |
361 (1.32%) |
|
2,517,106 |
991,070 |
1,526,036 |
389 (0.02%) |
803 (0.03%) |
jit-analyze output
benchmarks.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 14324040 (overridden on cmd)
Total bytes of diff: 14324074 (overridden on cmd)
Total bytes of delta: 34 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
45 : 14072.dasm (1.61 % of base)
44 : 3531.dasm (0.45 % of base)
19 : 24883.dasm (1.12 % of base)
16 : 23286.dasm (4.04 % of base)
6 : 3627.dasm (0.30 % of base)
3 : 155.dasm (9.09 % of base)
3 : 6242.dasm (0.59 % of base)
3 : 24227.dasm (0.59 % of base)
3 : 24226.dasm (0.59 % of base)
3 : 27043.dasm (0.60 % of base)
3 : 6243.dasm (0.59 % of base)
1 : 33497.dasm (0.05 % of base)
1 : 34879.dasm (0.05 % of base)
1 : 18316.dasm (0.05 % of base)
1 : 23295.dasm (0.05 % of base)
1 : 12344.dasm (0.05 % of base)
1 : 14773.dasm (0.05 % of base)
1 : 25187.dasm (0.05 % of base)
1 : 27774.dasm (0.05 % of base)
1 : 30218.dasm (0.05 % of base)
Top file improvements (bytes):
-53 : 3030.dasm (-27.32 % of base)
-18 : 22161.dasm (-1.06 % of base)
-6 : 5650.dasm (-0.89 % of base)
-6 : 22175.dasm (-0.37 % of base)
-6 : 2581.dasm (-0.89 % of base)
-6 : 2807.dasm (-0.89 % of base)
-6 : 6513.dasm (-0.82 % of base)
-5 : 20697.dasm (-0.12 % of base)
-3 : 27703.dasm (-0.06 % of base)
-3 : 35230.dasm (-0.04 % of base)
-3 : 7411.dasm (-0.33 % of base)
-2 : 410.dasm (-0.73 % of base)
-2 : 20009.dasm (-0.82 % of base)
-2 : 3601.dasm (-0.08 % of base)
-1 : 17889.dasm (-0.54 % of base)
-1 : 20688.dasm (-0.06 % of base)
36 total files with Code Size differences (16 improved, 20 regressed), 19 unchanged.
Top method regressions (bytes):
45 (1.61 % of base) : 14072.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
44 (0.45 % of base) : 3531.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
19 (1.12 % of base) : 24883.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
16 (4.04 % of base) : 23286.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
6 (0.30 % of base) : 3627.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (0.59 % of base) : 24226.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.60 % of base) : 27043.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 6242.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 6243.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 24227.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
1 (0.05 % of base) : 33497.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 34879.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 18316.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 23295.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 12344.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 14773.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 25187.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 27774.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 30218.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
Top method improvements (bytes):
-53 (-27.32 % of base) : 3030.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-18 (-1.06 % of base) : 22161.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.37 % of base) : 22175.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 5650.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 2581.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 2807.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.82 % of base) : 6513.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
-5 (-0.12 % of base) : 20697.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.06 % of base) : 27703.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.04 % of base) : 35230.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.33 % of base) : 7411.dasm - System.Text.RegularExpressions.Symbolic.BDD:Deserialize(System.ReadOnlySpan`1[ubyte]):System.Text.RegularExpressions.Symbolic.BDD (FullOpts)
-2 (-0.82 % of base) : 20009.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-2 (-0.73 % of base) : 410.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-2 (-0.08 % of base) : 3601.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
-1 (-0.06 % of base) : 20688.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-1 (-0.54 % of base) : 17889.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
Top method regressions (percentages):
3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
16 (4.04 % of base) : 23286.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
45 (1.61 % of base) : 14072.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
19 (1.12 % of base) : 24883.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
3 (0.60 % of base) : 27043.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 24226.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 6242.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 6243.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.59 % of base) : 24227.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
44 (0.45 % of base) : 3531.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
6 (0.30 % of base) : 3627.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
1 (0.05 % of base) : 33497.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 34879.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 18316.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 23295.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 12344.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 14773.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 25187.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 27774.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 30218.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
Top method improvements (percentages):
-53 (-27.32 % of base) : 3030.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-18 (-1.06 % of base) : 22161.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 5650.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 2581.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 2807.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.82 % of base) : 6513.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
-2 (-0.82 % of base) : 20009.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-2 (-0.73 % of base) : 410.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-1 (-0.54 % of base) : 17889.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
-6 (-0.37 % of base) : 22175.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-3 (-0.33 % of base) : 7411.dasm - System.Text.RegularExpressions.Symbolic.BDD:Deserialize(System.ReadOnlySpan`1[ubyte]):System.Text.RegularExpressions.Symbolic.BDD (FullOpts)
-5 (-0.12 % of base) : 20697.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-2 (-0.08 % of base) : 3601.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
-3 (-0.06 % of base) : 27703.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-1 (-0.06 % of base) : 20688.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.04 % of base) : 35230.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
36 total methods with Code Size differences (16 improved, 20 regressed).
benchmarks.run_pgo.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 71543293 (overridden on cmd)
Total bytes of diff: 71541224 (overridden on cmd)
Total bytes of delta: -2069 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
421 : 147580.dasm (4.75 % of base)
124 : 145003.dasm (1.34 % of base)
6 : 27031.dasm (2.90 % of base)
6 : 42363.dasm (1.66 % of base)
6 : 49481.dasm (1.65 % of base)
6 : 49502.dasm (1.65 % of base)
6 : 115120.dasm (2.90 % of base)
6 : 42391.dasm (1.66 % of base)
Top file improvements (bytes):
-83 : 14918.dasm (-3.22 % of base)
-83 : 3338.dasm (-3.20 % of base)
-80 : 15891.dasm (-21.22 % of base)
-66 : 10163.dasm (-5.06 % of base)
-66 : 4514.dasm (-6.19 % of base)
-63 : 9715.dasm (-5.73 % of base)
-63 : 65398.dasm (-5.73 % of base)
-62 : 1176.dasm (-3.76 % of base)
-62 : 3649.dasm (-5.83 % of base)
-62 : 5123.dasm (-5.83 % of base)
-62 : 180.dasm (-3.76 % of base)
-46 : 65656.dasm (-4.64 % of base)
-39 : 5480.dasm (-5.10 % of base)
-39 : 60807.dasm (-5.10 % of base)
-37 : 106075.dasm (-2.64 % of base)
-31 : 4482.dasm (-3.82 % of base)
-31 : 17815.dasm (-3.82 % of base)
-30 : 1658.dasm (-1.88 % of base)
-30 : 17666.dasm (-1.49 % of base)
-30 : 3037.dasm (-1.88 % of base)
59 total files with Code Size differences (51 improved, 8 regressed), 26 unchanged.
Top method regressions (bytes):
421 (4.75 % of base) : 147580.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
124 (1.34 % of base) : 145003.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
6 (1.66 % of base) : 42363.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.66 % of base) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.65 % of base) : 49481.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (1.65 % of base) : 49502.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (2.90 % of base) : 27031.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
6 (2.90 % of base) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
Top method improvements (bytes):
-83 (-3.22 % of base) : 14918.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-83 (-3.20 % of base) : 3338.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-80 (-21.22 % of base) : 15891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-66 (-6.19 % of base) : 4514.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-66 (-5.06 % of base) : 10163.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Instrumented Tier0)
-63 (-5.73 % of base) : 9715.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-63 (-5.73 % of base) : 65398.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-62 (-5.83 % of base) : 3649.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-62 (-5.83 % of base) : 5123.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-62 (-3.76 % of base) : 1176.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-62 (-3.76 % of base) : 180.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-46 (-4.64 % of base) : 65656.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Instrumented Tier0)
-39 (-5.10 % of base) : 5480.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-39 (-5.10 % of base) : 60807.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-37 (-2.64 % of base) : 106075.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Instrumented Tier0)
-31 (-3.82 % of base) : 4482.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-31 (-3.82 % of base) : 17815.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-30 (-1.49 % of base) : 17666.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Instrumented Tier0)
-30 (-1.88 % of base) : 1658.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
-30 (-1.88 % of base) : 3037.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
Top method regressions (percentages):
421 (4.75 % of base) : 147580.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
6 (2.90 % of base) : 27031.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
6 (2.90 % of base) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
6 (1.66 % of base) : 42363.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.66 % of base) : 42391.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.65 % of base) : 49481.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (1.65 % of base) : 49502.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
124 (1.34 % of base) : 145003.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (percentages):
-24 (-37.50 % of base) : 1060.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-11 (-23.40 % of base) : 82.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
-11 (-23.40 % of base) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
-3 (-21.43 % of base) : 21602.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
-3 (-21.43 % of base) : 2311.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 10987.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 86524.dasm - System.Runtime.Intrinsics.Vector256`1[ushort]:get_Count():int (Instrumented Tier0)
-80 (-21.22 % of base) : 15891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-11 (-19.64 % of base) : 4551.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
-11 (-19.64 % of base) : 1109.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-8 (-19.05 % of base) : 4598.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Instrumented Tier0)
-8 (-19.05 % of base) : 1111.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
-21 (-18.58 % of base) : 4282.dasm - System.Span`1[uint]:Clear():this (Tier0)
-9 (-16.67 % of base) : 81.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Instrumented Tier0)
-9 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-21 (-15.56 % of base) : 11545.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-23 (-12.30 % of base) : 20349.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-7 (-12.07 % of base) : 42492.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Instrumented Tier0)
-7 (-12.07 % of base) : 9651.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-11.86 % of base) : 102.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
benchmarks.run_tiered.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21423888 (overridden on cmd)
Total bytes of diff: 21422313 (overridden on cmd)
Total bytes of delta: -1575 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
76 : 51875.dasm (2.06 % of base)
44 : 64375.dasm (0.45 % of base)
6 : 28399.dasm (1.99 % of base)
6 : 30546.dasm (1.97 % of base)
6 : 64368.dasm (0.30 % of base)
Top file improvements (bytes):
-80 : 8188.dasm (-21.22 % of base)
-79 : 4062.dasm (-3.79 % of base)
-66 : 7173.dasm (-7.74 % of base)
-66 : 9290.dasm (-6.02 % of base)
-63 : 7727.dasm (-6.91 % of base)
-62 : 173.dasm (-4.77 % of base)
-62 : 4703.dasm (-7.29 % of base)
-46 : 34708.dasm (-5.71 % of base)
-39 : 13820.dasm (-7.36 % of base)
-37 : 49491.dasm (-2.81 % of base)
-31 : 9620.dasm (-4.48 % of base)
-30 : 19650.dasm (-1.55 % of base)
-30 : 1435.dasm (-2.43 % of base)
-29 : 30362.dasm (-2.43 % of base)
-29 : 61327.dasm (-3.35 % of base)
-24 : 938.dasm (-37.50 % of base)
-23 : 1152.dasm (-2.00 % of base)
-23 : 13698.dasm (-1.99 % of base)
-23 : 18562.dasm (-12.30 % of base)
-23 : 21624.dasm (-0.72 % of base)
62 total files with Code Size differences (57 improved, 5 regressed), 7 unchanged.
Top method regressions (bytes):
76 (2.06 % of base) : 51875.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
44 (0.45 % of base) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
6 (1.99 % of base) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
6 (1.97 % of base) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
6 (0.30 % of base) : 64368.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
Top method improvements (bytes):
-80 (-21.22 % of base) : 8188.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-79 (-3.79 % of base) : 4062.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
-66 (-7.74 % of base) : 7173.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-66 (-6.02 % of base) : 9290.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
-63 (-6.91 % of base) : 7727.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-62 (-7.29 % of base) : 4703.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-62 (-4.77 % of base) : 173.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Tier0)
-46 (-5.71 % of base) : 34708.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
-39 (-7.36 % of base) : 13820.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-37 (-2.81 % of base) : 49491.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Tier0)
-31 (-4.48 % of base) : 9620.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
-30 (-1.55 % of base) : 19650.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Tier0)
-30 (-2.43 % of base) : 1435.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Tier0)
-29 (-2.43 % of base) : 30362.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
-29 (-3.35 % of base) : 61327.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
-24 (-37.50 % of base) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-23 (-2.00 % of base) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
-23 (-1.99 % of base) : 13698.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
-23 (-0.72 % of base) : 21624.dasm - System.Collections.BitArray:CopyTo(System.Array,int):this (Tier0)
-23 (-12.30 % of base) : 18562.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
Top method regressions (percentages):
76 (2.06 % of base) : 51875.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
6 (1.99 % of base) : 28399.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
6 (1.97 % of base) : 30546.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
44 (0.45 % of base) : 64375.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
6 (0.30 % of base) : 64368.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
Top method improvements (percentages):
-24 (-37.50 % of base) : 938.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-11 (-23.40 % of base) : 47.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
-3 (-21.43 % of base) : 2069.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 5319.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
-80 (-21.22 % of base) : 8188.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-21 (-20.00 % of base) : 5846.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-11 (-19.64 % of base) : 968.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-8 (-19.05 % of base) : 969.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
-9 (-16.67 % of base) : 46.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-23 (-12.30 % of base) : 18562.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-7 (-12.07 % of base) : 5595.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-11.86 % of base) : 98.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-5 (-11.11 % of base) : 42699.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
-5 (-11.11 % of base) : 1678.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-8 (-10.53 % of base) : 2040.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
-4 (-10.53 % of base) : 59186.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-3 (-8.82 % of base) : 42360.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-7 (-7.78 % of base) : 30436.dasm - System.Enum+<>c__63`1[uint]:<FormatNumberAsHex>b__63_0(System.Span`1[ushort],long):this (Tier0)
-66 (-7.74 % of base) : 7173.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-8 (-7.48 % of base) : 45675.dasm - System.Version:GetHashCode():int:this (Tier0)
coreclr_tests.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 403358568 (overridden on cmd)
Total bytes of diff: 403234546 (overridden on cmd)
Total bytes of delta: -124022 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
704 : 583234.dasm (8.87 % of base)
417 : 420322.dasm (5.00 % of base)
364 : 583225.dasm (3.77 % of base)
165 : 594711.dasm (10.67 % of base)
149 : 491021.dasm (13.50 % of base)
92 : 596384.dasm (3.11 % of base)
91 : 493792.dasm (3.40 % of base)
84 : 593801.dasm (1.18 % of base)
81 : 531460.dasm (2.13 % of base)
66 : 488045.dasm (1.57 % of base)
51 : 488049.dasm (1.07 % of base)
34 : 205239.dasm (0.92 % of base)
32 : 198357.dasm (4.02 % of base)
24 : 403161.dasm (5.99 % of base)
21 : 402932.dasm (5.07 % of base)
21 : 402937.dasm (4.98 % of base)
21 : 403080.dasm (5.07 % of base)
21 : 403081.dasm (5.07 % of base)
21 : 403082.dasm (4.88 % of base)
21 : 402934.dasm (5.07 % of base)
Top file improvements (bytes):
-2558 : 298432.dasm (-4.99 % of base)
-891 : 296976.dasm (-67.65 % of base)
-303 : 298608.dasm (-6.50 % of base)
-297 : 298863.dasm (-21.38 % of base)
-272 : 598847.dasm (-11.43 % of base)
-271 : 274329.dasm (-2.88 % of base)
-252 : 276753.dasm (-9.97 % of base)
-246 : 297964.dasm (-12.19 % of base)
-241 : 285694.dasm (-18.41 % of base)
-241 : 297829.dasm (-45.56 % of base)
-239 : 298637.dasm (-3.64 % of base)
-235 : 298126.dasm (-8.64 % of base)
-224 : 276763.dasm (-8.69 % of base)
-197 : 298353.dasm (-14.95 % of base)
-191 : 284260.dasm (-21.95 % of base)
-165 : 298064.dasm (-8.26 % of base)
-163 : 285632.dasm (-8.62 % of base)
-160 : 298383.dasm (-1.43 % of base)
-157 : 298138.dasm (-6.52 % of base)
-150 : 14195.dasm (-14.22 % of base)
80 total files with Code Size differences (51 improved, 29 regressed), 20 unchanged.
Top method regressions (bytes):
704 (8.87 % of base) : 583234.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
417 (5.00 % of base) : 420322.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
364 (3.77 % of base) : 583225.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
165 (10.67 % of base) : 594711.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
149 (13.50 % of base) : 491021.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
92 (3.11 % of base) : 596384.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:AddBeforeAndAfterTargetMappings(Microsoft.Build.Construction.ProjectTargetElement,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.LinkedListNode`1[Microsoft.Build.Construction.ProjectTargetElement]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]]):this (FullOpts)
91 (3.40 % of base) : 493792.dasm - VectorTest:TestEntryPoint():int (FullOpts)
84 (1.18 % of base) : 593801.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
81 (2.13 % of base) : 531460.dasm - Test_throw2dimarray.App:Main():int (FullOpts)
66 (1.57 % of base) : 488045.dasm - div_r4._div:main():int (FullOpts)
51 (1.07 % of base) : 488049.dasm - div_r8._div:main():int (FullOpts)
34 (0.92 % of base) : 205239.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
32 (4.02 % of base) : 198357.dasm - ComWrappersTests.Common.ComWrappersHelper:Init[System.__Canon](byref,System.Object,ubyte,System.Runtime.InteropServices.ComWrappers,ulong) (Tier0)
24 (5.99 % of base) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)
21 (5.22 % of base) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)
21 (5.07 % of base) : 403080.dasm - MarshalSizeOf1:NegTest1():ubyte:this (FullOpts)
21 (5.07 % of base) : 403081.dasm - MarshalSizeOf1:NegTest2():ubyte:this (FullOpts)
21 (4.88 % of base) : 403082.dasm - MarshalSizeOf1:NegTest3():ubyte:this (FullOpts)
21 (5.07 % of base) : 402932.dasm - MarshalSizeOf2:NegTest1():ubyte:this (FullOpts)
21 (5.07 % of base) : 402934.dasm - MarshalSizeOf2:NegTest2():ubyte:this (FullOpts)
Top method improvements (bytes):
-2558 (-4.99 % of base) : 298432.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
-891 (-67.65 % of base) : 296976.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-303 (-6.50 % of base) : 298608.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-297 (-21.38 % of base) : 298863.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-272 (-11.43 % of base) : 598847.dasm - Tracing.Tests.ReverseValidation.ReverseValidation+<>c__DisplayClass0_1+<<TEST_ReverseConnectionCanRecycleWhileTracing>b__1>d:MoveNext():this (FullOpts)
-271 (-2.88 % of base) : 274329.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-252 (-9.97 % of base) : 276753.dasm - convr4a:Main():int (Tier0)
-246 (-12.19 % of base) : 297964.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-241 (-45.56 % of base) : 297829.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-241 (-18.41 % of base) : 285694.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-239 (-3.64 % of base) : 298637.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-235 (-8.64 % of base) : 298126.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-224 (-8.69 % of base) : 276763.dasm - convr8d:Main():int (Tier0)
-197 (-14.95 % of base) : 298353.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (Tier0)
-191 (-21.95 % of base) : 284260.dasm - ILGEN_941132142:main():int (Tier0)
-165 (-8.26 % of base) : 298064.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-163 (-8.62 % of base) : 285632.dasm - ILGEN_3171381355:main():int (Tier0)
-160 (-1.43 % of base) : 298383.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(long,int,byte,float,ushort,float):int (Tier0)
-157 (-6.52 % of base) : 298138.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-150 (-14.22 % of base) : 14195.dasm - testout1:Sub_Funclet_384():double (Tier0)
Top method regressions (percentages):
5 (27.78 % of base) : 284622.dasm - ILGEN_622380794:main():int (Tier0)
149 (13.50 % of base) : 491021.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
165 (10.67 % of base) : 594711.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
704 (8.87 % of base) : 583234.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
24 (5.99 % of base) : 403161.dasm - TypeGetType2:NegTest1():ubyte:this (FullOpts)
21 (5.22 % of base) : 584667.dasm - ArrayInit:PosTest1():ubyte:this (FullOpts)
17 (5.12 % of base) : 402876.dasm - TypeEquals1:NegTest1():ubyte:this (FullOpts)
17 (5.12 % of base) : 402871.dasm - TypeEquals1:PosTest1():ubyte:this (FullOpts)
17 (5.12 % of base) : 402875.dasm - TypeEquals1:PosTest5():ubyte:this (FullOpts)
3 (5.08 % of base) : 287972.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
21 (5.07 % of base) : 403080.dasm - MarshalSizeOf1:NegTest1():ubyte:this (FullOpts)
21 (5.07 % of base) : 403081.dasm - MarshalSizeOf1:NegTest2():ubyte:this (FullOpts)
21 (5.07 % of base) : 402932.dasm - MarshalSizeOf2:NegTest1():ubyte:this (FullOpts)
21 (5.07 % of base) : 402934.dasm - MarshalSizeOf2:NegTest2():ubyte:this (FullOpts)
15 (5.05 % of base) : 280473.dasm - Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
417 (5.00 % of base) : 420322.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
21 (4.98 % of base) : 402936.dasm - MarshalSizeOf2:NegTest3():ubyte:this (FullOpts)
21 (4.98 % of base) : 402937.dasm - MarshalSizeOf2:NegTest4():ubyte:this (FullOpts)
3 (4.92 % of base) : 285568.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
21 (4.88 % of base) : 403082.dasm - MarshalSizeOf1:NegTest3():ubyte:this (FullOpts)
Top method improvements (percentages):
-63 (-85.14 % of base) : 284167.dasm - _simple:main():int (Tier0)
-70 (-81.40 % of base) : 296961.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-47 (-81.03 % of base) : 285689.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-42 (-79.25 % of base) : 296598.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-38 (-77.55 % of base) : 297008.dasm - _n:main():int (Tier0)
-36 (-76.60 % of base) : 284117.dasm - _simple:main():int (Tier0)
-31 (-73.81 % of base) : 297016.dasm - s:main():int (Tier0)
-29 (-72.50 % of base) : 297724.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
-28 (-71.79 % of base) : 296690.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-27 (-71.05 % of base) : 296713.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-25 (-69.44 % of base) : 284113.dasm - _simple:main():int (Tier0)
-891 (-67.65 % of base) : 296976.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-121 (-66.48 % of base) : 7624.dasm - _add:main():int (Tier0)
-82 (-66.13 % of base) : 276533.dasm - JitTest_sizeof_Target_64Bit_and_arm_il.Test:Main():int (Tier0)
-20 (-64.52 % of base) : 284161.dasm - _simple:main():int (Tier0)
-17 (-60.71 % of base) : 284165.dasm - _simple:main():int (Tier0)
-16 (-59.26 % of base) : 297006.dasm - _shl:main():int (Tier0)
-38 (-58.46 % of base) : 270314.dasm - Test_sizeof.JitTest.Test:TestEntryPoint():int (Tier0)
-14 (-56.00 % of base) : 195714.dasm - ldc_i4_n:main():int (Tier0)
-14 (-56.00 % of base) : 216805.dasm - Program:Test3():ushort (Tier0)
libraries.crossgen2.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 38727480 (overridden on cmd)
Total bytes of diff: 38727235 (overridden on cmd)
Total bytes of delta: -245 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
3 : 26807.dasm (9.09 % of base)
1 : 211395.dasm (0.12 % of base)
1 : 233396.dasm (0.12 % of base)
1 : 66269.dasm (0.03 % of base)
1 : 39925.dasm (0.12 % of base)
1 : 95903.dasm (0.12 % of base)
Top file improvements (bytes):
-61 : 24605.dasm (-30.35 % of base)
-61 : 26511.dasm (-30.35 % of base)
-61 : 26541.dasm (-30.35 % of base)
-12 : 196332.dasm (-3.99 % of base)
-8 : 25523.dasm (-4.79 % of base)
-7 : 17238.dasm (-6.60 % of base)
-7 : 17241.dasm (-4.40 % of base)
-7 : 17235.dasm (-6.67 % of base)
-5 : 232838.dasm (-1.06 % of base)
-5 : 127092.dasm (-1.17 % of base)
-5 : 12136.dasm (-45.45 % of base)
-2 : 15316.dasm (-0.26 % of base)
-2 : 200962.dasm (-1.19 % of base)
-2 : 164390.dasm (-2.94 % of base)
-2 : 57829.dasm (-0.79 % of base)
-2 : 146983.dasm (-2.94 % of base)
-2 : 24910.dasm (-0.95 % of base)
-1 : 219914.dasm (-0.79 % of base)
-1 : 7472.dasm (-0.55 % of base)
25 total files with Code Size differences (19 improved, 6 regressed), 17 unchanged.
Top method regressions (bytes):
3 (9.09 % of base) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
1 (0.03 % of base) : 66269.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
1 (0.12 % of base) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 39925.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 95903.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
Top method improvements (bytes):
-61 (-30.35 % of base) : 26511.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-61 (-30.35 % of base) : 24605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-61 (-30.35 % of base) : 26541.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-12 (-3.99 % of base) : 196332.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-8 (-4.79 % of base) : 25523.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-7 (-6.67 % of base) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-7 (-6.60 % of base) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-7 (-4.40 % of base) : 17241.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-5 (-1.06 % of base) : 232838.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-5 (-1.17 % of base) : 127092.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-5 (-45.45 % of base) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-2 (-0.79 % of base) : 57829.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-2 (-2.94 % of base) : 164390.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-2.94 % of base) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.19 % of base) : 200962.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-2 (-0.95 % of base) : 24910.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-2 (-0.26 % of base) : 15316.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
-1 (-0.55 % of base) : 7472.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
-1 (-0.79 % of base) : 219914.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
Top method regressions (percentages):
3 (9.09 % of base) : 26807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
1 (0.12 % of base) : 211395.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 233396.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 39925.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.12 % of base) : 95903.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
1 (0.03 % of base) : 66269.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
Top method improvements (percentages):
-5 (-45.45 % of base) : 12136.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-61 (-30.35 % of base) : 26511.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-61 (-30.35 % of base) : 24605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-61 (-30.35 % of base) : 26541.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-7 (-6.67 % of base) : 17235.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-7 (-6.60 % of base) : 17238.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-8 (-4.79 % of base) : 25523.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-7 (-4.40 % of base) : 17241.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-12 (-3.99 % of base) : 196332.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-2 (-2.94 % of base) : 164390.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-2.94 % of base) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.19 % of base) : 200962.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-5 (-1.17 % of base) : 127092.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-5 (-1.06 % of base) : 232838.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-2 (-0.95 % of base) : 24910.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-2 (-0.79 % of base) : 57829.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-1 (-0.79 % of base) : 219914.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-1 (-0.55 % of base) : 7472.dasm - System.Half:op_Explicit(double):System.Half (FullOpts)
-2 (-0.26 % of base) : 15316.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
25 total methods with Code Size differences (19 improved, 6 regressed).
libraries.pmi.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 60296613 (overridden on cmd)
Total bytes of diff: 60306924 (overridden on cmd)
Total bytes of delta: 10311 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
824 : 62151.dasm (61.77 % of base)
728 : 62036.dasm (7.46 % of base)
727 : 188978.dasm (8.37 % of base)
727 : 171615.dasm (8.37 % of base)
699 : 62067.dasm (8.70 % of base)
611 : 62150.dasm (38.72 % of base)
577 : 246964.dasm (9.71 % of base)
423 : 60511.dasm (15.96 % of base)
419 : 60508.dasm (17.07 % of base)
419 : 60509.dasm (15.40 % of base)
330 : 60537.dasm (9.72 % of base)
282 : 60540.dasm (20.32 % of base)
282 : 60512.dasm (13.18 % of base)
282 : 60539.dasm (19.56 % of base)
275 : 60532.dasm (11.79 % of base)
256 : 96838.dasm (2.86 % of base)
254 : 60523.dasm (15.16 % of base)
250 : 60517.dasm (21.44 % of base)
221 : 109512.dasm (17.67 % of base)
179 : 155673.dasm (13.08 % of base)
Top file improvements (bytes):
-103 : 147882.dasm (-1.59 % of base)
-102 : 64765.dasm (-5.44 % of base)
-60 : 284699.dasm (-1.00 % of base)
-58 : 171643.dasm (-2.92 % of base)
-58 : 189006.dasm (-2.92 % of base)
-53 : 28807.dasm (-27.32 % of base)
-33 : 266739.dasm (-3.65 % of base)
-32 : 132077.dasm (-1.59 % of base)
-32 : 284628.dasm (-1.59 % of base)
-31 : 28809.dasm (-15.74 % of base)
-28 : 220732.dasm (-1.05 % of base)
-27 : 294668.dasm (-1.37 % of base)
-27 : 265608.dasm (-1.37 % of base)
-27 : 277642.dasm (-1.37 % of base)
-27 : 194828.dasm (-1.37 % of base)
-27 : 294203.dasm (-1.37 % of base)
-22 : 247595.dasm (-4.26 % of base)
-18 : 294464.dasm (-0.30 % of base)
-18 : 96991.dasm (-0.71 % of base)
-16 : 138693.dasm (-1.84 % of base)
67 total files with Code Size differences (36 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
824 (61.77 % of base) : 62151.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
728 (7.46 % of base) : 62036.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
727 (8.37 % of base) : 188978.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
727 (8.37 % of base) : 171615.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
699 (8.70 % of base) : 62067.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
611 (38.72 % of base) : 62150.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
577 (9.71 % of base) : 246964.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseHelper(System.Text.StringBuilder):this (FullOpts)
423 (15.96 % of base) : 60511.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
419 (17.07 % of base) : 60508.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
419 (15.40 % of base) : 60509.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
330 (9.72 % of base) : 60537.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
282 (13.18 % of base) : 60512.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
282 (19.56 % of base) : 60539.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
282 (20.32 % of base) : 60540.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
275 (11.79 % of base) : 60532.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
256 (2.86 % of base) : 96838.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
254 (15.16 % of base) : 60523.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
250 (21.44 % of base) : 60517.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
221 (17.67 % of base) : 109512.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
179 (13.08 % of base) : 155673.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
Top method improvements (bytes):
-103 (-1.59 % of base) : 147882.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-102 (-5.44 % of base) : 64765.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-60 (-1.00 % of base) : 284699.dasm - System.Net.Quic.MsQuicApi:.cctor() (FullOpts)
-58 (-2.92 % of base) : 171643.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-2.92 % of base) : 189006.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-53 (-27.32 % of base) : 28807.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-33 (-3.65 % of base) : 266739.dasm - System.DirectoryServices.Protocols.LdapConnection:InternalConnectToServer():int:this (FullOpts)
-32 (-1.59 % of base) : 132077.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-32 (-1.59 % of base) : 284628.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-31 (-15.74 % of base) : 28809.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-28 (-1.05 % of base) : 220732.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts)
-27 (-1.37 % of base) : 294668.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-27 (-1.37 % of base) : 265608.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-27 (-1.37 % of base) : 277642.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-27 (-1.37 % of base) : 194828.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-27 (-1.37 % of base) : 294203.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-22 (-4.26 % of base) : 247595.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-18 (-0.71 % of base) : 96991.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-18 (-0.30 % of base) : 294464.dasm - R2RDump.R2RDiff:ShowMethodDiff(System.Collections.Generic.Dictionary`2[System.String,int],System.Collections.Generic.Dictionary`2[System.String,int],System.String):this (FullOpts)
-16 (-1.84 % of base) : 138693.dasm - System.Xml.XmlDeclaration:get_InnerText():System.String:this (FullOpts)
Top method regressions (percentages):
824 (61.77 % of base) : 62151.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
132 (46.64 % of base) : 155687.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
611 (38.72 % of base) : 62150.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
136 (22.82 % of base) : 60611.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
136 (22.78 % of base) : 155588.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
141 (22.31 % of base) : 60528.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
141 (22.17 % of base) : 60525.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
250 (21.44 % of base) : 60517.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
282 (20.32 % of base) : 60540.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
282 (19.56 % of base) : 60539.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
170 (18.54 % of base) : 155674.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
221 (17.67 % of base) : 109512.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
419 (17.07 % of base) : 60508.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
423 (15.96 % of base) : 60511.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
419 (15.40 % of base) : 60509.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
254 (15.16 % of base) : 60523.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
282 (13.18 % of base) : 60512.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
179 (13.08 % of base) : 155673.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
141 (12.83 % of base) : 60507.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
275 (11.79 % of base) : 60532.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
Top method improvements (percentages):
-53 (-27.32 % of base) : 28807.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-31 (-15.74 % of base) : 28809.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-12 (-8.22 % of base) : 257265.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
-12 (-7.89 % of base) : 229184.dasm - System.Configuration.BaseConfigurationRecord:.cctor() (FullOpts)
-1 (-7.14 % of base) : 31409.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-102 (-5.44 % of base) : 64765.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-22 (-4.26 % of base) : 247595.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-33 (-3.65 % of base) : 266739.dasm - System.DirectoryServices.Protocols.LdapConnection:InternalConnectToServer():int:this (FullOpts)
-9 (-3.16 % of base) : 283237.dasm - System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,int):this (FullOpts)
-58 (-2.92 % of base) : 171643.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-2.92 % of base) : 189006.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-16 (-1.84 % of base) : 138693.dasm - System.Xml.XmlDeclaration:get_InnerText():System.String:this (FullOpts)
-2 (-1.72 % of base) : 164331.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.72 % of base) : 182013.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.65 % of base) : 60950.dasm - ILCompiler.CompilerTypeSystemContext:GetMetadataStringDecoder():System.Reflection.Metadata.MetadataStringDecoder:this (FullOpts)
-3 (-1.63 % of base) : 149918.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-32 (-1.59 % of base) : 132077.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-32 (-1.59 % of base) : 284628.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-103 (-1.59 % of base) : 147882.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-7 (-1.42 % of base) : 264238.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
libraries_tests.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 336741912 (overridden on cmd)
Total bytes of diff: 336626365 (overridden on cmd)
Total bytes of delta: -115547 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
249 : 719854.dasm (2.21 % of base)
234 : 669548.dasm (2.28 % of base)
229 : 667208.dasm (2.07 % of base)
218 : 588411.dasm (2.09 % of base)
128 : 675186.dasm (0.78 % of base)
122 : 588465.dasm (4.32 % of base)
111 : 89855.dasm (2.08 % of base)
94 : 92093.dasm (0.75 % of base)
84 : 69754.dasm (2.19 % of base)
82 : 713723.dasm (2.03 % of base)
71 : 72271.dasm (1.66 % of base)
66 : 704750.dasm (2.68 % of base)
59 : 674854.dasm (5.64 % of base)
46 : 732388.dasm (0.37 % of base)
46 : 63510.dasm (0.48 % of base)
24 : 715585.dasm (0.34 % of base)
22 : 707621.dasm (1.28 % of base)
21 : 707689.dasm (1.70 % of base)
21 : 707622.dasm (2.16 % of base)
20 : 114647.dasm (0.54 % of base)
Top file improvements (bytes):
-65536 : 496389.dasm (-30.77 % of base)
-4096 : 496146.dasm (-30.70 % of base)
-807 : 434423.dasm (-18.06 % of base)
-807 : 434892.dasm (-18.06 % of base)
-807 : 450072.dasm (-18.06 % of base)
-807 : 450212.dasm (-18.06 % of base)
-623 : 435174.dasm (-17.13 % of base)
-623 : 435798.dasm (-15.52 % of base)
-623 : 436949.dasm (-15.52 % of base)
-623 : 437194.dasm (-15.52 % of base)
-623 : 437577.dasm (-15.52 % of base)
-623 : 437602.dasm (-15.52 % of base)
-623 : 438022.dasm (-15.52 % of base)
-623 : 438762.dasm (-15.52 % of base)
-623 : 438838.dasm (-15.52 % of base)
-623 : 439254.dasm (-15.52 % of base)
-623 : 439885.dasm (-15.52 % of base)
-623 : 447782.dasm (-15.52 % of base)
-623 : 449562.dasm (-17.13 % of base)
-623 : 449697.dasm (-15.52 % of base)
88 total files with Code Size differences (54 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
249 (2.21 % of base) : 719854.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|24_6(byref) (Tier1)
234 (2.28 % of base) : 669548.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
229 (2.07 % of base) : 667208.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteNumbers(System.Text.Json.JsonWriterOptions,System.String):this (Tier1-OSR)
218 (2.09 % of base) : 588411.dasm - System.Security.Cryptography.X509Certificates.Tests.TestDataGenerator:MakeTestChain(System.ReadOnlySpan`1[System.Security.Cryptography.RSA],System.Span`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.Collections.Generic.IEnumerable`1[System.Security.Cryptography.X509Certificates.X509Extension],System.String) (Tier1)
128 (0.78 % of base) : 675186.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:InvalidJsonSingleSegment(System.String,int,int,int) (Tier1)
122 (4.32 % of base) : 588465.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
111 (2.08 % of base) : 89855.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
94 (0.75 % of base) : 92093.dasm - Microsoft.Interop.LibraryImportGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,Microsoft.Interop.StubEnvironment,Microsoft.Interop.TargetFrameworkSettings,Microsoft.Interop.LibraryImportGeneratorOptions,System.Threading.CancellationToken):Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext (Tier1)
84 (2.19 % of base) : 69754.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (Tier0-FullOpts)
82 (2.03 % of base) : 713723.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
71 (1.66 % of base) : 72271.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
66 (2.68 % of base) : 704750.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
59 (5.64 % of base) : 674854.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
46 (0.48 % of base) : 63510.dasm - Microsoft.Interop.UnmanagedToManagedStubGenerator:GenerateStubBody(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax:this (Tier1)
46 (0.37 % of base) : 732388.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1-OSR)
24 (0.34 % of base) : 715585.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
22 (1.28 % of base) : 707621.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
21 (2.16 % of base) : 707622.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
21 (1.70 % of base) : 707689.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
20 (0.54 % of base) : 114647.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Instrumented Tier1)
Top method improvements (bytes):
-65536 (-30.77 % of base) : 496389.dasm - TestType:meth1():int (Tier0)
-4096 (-30.70 % of base) : 496146.dasm - TestType:meth1():int (Tier0)
-807 (-18.06 % of base) : 450072.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-807 (-18.06 % of base) : 450212.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-807 (-18.06 % of base) : 434423.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-807 (-18.06 % of base) : 434892.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 439885.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 438838.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 437194.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 436949.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 437577.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 437602.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-623 (-17.13 % of base) : 435174.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized256|228_2[long,System.Numerics.Tensors.TensorPrimitives+MaxMagnitudePropagateNaNOperator`1[long]](byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-17.13 % of base) : 449562.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized256|228_2[long,System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[long]](byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 439254.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 438762.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 435798.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 449697.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 438022.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
-623 (-15.52 % of base) : 447782.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
Top method regressions (percentages):
3 (13.04 % of base) : 296450.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
3 (11.54 % of base) : 296451.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
6 (6.82 % of base) : 296448.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
4 (6.56 % of base) : 463629.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
59 (5.64 % of base) : 674854.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValue_JsonEncodedText_Large(int) (Tier1-OSR)
12 (5.63 % of base) : 383046.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
3 (5.08 % of base) : 325844.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier1)
4 (4.40 % of base) : 466965.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Instrumented Tier0)
122 (4.32 % of base) : 588465.dasm - System.Security.Cryptography.X509Certificates.Tests.DynamicChainTests:<BuildInvalidSignatureTwice>g__CheckChain|7_2(byref,byref,byref) (Tier1)
3 (3.16 % of base) : 260555.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
6 (2.84 % of base) : 713577.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
66 (2.68 % of base) : 704750.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
9 (2.64 % of base) : 744756.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
2 (2.35 % of base) : 512916.dasm - System.Runtime.InteropServices.Tests.CULongTests:Ctor_NUInt_LargeValue():this (Tier0)
234 (2.28 % of base) : 669548.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
2 (2.25 % of base) : 191020.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
2 (2.25 % of base) : 691967.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
5 (2.24 % of base) : 326368.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
249 (2.21 % of base) : 719854.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|24_6(byref) (Tier1)
84 (2.19 % of base) : 69754.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (Tier0-FullOpts)
Top method improvements (percentages):
-289 (-96.33 % of base) : 496411.dasm - TestType:meth1():int (Tier0)
-18 (-62.07 % of base) : 496410.dasm - TestType:meth1():int (Tier0)
-5 (-45.45 % of base) : 608423.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
-9 (-45.00 % of base) : 74278.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
-10 (-38.46 % of base) : 3295.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:.cctor() (Tier0)
-10 (-38.46 % of base) : 74459.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
-24 (-37.50 % of base) : 3376.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-6 (-35.29 % of base) : 496409.dasm - TestType:meth1():int (Tier0)
-9 (-34.62 % of base) : 452045.dasm - System.Numerics.Vector`1[ushort]:get_Count():int (Tier0)
-74 (-32.60 % of base) : 437232.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (Tier1)
-73 (-32.16 % of base) : 373848.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-65536 (-30.77 % of base) : 496389.dasm - TestType:meth1():int (Tier0)
-4096 (-30.70 % of base) : 496146.dasm - TestType:meth1():int (Tier0)
-62 (-30.24 % of base) : 712961.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-62 (-29.95 % of base) : 243584.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-128 (-28.76 % of base) : 496127.dasm - TestType:meth1():int (Tier0)
-55 (-28.06 % of base) : 386961.dasm - System.SpanHelpers:Fill[uint](byref,ulong,uint) (Tier1)
-55 (-27.78 % of base) : 382538.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-55 (-27.78 % of base) : 223145.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-11 (-26.19 % of base) : 198999.dasm - Microsoft.VisualBasic.Conversion:Oct(int):System.String (Tier0)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 132296201 (overridden on cmd)
Total bytes of diff: 132231535 (overridden on cmd)
Total bytes of delta: -64666 (-0.05 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
584 : 174017.dasm (4.40 % of base)
565 : 56662.dasm (7.35 % of base)
274 : 25617.dasm (4.07 % of base)
235 : 31923.dasm (2.17 % of base)
218 : 191751.dasm (3.53 % of base)
163 : 57583.dasm (8.02 % of base)
124 : 188419.dasm (8.53 % of base)
124 : 218898.dasm (18.87 % of base)
117 : 194662.dasm (10.24 % of base)
87 : 20778.dasm (0.76 % of base)
84 : 17588.dasm (2.19 % of base)
72 : 98501.dasm (2.76 % of base)
64 : 57566.dasm (6.36 % of base)
63 : 57629.dasm (6.05 % of base)
63 : 99314.dasm (3.90 % of base)
59 : 161087.dasm (1.77 % of base)
59 : 46266.dasm (1.25 % of base)
53 : 152704.dasm (2.51 % of base)
49 : 182804.dasm (3.28 % of base)
45 : 118030.dasm (1.61 % of base)
Top file improvements (bytes):
-65536 : 178445.dasm (-30.77 % of base)
-251 : 161125.dasm (-15.05 % of base)
-198 : 161094.dasm (-9.12 % of base)
-198 : 161118.dasm (-9.12 % of base)
-198 : 161145.dasm (-9.12 % of base)
-175 : 213962.dasm (-5.10 % of base)
-166 : 214207.dasm (-6.41 % of base)
-139 : 214200.dasm (-3.70 % of base)
-138 : 214052.dasm (-7.01 % of base)
-132 : 214149.dasm (-5.06 % of base)
-116 : 204616.dasm (-4.11 % of base)
-94 : 161137.dasm (-6.38 % of base)
-94 : 161105.dasm (-6.38 % of base)
-84 : 41504.dasm (-1.67 % of base)
-81 : 161107.dasm (-12.35 % of base)
-79 : 214215.dasm (-4.46 % of base)
-78 : 161143.dasm (-9.64 % of base)
-78 : 161129.dasm (-9.64 % of base)
-69 : 137801.dasm (-31.08 % of base)
-69 : 161106.dasm (-8.21 % of base)
75 total files with Code Size differences (39 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
584 (4.40 % of base) : 174017.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
565 (7.35 % of base) : 56662.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
274 (4.07 % of base) : 25617.dasm - Microsoft.CSharp.RuntimeBinder.Tests.UserDefinedShortCircuitOperators:CannotShortCircuitWithBoolCast():this (FullOpts)
235 (2.17 % of base) : 31923.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderCollectionTests:TestOptionsWithDifferentCollectionInterfaces():this (FullOpts)
218 (3.53 % of base) : 191751.dasm - System.Numerics.Tests.ComplexTests:ToStringTest(double,double) (FullOpts)
163 (8.02 % of base) : 57583.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
124 (8.53 % of base) : 188419.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
124 (18.87 % of base) : 218898.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
117 (10.24 % of base) : 194662.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
87 (0.76 % of base) : 20778.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
84 (2.19 % of base) : 17588.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
72 (2.76 % of base) : 98501.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
64 (6.36 % of base) : 57566.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:CopyDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
63 (6.05 % of base) : 57629.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:MoveDirectory_SourceDirectoryName_DestinationDirectoryName_OverwriteTrue():this (FullOpts)
63 (3.90 % of base) : 99314.dasm - System.Diagnostics.FileVersionInfo:ToString():System.String:this (FullOpts)
59 (1.25 % of base) : 46266.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
59 (1.77 % of base) : 161087.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
53 (2.51 % of base) : 152704.dasm - System.Net.Quic.Tests.QuicTestBase:.cctor() (FullOpts)
49 (3.28 % of base) : 182804.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
45 (1.61 % of base) : 118030.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
Top method improvements (bytes):
-65536 (-30.77 % of base) : 178445.dasm - TestType:meth1():int (Tier0-MinOpts)
-251 (-15.05 % of base) : 161125.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest1():this (FullOpts)
-198 (-9.12 % of base) : 161094.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
-198 (-9.12 % of base) : 161145.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
-198 (-9.12 % of base) : 161118.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
-175 (-5.10 % of base) : 213962.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-166 (-6.41 % of base) : 214207.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected_BodyProtected():this (FullOpts)
-139 (-3.70 % of base) : 214200.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_AddSignatureWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-138 (-7.01 % of base) : 214052.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
-132 (-5.06 % of base) : 214149.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-116 (-4.11 % of base) : 204616.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-94 (-6.38 % of base) : 161137.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest():this (FullOpts)
-94 (-6.38 % of base) : 161105.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest():this (FullOpts)
-84 (-1.67 % of base) : 41504.dasm - Microsoft.Extensions.Logging.Test.EventSourceLoggerTest:VerifySingleEvent(System.String,System.String,System.String,System.Nullable`1[int],System.String,System.Nullable`1[int],System.String[]) (FullOpts)
-81 (-12.35 % of base) : 161107.dasm - System.Numerics.Tests.QuaternionTests:QuaternionCreateFromAxisAngleTest2():this (FullOpts)
-79 (-4.46 % of base) : 214215.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithStringAlgorithm():this (FullOpts)
-78 (-9.64 % of base) : 161129.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest2():this (FullOpts)
-78 (-9.64 % of base) : 161143.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest2():this (FullOpts)
-69 (-8.21 % of base) : 161106.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest4():this (FullOpts)
-69 (-31.08 % of base) : 137801.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
Top method regressions (percentages):
124 (18.87 % of base) : 218898.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
25 (14.88 % of base) : 119025.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_0():System.Object:this (FullOpts)
25 (14.88 % of base) : 119026.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
25 (14.88 % of base) : 119045.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
25 (14.88 % of base) : 119046.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
25 (14.88 % of base) : 119047.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
25 (14.88 % of base) : 119048.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
25 (14.88 % of base) : 119049.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_14():System.Object:this (FullOpts)
25 (14.88 % of base) : 119029.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_2():System.Object:this (FullOpts)
25 (14.88 % of base) : 119032.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
25 (14.88 % of base) : 119033.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
25 (14.88 % of base) : 119036.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
25 (14.88 % of base) : 119038.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_6():System.Object:this (FullOpts)
25 (14.88 % of base) : 119039.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
25 (14.88 % of base) : 119040.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
25 (14.88 % of base) : 119044.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
117 (10.24 % of base) : 194662.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
124 (8.53 % of base) : 188419.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
163 (8.02 % of base) : 57583.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
15 (7.50 % of base) : 119012.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests:SupportedEntryType_HardLink():this (FullOpts)
Top method improvements (percentages):
-69 (-31.08 % of base) : 137801.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-65536 (-30.77 % of base) : 178445.dasm - TestType:meth1():int (Tier0-MinOpts)
-53 (-27.32 % of base) : 143983.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-53 (-27.32 % of base) : 18649.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-53 (-27.32 % of base) : 143347.dasm - System.SpanHelpers:Fill[uint](byref,ulong,uint) (FullOpts)
-3 (-18.75 % of base) : 206073.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_1():System.Object:this (FullOpts)
-3 (-18.75 % of base) : 206074.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
-251 (-15.05 % of base) : 161125.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest1():this (FullOpts)
-3 (-14.29 % of base) : 206275.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_24():System.Object:this (FullOpts)
-3 (-14.29 % of base) : 206277.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_26():System.Object:this (FullOpts)
-9 (-13.85 % of base) : 76890.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
-81 (-12.35 % of base) : 161107.dasm - System.Numerics.Tests.QuaternionTests:QuaternionCreateFromAxisAngleTest2():this (FullOpts)
-10 (-10.87 % of base) : 76865.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
-10 (-10.87 % of base) : 76868.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-9 (-10.71 % of base) : 76892.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-78 (-9.64 % of base) : 161129.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest2():this (FullOpts)
-78 (-9.64 % of base) : 161143.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest2():this (FullOpts)
-198 (-9.12 % of base) : 161094.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
-198 (-9.12 % of base) : 161145.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
-198 (-9.12 % of base) : 161118.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
realworld.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13168575 (overridden on cmd)
Total bytes of diff: 13169177 (overridden on cmd)
Total bytes of delta: 602 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
565 : 26808.dasm (7.35 % of base)
216 : 27365.dasm (2.60 % of base)
76 : 16545.dasm (2.06 % of base)
54 : 27142.dasm (1.19 % of base)
34 : 26538.dasm (0.91 % of base)
34 : 26837.dasm (1.35 % of base)
34 : 26840.dasm (1.07 % of base)
31 : 26809.dasm (0.74 % of base)
28 : 27143.dasm (1.47 % of base)
19 : 26544.dasm (1.26 % of base)
15 : 1427.dasm (7.65 % of base)
7 : 26687.dasm (0.34 % of base)
7 : 26794.dasm (0.20 % of base)
6 : 5096.dasm (0.89 % of base)
5 : 7520.dasm (0.31 % of base)
3 : 155.dasm (9.09 % of base)
1 : 11198.dasm (0.05 % of base)
1 : 29492.dasm (0.05 % of base)
Top file improvements (bytes):
-101 : 12280.dasm (-34.24 % of base)
-69 : 12435.dasm (-31.08 % of base)
-53 : 12242.dasm (-27.32 % of base)
-26 : 16278.dasm (-0.82 % of base)
-23 : 12101.dasm (-2.23 % of base)
-21 : 15785.dasm (-2.38 % of base)
-19 : 12102.dasm (-2.13 % of base)
-18 : 26552.dasm (-1.06 % of base)
-17 : 12231.dasm (-1.27 % of base)
-16 : 12255.dasm (-0.67 % of base)
-14 : 12078.dasm (-0.65 % of base)
-11 : 26939.dasm (-0.75 % of base)
-8 : 12617.dasm (-3.25 % of base)
-8 : 12633.dasm (-1.11 % of base)
-8 : 12743.dasm (-1.09 % of base)
-8 : 15991.dasm (-0.33 % of base)
-7 : 13596.dasm (-1.30 % of base)
-7 : 15704.dasm (-2.50 % of base)
-6 : 14599.dasm (-0.89 % of base)
-6 : 16478.dasm (-0.17 % of base)
44 total files with Code Size differences (26 improved, 18 regressed), 16 unchanged.
Top method regressions (bytes):
565 (7.35 % of base) : 26808.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
216 (2.60 % of base) : 27365.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
76 (2.06 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
54 (1.19 % of base) : 27142.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
34 (0.91 % of base) : 26538.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
34 (1.35 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (1.07 % of base) : 26840.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
31 (0.74 % of base) : 26809.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
28 (1.47 % of base) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
19 (1.26 % of base) : 26544.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
15 (7.65 % of base) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
7 (0.20 % of base) : 26794.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
7 (0.34 % of base) : 26687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
6 (0.89 % of base) : 5096.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@9344-646:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
5 (0.31 % of base) : 7520.dasm - FSharp.Compiler.ParseAndCheckInputs:f@846-44(FSharp.Compiler.ParseAndCheckInputs+TcState,FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.CompilerImports+TcImports,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CompilerConfig+TcConfig,ubyte,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]],FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,ubyte],Microsoft.FSharp.Core.Unit):Internal.Utilities.Library.Cancellable`1[System.Tuple`2[System.Tuple`4[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+TopAttribs,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TypedImplFile],FSharp.Compiler.TypedTree+ModuleOrNamespaceType],FSharp.Compiler.ParseAndCheckInputs+TcState]] (FullOpts)
3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
1 (0.05 % of base) : 11198.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 29492.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
Top method improvements (bytes):
-101 (-34.24 % of base) : 12280.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
-69 (-31.08 % of base) : 12435.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-53 (-27.32 % of base) : 12242.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-26 (-0.82 % of base) : 16278.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-23 (-2.23 % of base) : 12101.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-21 (-2.38 % of base) : 15785.dasm - Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass44_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeVectorHashGetter>b__1(byref):this (FullOpts)
-19 (-2.13 % of base) : 12102.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-18 (-1.06 % of base) : 26552.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-17 (-1.27 % of base) : 12231.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-16 (-0.67 % of base) : 12255.dasm - SixLabors.ImageSharp.Formats.Bmp.BmpEncoderCore:Write24Bit[SixLabors.ImageSharp.PixelFormats.Rgba32](System.IO.Stream,SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-14 (-0.65 % of base) : 12078.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:CollectTPixelBytes[SixLabors.ImageSharp.PixelFormats.Rgba32](System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-11 (-0.75 % of base) : 26939.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
-8 (-0.33 % of base) : 15991.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAssemblyReferences(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineReference]) (FullOpts)
-8 (-3.25 % of base) : 12617.dasm - Microsoft.ML.RandomUtils:Create(System.Nullable`1[int]):Microsoft.ML.TauswortheHybrid (FullOpts)
-8 (-1.11 % of base) : 12633.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-8 (-1.09 % of base) : 12743.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-7 (-1.30 % of base) : 13596.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,System.ReadOnlySpan`1[ushort],ubyte):uint (FullOpts)
-7 (-2.50 % of base) : 15704.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
-6 (-0.17 % of base) : 16478.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-6 (-0.89 % of base) : 14599.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
Top method regressions (percentages):
3 (9.09 % of base) : 155.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
15 (7.65 % of base) : 1427.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
565 (7.35 % of base) : 26808.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
216 (2.60 % of base) : 27365.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
76 (2.06 % of base) : 16545.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
28 (1.47 % of base) : 27143.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (1.35 % of base) : 26837.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
19 (1.26 % of base) : 26544.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
54 (1.19 % of base) : 27142.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
34 (1.07 % of base) : 26840.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (0.91 % of base) : 26538.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
6 (0.89 % of base) : 5096.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@9344-646:Invoke(Internal.Utilities.Text.Parsing.IParseState):System.Object:this (FullOpts)
31 (0.74 % of base) : 26809.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
7 (0.34 % of base) : 26687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
5 (0.31 % of base) : 7520.dasm - FSharp.Compiler.ParseAndCheckInputs:f@846-44(FSharp.Compiler.ParseAndCheckInputs+TcState,FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.CompilerImports+TcImports,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CompilerConfig+TcConfig,ubyte,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]],FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,ubyte],Microsoft.FSharp.Core.Unit):Internal.Utilities.Library.Cancellable`1[System.Tuple`2[System.Tuple`4[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+TopAttribs,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TypedImplFile],FSharp.Compiler.TypedTree+ModuleOrNamespaceType],FSharp.Compiler.ParseAndCheckInputs+TcState]] (FullOpts)
7 (0.20 % of base) : 26794.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
1 (0.05 % of base) : 11198.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
1 (0.05 % of base) : 29492.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
Top method improvements (percentages):
-101 (-34.24 % of base) : 12280.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
-69 (-31.08 % of base) : 12435.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-53 (-27.32 % of base) : 12242.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-8 (-3.25 % of base) : 12617.dasm - Microsoft.ML.RandomUtils:Create(System.Nullable`1[int]):Microsoft.ML.TauswortheHybrid (FullOpts)
-7 (-2.50 % of base) : 15704.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
-21 (-2.38 % of base) : 15785.dasm - Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass44_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeVectorHashGetter>b__1(byref):this (FullOpts)
-23 (-2.23 % of base) : 12101.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-19 (-2.13 % of base) : 12102.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-2 (-1.72 % of base) : 16344.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-7 (-1.30 % of base) : 13596.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,System.ReadOnlySpan`1[ushort],ubyte):uint (FullOpts)
-17 (-1.27 % of base) : 12231.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-8 (-1.11 % of base) : 12633.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-8 (-1.09 % of base) : 12743.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-18 (-1.06 % of base) : 26552.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 14599.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-26 (-0.82 % of base) : 16278.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-2 (-0.82 % of base) : 16206.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-4 (-0.75 % of base) : 11939.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromRgb24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgb24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-11 (-0.75 % of base) : 26939.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
-2 (-0.73 % of base) : 409.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
smoke_tests.nativeaot.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 4067946 (overridden on cmd)
Total bytes of diff: 4067800 (overridden on cmd)
Total bytes of delta: -146 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
13 : 5822.dasm (6.10 % of base)
3 : 23759.dasm (9.38 % of base)
3 : 26466.dasm (9.38 % of base)
3 : 19024.dasm (9.38 % of base)
3 : 9553.dasm (9.38 % of base)
Top file improvements (bytes):
-61 : 8495.dasm (-30.35 % of base)
-61 : 18063.dasm (-29.33 % of base)
-12 : 14858.dasm (-16.00 % of base)
-12 : 13983.dasm (-16.67 % of base)
-6 : 16566.dasm (-0.89 % of base)
-5 : 8944.dasm (-45.45 % of base)
-5 : 20414.dasm (-33.33 % of base)
-3 : 7871.dasm (-1.44 % of base)
-2 : 1254.dasm (-0.79 % of base)
-2 : 6257.dasm (-4.00 % of base)
-2 : 6258.dasm (-4.00 % of base)
16 total files with Code Size differences (11 improved, 5 regressed), 20 unchanged.
Top method regressions (bytes):
13 (6.10 % of base) : 5822.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
3 (9.38 % of base) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 9553.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
Top method improvements (bytes):
-61 (-30.35 % of base) : 8495.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-61 (-29.33 % of base) : 18063.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-12 (-16.67 % of base) : 13983.dasm - System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts)
-12 (-16.00 % of base) : 14858.dasm - System.Threading.Thread:get_IsThreadPoolThread():ubyte:this (FullOpts)
-6 (-0.89 % of base) : 16566.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-5 (-45.45 % of base) : 8944.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-5 (-33.33 % of base) : 20414.dasm - System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
-3 (-1.44 % of base) : 7871.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
-2 (-4.00 % of base) : 6257.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-2 (-4.00 % of base) : 6258.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-2 (-0.79 % of base) : 1254.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
Top method regressions (percentages):
3 (9.38 % of base) : 23759.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 26466.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 19024.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (9.38 % of base) : 9553.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
13 (6.10 % of base) : 5822.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
Top method improvements (percentages):
-5 (-45.45 % of base) : 8944.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-5 (-33.33 % of base) : 20414.dasm - System.Threading.Thread:HasStarted():ubyte:this (FullOpts)
-61 (-30.35 % of base) : 8495.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-61 (-29.33 % of base) : 18063.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-12 (-16.67 % of base) : 13983.dasm - System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts)
-12 (-16.00 % of base) : 14858.dasm - System.Threading.Thread:get_IsThreadPoolThread():ubyte:this (FullOpts)
-2 (-4.00 % of base) : 6257.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-2 (-4.00 % of base) : 6258.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-1.44 % of base) : 7871.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
-6 (-0.89 % of base) : 16566.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-2 (-0.79 % of base) : 1254.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
16 total methods with Code Size differences (11 improved, 5 regressed).
osx arm64
Diffs are based on 2,270,502 contexts (932,669 MinOpts, 1,337,833 FullOpts).
MISSED contexts: base: 26 (0.00%), diff: 368 (0.02%)
Overall (-474,772 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.osx.arm64.checked.mch |
11,173,068 |
-140 |
benchmarks.run_pgo.osx.arm64.checked.mch |
34,426,604 |
-4,868 |
benchmarks.run_tiered.osx.arm64.checked.mch |
15,500,708 |
-1,484 |
coreclr_tests.run.osx.arm64.checked.mch |
486,244,460 |
-111,348 |
libraries.crossgen2.osx.arm64.checked.mch |
55,725,900 |
-420 |
libraries.pmi.osx.arm64.checked.mch |
80,156,664 |
+12,424 |
libraries_tests.run.osx.arm64.Release.mch |
324,305,936 |
-242,572 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
162,361,664 |
-126,996 |
realworld.run.osx.arm64.checked.mch |
15,054,404 |
+632 |
MinOpts (-486,704 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
16,301,300 |
-2,056 |
benchmarks.run_tiered.osx.arm64.checked.mch |
11,504,484 |
-1,436 |
coreclr_tests.run.osx.arm64.checked.mch |
332,612,924 |
-110,376 |
libraries_tests.run.osx.arm64.Release.mch |
203,715,848 |
-241,764 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
13,153,728 |
-131,072 |
FullOpts (+11,932 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.osx.arm64.checked.mch |
11,172,532 |
-140 |
benchmarks.run_pgo.osx.arm64.checked.mch |
18,125,304 |
-2,812 |
benchmarks.run_tiered.osx.arm64.checked.mch |
3,996,224 |
-48 |
coreclr_tests.run.osx.arm64.checked.mch |
153,631,536 |
-972 |
libraries.crossgen2.osx.arm64.checked.mch |
55,724,272 |
-420 |
libraries.pmi.osx.arm64.checked.mch |
80,035,536 |
+12,424 |
libraries_tests.run.osx.arm64.Release.mch |
120,590,088 |
-808 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
149,207,936 |
+4,076 |
realworld.run.osx.arm64.checked.mch |
14,490,448 |
+632 |
Example diffs
benchmarks.run.osx.arm64.checked.mch
-16 (-2.27%) : 8358.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 8608.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 8736.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+0.95%) : 17058.dasm - System.Formats.Tar.Tests.PerfTarWriter+<V7TarEntryWriteEntryAsync>d_7:MoveNext():this (FullOpts)
@@ -17,29 +17,29 @@
; V06 loc5 [V06,T37] ( 4, 2 ) ref -> x19 class-hnd single-def <System.Object>
; V07 loc6 [V07 ] ( 8, 8 ) struct (16) [fp+0x18] do-not-enreg[XSFR] multireg-ret must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret ld-addr-op <System.Threading.Tasks.ValueTask>
-; V09 loc8 [V09,T51] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
+; V09 loc8 [V09,T49] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
;* V10 loc9 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V13 tmp2 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V14 tmp3 [V14,T07] ( 6, 10 ) ref -> x23 class-hnd exact single-def "impAppendStmt" <System.Formats.Tar.TarWriter>
-; V15 tmp4 [V15,T52] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V15 tmp4 [V15,T50] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V16 tmp5 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V17 tmp6 [V17,T12] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
-; V18 tmp7 [V18,T53] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V18 tmp7 [V18,T51] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V19 tmp8 [V19,T08] ( 5, 8 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp9 [V20,T44] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V21 tmp10 [V21,T03] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V23 tmp12 [V23,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V23 tmp12 [V23,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp14 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V26 tmp15 [V26,T45] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V28 tmp17 [V28,T46] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V28 tmp17 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V29 tmp18 [V29,T25] ( 3, 3 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V30 tmp19 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;* V31 tmp20 [V31,T48] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V31 tmp20 [V31,T46] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp23 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -52,7 +52,7 @@
;* V41 tmp30 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V42 tmp31 [V42,T13] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V43 tmp32 [V43 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter>
-;* V44 tmp33 [V44,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V44 tmp33 [V44,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V45 tmp34 [V45,T09] ( 7, 7 ) ref -> x20 class-hnd single-def "Inline stloc first use temp" <System.Object>
; V46 tmp35 [V46,T33] ( 2, 2 ) int -> x0
; V47 tmp36 [V47,T26] ( 3, 3 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
@@ -93,18 +93,18 @@
;* V82 tmp71 [V82 ] ( 0, 0 ) ubyte -> zero-ref "field V08._continueOnCapturedContext (fldOffset=0xa)" P-DEP
; V83 tmp72 [V83,T42] ( 2, 2 ) short -> x0 "field V22._offsetMinutes (fldOffset=0x0)" P-INDEP
; V84 tmp73 [V84,T43] ( 2, 2 ) long -> x1 "field V22._dateTime (fldOffset=0x8)" P-INDEP
-;* V85 tmp74 [V85,T47] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
+;* V85 tmp74 [V85,T45] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
; V86 tmp75 [V86,T39] ( 2, 2 ) ref -> x0 single-def "field V34.m_task (fldOffset=0x0)" P-INDEP
-; V87 tmp76 [V87,T54] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V87 tmp76 [V87,T52] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V88 tmp77 [V88,T20] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V89 tmp78 [V89,T21] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V90 PSPSym [V90,T50] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V90 PSPSym [V90,T48] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
; V91 cse0 [V91,T29] ( 3, 3 ) ref -> x22 "CSE - moderate"
; V92 cse1 [V92,T36] ( 3, 3 ) int -> x1 "CSE - moderate"
; V93 cse2 [V93,T30] ( 3, 3 ) ref -> x1 "CSE - moderate"
; V94 cse3 [V94,T31] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V95 cse4 [V95,T05] ( 7, 14 ) byref -> x0 "CSE - aggressive"
-; V96 cse5 [V96,T11] ( 3, 3 ) ref -> x1 multi-def "CSE - aggressive"
+; V96 cse5 [V96,T11] ( 6, 6 ) ref -> x1 multi-def "CSE - aggressive"
; V97 cse6 [V97,T32] ( 3, 3 ) ref -> x23 "CSE - moderate"
;
; Lcl frame size = 40
@@ -199,10 +199,23 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb wzr, [x23, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x1]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x1 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x23
@@ -230,7 +243,7 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
; byrRegs -[x14]
str xzr, [x23, #0x10]
str wzr, [x23, #0x1C]
- ;; size=224 bbWeight=1 PerfScore 50.50
+ ;; size=244 bbWeight=1 PerfScore 53.50
G_M28013_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x23]
cbz w20, G_M28013_IG08
@@ -958,7 +971,7 @@ G_M28013_IG47: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2116, prolog size 44, PerfScore 514.00, instruction count 529, allocated bytes for code 2116 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
+; Total bytes of code 2136, prolog size 44, PerfScore 517.00, instruction count 534, allocated bytes for code 2136 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -969,7 +982,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 490 (0x001ea) Actual length = 1960 (0x0007a8)
+ Function Length : 495 (0x001ef) Actual length = 1980 (0x0007bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+4.17%) : 16951.dasm - System.Formats.Tar.Tests.PerfTarWriter:V7TarEntryWriteEntry():this (FullOpts)
@@ -17,17 +17,17 @@
;* V06 tmp3 [V06,T08] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V07 tmp4 [V07,T00] ( 10, 20 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V09 tmp6 [V09,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V09 tmp6 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V14 tmp11 [V14,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V15 tmp12 [V15,T06] ( 2, 2 ) short -> x0 "field V08._offsetMinutes (fldOffset=0x0)" P-INDEP
; V16 tmp13 [V16,T07] ( 2, 2 ) long -> x1 "field V08._dateTime (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T12] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V18 PSPSym [V18,T11] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-;* V19 cse0 [V19,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 tmp14 [V17,T10] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V18 PSPSym [V18,T09] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V19 cse0 [V19,T04] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -110,10 +110,23 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
strh w0, [x22, #0x88]
str x1, [x22, #0x90]
strb wzr, [x22, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x22, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ add x14, x22, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x22, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x20, #8
; byrRegs +[x14]
mov x15, x22
@@ -132,7 +145,7 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
; gcr arg pop 0
str x0, [fp, #0x10] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=176 bbWeight=1 PerfScore 36.00
+ ;; size=196 bbWeight=1 PerfScore 39.00
G_M5976_IG06: ; bbWeight=1, gcVars=0000000000000020 {V02}, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, gcvars, byref
mov x1, x20
; gcrRegs +[x1]
@@ -222,7 +235,7 @@ G_M5976_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 480, prolog size 28, PerfScore 78.00, instruction count 120, allocated bytes for code 480 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
+; Total bytes of code 500, prolog size 28, PerfScore 81.00, instruction count 125, allocated bytes for code 500 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
; ============================================================
Unwind Info:
@@ -233,7 +246,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 104 (0x00068) Actual length = 416 (0x0001a0)
+ Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_pgo.osx.arm64.checked.mch
-16 (-28.57%) : 2422.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-28.57%) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 754.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 34505.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
@@ -130,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -148,7 +150,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -173,7 +177,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -184,7 +188,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -195,7 +199,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 29011.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.70%) : 412.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
@@ -37,8 +37,9 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmn w0, #1
beq G_M19587_IG04
ldr w0, [fp, #0x14] // [V01 loc0]
- and w0, w0, #0xD1FFAB1E
- ;; size=76 bbWeight=1 PerfScore 21.00
+ sxtw x0, w0
+ uxth w0, w0
+ ;; size=80 bbWeight=1 PerfScore 21.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -51,7 +52,7 @@ G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.osx.arm64.checked.mch
-16 (-28.57%) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 757.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-21.43%) : 758.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
@@ -21,18 +21,15 @@ G_M32312_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x14] // [V01 arg1]
ldr w1, [fp, #0x18] // [V00 arg0]
sub w0, w0, w1
- mov w1, #16
- sub w1, w1, #1
- mvn w1, w1
- and w0, w0, w1
+ and w0, w0, #0xD1FFAB1E
mov w0, w0
- ;; size=32 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M32312_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 11.00, instruction count 11, allocated bytes for code 44 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.70%) : 413.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
@@ -37,8 +37,9 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmn w0, #1
beq G_M19587_IG04
ldr w0, [fp, #0x14] // [V01 loc0]
- and w0, w0, #0xD1FFAB1E
- ;; size=76 bbWeight=1 PerfScore 21.00
+ sxtw x0, w0
+ uxth w0, w0
+ ;; size=80 bbWeight=1 PerfScore 21.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -51,7 +52,7 @@ G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 27677.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
@@ -112,7 +112,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -132,7 +134,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -157,7 +161,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -168,7 +172,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================
Unwind Info:
@@ -179,7 +183,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 27788.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
@@ -110,7 +110,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -128,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -153,7 +157,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -164,7 +168,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================
Unwind Info:
@@ -175,7 +179,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.osx.arm64.checked.mch
-44 (-68.75%) : 293129.dasm - _simple:main():int (Tier0)
@@ -14,25 +14,14 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movn w0, #0
- neg w0, w0
- cmp w0, #1
- cset x0, eq
- sub w0, w0, #1
- mov w1, #1
- neg w1, w1
- cmn w1, #1
- cset x1, eq
- sub w1, w1, #1
- orr w0, w0, w1
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 6.00
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 64, prolog size 8, PerfScore 9.50, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-68.75%) : 293178.dasm - _simple:main():int (Tier0)
@@ -13,31 +13,15 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr d16, [@RWD00]
- ldr d17, [@RWD08]
- fadd d16, d16, d17
- ldr d17, [@RWD16]
- fmul d16, d16, d17
- ldr d17, [@RWD24]
- fcmp d16, d17
- cset x0, lo
- scvtf d16, w0
- fcmp d16, #0.0
- cset x0, gt
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 22.50
+G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dq 061F619384F62E0Eh ; 3.45758597e-279
-RWD08 dq 638961F533A745DFh ; 3.06538108e+171
-RWD16 dq 73DD472C6FD616C1h ; 1.31014133e+250
-RWD24 dq 073DD472C6FD66C1h ; 8.61579601e-274
-
-; Total bytes of code 64, prolog size 8, PerfScore 26.00, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -48,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-66.67%) : 304620.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
@@ -13,27 +13,15 @@ G_M4347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movn w0, #0
- mov w1, #1
- umull x0, w0, w1
- lsr x2, x0, #32
- cmp w2, #0
- bne G_M4347_IG04
- mov w1, #4
- lsr w0, w1, w0
- add w0, w0, #100
- ;; size=36 bbWeight=1 PerfScore 7.00
+G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M4347_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M4347_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- bl CORINFO_HELP_OVERFLOW
- brk_unix #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 8, PerfScore 10.50, instruction count 15, allocated bytes for code 60 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -44,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.57%) : 294428.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
@@ -37,8 +37,9 @@ G_M19587_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
- uxth w0, w19
- ;; size=20 bbWeight=0.50 PerfScore 1.50
+ sxtw x0, w19
+ uxth w0, w0
+ ;; size=24 bbWeight=0.50 PerfScore 1.75
G_M19587_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -57,7 +58,7 @@ G_M19587_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 17.50, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
+; Total bytes of code 116, prolog size 12, PerfScore 17.75, instruction count 29, allocated bytes for code 116 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
; ============================================================
Unwind Info:
@@ -68,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+4.17%) : 300200.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -37,17 +37,18 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0 x19]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=68 bbWeight=1 PerfScore 14.50
+ ;; size=72 bbWeight=1 PerfScore 15.00
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 21.50, instruction count 24, allocated bytes for code 96 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 22.00, instruction count 25, allocated bytes for code 100 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -58,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+4.17%) : 580956.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -34,7 +34,8 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w9, #1
- uxth w10, w0
+ sxtw x10, w0
+ uxth w10, w10
cmn w0, #1
csel w0, w9, w10, eq
movz x10, #0xD1FFAB1E
@@ -42,13 +43,13 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x10, #1 LSL #32
add x11, fp, #16
bl CORINFO_HELP_PROF_FCN_LEAVE
- ;; size=60 bbWeight=1 PerfScore 11.00
+ ;; size=64 bbWeight=1 PerfScore 11.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 28, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 100, prolog size 28, PerfScore 18.00, instruction count 25, allocated bytes for code 100 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +60,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.crossgen2.osx.arm64.checked.mch
-16 (-11.11%) : 12317.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp+0x10] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str x2, [fp, #-0x08] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str x2, [fp, #0x10] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M56019_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #8 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #16 // [V02 arg2]
str x11, [x4]
mov w11, #8
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M56019_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-11.11%) : 12314.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp+0x14] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str w2, [fp, #-0x04] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str w2, [fp, #0x14] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M63626_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M63626_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #4 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #20 // [V02 arg2]
str x11, [x4]
mov w11, #4
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M63626_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-8.00%) : 12320.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
@@ -12,27 +12,27 @@
; V00 this [V00,T01] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T02] ( 3, 2.50) int -> x1 single-def
; V02 arg2 [V02,T00] ( 7, 4.50) ref -> x2 class-hnd <System.String>
-;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref
-; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp-0x08] must-init pinned
+;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref ptr
+; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp+0x10] must-init pinned ptr
; V05 loc2 [V05,T03] ( 5, 2.50) long -> x11
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T05] ( 3, 1.50) long -> x4
-;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V09 tmp3 [V09,T04] ( 2, 2 ) long -> x4 "Cast away GC"
-; V10 GsCookie [V10 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp2 [V08 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp4 [V10,T04] ( 2, 2 ) long -> x4 "Cast away GC"
+; V11 GsCookie [V11 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M49383_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
- str xzr, [fp, #-0x08] // [V04 loc1]
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V04 loc1]
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V10 GsCookie]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V11 GsCookie]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M49383_IG02: ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x2]
ldrb w4, [x0, #0x9D]
@@ -55,13 +55,12 @@ G_M49383_IG04: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
G_M49383_IG05: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
add x4, x2, #12
; byrRegs +[x4]
- str x4, [fp, #-0x08] // [V04 loc1]
- ldr x4, [fp, #-0x08] // [V04 loc1]
+ str x4, [fp, #0x10] // [V04 loc1]
+ ldr x4, [fp, #0x10] // [V04 loc1]
;; size=12 bbWeight=0.50 PerfScore 1.75
G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
; byrRegs -[x4]
- ldr wzr, [sp], #-0x10
- mov x11, sp
+ add x11, fp, #24 // [V08 tmp2]
str x4, [x11]
ldr w4, [x2, #0x08]
lsl w4, w4, #1
@@ -76,13 +75,13 @@ G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- str xzr, [fp, #-0x08] // [V04 loc1]
- ;; size=60 bbWeight=0.50 PerfScore 8.25
+ str xzr, [fp, #0x10] // [V04 loc1]
+ ;; size=56 bbWeight=0.50 PerfScore 7.25
G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V10 GsCookie]
+ ldr xip1, [fp, #0x28] // [V11 GsCookie]
cmp xip0, xip1
beq G_M49383_IG08
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -91,32 +90,30 @@ G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M49383_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 200, prolog size 32, PerfScore 42.75, instruction count 50, allocated bytes for code 200 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
+; Total bytes of code 184, prolog size 28, PerfScore 40.25, instruction count 46, allocated bytes for code 184 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 50 (0x00032) Actual length = 200 (0x0000c8)
- --- One epilog, unwind codes at 0
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+0 (0.00%) : 186496.dasm - System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
@@ -9,19 +9,19 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Text.ISO2022Encoding>
-; V01 arg1 [V01,T01] ( 22, 12 ) byref -> x19 single-def
+; V01 arg1 [V01,T00] ( 23, 12.50) byref -> x19 single-def
; V02 loc0 [V02,T05] ( 4, 3 ) int -> x0
; V03 loc1 [V03,T04] ( 6, 3 ) ubyte -> x0
; V04 loc2 [V04,T02] ( 11, 5.50) ubyte -> x1
-; V05 loc3 [V05,T07] ( 3, 1.50) ubyte -> x1
+; V05 loc3 [V05,T08] ( 3, 1.50) ubyte -> x1
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref
-; V08 tmp2 [V08,T08] ( 3, 1.50) int -> x0
+; V08 tmp2 [V08,T09] ( 3, 1.50) int -> x0
; V09 tmp3 [V09,T11] ( 2, 1 ) int -> x2
-; V10 cse0 [V10,T09] ( 3, 1.50) int -> x1 "CSE - moderate"
-; V11 cse1 [V11,T10] ( 3, 1.50) int -> x1 "CSE - moderate"
-; V12 cse2 [V12,T00] ( 29, 14.50) int -> x0 multi-def "CSE - aggressive"
-; V13 cse3 [V13,T06] ( 4, 2 ) int -> x0 "CSE - aggressive"
+; V10 cse0 [V10,T10] ( 3, 1.50) int -> x1 "CSE - moderate"
+; V11 cse1 [V11,T06] ( 5, 2.50) int -> x1 multi-def "CSE - aggressive"
+; V12 cse2 [V12,T01] ( 28, 14 ) int -> x0 multi-def "CSE - aggressive"
+; V13 cse3 [V13,T07] ( 4, 2 ) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -208,7 +208,7 @@ G_M64903_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
bls G_M64903_IG22
cmp w0, #0xD1FFAB1E
blt G_M64903_IG20
- uxtb w1, w0
+ ldrb w1, [x19]
cmp w1, #161
blt G_M64903_IG22
cmp w1, #255
@@ -220,7 +220,7 @@ G_M64903_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
mov w2, #0xD1FFAB1E
cmp w1, w2
beq G_M64903_IG22
- ;; size=72 bbWeight=0.50 PerfScore 7.25
+ ;; size=72 bbWeight=0.50 PerfScore 8.50
G_M64903_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
mov w1, #0xD1FFAB1E
and w0, w0, w1
@@ -249,7 +249,7 @@ G_M64903_IG25: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 676, prolog size 12, PerfScore 78.25, instruction count 169, allocated bytes for code 676 (MethodHash=f8fa0278) for method System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
+; Total bytes of code 676, prolog size 12, PerfScore 79.50, instruction count 169, allocated bytes for code 676 (MethodHash=f8fa0278) for method System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.12%) : 200266.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,12 +8,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
; V01 loc0 [V01 ] ( 4, 4 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.String>
; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -21,10 +20,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
str w0, [fp, #0x18] // [V01 loc0]
add x0, fp, #24 // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -63,7 +63,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 128, prolog size 12, PerfScore 34.00, instruction count 32, allocated bytes for code 128 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 34.50, instruction count 33, allocated bytes for code 132 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +74,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.69%) : 21813.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.osx.arm64.checked.mch
-36 (-19.57%) : 8853.dasm - System.SpanHelpers:Fill[System.Numerics.Vector1[float]](byref,ulong,System.Numerics.Vector
1[float]) (FullOpts)
@@ -10,19 +10,19 @@
;
; V00 arg0 [V00,T02] ( 10, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T03] ( 8, 5.50) long -> x1 single-def
-; V02 arg2 [V02,T09] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
-; V03 loc0 [V03,T04] ( 12, 6 ) long -> x2
+; V02 arg2 [V02,T08] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
+; V03 loc0 [V03,T05] ( 7, 3.50) long -> x2
;* V04 loc1 [V04 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ld-addr-op <System.Numerics.Vector`1[float]>
-; V05 loc2 [V05,T08] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T07] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 9.50) byref -> x0 single-def
; V07 loc4 [V07,T06] ( 4, 2 ) long -> x2
-; V08 loc5 [V08,T05] ( 2, 4.50) long -> x3
+; V08 loc5 [V08,T04] ( 2, 4.50) long -> x3
; V09 loc6 [V09,T00] ( 7, 21 ) long -> x4
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V11 loc8 [V11 ] ( 0, 0 ) long -> zero-ref
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V14 tmp2 [V14,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -64,19 +64,10 @@ G_M26735_IG07: ; bbWeight=0.50, epilog, nogc, extend
G_M26735_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
mov x2, xzr
tbz w1, #2, G_M26735_IG09
- lsl x3, x2, #4
- str q0, [x0, x3]
- add x3, x2, #1
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #2
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #3
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x2, x2, #4
- ;; size=56 bbWeight=0.50 PerfScore 5.75
+ stp q0, q0, [x0]
+ stp q0, q0, [x0, #0x20]
+ mov x2, #4
+ ;; size=20 bbWeight=0.50 PerfScore 2.00
G_M26735_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
tbz w1, #1, G_M26735_IG10
lsl x3, x2, #4
@@ -97,7 +88,7 @@ G_M26735_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 184, prolog size 8, PerfScore 36.25, instruction count 46, allocated bytes for code 184 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
+; Total bytes of code 148, prolog size 8, PerfScore 32.50, instruction count 37, allocated bytes for code 148 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +99,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-12.50%) : 16125.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,9 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> x0 this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> x0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 3 ) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -21,16 +22,15 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
; byrRegs +[x0]
ldrh w1, [x0]
- ldrh w2, [x0]
- orr w1, w1, w2, LSL #16
+ orr w1, w1, w1, LSL #16
str w1, [x0]
- ;; size=16 bbWeight=1 PerfScore 8.00
+ ;; size=12 bbWeight=1 PerfScore 5.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 11.50, instruction count 8, allocated bytes for code 32 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 28, prolog size 8, PerfScore 8.50, instruction count 7, allocated bytes for code 28 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-11.11%) : 31107.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -10,33 +10,32 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp+0x10] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
movk x3, #0xD1FFAB1E LSL #48
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str x2, [fp, #-0x08] // [V02 arg2]
- ;; size=36 bbWeight=1 PerfScore 6.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str x2, [fp, #0x10] // [V02 arg2]
+ ;; size=32 bbWeight=1 PerfScore 5.50
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M56019_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x2, fp, #8 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x2, fp, #16 // [V02 arg2]
str x2, [x4]
mov w2, #8
stp w2, wzr, [x4, #0x08]
@@ -48,44 +47,42 @@ G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x5]
blr x5
; gcrRegs -[x0]
- ;; size=52 bbWeight=0.50 PerfScore 6.00
+ ;; size=48 bbWeight=0.50 PerfScore 5.00
G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
movk xip0, #0xD1FFAB1E LSL #32
movk xip0, #0xD1FFAB1E LSL #48
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M56019_IG05
bl CORINFO_HELP_FAIL_FAST
;; size=32 bbWeight=1 PerfScore 6.50
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 32, PerfScore 25.50, instruction count 36, allocated bytes for code 144 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 128, prolog size 28, PerfScore 23.00, instruction count 32, allocated bytes for code 128 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+4 (+3.33%) : 219169.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,13 +8,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> x20 single-def "argument with side effect"
; V05 tmp3 [V05,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V06 cse0 [V06,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -22,10 +21,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
movz x1, #0xD1FFAB1E // code for System.Number:Int32ToDecStr(int):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
@@ -61,7 +61,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 120, prolog size 12, PerfScore 27.00, instruction count 30, allocated bytes for code 120 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 27.50, instruction count 31, allocated bytes for code 124 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+6.85%) : 310216.dasm - System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
@@ -15,17 +15,17 @@
; V04 tmp1 [V04,T04] ( 3, 4 ) int -> x22 "impAppendStmt"
; V05 tmp2 [V05,T00] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V07 tmp4 [V07,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp5 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V10 tmp7 [V10,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T11] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V13 tmp10 [V13,T07] ( 2, 2 ) short -> x0 "field V06._offsetMinutes (fldOffset=0x0)" P-INDEP
; V14 tmp11 [V14,T08] ( 2, 2 ) long -> x1 "field V06._dateTime (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T12] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V15 tmp12 [V15,T10] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V16 cse0 [V16,T05] ( 4, 3.50) int -> x22 "CSE - aggressive"
-;* V17 cse1 [V17,T06] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 cse1 [V17,T06] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -99,10 +99,23 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb w20, [x23, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x21, #8
; byrRegs +[x14]
mov x15, x23
@@ -110,7 +123,7 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x21 x23]
; byrRegs -[x14]
- ;; size=104 bbWeight=1 PerfScore 20.50
+ ;; size=124 bbWeight=1 PerfScore 23.50
G_M15258_IG08: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -138,7 +151,7 @@ G_M15258_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
brk_unix #0
;; size=52 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 20, PerfScore 47.25, instruction count 73, allocated bytes for code 292 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
+; Total bytes of code 312, prolog size 20, PerfScore 50.25, instruction count 78, allocated bytes for code 312 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
; ============================================================
Unwind Info:
@@ -149,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 73 (0x00049) Actual length = 292 (0x000124)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 1127.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries_tests.run.osx.arm64.Release.mch
-28 (-58.33%) : 413424.dasm - TestType:meth1():int (Tier0)
@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- mov w1, #1
- add w1, w1, #1
- add w1, w1, #1
- add w0, w0, w1
- add w0, w0, #2
- add w0, w0, #1
- ;; size=32 bbWeight=1 PerfScore 4.00
+ mov w0, #8
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 48, prolog size 8, PerfScore 7.50, instruction count 12, allocated bytes for code 48 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-37.50%) : 413423.dasm - TestType:meth1():int (Tier0)
@@ -14,17 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- add w0, w0, #1
- add w0, w0, #1
- ;; size=16 bbWeight=1 PerfScore 2.00
+ mov w0, #4
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 5.50, instruction count 8, allocated bytes for code 32 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-28.57%) : 72492.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
@@ -14,16 +14,14 @@ G_M23088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M23088_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #0xD1FFAB1E
- mov w1, #8
- udiv w0, w0, w1
- ;; size=12 bbWeight=1 PerfScore 12.00
+ mov w0, #64
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M23088_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 15.50, instruction count 7, allocated bytes for code 28 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 166740.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
@@ -19,20 +19,21 @@ G_M43989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
sxtb w0, w0
sxtw x0, w0
- and x0, x0, #255
+ uxtb w0, w0
+ mov w0, w0
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #2 LSL #32
ldr x1, [x1]
blr x1
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 9.50
G_M43989_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 13.50, instruction count 14, allocated bytes for code 56 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
+; Total bytes of code 60, prolog size 8, PerfScore 14.00, instruction count 15, allocated bytes for code 60 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +44,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+12.50%) : 245419.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,14 +18,15 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
asr w0, w0, #16
+ uxth w0, w0
sxth w0, w0
- ;; size=12 bbWeight=1 PerfScore 3.50
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 36, prolog size 8, PerfScore 8.50, instruction count 9, allocated bytes for code 36 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -36,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 9 (0x00009) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 245418.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,14 +17,15 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
+ uxth w0, w0
sxth w0, w0
- ;; size=8 bbWeight=1 PerfScore 2.50
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 7.00, instruction count 7, allocated bytes for code 28 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 7.50, instruction count 8, allocated bytes for code 32 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
-8 (-6.90%) : 72747.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass50:b__0():this (FullOpts)
@@ -32,9 +32,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M1950_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- add x1, x1, x2
+ add x1, x1, #12
; gcrRegs -[x1]
; byrRegs +[x1]
ldr w2, [x1]
@@ -44,7 +42,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; byrRegs -[x1]
add w1, w1, #1
str w1, [x0, #0x14]
- ;; size=68 bbWeight=1 PerfScore 25.50
+ ;; size=60 bbWeight=1 PerfScore 24.50
G_M1950_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
@@ -63,7 +61,7 @@ G_M1950_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 116, prolog size 8, PerfScore 29.00, instruction count 29, allocated bytes for code 116 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-6.25%) : 72649.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__0():System.Object:this (FullOpts)
@@ -39,14 +39,12 @@ G_M55567_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M55567_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- ldr w1, [x1, x2]
+ ldr w1, [x1, #0x0C]
; gcrRegs -[x1]
tst w1, #0xD1FFAB1E
cset x1, ne
strb w1, [x0, #0x08]
- ;; size=72 bbWeight=1 PerfScore 23.50
+ ;; size=64 bbWeight=1 PerfScore 22.50
G_M55567_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -66,7 +64,7 @@ G_M55567_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 12, PerfScore 30.00, instruction count 32, allocated bytes for code 128 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 29.00, instruction count 30, allocated bytes for code 120 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-6.25%) : 72655.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__2():System.Object:this (FullOpts)
@@ -39,14 +39,12 @@ G_M31437_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M31437_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- ldr w1, [x1, x2]
+ ldr w1, [x1, #0x0C]
; gcrRegs -[x1]
tst w1, #0xD1FFAB1E
cset x1, ne
strb w1, [x0, #0x08]
- ;; size=72 bbWeight=1 PerfScore 23.50
+ ;; size=64 bbWeight=1 PerfScore 22.50
G_M31437_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -66,7 +64,7 @@ G_M31437_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 128, prolog size 12, PerfScore 30.00, instruction count 32, allocated bytes for code 128 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 29.00, instruction count 30, allocated bytes for code 120 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 115952.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_110():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #77
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M58814_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=620c1a41) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=620c1a41) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 115960.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_112():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M34684_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #78
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M34684_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M34684_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=bd957883) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=bd957883) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 115964.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_113():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M15069_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #83
strb w14, [x20, #0x84]
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #1 LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M15069_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M15069_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=09aac522) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=09aac522) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
realworld.run.osx.arm64.checked.mch
-4 (-4.00%) : 4634.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
@@ -31,8 +31,7 @@ G_M26680_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w2, w1
- and w2, w2, #0xD1FFAB1E
+ and w2, w1, #0xD1FFAB1E
sxtw w3, w2
and x4, x0, #0xD1FFAB1E
asr x4, x4, #24
@@ -41,7 +40,7 @@ G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w2, w5, w2
cmp w2, w3
bgt G_M26680_IG04
- ;; size=40 bbWeight=1 PerfScore 6.50
+ ;; size=36 bbWeight=1 PerfScore 6.00
G_M26680_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
@@ -62,7 +61,7 @@ G_M26680_IG05: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 100, prolog size 8, PerfScore 12.50, instruction count 25, allocated bytes for code 100 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 12.00, instruction count 24, allocated bytes for code 96 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
; ============================================================
Unwind Info:
@@ -73,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-2.11%) : 5099.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
@@ -84,10 +84,8 @@ G_M52754_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M52754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov w4, w1
- and w4, w4, #0xD1FFAB1E
- mov w5, w3
- and w5, w5, #0xD1FFAB1E
+ and w4, w1, #0xD1FFAB1E
+ and w5, w3, #0xD1FFAB1E
cmp w4, w5
bgt G_M52754_IG08
cmp w4, w5
@@ -98,7 +96,7 @@ G_M52754_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
asr x7, x7, #24
cmp w6, w7
ble G_M52754_IG09
- ;; size=56 bbWeight=0.50 PerfScore 4.75
+ ;; size=48 bbWeight=0.50 PerfScore 4.25
G_M52754_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x6, x2
mov x7, x3
@@ -184,7 +182,7 @@ G_M52754_IG16: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 380, prolog size 8, PerfScore 34.25, instruction count 95, allocated bytes for code 380 (MethodHash=9aa731ed) for method FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
+; Total bytes of code 372, prolog size 8, PerfScore 33.75, instruction count 93, allocated bytes for code 372 (MethodHash=9aa731ed) for method FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
; ============================================================
Unwind Info:
@@ -195,7 +193,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.89%) : 7420.dasm - FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
@@ -52,8 +52,7 @@ G_M49839_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
str xzr, [fp, #0x18] // [V07 tmp4]
and x2, x20, #0xD1FFAB1E
asr x2, x2, #24
- mov w1, w21
- and w1, w1, #0xD1FFAB1E
+ and w1, w21, #0xD1FFAB1E
add x0, fp, #24 // [V07 tmp4]
movz x3, #0xD1FFAB1E // code for FSharp.Compiler.Text.Position:.ctor(int,int):this
movk x3, #0xD1FFAB1E LSL #16
@@ -83,7 +82,7 @@ G_M49839_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ldr x0, [fp, #0x10] // [V22 tmp19]
cmp x22, x0
bne G_M49839_IG05
- ;; size=128 bbWeight=1 PerfScore 35.50
+ ;; size=124 bbWeight=1 PerfScore 35.00
G_M49839_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -108,7 +107,7 @@ G_M49839_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 212, prolog size 16, PerfScore 46.50, instruction count 53, allocated bytes for code 212 (MethodHash=cef13d50) for method FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 46.00, instruction count 52, allocated bytes for code 208 (MethodHash=cef13d50) for method FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -119,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 53 (0x00035) Actual length = 212 (0x0000d4)
+ Function Length : 52 (0x00034) Actual length = 208 (0x0000d0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.17%) : 1617.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 5, 5 ) byref -> x20 this single-def
+; V00 this [V00,T01] ( 4, 4 ) byref -> x20 this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> x21 single-def
; V02 arg2 [V02,T00] ( 6, 6 ) ref -> x19 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 3 ) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
-; V06 tmp2 [V06,T04] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
-;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V05 tmp1 [V05,T05] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
+; V06 tmp2 [V06,T06] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T04] ( 2, 4 ) byref -> x22 single-def "Inlining Arg"
+; V08 tmp4 [V08,T07] ( 2, 4 ) int -> x0 "Inlining Arg"
+; V09 tmp5 [V09,T08] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V10 tmp6 [V10,T09] ( 2, 4 ) long -> x1 "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V12 tmp8 [V12 ] ( 3, 3 ) long -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V13 tmp9 [V13 ] ( 2, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
; V14 tmp10 [V14 ] ( 2, 2 ) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
-; V15 cse0 [V15,T05] ( 3, 3 ) byref -> x22 "CSE - aggressive"
-; V16 cse1 [V16,T06] ( 3, 3 ) long -> x23 "CSE - aggressive"
+; V15 cse0 [V15,T03] ( 4, 4 ) byref -> x22 "CSE - aggressive"
+; V16 cse1 [V16,T10] ( 3, 3 ) long -> x23 "CSE - aggressive"
;
; Lcl frame size = 24
@@ -64,14 +64,15 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
mov w1, w21
blr x3
; gcrRegs -[x0]
- ; byrRegs -[x2 x22]
- ldr x0, [x20, #0x08]
+ ; byrRegs -[x2]
+ ldr w0, [x20, #0x04]
+ ldr x3, [x22]
ldr x1, [fp, #0x18] // [V12 tmp8]
- ldr w2, [x20, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ lsl w0, w0, #2
+ mov w2, w0
+ mov x0, x3
bl CORINFO_HELP_MEMCPY
- ; byrRegs -[x20]
+ ; byrRegs -[x20 x22]
mov x0, x19
; gcrRegs +[x0]
mov x1, x23
@@ -86,7 +87,7 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x19]
- ;; size=132 bbWeight=1 PerfScore 29.00
+ ;; size=136 bbWeight=1 PerfScore 29.50
G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
@@ -95,7 +96,7 @@ G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 184, prolog size 20, PerfScore 41.00, instruction count 46, allocated bytes for code 184 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 188, prolog size 20, PerfScore 41.50, instruction count 47, allocated bytes for code 188 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -106,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+3.39%) : 1252.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -15,16 +15,16 @@
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V06 tmp2 [V06,T04] ( 3, 3 ) int -> x0 "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T08] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
+; V08 tmp4 [V08,T09] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> x22 "Inline return value spill temp"
+; V11 tmp7 [V11,T13] ( 2, 1 ) int -> x22 "Inline return value spill temp"
; V12 tmp8 [V12,T05] ( 3, 3 ) int -> x1 "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V13 tmp9 [V13,T07] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V14 tmp10 [V14,T10] ( 2, 2 ) int -> x1 "Inlining Arg"
+; V15 tmp11 [V15,T11] ( 2, 2 ) long -> x0 "Inlining Arg"
+; V16 tmp12 [V16,T12] ( 2, 2 ) long -> x3 "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V18 tmp14 [V18,T06] ( 3, 3 ) int -> x1 "Inline stloc first use temp"
; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> x0 single-def "impAppendStmt"
@@ -78,11 +78,15 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
blr x3
; gcrRegs -[x0]
; byrRegs -[x2]
- ldr x0, [x19, #0x08]
- ldr x1, [fp, #0x10] // [V20 tmp16]
- ldr w2, [x19, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ add x0, x19, #8
+ ; byrRegs +[x0]
+ ldr w1, [x19, #0x04]
+ ldr x0, [x0]
+ ; byrRegs -[x0]
+ ldr x3, [fp, #0x10] // [V20 tmp16]
+ lsl w1, w1, #2
+ mov w2, w1
+ mov x1, x3
bl CORINFO_HELP_MEMCPY
mov x0, x20
; gcrRegs +[x0]
@@ -100,7 +104,7 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x20]
- ;; size=152 bbWeight=0.50 PerfScore 18.50
+ ;; size=160 bbWeight=0.50 PerfScore 19.00
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
add x0, x19, #8
; byrRegs +[x0]
@@ -118,7 +122,7 @@ G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 236, prolog size 16, PerfScore 44.00, instruction count 59, allocated bytes for code 236 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 244, prolog size 16, PerfScore 44.50, instruction count 61, allocated bytes for code 244 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.osx.arm64.checked.mch |
36 |
13 |
12 |
11 |
-244 |
+104 |
benchmarks.run_pgo.osx.arm64.checked.mch |
238 |
145 |
6 |
87 |
-4,960 |
+92 |
benchmarks.run_tiered.osx.arm64.checked.mch |
143 |
89 |
7 |
47 |
-1,668 |
+184 |
coreclr_tests.run.osx.arm64.checked.mch |
6,743 |
5,791 |
148 |
804 |
-114,592 |
+3,244 |
libraries.crossgen2.osx.arm64.checked.mch |
45 |
19 |
2 |
24 |
-428 |
+8 |
libraries.pmi.osx.arm64.checked.mch |
188 |
56 |
81 |
51 |
-1,020 |
+13,444 |
libraries_tests.run.osx.arm64.Release.mch |
878 |
527 |
46 |
305 |
-243,812 |
+1,240 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
400 |
195 |
103 |
102 |
-133,248 |
+6,252 |
realworld.run.osx.arm64.checked.mch |
97 |
62 |
14 |
21 |
-712 |
+1,344 |
|
8,768 |
6,897 |
419 |
1,452 |
-500,684 |
+25,912 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.osx.arm64.checked.mch |
24,851 |
4 |
24,847 |
0 (0.00%) |
9 (0.04%) |
benchmarks.run_pgo.osx.arm64.checked.mch |
83,807 |
48,088 |
35,719 |
0 (0.00%) |
10 (0.01%) |
benchmarks.run_tiered.osx.arm64.checked.mch |
48,114 |
37,350 |
10,764 |
0 (0.00%) |
10 (0.02%) |
coreclr_tests.run.osx.arm64.checked.mch |
585,809 |
356,765 |
229,044 |
26 (0.00%) |
79 (0.01%) |
libraries.crossgen2.osx.arm64.checked.mch |
234,105 |
15 |
234,090 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.osx.arm64.checked.mch |
316,328 |
18 |
316,310 |
0 (0.00%) |
20 (0.01%) |
libraries_tests.run.osx.arm64.Release.mch |
643,767 |
468,829 |
174,938 |
0 (0.00%) |
118 (0.02%) |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
302,181 |
21,597 |
280,584 |
0 (0.00%) |
120 (0.04%) |
realworld.run.osx.arm64.checked.mch |
31,540 |
3 |
31,537 |
0 (0.00%) |
2 (0.01%) |
|
2,270,502 |
932,669 |
1,337,833 |
26 (0.00%) |
368 (0.02%) |
jit-analyze output
benchmarks.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 11173068 (overridden on cmd)
Total bytes of diff: 11172928 (overridden on cmd)
Total bytes of delta: -140 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
20 : 17058.dasm (0.95 % of base)
20 : 16951.dasm (4.17 % of base)
16 : 12202.dasm (0.19 % of base)
8 : 12549.dasm (0.29 % of base)
8 : 12257.dasm (0.33 % of base)
8 : 12282.dasm (0.40 % of base)
4 : 145.dasm (7.14 % of base)
4 : 15708.dasm (0.88 % of base)
4 : 15709.dasm (0.88 % of base)
4 : 16636.dasm (0.88 % of base)
4 : 14310.dasm (0.88 % of base)
4 : 14311.dasm (0.88 % of base)
Top file improvements (bytes):
-88 : 970.dasm (-32.84 % of base)
-32 : 19453.dasm (-1.24 % of base)
-32 : 19467.dasm (-1.27 % of base)
-20 : 17996.dasm (-0.46 % of base)
-16 : 8358.dasm (-2.27 % of base)
-16 : 8608.dasm (-2.27 % of base)
-16 : 8736.dasm (-2.27 % of base)
-4 : 17987.dasm (-0.24 % of base)
-4 : 24337.dasm (-0.04 % of base)
-4 : 417.dasm (-1.20 % of base)
-4 : 8815.dasm (-0.61 % of base)
-4 : 11954.dasm (-0.05 % of base)
-4 : 22633.dasm (-0.07 % of base)
25 total files with Code Size differences (13 improved, 12 regressed), 11 unchanged.
Top method regressions (bytes):
20 (4.17 % of base) : 16951.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 17058.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
16 (0.19 % of base) : 12202.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
8 (0.29 % of base) : 12549.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
8 (0.33 % of base) : 12257.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 12282.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (7.14 % of base) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (0.88 % of base) : 15708.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 16636.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 14310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 14311.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 15709.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 970.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-32 (-1.27 % of base) : 19467.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 19453.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-20 (-0.46 % of base) : 17996.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-16 (-2.27 % of base) : 8358.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8608.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8736.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-0.05 % of base) : 11954.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.07 % of base) : 22633.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 24337.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.24 % of base) : 17987.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-1.20 % of base) : 417.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-4 (-0.61 % of base) : 8815.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:PreparePoliciesArray(ubyte):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
20 (4.17 % of base) : 16951.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 17058.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
4 (0.88 % of base) : 15708.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 16636.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 14310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 14311.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 15709.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 12282.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.33 % of base) : 12257.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.29 % of base) : 12549.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
16 (0.19 % of base) : 12202.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 970.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-2.27 % of base) : 8358.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8608.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 8736.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-32 (-1.27 % of base) : 19467.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 19453.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-4 (-1.20 % of base) : 417.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-4 (-0.61 % of base) : 8815.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:PreparePoliciesArray(ubyte):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
-20 (-0.46 % of base) : 17996.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-0.24 % of base) : 17987.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-0.07 % of base) : 22633.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.05 % of base) : 11954.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 24337.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
25 total methods with Code Size differences (13 improved, 12 regressed).
benchmarks.run_pgo.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34426604 (overridden on cmd)
Total bytes of diff: 34421736 (overridden on cmd)
Total bytes of delta: -4868 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
24 : 17581.dasm (0.25 % of base)
16 : 29011.dasm (3.51 % of base)
16 : 34489.dasm (3.51 % of base)
16 : 29033.dasm (3.51 % of base)
16 : 34505.dasm (3.51 % of base)
4 : 412.dasm (3.70 % of base)
Top file improvements (bytes):
-132 : 5482.dasm (-30.84 % of base)
-132 : 64677.dasm (-30.84 % of base)
-132 : 66675.dasm (-30.84 % of base)
-132 : 80000.dasm (-30.84 % of base)
-132 : 82817.dasm (-30.84 % of base)
-132 : 38849.dasm (-30.84 % of base)
-132 : 74409.dasm (-30.84 % of base)
-120 : 38843.dasm (-40.00 % of base)
-120 : 39131.dasm (-40.00 % of base)
-120 : 64678.dasm (-40.00 % of base)
-120 : 66669.dasm (-40.00 % of base)
-120 : 70955.dasm (-40.00 % of base)
-120 : 75976.dasm (-40.00 % of base)
-120 : 82818.dasm (-40.00 % of base)
-120 : 43507.dasm (-40.00 % of base)
-120 : 5472.dasm (-40.00 % of base)
-120 : 59868.dasm (-40.00 % of base)
-120 : 61178.dasm (-40.00 % of base)
-120 : 68127.dasm (-40.00 % of base)
-120 : 74410.dasm (-40.00 % of base)
38 total files with Code Size differences (32 improved, 6 regressed), 34 unchanged.
Top method regressions (bytes):
24 (0.25 % of base) : 17581.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
16 (3.51 % of base) : 29011.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 29033.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 34489.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 34505.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (3.70 % of base) : 412.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-132 (-30.84 % of base) : 5482.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 64677.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 66675.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 80000.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 82817.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 38849.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 74409.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-120 (-40.00 % of base) : 38843.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 39131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 64678.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 66669.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 70955.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 75976.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 82818.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 43507.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 5472.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 59868.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 61178.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 68127.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 74410.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
Top method regressions (percentages):
4 (3.70 % of base) : 412.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
16 (3.51 % of base) : 29011.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 29033.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 34489.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 34505.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
24 (0.25 % of base) : 17581.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (percentages):
-120 (-40.00 % of base) : 38843.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 39131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 64678.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 66669.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 70955.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 75976.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 82818.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 43507.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 5472.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 59868.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 61178.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 68127.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 74410.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 78933.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 79994.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-132 (-30.84 % of base) : 5482.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 64677.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 66675.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 80000.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
-132 (-30.84 % of base) : 82817.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
benchmarks.run_tiered.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15500708 (overridden on cmd)
Total bytes of diff: 15499224 (overridden on cmd)
Total bytes of delta: -1484 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
116 : 41948.dasm (2.51 % of base)
16 : 23684.dasm (0.19 % of base)
16 : 27677.dasm (4.08 % of base)
16 : 27788.dasm (4.08 % of base)
8 : 23571.dasm (0.33 % of base)
8 : 23616.dasm (0.40 % of base)
4 : 413.dasm (3.70 % of base)
Top file improvements (bytes):
-100 : 5590.dasm (-9.92 % of base)
-96 : 19658.dasm (-17.39 % of base)
-92 : 12813.dasm (-8.46 % of base)
-92 : 8402.dasm (-9.66 % of base)
-88 : 2625.dasm (-3.51 % of base)
-88 : 2863.dasm (-9.32 % of base)
-88 : 8253.dasm (-32.84 % of base)
-68 : 11138.dasm (-7.83 % of base)
-60 : 16399.dasm (-6.22 % of base)
-48 : 17377.dasm (-6.56 % of base)
-28 : 119.dasm (-1.76 % of base)
-24 : 904.dasm (-2.73 % of base)
-24 : 14330.dasm (-2.97 % of base)
-24 : 32501.dasm (-3.90 % of base)
-24 : 46887.dasm (-2.35 % of base)
-24 : 5577.dasm (-2.71 % of base)
-20 : 23894.dasm (-2.26 % of base)
-20 : 3983.dasm (-8.47 % of base)
-20 : 757.dasm (-27.78 % of base)
-20 : 41750.dasm (-0.43 % of base)
42 total files with Code Size differences (35 improved, 7 regressed), 23 unchanged.
Top method regressions (bytes):
116 (2.51 % of base) : 41948.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
16 (4.08 % of base) : 27677.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27788.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
16 (0.19 % of base) : 23684.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
8 (0.33 % of base) : 23571.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.40 % of base) : 23616.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
4 (3.70 % of base) : 413.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-100 (-9.92 % of base) : 5590.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-96 (-17.39 % of base) : 19658.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-92 (-9.66 % of base) : 8402.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-92 (-8.46 % of base) : 12813.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
-88 (-9.32 % of base) : 2863.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-88 (-32.84 % of base) : 8253.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-88 (-3.51 % of base) : 2625.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
-68 (-7.83 % of base) : 11138.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:PreparePoliciesArray(ubyte):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (Tier0)
-60 (-6.22 % of base) : 16399.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
-48 (-6.56 % of base) : 17377.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-28 (-1.76 % of base) : 119.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Tier0)
-24 (-2.73 % of base) : 904.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
-24 (-2.71 % of base) : 5577.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
-24 (-2.97 % of base) : 14330.dasm - System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default](byref,int,byref):int (Tier0)
-24 (-2.35 % of base) : 46887.dasm - System.HexConverter:TryDecodeFromUtf16_Vector128(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0)
-24 (-3.90 % of base) : 32501.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
-20 (-2.26 % of base) : 23894.dasm - BenchmarksGame.MandelBrot_7:DoBench(int,int):ubyte[] (Tier0)
-20 (-0.43 % of base) : 41750.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (Tier1)
-20 (-8.47 % of base) : 3983.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-20 (-27.78 % of base) : 757.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
Top method regressions (percentages):
16 (4.08 % of base) : 27677.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27788.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
4 (3.70 % of base) : 413.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
116 (2.51 % of base) : 41948.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
8 (0.40 % of base) : 23616.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.33 % of base) : 23571.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
16 (0.19 % of base) : 23684.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
Top method improvements (percentages):
-88 (-32.84 % of base) : 8253.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-16 (-28.57 % of base) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
-20 (-27.78 % of base) : 757.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-12 (-21.43 % of base) : 758.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
-96 (-17.39 % of base) : 19658.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-8 (-16.67 % of base) : 738.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-4 (-16.67 % of base) : 1697.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-12 (-16.67 % of base) : 43.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-8 (-14.29 % of base) : 34822.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-12 (-13.04 % of base) : 545.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-12 (-13.04 % of base) : 12558.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-8 (-12.50 % of base) : 35141.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
-8 (-12.50 % of base) : 1369.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-12 (-12.00 % of base) : 1684.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
-16 (-10.53 % of base) : 2233.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-4 (-10.00 % of base) : 14681.dasm - System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[ubyte]:ScalarResult(byref,byref):int (Tier0)
-4 (-10.00 % of base) : 43020.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-100 (-9.92 % of base) : 5590.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-92 (-9.66 % of base) : 8402.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-88 (-9.32 % of base) : 2863.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
coreclr_tests.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 486244460 (overridden on cmd)
Total bytes of diff: 486133112 (overridden on cmd)
Total bytes of delta: -111348 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1044 : 570320.dasm (9.12 % of base)
320 : 570311.dasm (3.05 % of base)
192 : 581950.dasm (9.09 % of base)
156 : 475228.dasm (2.47 % of base)
104 : 475232.dasm (1.36 % of base)
96 : 580924.dasm (1.01 % of base)
84 : 585532.dasm (0.54 % of base)
64 : 346904.dasm (20.78 % of base)
64 : 377154.dasm (20.78 % of base)
16 : 248813.dasm (3.51 % of base)
16 : 248829.dasm (3.51 % of base)
16 : 248876.dasm (3.51 % of base)
16 : 248883.dasm (3.51 % of base)
12 : 448340.dasm (0.34 % of base)
12 : 582268.dasm (2.73 % of base)
12 : 585652.dasm (1.60 % of base)
12 : 442560.dasm (0.66 % of base)
12 : 442680.dasm (0.66 % of base)
12 : 448256.dasm (0.35 % of base)
12 : 448396.dasm (0.35 % of base)
Top file improvements (bytes):
-2112 : 306280.dasm (-4.30 % of base)
-1164 : 304874.dasm (-67.99 % of base)
-496 : 306639.dasm (-25.62 % of base)
-332 : 283641.dasm (-3.06 % of base)
-328 : 306408.dasm (-3.85 % of base)
-324 : 305686.dasm (-50.62 % of base)
-308 : 305820.dasm (-11.03 % of base)
-292 : 294635.dasm (-19.16 % of base)
-280 : 305980.dasm (-9.27 % of base)
-272 : 285981.dasm (-8.10 % of base)
-272 : 285991.dasm (-8.09 % of base)
-264 : 306382.dasm (-6.87 % of base)
-224 : 305992.dasm (-7.08 % of base)
-216 : 306086.dasm (-5.71 % of base)
-200 : 305919.dasm (-8.24 % of base)
-176 : 293266.dasm (-19.21 % of base)
-176 : 294579.dasm (-9.54 % of base)
-176 : 306231.dasm (-1.83 % of base)
-144 : 306202.dasm (-12.86 % of base)
-144 : 13551.dasm (-21.82 % of base)
83 total files with Code Size differences (55 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
1044 (9.12 % of base) : 570320.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
320 (3.05 % of base) : 570311.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 581950.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
156 (2.47 % of base) : 475228.dasm - div_r4._div:main():int (FullOpts)
104 (1.36 % of base) : 475232.dasm - div_r8._div:main():int (FullOpts)
96 (1.01 % of base) : 580924.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
84 (0.54 % of base) : 585532.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
64 (20.78 % of base) : 377154.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 346904.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
16 (3.51 % of base) : 248813.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 248829.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 248876.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 248883.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
12 (1.60 % of base) : 585652.dasm - EventCounterRegressionTests.TestEventCounter:TestEntryPoint():int (FullOpts)
12 (0.66 % of base) : 442680.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.SimpleBinaryOpTest__SubtractSaturate_Vector128_UInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
12 (0.66 % of base) : 442560.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.SimpleBinaryOpTest__SubtractSaturate_Vector64_UInt32:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
12 (0.35 % of base) : 448256.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementInt323:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (0.34 % of base) : 448340.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementSingle7:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (0.35 % of base) : 448396.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementUInt327:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (2.73 % of base) : 582268.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
Top method improvements (bytes):
-2112 (-4.30 % of base) : 306280.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
-1164 (-67.99 % of base) : 304874.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-496 (-25.62 % of base) : 306639.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-332 (-3.06 % of base) : 283641.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-328 (-3.85 % of base) : 306408.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-324 (-50.62 % of base) : 305686.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-308 (-11.03 % of base) : 305820.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-292 (-19.16 % of base) : 294635.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-280 (-9.27 % of base) : 305980.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-272 (-8.10 % of base) : 285981.dasm - convr4a:Main():int (Tier0)
-272 (-8.09 % of base) : 285991.dasm - convr8d:Main():int (Tier0)
-264 (-6.87 % of base) : 306382.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-224 (-7.08 % of base) : 305992.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-216 (-5.71 % of base) : 306086.dasm - ILGEN_0x12984aee:Method_0x786cd2b5(byte,ubyte,byte,long,long,short,long,uint):int (Tier0)
-200 (-8.24 % of base) : 305919.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-176 (-1.83 % of base) : 306231.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(long,int,byte,float,ushort,float):int (Tier0)
-176 (-9.54 % of base) : 294579.dasm - ILGEN_3171381355:main():int (Tier0)
-176 (-19.21 % of base) : 293266.dasm - ILGEN_941132142:main():int (Tier0)
-144 (-12.86 % of base) : 306202.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (Tier0)
-144 (-21.82 % of base) : 13551.dasm - testout1:Sub_Funclet_192():double (Tier0)
Top method regressions (percentages):
64 (20.78 % of base) : 377154.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 346904.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
1044 (9.12 % of base) : 570320.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 581950.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
4 (4.17 % of base) : 580956.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (4.17 % of base) : 300200.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.57 % of base) : 294428.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
16 (3.51 % of base) : 248813.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 248829.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 248876.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 248883.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
320 (3.05 % of base) : 570311.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
12 (2.73 % of base) : 582268.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
4 (2.56 % of base) : 368339.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
156 (2.47 % of base) : 475228.dasm - div_r4._div:main():int (FullOpts)
8 (2.38 % of base) : 93763.dasm - JIT.HardwareIntrinsics.Arm.Helpers:SignedShift(byte,byte,ubyte,ubyte):byte (Tier0)
8 (2.25 % of base) : 93856.dasm - JIT.HardwareIntrinsics.Arm.Helpers:UnsignedShift(ubyte,byte,ubyte,ubyte):ubyte (Tier0)
4 (1.82 % of base) : 398694.dasm - testout1:Sub_Funclet_117():int (FullOpts)
4 (1.82 % of base) : 398616.dasm - testout1:Sub_Funclet_5():int (FullOpts)
12 (1.60 % of base) : 585652.dasm - EventCounterRegressionTests.TestEventCounter:TestEntryPoint():int (FullOpts)
Top method improvements (percentages):
-96 (-75.00 % of base) : 304862.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-56 (-73.68 % of base) : 304536.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-56 (-73.68 % of base) : 294630.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-52 (-72.22 % of base) : 304643.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-44 (-68.75 % of base) : 293129.dasm - _simple:main():int (Tier0)
-44 (-68.75 % of base) : 293178.dasm - _simple:main():int (Tier0)
-1164 (-67.99 % of base) : 304874.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-124 (-67.39 % of base) : 285733.dasm - JitTest_sizeof_Target_64Bit_and_arm_il.Test:Main():int (Tier0)
-40 (-66.67 % of base) : 304620.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-36 (-64.29 % of base) : 293125.dasm - _simple:main():int (Tier0)
-36 (-64.29 % of base) : 293176.dasm - _simple:main():int (Tier0)
-32 (-61.54 % of base) : 304906.dasm - _n:main():int (Tier0)
-28 (-58.33 % of base) : 304904.dasm - _shl:main():int (Tier0)
-28 (-58.33 % of base) : 293172.dasm - _simple:main():int (Tier0)
-32 (-57.14 % of base) : 283689.dasm - LongMulOn32BitTest:LongMul_24(int):long (Tier0)
-32 (-57.14 % of base) : 283703.dasm - LongMulOn32BitTest:LongMul_38(int):long (Tier0)
-32 (-57.14 % of base) : 283718.dasm - LongMulOn32BitTest:LongMul_53(int):long (Tier0)
-32 (-57.14 % of base) : 283719.dasm - LongMulOn32BitTest:LongMul_54(int):long (Tier0)
-32 (-57.14 % of base) : 283673.dasm - LongMulOn32BitTest:LongMul_8(int):long (Tier0)
-32 (-57.14 % of base) : 283674.dasm - LongMulOn32BitTest:LongMul_9(int):long (Tier0)
libraries.crossgen2.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 55725900 (overridden on cmd)
Total bytes of diff: 55725480 (overridden on cmd)
Total bytes of delta: -420 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 200266.dasm (3.12 % of base)
4 : 21813.dasm (7.69 % of base)
Top file improvements (bytes):
-88 : 19609.dasm (-32.84 % of base)
-88 : 21495.dasm (-32.84 % of base)
-88 : 21524.dasm (-32.84 % of base)
-16 : 12317.dasm (-11.11 % of base)
-16 : 12320.dasm (-8.00 % of base)
-16 : 12314.dasm (-11.11 % of base)
-16 : 163370.dasm (-1.96 % of base)
-16 : 20548.dasm (-7.55 % of base)
-16 : 206390.dasm (-1.96 % of base)
-16 : 206854.dasm (-1.96 % of base)
-16 : 228884.dasm (-1.96 % of base)
-8 : 147464.dasm (-1.13 % of base)
-4 : 140891.dasm (-1.96 % of base)
-4 : 10391.dasm (-0.35 % of base)
-4 : 190172.dasm (-0.66 % of base)
-4 : 19924.dasm (-1.59 % of base)
-4 : 212048.dasm (-0.62 % of base)
-4 : 215141.dasm (-1.96 % of base)
-4 : 23165.dasm (-0.62 % of base)
21 total files with Code Size differences (19 improved, 2 regressed), 23 unchanged.
Top method regressions (bytes):
4 (7.69 % of base) : 21813.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 200266.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 21495.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 19609.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 21524.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-11.11 % of base) : 12314.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 12317.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 12320.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-1.96 % of base) : 163370.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 206390.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 206854.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 228884.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-7.55 % of base) : 20548.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-1.13 % of base) : 147464.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-1.96 % of base) : 140891.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-4 (-1.59 % of base) : 19924.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-4 (-0.62 % of base) : 212048.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 23165.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.35 % of base) : 10391.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
-4 (-1.96 % of base) : 215141.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-4 (-0.66 % of base) : 190172.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:PreparePoliciesArray(ubyte):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
Top method regressions (percentages):
4 (7.69 % of base) : 21813.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 200266.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 21495.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 19609.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 21524.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-11.11 % of base) : 12314.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 12317.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 12320.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-7.55 % of base) : 20548.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-4 (-1.96 % of base) : 140891.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-16 (-1.96 % of base) : 163370.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 206390.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 206854.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 228884.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-1.96 % of base) : 215141.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-4 (-1.59 % of base) : 19924.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-8 (-1.13 % of base) : 147464.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-0.66 % of base) : 190172.dasm - System.Security.Cryptography.X509Certificates.SecTrustChainPal:PreparePoliciesArray(ubyte):Microsoft.Win32.SafeHandles.SafeCreateHandle:this (FullOpts)
-4 (-0.62 % of base) : 212048.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 23165.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.35 % of base) : 10391.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
libraries.pmi.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 80156664 (overridden on cmd)
Total bytes of diff: 80169088 (overridden on cmd)
Total bytes of delta: 12424 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1236 : 92606.dasm (63.32 % of base)
1016 : 48003.dasm (7.72 % of base)
1016 : 244292.dasm (7.72 % of base)
944 : 92605.dasm (41.70 % of base)
872 : 92522.dasm (7.65 % of base)
576 : 90961.dasm (14.66 % of base)
576 : 90958.dasm (15.62 % of base)
576 : 90959.dasm (14.20 % of base)
560 : 92491.dasm (5.62 % of base)
392 : 90982.dasm (11.60 % of base)
384 : 90962.dasm (11.58 % of base)
384 : 90987.dasm (8.93 % of base)
384 : 90989.dasm (17.81 % of base)
384 : 90990.dasm (18.71 % of base)
384 : 90973.dasm (14.93 % of base)
344 : 90967.dasm (18.66 % of base)
296 : 85787.dasm (3.03 % of base)
268 : 117992.dasm (14.63 % of base)
200 : 165757.dasm (37.04 % of base)
192 : 90975.dasm (19.28 % of base)
Top file improvements (bytes):
-88 : 8850.dasm (-32.84 % of base)
-88 : 85939.dasm (-2.44 % of base)
-80 : 244320.dasm (-2.75 % of base)
-80 : 48031.dasm (-2.75 % of base)
-68 : 297687.dasm (-0.56 % of base)
-36 : 8853.dasm (-19.57 % of base)
-32 : 48030.dasm (-1.14 % of base)
-32 : 244319.dasm (-1.14 % of base)
-28 : 210010.dasm (-1.84 % of base)
-28 : 48033.dasm (-1.09 % of base)
-28 : 244322.dasm (-1.09 % of base)
-24 : 164354.dasm (-1.26 % of base)
-24 : 312176.dasm (-0.75 % of base)
-24 : 90543.dasm (-2.14 % of base)
-20 : 312119.dasm (-1.16 % of base)
-16 : 259445.dasm (-2.27 % of base)
-16 : 261490.dasm (-2.27 % of base)
-16 : 288302.dasm (-2.27 % of base)
-16 : 31110.dasm (-8.51 % of base)
-16 : 209757.dasm (-2.27 % of base)
59 total files with Code Size differences (28 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
1236 (63.32 % of base) : 92606.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
1016 (7.72 % of base) : 48003.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
1016 (7.72 % of base) : 244292.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
944 (41.70 % of base) : 92605.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
872 (7.65 % of base) : 92522.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
576 (14.66 % of base) : 90961.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 90958.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (14.20 % of base) : 90959.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
560 (5.62 % of base) : 92491.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
392 (11.60 % of base) : 90982.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.58 % of base) : 90962.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 90989.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 90990.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (8.93 % of base) : 90987.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
384 (14.93 % of base) : 90973.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 90967.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (3.03 % of base) : 85787.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
268 (14.63 % of base) : 117992.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
200 (37.04 % of base) : 165757.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
192 (20.69 % of base) : 91062.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
Top method improvements (bytes):
-88 (-2.44 % of base) : 85939.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-88 (-32.84 % of base) : 8850.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-80 (-2.75 % of base) : 244320.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 48031.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-68 (-0.56 % of base) : 297687.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
-36 (-19.57 % of base) : 8853.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-32 (-1.14 % of base) : 48030.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.14 % of base) : 244319.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.09 % of base) : 48033.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.09 % of base) : 244322.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.84 % of base) : 210010.dasm - System.Net.SecurityStatusPal:ToString():System.String:this (FullOpts)
-24 (-2.14 % of base) : 90543.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-24 (-0.75 % of base) : 312176.dasm - R2RDump.TextDumper:DumpAllMethods():this (FullOpts)
-24 (-1.26 % of base) : 164354.dasm - System.Net.Http.HttpConnectionPool:ToString():System.String:this (FullOpts)
-20 (-1.16 % of base) : 312119.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-16 (-11.11 % of base) : 31104.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 31107.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.51 % of base) : 31110.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-2.27 % of base) : 259445.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 261490.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
Top method regressions (percentages):
1236 (63.32 % of base) : 92606.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
944 (41.70 % of base) : 92605.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
200 (37.04 % of base) : 165757.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
192 (21.15 % of base) : 165658.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (20.69 % of base) : 91062.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (19.51 % of base) : 90978.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (19.28 % of base) : 90975.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 90990.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 90967.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 90989.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 90958.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (14.93 % of base) : 90973.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (14.66 % of base) : 90961.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
268 (14.63 % of base) : 117992.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
576 (14.20 % of base) : 90959.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (13.39 % of base) : 165744.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
392 (11.60 % of base) : 90982.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.58 % of base) : 90962.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (11.09 % of base) : 90957.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (9.32 % of base) : 165743.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 8850.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-36 (-19.57 % of base) : 8853.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-4 (-12.50 % of base) : 16125.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-16 (-11.11 % of base) : 31104.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 31107.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.51 % of base) : 31110.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-7.41 % of base) : 17417.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-4.17 % of base) : 189872.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-80 (-2.75 % of base) : 244320.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 48031.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-88 (-2.44 % of base) : 85939.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-4 (-2.38 % of base) : 304001.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-16 (-2.27 % of base) : 259445.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 261490.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 288302.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 209757.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-24 (-2.14 % of base) : 90543.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-28 (-1.84 % of base) : 210010.dasm - System.Net.SecurityStatusPal:ToString():System.String:this (FullOpts)
-24 (-1.26 % of base) : 164354.dasm - System.Net.Http.HttpConnectionPool:ToString():System.String:this (FullOpts)
-4 (-1.20 % of base) : 1032.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
libraries_tests.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 324305936 (overridden on cmd)
Total bytes of diff: 324063364 (overridden on cmd)
Total bytes of delta: -242572 (-0.07 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
208 : 614275.dasm (4.74 % of base)
172 : 90235.dasm (3.61 % of base)
88 : 371943.dasm (1.11 % of base)
84 : 610826.dasm (2.33 % of base)
68 : 58781.dasm (1.37 % of base)
64 : 619586.dasm (3.11 % of base)
64 : 91940.dasm (0.52 % of base)
48 : 616764.dasm (0.70 % of base)
44 : 90234.dasm (1.01 % of base)
28 : 606972.dasm (1.20 % of base)
28 : 612481.dasm (2.15 % of base)
28 : 613249.dasm (1.24 % of base)
28 : 613784.dasm (1.42 % of base)
28 : 613785.dasm (2.28 % of base)
28 : 615878.dasm (1.66 % of base)
28 : 94161.dasm (0.44 % of base)
20 : 58780.dasm (0.48 % of base)
16 : 364588.dasm (2.15 % of base)
16 : 365214.dasm (2.16 % of base)
16 : 370986.dasm (2.15 % of base)
Top file improvements (bytes):
-131072 : 413399.dasm (-40.00 % of base)
-8192 : 413186.dasm (-39.95 % of base)
-1336 : 367803.dasm (-30.12 % of base)
-1336 : 352758.dasm (-30.12 % of base)
-1336 : 353819.dasm (-30.12 % of base)
-1336 : 366816.dasm (-30.12 % of base)
-1028 : 354638.dasm (-26.66 % of base)
-1028 : 356742.dasm (-26.66 % of base)
-1028 : 358321.dasm (-26.66 % of base)
-1028 : 354818.dasm (-26.66 % of base)
-1028 : 357381.dasm (-26.66 % of base)
-1028 : 359461.dasm (-26.66 % of base)
-1028 : 366290.dasm (-26.66 % of base)
-1028 : 367825.dasm (-26.66 % of base)
-1028 : 356037.dasm (-26.66 % of base)
-1028 : 356678.dasm (-26.66 % of base)
-1028 : 359974.dasm (-26.66 % of base)
-1028 : 366405.dasm (-26.66 % of base)
-1028 : 367829.dasm (-26.66 % of base)
-1028 : 369185.dasm (-26.66 % of base)
69 total files with Code Size differences (41 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
208 (4.74 % of base) : 614275.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
172 (3.61 % of base) : 90235.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
88 (1.11 % of base) : 371943.dasm - System.Numerics.Tests.QuaternionTests:QuaternionCreateFromYawPitchRollTest2():this (Tier1-OSR)
84 (2.33 % of base) : 610826.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
68 (1.37 % of base) : 58781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
64 (3.11 % of base) : 619586.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (Tier1)
64 (0.52 % of base) : 91940.dasm - Microsoft.Interop.LibraryImportGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,Microsoft.Interop.StubEnvironment,Microsoft.Interop.TargetFrameworkSettings,Microsoft.Interop.LibraryImportGeneratorOptions,System.Threading.CancellationToken):Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext (Tier1)
48 (0.70 % of base) : 616764.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitSwitchBuckets(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter+SwitchBucket],int,int):this (Tier1)
44 (1.01 % of base) : 90234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
28 (2.28 % of base) : 613785.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
28 (1.20 % of base) : 606972.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
28 (2.15 % of base) : 612481.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
28 (1.42 % of base) : 613784.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLocalAddress(Microsoft.CodeAnalysis.CSharp.BoundLocal,int):Microsoft.CodeAnalysis.CodeGen.LocalDefinition:this (Tier1)
28 (1.24 % of base) : 613249.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
28 (1.66 % of base) : 615878.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
28 (0.44 % of base) : 94161.dasm - Microsoft.Interop.AttributedMarshallingModelGeneratorResolver:CreateCustomNativeTypeMarshaller(Microsoft.Interop.TypePositionInfo,Microsoft.Interop.StubCodeContext,Microsoft.Interop.NativeMarshallingAttributeInfo):Microsoft.Interop.ResolvedGenerator:this (Tier1)
20 (0.48 % of base) : 58780.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
16 (2.16 % of base) : 365214.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
16 (2.15 % of base) : 371048.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
16 (2.15 % of base) : 364588.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[float,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Tier1)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 413399.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 413186.dasm - TestType:meth1():int (Tier0)
-1336 (-30.12 % of base) : 367803.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 366816.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 352758.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 353819.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 366290.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 359461.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 356742.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 367825.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,long,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 354818.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 367829.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 359974.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 366405.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 356678.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 354638.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 358321.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[long,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 369185.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 356037.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 357381.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
Top method regressions (percentages):
4 (14.29 % of base) : 245418.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
4 (12.50 % of base) : 245419.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
4 (7.14 % of base) : 166740.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
4 (7.14 % of base) : 166681.dasm - Microsoft.VisualBasic.Conversion:Oct(short):System.String (Tier0)
8 (6.06 % of base) : 245416.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
208 (4.74 % of base) : 614275.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
4 (3.70 % of base) : 599184.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
172 (3.61 % of base) : 90235.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
64 (3.11 % of base) : 619586.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (Tier1)
4 (2.78 % of base) : 214807.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
84 (2.33 % of base) : 610826.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
28 (2.28 % of base) : 613785.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
16 (2.16 % of base) : 365214.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
28 (2.15 % of base) : 612481.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
16 (2.15 % of base) : 371048.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
16 (2.15 % of base) : 364588.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[float,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Tier1)
16 (2.15 % of base) : 370986.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[float,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Tier1)
28 (1.66 % of base) : 615878.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
28 (1.42 % of base) : 613784.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLocalAddress(Microsoft.CodeAnalysis.CSharp.BoundLocal,int):Microsoft.CodeAnalysis.CodeGen.LocalDefinition:this (Tier1)
68 (1.37 % of base) : 58781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
Top method improvements (percentages):
-676 (-97.13 % of base) : 413425.dasm - TestType:meth1():int (Tier0)
-28 (-58.33 % of base) : 413424.dasm - TestType:meth1():int (Tier0)
-120 (-40.00 % of base) : 317809.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-131072 (-40.00 % of base) : 413399.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 413186.dasm - TestType:meth1():int (Tier0)
-120 (-39.47 % of base) : 169059.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 361818.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (Tier1)
-120 (-38.96 % of base) : 503077.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 593427.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 158566.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 568308.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-256 (-38.32 % of base) : 413101.dasm - TestType:meth1():int (Tier0)
-12 (-37.50 % of base) : 413423.dasm - TestType:meth1():int (Tier0)
-116 (-37.18 % of base) : 407303.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-116 (-36.71 % of base) : 317411.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-116 (-36.71 % of base) : 488417.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-1336 (-30.12 % of base) : 367803.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 366816.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 352758.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 353819.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 162361664 (overridden on cmd)
Total bytes of diff: 162234668 (overridden on cmd)
Total bytes of delta: -126996 (-0.08 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
824 : 56552.dasm (6.89 % of base)
644 : 157240.dasm (19.26 % of base)
636 : 157386.dasm (27.94 % of base)
636 : 157670.dasm (27.94 % of base)
524 : 157343.dasm (19.55 % of base)
524 : 157602.dasm (19.49 % of base)
520 : 157705.dasm (19.35 % of base)
136 : 90161.dasm (1.24 % of base)
132 : 216207.dasm (15.21 % of base)
120 : 185599.dasm (6.55 % of base)
104 : 57429.dasm (4.11 % of base)
96 : 191869.dasm (7.16 % of base)
64 : 179769.dasm (3.17 % of base)
44 : 46142.dasm (0.78 % of base)
40 : 264825.dasm (1.04 % of base)
40 : 265022.dasm (0.82 % of base)
40 : 265106.dasm (0.65 % of base)
40 : 55790.dasm (0.72 % of base)
36 : 55798.dasm (1.27 % of base)
28 : 116496.dasm (1.47 % of base)
Top file improvements (bytes):
-131072 : 175542.dasm (-40.00 % of base)
-88 : 210929.dasm (-32.84 % of base)
-68 : 211596.dasm (-2.15 % of base)
-60 : 211604.dasm (-1.97 % of base)
-52 : 202421.dasm (-1.83 % of base)
-52 : 41403.dasm (-0.90 % of base)
-52 : 180111.dasm (-1.51 % of base)
-48 : 211560.dasm (-1.07 % of base)
-44 : 211429.dasm (-2.35 % of base)
-40 : 211518.dasm (-1.07 % of base)
-36 : 73026.dasm (-0.61 % of base)
-36 : 73091.dasm (-0.61 % of base)
-32 : 54732.dasm (-1.24 % of base)
-32 : 54751.dasm (-1.27 % of base)
-28 : 110487.dasm (-0.82 % of base)
-28 : 211549.dasm (-1.42 % of base)
-28 : 54370.dasm (-1.23 % of base)
-28 : 110546.dasm (-0.82 % of base)
-28 : 17387.dasm (-0.55 % of base)
-28 : 17458.dasm (-0.55 % of base)
78 total files with Code Size differences (44 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 56552.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
644 (19.26 % of base) : 157240.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
636 (27.94 % of base) : 157386.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
636 (27.94 % of base) : 157670.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
524 (19.49 % of base) : 157602.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
524 (19.55 % of base) : 157343.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
520 (19.35 % of base) : 157705.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
136 (1.24 % of base) : 90161.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
132 (15.21 % of base) : 216207.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
120 (6.55 % of base) : 185599.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
104 (4.11 % of base) : 57429.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
96 (7.16 % of base) : 191869.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
64 (3.17 % of base) : 179769.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
44 (0.78 % of base) : 46142.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
40 (0.65 % of base) : 265106.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 55790.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 264825.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 265022.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 55798.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
28 (1.47 % of base) : 116496.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntry_Gnu_Tests:Write_LongName_And_LongLinkName(ubyte):this (FullOpts)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 175542.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 210929.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-68 (-2.15 % of base) : 211596.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-60 (-1.97 % of base) : 211604.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected_BodyProtected():this (FullOpts)
-52 (-0.90 % of base) : 41403.dasm - Microsoft.Extensions.Logging.Test.EventSourceLoggerTest:VerifySingleEvent(System.String,System.String,System.String,System.Nullable`1[int],System.String,System.Nullable`1[int],System.String[]) (FullOpts)
-52 (-1.51 % of base) : 180111.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-52 (-1.83 % of base) : 202421.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-48 (-1.07 % of base) : 211560.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_AddSignatureWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-44 (-2.35 % of base) : 211429.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithStringAlgorithm():this (FullOpts)
-40 (-1.07 % of base) : 211518.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-36 (-0.61 % of base) : 73026.dasm - System.Collections.Tests.BitArray_GetSetTests:CopyTo[ubyte](System.Collections.BitArray,int,int,ubyte[],ubyte) (FullOpts)
-36 (-0.61 % of base) : 73091.dasm - System.Collections.Tests.BitArray_GetSetTests:CopyTo[ubyte](System.Collections.BitArray,int,int,ubyte[],ubyte) (FullOpts)
-32 (-1.27 % of base) : 54751.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 54732.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-0.82 % of base) : 110487.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate014b.operate014b.Test:TestOrOpWithSameTypeAndReturnType():ubyte (FullOpts)
-28 (-0.82 % of base) : 110546.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate014b.operate014b.Test:TestOrOpWithSameTypeButWrongReturnType():ubyte (FullOpts)
-28 (-1.23 % of base) : 54370.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-0.55 % of base) : 17387.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<ReadAsync_ContinuesOnCurrentSynchronizationContextIfDesired>d__38:MoveNext():this (FullOpts)
-28 (-0.55 % of base) : 17458.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<ReadAsync_ContinuesOnCurrentTaskSchedulerIfDesired>d__39:MoveNext():this (FullOpts)
-28 (-1.42 % of base) : 211549.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
Top method regressions (percentages):
636 (27.94 % of base) : 157386.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
636 (27.94 % of base) : 157670.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
524 (19.55 % of base) : 157343.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
524 (19.49 % of base) : 157602.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
520 (19.35 % of base) : 157705.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
644 (19.26 % of base) : 157240.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
132 (15.21 % of base) : 216207.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
20 (9.80 % of base) : 115920.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_0():System.Object:this (FullOpts)
20 (9.80 % of base) : 115923.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
20 (9.80 % of base) : 115952.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
20 (9.80 % of base) : 115957.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
20 (9.80 % of base) : 115960.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
20 (9.80 % of base) : 115964.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
20 (9.80 % of base) : 115966.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_14():System.Object:this (FullOpts)
20 (9.80 % of base) : 115928.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_2():System.Object:this (FullOpts)
20 (9.80 % of base) : 115930.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
20 (9.80 % of base) : 115932.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
20 (9.80 % of base) : 115935.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_6():System.Object:this (FullOpts)
20 (9.80 % of base) : 115939.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
20 (9.80 % of base) : 115947.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
Top method improvements (percentages):
-131072 (-40.00 % of base) : 175542.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 210929.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-8 (-6.90 % of base) : 72747.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
-8 (-6.25 % of base) : 72649.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
-8 (-6.25 % of base) : 72655.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-8 (-5.71 % of base) : 72749.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-20 (-4.76 % of base) : 72728.dasm - System.Collections.Tests.BitArray_CtorTests:Ctor_Int_Bool_ShouldNotLeaveDirtyBits() (FullOpts)
-20 (-4.46 % of base) : 72564.dasm - System.Collections.Tests.BitArray_GetSetTests:SetAll_ShouldNotLeaveDirtyBits() (FullOpts)
-8 (-4.17 % of base) : 59408.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-8 (-4.00 % of base) : 197942.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.92 % of base) : 197944.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-16 (-3.88 % of base) : 45669.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-16 (-3.88 % of base) : 51288.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-8 (-3.57 % of base) : 198901.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.51 % of base) : 198904.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-8 (-2.90 % of base) : 197952.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__9():System.Object:this (FullOpts)
-8 (-2.86 % of base) : 197954.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__10():System.Object:this (FullOpts)
-8 (-2.78 % of base) : 44042.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeDeclarationModifiers(uint,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):uint:this (FullOpts)
-8 (-2.78 % of base) : 49253.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeDeclarationModifiers(uint,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):uint:this (FullOpts)
-8 (-2.74 % of base) : 197947.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__7():System.Object:this (FullOpts)
realworld.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15054404 (overridden on cmd)
Total bytes of diff: 15055036 (overridden on cmd)
Total bytes of delta: 632 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
824 : 25212.dasm (6.89 % of base)
236 : 25769.dasm (2.60 % of base)
60 : 25546.dasm (1.05 % of base)
40 : 25244.dasm (0.82 % of base)
40 : 25213.dasm (0.65 % of base)
40 : 25241.dasm (1.04 % of base)
40 : 24942.dasm (0.72 % of base)
36 : 25547.dasm (1.27 % of base)
8 : 1252.dasm (3.39 % of base)
4 : 25091.dasm (0.14 % of base)
4 : 25343.dasm (0.20 % of base)
4 : 145.dasm (7.14 % of base)
4 : 1617.dasm (2.17 % of base)
4 : 25198.dasm (0.08 % of base)
Top file improvements (bytes):
-88 : 11973.dasm (-32.84 % of base)
-88 : 955.dasm (-32.84 % of base)
-48 : 14885.dasm (-1.08 % of base)
-32 : 24956.dasm (-1.24 % of base)
-32 : 24960.dasm (-1.27 % of base)
-28 : 24948.dasm (-1.23 % of base)
-20 : 14434.dasm (-0.46 % of base)
-20 : 14353.dasm (-0.76 % of base)
-20 : 14565.dasm (-0.43 % of base)
-16 : 11677.dasm (-1.72 % of base)
-16 : 14370.dasm (-1.22 % of base)
-16 : 14409.dasm (-1.17 % of base)
-16 : 14642.dasm (-0.39 % of base)
-16 : 15563.dasm (-0.49 % of base)
-12 : 11676.dasm (-1.15 % of base)
-12 : 14396.dasm (-1.67 % of base)
-12 : 14385.dasm (-1.20 % of base)
-12 : 15555.dasm (-0.74 % of base)
-8 : 14665.dasm (-0.41 % of base)
-8 : 7530.dasm (-0.50 % of base)
48 total files with Code Size differences (34 improved, 14 regressed), 21 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 25212.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
236 (2.60 % of base) : 25769.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
60 (1.05 % of base) : 25546.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (0.65 % of base) : 25213.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 24942.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 25241.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 25244.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 25547.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
8 (3.39 % of base) : 1252.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (2.17 % of base) : 1617.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (0.08 % of base) : 25198.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
4 (0.14 % of base) : 25091.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 25343.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
4 (7.14 % of base) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 11973.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 955.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-48 (-1.08 % of base) : 14885.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-32 (-1.27 % of base) : 24960.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 24956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.23 % of base) : 24948.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-20 (-0.76 % of base) : 14353.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAssemblyReferences(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineReference]) (FullOpts)
-20 (-0.46 % of base) : 14434.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-20 (-0.43 % of base) : 14565.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-16 (-1.17 % of base) : 14409.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:GetCompilationAndModuleNames(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],int,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineSourceFile],ubyte,System.String,byref,byref,byref):this (FullOpts)
-16 (-1.22 % of base) : 14370.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-16 (-0.49 % of base) : 15563.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseOperatorDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExplicitInterfaceSpecifierSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.OperatorDeclarationSyntax:this (FullOpts)
-16 (-0.39 % of base) : 14642.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-16 (-1.72 % of base) : 11677.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-12 (-1.20 % of base) : 14385.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAnalyzers(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineAnalyzerReference],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-1.67 % of base) : 14396.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-0.74 % of base) : 15555.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
-12 (-1.15 % of base) : 11676.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-8 (-0.50 % of base) : 7530.dasm - FSharp.Compiler.ParseAndCheckInputs:f@846-44(FSharp.Compiler.ParseAndCheckInputs+TcState,FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.CompilerImports+TcImports,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CompilerConfig+TcConfig,ubyte,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]],FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,ubyte],Microsoft.FSharp.Core.Unit):Internal.Utilities.Library.Cancellable`1[System.Tuple`2[System.Tuple`4[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+TopAttribs,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TypedImplFile],FSharp.Compiler.TypedTree+ModuleOrNamespaceType],FSharp.Compiler.ParseAndCheckInputs+TcState]] (FullOpts)
-8 (-2.11 % of base) : 5099.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 145.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
824 (6.89 % of base) : 25212.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
8 (3.39 % of base) : 1252.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
236 (2.60 % of base) : 25769.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
4 (2.17 % of base) : 1617.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
36 (1.27 % of base) : 25547.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
60 (1.05 % of base) : 25546.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (1.04 % of base) : 25241.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 25244.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.72 % of base) : 24942.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (0.65 % of base) : 25213.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 25343.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
4 (0.14 % of base) : 25091.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.08 % of base) : 25198.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 11973.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 955.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-4.00 % of base) : 4634.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-8 (-2.11 % of base) : 5099.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-4 (-1.89 % of base) : 7420.dasm - FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
-16 (-1.72 % of base) : 11677.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-12 (-1.67 % of base) : 14396.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-4 (-1.56 % of base) : 1352.dasm - BepuUtilities.Collections.QuickSet`2[int,BepuUtilities.Collections.PrimitiveComparer`1[int]]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuUtilities.Collections.PrimitiveComparer`1[int]):this (FullOpts)
-4 (-1.56 % of base) : 12411.dasm - Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeScalarHashGetter>b__0(byref):this (FullOpts)
-4 (-1.52 % of base) : 15895.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDouble(System.String):double:this (FullOpts)
-4 (-1.52 % of base) : 15849.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueSingle(System.String):float:this (FullOpts)
-4 (-1.49 % of base) : 7599.dasm - FSharp.Compiler.NameResolution:CallNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.47 % of base) : 8310.dasm - FSharp.Compiler.NameResolution:CallMethodGroupNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.28 % of base) : 1102.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints,int,BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints):this (FullOpts)
-32 (-1.27 % of base) : 24960.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.27 % of base) : 15815.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:HandleCloseBraceInContent(int,int):this (FullOpts)
-32 (-1.24 % of base) : 24956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.23 % of base) : 24948.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-16 (-1.22 % of base) : 14370.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-4 (-1.20 % of base) : 401.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
windows arm64
Diffs are based on 2,340,391 contexts (938,449 MinOpts, 1,401,942 FullOpts).
MISSED contexts: base: 365 (0.02%), diff: 726 (0.03%)
Overall (-477,704 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.arm64.checked.mch |
10,952,576 |
-132 |
benchmarks.run_pgo.windows.arm64.checked.mch |
45,548,636 |
-2,144 |
benchmarks.run_tiered.windows.arm64.checked.mch |
15,574,332 |
-1,616 |
coreclr_tests.run.windows.arm64.checked.mch |
495,064,652 |
-116,332 |
libraries.crossgen2.windows.arm64.checked.mch |
59,069,640 |
-488 |
libraries.pmi.windows.arm64.checked.mch |
79,743,716 |
+12,420 |
libraries_tests.run.windows.arm64.Release.mch |
330,523,528 |
-243,320 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
171,356,388 |
-126,656 |
realworld.run.windows.arm64.checked.mch |
15,898,132 |
+716 |
smoke_tests.nativeaot.windows.arm64.checked.mch |
3,800,188 |
-152 |
MinOpts (-487,284 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.arm64.checked.mch |
16,011,396 |
-2,244 |
benchmarks.run_tiered.windows.arm64.checked.mch |
11,177,188 |
-1,612 |
coreclr_tests.run.windows.arm64.checked.mch |
338,689,104 |
-110,364 |
libraries_tests.run.windows.arm64.Release.mch |
203,433,596 |
-241,992 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
13,153,748 |
-131,072 |
FullOpts (+9,580 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.arm64.checked.mch |
10,952,040 |
-132 |
benchmarks.run_pgo.windows.arm64.checked.mch |
29,537,240 |
+100 |
benchmarks.run_tiered.windows.arm64.checked.mch |
4,397,144 |
-4 |
coreclr_tests.run.windows.arm64.checked.mch |
156,375,548 |
-5,968 |
libraries.crossgen2.windows.arm64.checked.mch |
59,068,004 |
-488 |
libraries.pmi.windows.arm64.checked.mch |
79,623,732 |
+12,420 |
libraries_tests.run.windows.arm64.Release.mch |
127,089,932 |
-1,328 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
158,202,640 |
+4,416 |
realworld.run.windows.arm64.checked.mch |
15,334,152 |
+716 |
smoke_tests.nativeaot.windows.arm64.checked.mch |
3,799,176 |
-152 |
Example diffs
benchmarks.run.windows.arm64.checked.mch
-16 (-3.12%) : 1451.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
@@ -13,76 +13,74 @@
; V02 arg2 [V02,T04] ( 3, 3 ) int -> x2 single-def
; V03 arg3 [V03,T03] ( 3, 3 ) byref -> x19 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
-; V05 loc1 [V05,T07] ( 4, 3 ) int -> x20
-; V06 loc2 [V06 ] ( 7, 4.75) ref -> [fp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-; V07 loc3 [V07,T09] ( 3, 3 ) ubyte -> x21
+; V05 loc1 [V05,T06] ( 4, 3 ) int -> x20
+; V06 loc2 [V06 ] ( 7, 4.75) ref -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <<unknown class>>
+; V07 loc3 [V07,T08] ( 3, 3 ) ubyte -> x21
;* V08 loc4 [V08 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
-;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-; V12 tmp3 [V12,T10] ( 3, 2 ) int -> x0
-; V13 tmp4 [V13,T00] ( 4, 5 ) ref -> x15 class-hnd "spilling QMark2" <<unknown class>>
-; V14 tmp5 [V14,T08] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Object[]>
-; V15 tmp6 [V15,T11] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
-; V16 tmp7 [V16,T06] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V10 tmp1 [V10 ] ( 1, 1 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
+;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
+; V13 tmp4 [V13,T09] ( 3, 2 ) int -> x0
+; V14 tmp5 [V14,T00] ( 4, 5 ) ref -> x15 class-hnd "spilling QMark2" <<unknown class>>
+; V15 tmp6 [V15,T07] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Object[]>
+; V16 tmp7 [V16,T10] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[long]>
;* V18 tmp9 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V19 tmp10 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[long]>
-;* V20 tmp11 [V20,T18] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V20 tmp11 [V20,T17] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V21 tmp12 [V21,T05] ( 2, 4 ) byref -> x3 single-def "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V25 tmp16 [V25,T12] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.NetEventSource>
-; V26 tmp17 [V26,T13] ( 2, 2 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V27 tmp18 [V27,T14] ( 2, 2 ) ref -> x23 class-hnd exact single-def "non-inline candidate call" <System.String>
+; V25 tmp16 [V25,T11] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.NetEventSource>
+; V26 tmp17 [V26,T12] ( 2, 2 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.FormattableString>
+; V27 tmp18 [V27,T13] ( 2, 2 ) ref -> x23 class-hnd exact single-def "non-inline candidate call" <System.String>
;* V28 tmp19 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-; V29 tmp20 [V29,T20] ( 2, 1 ) ref -> x0 single-def
-;* V30 tmp21 [V30,T24] ( 0, 0 ) int -> zero-ref
-; V31 tmp22 [V31,T21] ( 2, 1 ) ref -> x2 single-def
-;* V32 tmp23 [V32,T23] ( 0, 0 ) ref -> zero-ref single-def
-; V33 tmp24 [V33,T15] ( 2, 2 ) ref -> x4 class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp20 [V29,T19] ( 2, 1 ) ref -> x0 single-def
+;* V30 tmp21 [V30,T23] ( 0, 0 ) int -> zero-ref ptr
+; V31 tmp22 [V31,T20] ( 2, 1 ) ref -> x2 single-def
+;* V32 tmp23 [V32,T22] ( 0, 0 ) ref -> zero-ref single-def ptr
+; V33 tmp24 [V33,T14] ( 2, 2 ) ref -> x4 class-hnd exact single-def "Inlining Arg" <System.String>
;* V34 tmp25 [V34 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp26 [V35 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V36 tmp27 [V36 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-; V38 tmp29 [V38,T16] ( 2, 2 ) byref -> x3 single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V38 tmp29 [V38,T15] ( 2, 2 ) byref -> x3 single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
+;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V17._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-; V44 tmp35 [V44,T17] ( 2, 2 ) byref -> x3 single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp36 [V45,T22] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V46 tmp37 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+; V44 tmp35 [V44,T16] ( 2, 2 ) byref -> x3 single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V45 tmp36 [V45,T21] ( 0, 0 ) int -> zero-ref ptr "field V18._length (fldOffset=0x8)" P-INDEP
+;* V46 tmp37 [V46 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V19._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp38 [V47 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-; V48 GsCookie [V48 ] ( 1, 1 ) long -> [fp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V49 cse0 [V49,T19] ( 3, 1.50) ref -> x22 "CSE - moderate"
+; V48 GsCookie [V48 ] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V49 cse0 [V49,T18] ( 3, 1.50) ref -> x22 "CSE - moderate"
;
; Lcl frame size = 24
G_M35410_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #80
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
- stp fp, lr, [sp, #0x40]
- add fp, sp, #64
- str xzr, [fp, #-0x30] // [V06 loc2]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x28]
+ stp x21, x22, [sp, #0x38]
+ str x23, [sp, #0x48]
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V06 loc2]
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
movk x4, #0xD1FFAB1E LSL #48
- str x4, [fp, #-0x38] // [V48 GsCookie]
+ str x4, [fp, #0x20] // [V48 GsCookie]
mov x19, x3
; byrRegs +[x19]
- ;; size=52 bbWeight=1 PerfScore 9.50
+ ;; size=48 bbWeight=1 PerfScore 9.00
G_M35410_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=80000 {x19}, byref, isz
; gcrRegs +[x0-x1]
- ldr wzr, [sp], #-0x10
- mov x3, sp
+ add x3, fp, #24 // [V10 tmp1]
mov w4, #8
- sub x6, fp, #48 // [V06 loc2]
+ add x6, fp, #16 // [V06 loc2]
movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
@@ -94,7 +92,7 @@ G_M35410_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=80000 {x19
; gcrRegs -[x0-x1]
sxtw w20, w0
cbz w20, G_M35410_IG04
- ;; size=56 bbWeight=1 PerfScore 12.00
+ ;; size=52 bbWeight=1 PerfScore 10.00
G_M35410_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
movz w0, #0xD1FFAB1E
movk w0, #0xD1FFAB1E LSL #16
@@ -110,10 +108,10 @@ G_M35410_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
cbnz w21, G_M35410_IG08
;; size=8 bbWeight=1 PerfScore 1.50
G_M35410_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ldr x0, [fp, #-0x30] // [V06 loc2]
+ ldr x0, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x0]
cbz x0, G_M35410_IG07
- ldr x0, [fp, #-0x30] // [V06 loc2]
+ ldr x0, [fp, #0x10] // [V06 loc2]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -122,7 +120,7 @@ G_M35410_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0]
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- str xzr, [fp, #-0x30] // [V06 loc2]
+ str xzr, [fp, #0x10] // [V06 loc2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -200,7 +198,7 @@ G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0 x2 x4 x22-x23]
;; size=228 bbWeight=0.50 PerfScore 25.25
G_M35410_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ldr x15, [fp, #-0x30] // [V06 loc2]
+ ldr x15, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x15]
mov x14, x15
; gcrRegs +[x14]
@@ -208,7 +206,7 @@ G_M35410_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
;; size=12 bbWeight=1 PerfScore 3.50
G_M35410_IG09: ; bbWeight=0.25, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19}, byref
; gcrRegs -[x14]
- ldr x14, [fp, #-0x30] // [V06 loc2]
+ ldr x14, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x14]
ldr x14, [x14]
; gcrRegs -[x14]
@@ -229,43 +227,41 @@ G_M35410_IG10: ; bbWeight=1, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19},
movk xip0, #0xD1FFAB1E LSL #16
movk xip0, #0xD1FFAB1E LSL #32
movk xip0, #0xD1FFAB1E LSL #48
- ldr xip1, [fp, #-0x38] // [V48 GsCookie]
+ ldr xip1, [fp, #0x20] // [V48 GsCookie]
cmp xip0, xip1
beq G_M35410_IG11
bl CORINFO_HELP_FAIL_FAST
;; size=44 bbWeight=1 PerfScore 8.50
G_M35410_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #64
- ldp fp, lr, [sp, #0x40]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- add sp, sp, #80
+ ldr x23, [sp, #0x48]
+ ldp x21, x22, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=28 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 512, prolog size 48, PerfScore 76.12, instruction count 128, allocated bytes for code 512 (MethodHash=120775ad) for method System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
+; Total bytes of code 496, prolog size 44, PerfScore 72.62, instruction count 124, allocated bytes for code 496 (MethodHash=120775ad) for method System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 3
- Epilog Count : 0
- E bit : 1
+ Code Words : 2
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 128 (0x00080) Actual length = 512 (0x000200)
- --- One epilog, unwind codes at 0
+ Function Length : 124 (0x0007c) Actual length = 496 (0x0001f0)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 08 add_fp 8 (0x08); add fp, sp, #64
- 48 save_fplr #8 (0x08); stp fp, lr, [sp, #64]
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ D1 09 save_reg X#4 Z#9 (0x09); str x23, [sp, #72]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 05 alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
- E4 end
- E4 end
+ C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
-16 (-2.27%) : 1917.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 2212.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+0.95%) : 20056.dasm - System.Formats.Tar.Tests.PerfTarWriter+<V7TarEntryWriteEntryAsync>d_7:MoveNext():this (FullOpts)
@@ -17,29 +17,29 @@
; V06 loc5 [V06,T37] ( 4, 2 ) ref -> x19 class-hnd single-def <System.Object>
; V07 loc6 [V07 ] ( 8, 8 ) struct (16) [fp+0x18] do-not-enreg[XSFR] multireg-ret must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret ld-addr-op <System.Threading.Tasks.ValueTask>
-; V09 loc8 [V09,T51] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
+; V09 loc8 [V09,T49] ( 3, 0 ) ref -> x0 class-hnd <System.Exception>
;* V10 loc9 [V10 ] ( 0, 0 ) int -> zero-ref
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V13 tmp2 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V14 tmp3 [V14,T07] ( 6, 10 ) ref -> x23 class-hnd exact single-def "impAppendStmt" <System.Formats.Tar.TarWriter>
-; V15 tmp4 [V15,T52] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V15 tmp4 [V15,T50] ( 2, 0 ) ref -> x15 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V16 tmp5 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V17 tmp6 [V17,T12] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
-; V18 tmp7 [V18,T53] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V18 tmp7 [V18,T51] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V19 tmp8 [V19,T08] ( 5, 8 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp9 [V20,T44] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V21 tmp10 [V21,T03] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V23 tmp12 [V23,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V23 tmp12 [V23,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp14 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V26 tmp15 [V26,T45] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V28 tmp17 [V28,T46] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V28 tmp17 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V29 tmp18 [V29,T25] ( 3, 3 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V30 tmp19 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;* V31 tmp20 [V31,T48] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V31 tmp20 [V31,T46] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp23 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -52,7 +52,7 @@
;* V41 tmp30 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V42 tmp31 [V42,T13] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V43 tmp32 [V43 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter>
-;* V44 tmp33 [V44,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V44 tmp33 [V44,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V45 tmp34 [V45,T09] ( 7, 7 ) ref -> x20 class-hnd single-def "Inline stloc first use temp" <System.Object>
; V46 tmp35 [V46,T33] ( 2, 2 ) int -> x0
; V47 tmp36 [V47,T26] ( 3, 3 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
@@ -93,18 +93,18 @@
;* V82 tmp71 [V82 ] ( 0, 0 ) ubyte -> zero-ref "field V08._continueOnCapturedContext (fldOffset=0xa)" P-DEP
; V83 tmp72 [V83,T42] ( 2, 2 ) short -> x0 "field V22._offsetMinutes (fldOffset=0x0)" P-INDEP
; V84 tmp73 [V84,T43] ( 2, 2 ) long -> x1 "field V22._dateTime (fldOffset=0x8)" P-INDEP
-;* V85 tmp74 [V85,T47] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
+;* V85 tmp74 [V85,T45] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
; V86 tmp75 [V86,T39] ( 2, 2 ) ref -> x0 single-def "field V34.m_task (fldOffset=0x0)" P-INDEP
-; V87 tmp76 [V87,T54] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V87 tmp76 [V87,T52] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V88 tmp77 [V88,T20] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V89 tmp78 [V89,T21] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V90 PSPSym [V90,T50] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V90 PSPSym [V90,T48] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
; V91 cse0 [V91,T29] ( 3, 3 ) ref -> x22 "CSE - moderate"
; V92 cse1 [V92,T36] ( 3, 3 ) int -> x1 "CSE - moderate"
; V93 cse2 [V93,T30] ( 3, 3 ) ref -> x1 "CSE - moderate"
; V94 cse3 [V94,T31] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V95 cse4 [V95,T05] ( 7, 14 ) byref -> x0 "CSE - aggressive"
-; V96 cse5 [V96,T11] ( 3, 3 ) ref -> x1 multi-def "CSE - aggressive"
+; V96 cse5 [V96,T11] ( 6, 6 ) ref -> x1 multi-def "CSE - aggressive"
; V97 cse6 [V97,T32] ( 3, 3 ) ref -> x23 "CSE - moderate"
;
; Lcl frame size = 40
@@ -199,10 +199,23 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb wzr, [x23, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x1, #8
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x1]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x1
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x1 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x23
@@ -230,7 +243,7 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
; byrRegs -[x14]
str xzr, [x23, #0x10]
str wzr, [x23, #0x1C]
- ;; size=224 bbWeight=1 PerfScore 50.50
+ ;; size=244 bbWeight=1 PerfScore 53.50
G_M28013_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x23]
cbz w20, G_M28013_IG08
@@ -958,7 +971,7 @@ G_M28013_IG47: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2116, prolog size 44, PerfScore 514.00, instruction count 529, allocated bytes for code 2116 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
+; Total bytes of code 2136, prolog size 44, PerfScore 517.00, instruction count 534, allocated bytes for code 2136 (MethodHash=ff6e9292) for method System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -969,7 +982,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 490 (0x001ea) Actual length = 1960 (0x0007a8)
+ Function Length : 495 (0x001ef) Actual length = 1980 (0x0007bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+4.17%) : 16619.dasm - System.Formats.Tar.Tests.PerfTarWriter:V7TarEntryWriteEntry():this (FullOpts)
@@ -17,17 +17,17 @@
;* V06 tmp3 [V06,T08] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V07 tmp4 [V07,T00] ( 10, 20 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V09 tmp6 [V09,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V09 tmp6 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V14 tmp11 [V14,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V15 tmp12 [V15,T06] ( 2, 2 ) short -> x0 "field V08._offsetMinutes (fldOffset=0x0)" P-INDEP
; V16 tmp13 [V16,T07] ( 2, 2 ) long -> x1 "field V08._dateTime (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T12] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V18 PSPSym [V18,T11] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-;* V19 cse0 [V19,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 tmp14 [V17,T10] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V18 PSPSym [V18,T09] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V19 cse0 [V19,T04] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -110,10 +110,23 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
strh w0, [x22, #0x88]
str x1, [x22, #0x90]
strb wzr, [x22, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x22, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x22, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x22, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x20, #8
; byrRegs +[x14]
mov x15, x22
@@ -132,7 +145,7 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=000
; gcr arg pop 0
str x0, [fp, #0x10] // [V02 loc1]
; GC ptr vars +{V02}
- ;; size=176 bbWeight=1 PerfScore 36.00
+ ;; size=196 bbWeight=1 PerfScore 39.00
G_M5976_IG06: ; bbWeight=1, gcVars=0000000000000020 {V02}, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, gcvars, byref
mov x1, x20
; gcrRegs +[x1]
@@ -222,7 +235,7 @@ G_M5976_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 480, prolog size 28, PerfScore 78.00, instruction count 120, allocated bytes for code 480 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
+; Total bytes of code 500, prolog size 28, PerfScore 81.00, instruction count 125, allocated bytes for code 500 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
; ============================================================
Unwind Info:
@@ -233,7 +246,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 104 (0x00068) Actual length = 416 (0x0001a0)
+ Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 16274.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -28,16 +28,17 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
blr x2
; gcrRegs -[x0]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.00, instruction count 15, allocated bytes for code 60 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -48,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_pgo.windows.arm64.checked.mch
-16 (-28.57%) : 323.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-28.57%) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 994.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 36393.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
@@ -130,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -148,7 +150,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -173,7 +177,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -184,7 +188,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -195,7 +199,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 30190.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 36416.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
@@ -130,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -148,7 +150,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -173,7 +177,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -184,7 +188,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -195,7 +199,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.windows.arm64.checked.mch
-16 (-28.57%) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
@@ -21,18 +21,14 @@ G_M15571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x10] // [V01 arg1]
ldr x1, [fp, #0x18] // [V00 arg0]
sub x0, x0, x1
- mov w1, #8
- sub w1, w1, #1
- mvn w1, w1
- sxtw x1, w1
- and x0, x0, x1
- ;; size=32 bbWeight=1 PerfScore 7.00
+ and x0, x0, #-8
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M15571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=a6b9c32c) for method System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 958.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
@@ -18,25 +18,20 @@ G_M62399_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M62399_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 arg0]
- mov w1, #16
- sub w1, w1, #1
- sxtw x1, w1
- and x0, x0, x1
+ and x0, x0, #15
str x0, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
neg w0, w0
add w0, w0, #16
- mov w1, #16
- sub w1, w1, #1
- and w0, w0, w1
+ and w0, w0, #15
mov w0, w0
- ;; size=52 bbWeight=1 PerfScore 10.00
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M62399_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 14.50, instruction count 18, allocated bytes for code 72 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
+; Total bytes of code 52, prolog size 8, PerfScore 12.00, instruction count 13, allocated bytes for code 52 (MethodHash=ed5c0c40) for method System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -47,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-21.43%) : 959.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
@@ -21,18 +21,15 @@ G_M32312_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x14] // [V01 arg1]
ldr w1, [fp, #0x18] // [V00 arg0]
sub w0, w0, w1
- mov w1, #16
- sub w1, w1, #1
- mvn w1, w1
- and w0, w0, w1
+ and w0, w0, #0xD1FFAB1E
mov w0, w0
- ;; size=32 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 5.50
G_M32312_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 12.50, instruction count 14, allocated bytes for code 56 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 11.00, instruction count 11, allocated bytes for code 44 (MethodHash=8ae081c7) for method System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.03%) : 31251.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
@@ -43,8 +43,9 @@ G_M19587_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmn w0, #1
beq G_M19587_IG04
ldr w0, [fp, #0x14] // [V01 loc0]
- and w0, w0, #0xD1FFAB1E
- ;; size=100 bbWeight=1 PerfScore 27.00
+ sxtw x0, w0
+ uxth w0, w0
+ ;; size=104 bbWeight=1 PerfScore 27.50
G_M19587_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -57,7 +58,7 @@ G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 132, prolog size 8, PerfScore 34.00, instruction count 33, allocated bytes for code 132 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
+; Total bytes of code 136, prolog size 8, PerfScore 34.50, instruction count 34, allocated bytes for code 136 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
; ============================================================
Unwind Info:
@@ -68,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 33 (0x00021) Actual length = 132 (0x000084)
+ Function Length : 34 (0x00022) Actual length = 136 (0x000088)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 22952.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
@@ -112,7 +112,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -132,7 +134,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -157,7 +161,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -168,7 +172,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================
Unwind Info:
@@ -179,7 +183,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.08%) : 27424.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
@@ -110,7 +110,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -128,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -153,7 +157,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=152 bbWeight=1 PerfScore 49.00
+ ;; size=168 bbWeight=1 PerfScore 51.00
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -164,7 +168,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 24, PerfScore 116.52, instruction count 98, allocated bytes for code 392 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 408, prolog size 24, PerfScore 118.52, instruction count 102, allocated bytes for code 408 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================
Unwind Info:
@@ -175,7 +179,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 102 (0x00066) Actual length = 408 (0x000198)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.windows.arm64.checked.mch
-44 (-68.75%) : 505673.dasm - _simple:main():int (Tier0)
@@ -14,25 +14,14 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movn w0, #0
- neg w0, w0
- cmp w0, #1
- cset x0, eq
- sub w0, w0, #1
- mov w1, #1
- neg w1, w1
- cmn w1, #1
- cset x1, eq
- sub w1, w1, #1
- orr w0, w0, w1
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 6.00
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 64, prolog size 8, PerfScore 9.50, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-68.75%) : 505752.dasm - _simple:main():int (Tier0)
@@ -13,31 +13,15 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr d16, [@RWD00]
- ldr d17, [@RWD08]
- fadd d16, d16, d17
- ldr d17, [@RWD16]
- fmul d16, d16, d17
- ldr d17, [@RWD24]
- fcmp d16, d17
- cset x0, lo
- scvtf d16, w0
- fcmp d16, #0.0
- cset x0, gt
- add w0, w0, #100
- ;; size=48 bbWeight=1 PerfScore 22.50
+G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dq 061F619384F62E0Eh ; 3.45758597e-279
-RWD08 dq 638961F533A745DFh ; 3.06538108e+171
-RWD16 dq 73DD472C6FD616C1h ; 1.31014133e+250
-RWD24 dq 073DD472C6FD66C1h ; 8.61579601e-274
-
-; Total bytes of code 64, prolog size 8, PerfScore 26.00, instruction count 16, allocated bytes for code 64 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -48,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-66.67%) : 516191.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
@@ -13,27 +13,15 @@ G_M4347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movn w0, #0
- mov w1, #1
- umull x0, w0, w1
- lsr x2, x0, #32
- cmp w2, #0
- bne G_M4347_IG04
- mov w1, #4
- lsr w0, w1, w0
- add w0, w0, #100
- ;; size=36 bbWeight=1 PerfScore 7.00
+G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #100
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M4347_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M4347_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- bl CORINFO_HELP_OVERFLOW
- brk_windows #0
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 8, PerfScore 10.50, instruction count 15, allocated bytes for code 60 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -44,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 470378.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 470450.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
@@ -130,7 +130,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -148,7 +150,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; gcrRegs +[x0]
@@ -173,7 +177,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -184,7 +188,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -195,7 +199,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+3.51%) : 470396.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -132,7 +132,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x0]
asr w0, w0, #16
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -152,7 +154,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
ldr w0, [fp, #0x2C] // [V00 arg0]
; byrRegs -[x0]
sxtw x0, w0
- and w0, w0, #0xD1FFAB1E
+ uxth w0, w0
+ mov w0, w0
+ uxth w0, w0
str w0, [fp, #0x18] // [V03 loc1]
ldr x0, [fp, #0x20] // [V01 arg1]
; byrRegs +[x0]
@@ -177,7 +181,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x1
; byrRegs -[x0]
; gcr arg pop 0
- ;; size=168 bbWeight=1 PerfScore 51.50
+ ;; size=184 bbWeight=1 PerfScore 53.50
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
@@ -188,7 +192,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 456, prolog size 24, PerfScore 126.52, instruction count 114, allocated bytes for code 456 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 472, prolog size 24, PerfScore 128.52, instruction count 118, allocated bytes for code 472 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -199,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
+ Function Length : 118 (0x00076) Actual length = 472 (0x0001d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.crossgen2.windows.arm64.checked.mch
-16 (-11.11%) : 14674.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [fp+0x10] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str x2, [fp, #-0x08] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str x2, [fp, #0x10] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M56019_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #8 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #16 // [V02 arg2]
str x11, [x4]
mov w11, #8
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M56019_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-11.11%) : 14671.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -11,32 +11,31 @@
;
; V00 this [V00,T00] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> x1 single-def
-; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V02 arg2 [V02 ] ( 3, 2.50) int -> [fp+0x14] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> x4
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V05 GsCookie]
- str w2, [fp, #-0x04] // [V02 arg2]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V06 GsCookie]
+ str w2, [fp, #0x14] // [V02 arg2]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M63626_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldrb w4, [x0, #0x9D]
cbz w4, G_M63626_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ldr wzr, [sp], #-0x10
- mov x4, sp
- sub x11, fp, #4 // [V02 arg2]
+ add x4, fp, #24 // [V05 tmp1]
+ add x11, fp, #20 // [V02 arg2]
str x11, [x4]
mov w11, #4
stp w11, wzr, [x4, #0x08]
@@ -47,12 +46,12 @@ G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- ;; size=48 bbWeight=0.50 PerfScore 5.75
+ ;; size=44 bbWeight=0.50 PerfScore 4.75
G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V05 GsCookie]
+ ldr xip1, [fp, #0x28] // [V06 GsCookie]
cmp xip0, xip1
beq G_M63626_IG05
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -61,32 +60,30 @@ G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 144, prolog size 28, PerfScore 33.25, instruction count 36, allocated bytes for code 144 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 128, prolog size 24, PerfScore 30.75, instruction count 32, allocated bytes for code 128 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
- --- One epilog, unwind codes at 0
+ Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-16 (-8.00%) : 14677.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
@@ -12,27 +12,27 @@
; V00 this [V00,T01] ( 4, 3.50) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
; V01 arg1 [V01,T02] ( 3, 2.50) int -> x1 single-def
; V02 arg2 [V02,T00] ( 7, 4.50) ref -> x2 class-hnd <System.String>
-;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref
-; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp-0x08] must-init pinned
+;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref ptr
+; V04 loc1 [V04 ] ( 3, 1.50) byref -> [fp+0x10] must-init pinned ptr
; V05 loc2 [V05,T03] ( 5, 2.50) long -> x11
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T05] ( 3, 1.50) long -> x4
-;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V09 tmp3 [V09,T04] ( 2, 2 ) long -> x4 "Cast away GC"
-; V10 GsCookie [V10 ] ( 1, 1 ) long -> [fp-0x10] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp2 [V08 ] ( 1, 0.50) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp4 [V10,T04] ( 2, 2 ) long -> x4 "Cast away GC"
+; V11 GsCookie [V11 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M49383_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #32
- stp fp, lr, [sp, #0x10]
- add fp, sp, #16
- str xzr, [fp, #-0x08] // [V04 loc1]
+ stp fp, lr, [sp, #-0x30]!
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V04 loc1]
adrp x3, [HIGH RELOC #0xD1FFAB1E] // [SetGlobalSecurityCookie]
add x3, x3, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x3]
- str x3, [fp, #-0x10] // [V10 GsCookie]
- ;; size=32 bbWeight=1 PerfScore 8.00
+ str x3, [fp, #0x28] // [V11 GsCookie]
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M49383_IG02: ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x2]
ldrb w4, [x0, #0x9D]
@@ -55,13 +55,12 @@ G_M49383_IG04: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
G_M49383_IG05: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
add x4, x2, #12
; byrRegs +[x4]
- str x4, [fp, #-0x08] // [V04 loc1]
- ldr x4, [fp, #-0x08] // [V04 loc1]
+ str x4, [fp, #0x10] // [V04 loc1]
+ ldr x4, [fp, #0x10] // [V04 loc1]
;; size=12 bbWeight=0.50 PerfScore 1.75
G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
; byrRegs -[x4]
- ldr wzr, [sp], #-0x10
- mov x11, sp
+ add x11, fp, #24 // [V08 tmp2]
str x4, [x11]
ldr w4, [x2, #0x08]
lsl w4, w4, #1
@@ -76,13 +75,13 @@ G_M49383_IG06: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}
ldr x5, [x11]
blr x5
; gcrRegs -[x0]
- str xzr, [fp, #-0x08] // [V04 loc1]
- ;; size=60 bbWeight=0.50 PerfScore 8.25
+ str xzr, [fp, #0x10] // [V04 loc1]
+ ;; size=56 bbWeight=0.50 PerfScore 7.25
G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // [GlobalSecurityCookieCheck]
add xip0, xip0, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [xip0]
- ldr xip1, [fp, #-0x10] // [V10 GsCookie]
+ ldr xip1, [fp, #0x28] // [V11 GsCookie]
cmp xip0, xip1
beq G_M49383_IG08
adrp xip0, [HIGH RELOC #0xD1FFAB1E] // CORINFO_HELP_FAIL_FAST
@@ -91,32 +90,30 @@ G_M49383_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr xip0
;; size=40 bbWeight=1 PerfScore 12.50
G_M49383_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #16
- ldp fp, lr, [sp, #0x10]
- add sp, sp, #32
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 200, prolog size 32, PerfScore 42.75, instruction count 50, allocated bytes for code 200 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
+; Total bytes of code 184, prolog size 28, PerfScore 40.25, instruction count 46, allocated bytes for code 184 (MethodHash=8ff53f18) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 50 (0x00032) Actual length = 200 (0x0000c8)
- --- One epilog, unwind codes at 0
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 02 add_fp 2 (0x02); add fp, sp, #16
- 42 save_fplr #2 (0x02); stp fp, lr, [sp, #16]
- 02 alloc_s #2 (0x02); sub sp, sp, #32 (0x020)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+0 (0.00%) : 230912.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile:CreateOrOpenCore(System.String,int,int,int,long):Microsoft.Win32.SafeHandles.SafeMemoryMappedFileHandle (FullOpts)
@@ -72,10 +72,10 @@ G_M48742_IG03: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x1
orr w2, w0, w23
asr x3, x21, #32
- mov w4, w21
add x1, fp, #16 // [V06 loc1]
mov x5, x19
; gcrRegs +[x5]
+ mov w4, w21
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
movn x0, #0
+4 (+3.12%) : 144301.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,12 +8,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
; V01 loc0 [V01 ] ( 4, 4 ) int -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.String>
; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -21,10 +20,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
str w0, [fp, #0x18] // [V01 loc0]
add x0, fp, #24 // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -63,7 +63,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 128, prolog size 12, PerfScore 34.00, instruction count 32, allocated bytes for code 128 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 34.50, instruction count 33, allocated bytes for code 132 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +74,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+3.12%) : 24539.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -58,17 +58,18 @@ G_M19587_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0 x19]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 8.50
G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 128, prolog size 12, PerfScore 30.25, instruction count 32, allocated bytes for code 128 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 132, prolog size 12, PerfScore 30.75, instruction count 33, allocated bytes for code 132 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +80,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.windows.arm64.checked.mch
-36 (-19.57%) : 4763.dasm - System.SpanHelpers:Fill[System.Numerics.Vector1[float]](byref,ulong,System.Numerics.Vector
1[float]) (FullOpts)
@@ -10,19 +10,19 @@
;
; V00 arg0 [V00,T02] ( 10, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T03] ( 8, 5.50) long -> x1 single-def
-; V02 arg2 [V02,T09] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
-; V03 loc0 [V03,T04] ( 12, 6 ) long -> x2
+; V02 arg2 [V02,T08] ( 10, 6 ) simd16 -> d0 HFA(simd16) single-def <System.Numerics.Vector`1[float]>
+; V03 loc0 [V03,T05] ( 7, 3.50) long -> x2
;* V04 loc1 [V04 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) ld-addr-op <System.Numerics.Vector`1[float]>
-; V05 loc2 [V05,T08] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T07] ( 5, 9.50) simd16 -> d0 HFA(simd16) ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T01] ( 5, 9.50) byref -> x0 single-def
; V07 loc4 [V07,T06] ( 4, 2 ) long -> x2
-; V08 loc5 [V08,T05] ( 2, 4.50) long -> x3
+; V08 loc5 [V08,T04] ( 2, 4.50) long -> x3
; V09 loc6 [V09,T00] ( 7, 21 ) long -> x4
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V11 loc8 [V11 ] ( 0, 0 ) long -> zero-ref
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V14 tmp2 [V14,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -64,19 +64,10 @@ G_M26735_IG07: ; bbWeight=0.50, epilog, nogc, extend
G_M26735_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
mov x2, xzr
tbz w1, #2, G_M26735_IG09
- lsl x3, x2, #4
- str q0, [x0, x3]
- add x3, x2, #1
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #2
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x3, x2, #3
- lsl x3, x3, #4
- str q0, [x0, x3]
- add x2, x2, #4
- ;; size=56 bbWeight=0.50 PerfScore 5.75
+ stp q0, q0, [x0]
+ stp q0, q0, [x0, #0x20]
+ mov x2, #4
+ ;; size=20 bbWeight=0.50 PerfScore 2.00
G_M26735_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
tbz w1, #1, G_M26735_IG10
lsl x3, x2, #4
@@ -97,7 +88,7 @@ G_M26735_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 184, prolog size 8, PerfScore 36.25, instruction count 46, allocated bytes for code 184 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
+; Total bytes of code 148, prolog size 8, PerfScore 32.50, instruction count 37, allocated bytes for code 148 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +99,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-12.50%) : 7119.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,9 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> x0 this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> x0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 3 ) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -21,16 +22,15 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
; byrRegs +[x0]
ldrh w1, [x0]
- ldrh w2, [x0]
- orr w1, w1, w2, LSL #16
+ orr w1, w1, w1, LSL #16
str w1, [x0]
- ;; size=16 bbWeight=1 PerfScore 8.00
+ ;; size=12 bbWeight=1 PerfScore 5.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 11.50, instruction count 8, allocated bytes for code 32 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 28, prolog size 8, PerfScore 8.50, instruction count 7, allocated bytes for code 28 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-4.17%) : 141156.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
@@ -56,13 +56,11 @@ G_M11197_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
str s0, [x0, #0x10]
ldr w0, [x0, #0x10]
; gcrRegs -[x0]
- sxtw x0, w0
- mov w0, w0
asr x1, x0, #24
adds x0, x0, x1
bvs G_M11197_IG07
and w20, w0, #0xD1FFAB1E
- ;; size=64 bbWeight=0.50 PerfScore 8.00
+ ;; size=56 bbWeight=0.50 PerfScore 7.50
G_M11197_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz w0, #0xD1FFAB1E
movk w0, #0xD1FFAB1E LSL #16
@@ -92,7 +90,7 @@ G_M11197_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
RWD00 dd 33800000h ; 5.96046e-08
-; Total bytes of code 192, prolog size 12, PerfScore 44.50, instruction count 48, allocated bytes for code 192 (MethodHash=6611d442) for method Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
+; Total bytes of code 184, prolog size 12, PerfScore 44.00, instruction count 46, allocated bytes for code 184 (MethodHash=6611d442) for method Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
; ============================================================
Unwind Info:
@@ -103,7 +101,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+12 (+1.36%) : 277506.dasm - System.Net.HttpListenerSession:CloseRequestQueueHandle():this (FullOpts)
@@ -8,95 +8,96 @@
; 8 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 10, 9 ) ref -> [fp+0x10] this class-hnd EH-live single-def <System.Net.HttpListenerSession>
-;* V01 loc0 [V01,T27] ( 0, 0 ) ref -> zero-ref class-hnd exact EH-live single-def <System.Net.HttpListenerSession>
-; V02 loc1 [V02 ] ( 6, 5 ) ubyte -> [fp+0x40] do-not-enreg[X] addr-exposed ld-addr-op
-; V03 loc2 [V03 ] ( 14, 13.00) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V00 this [V00,T00] ( 10, 9 ) ref -> [fp+0x18] this class-hnd EH-live single-def <System.Net.HttpListenerSession>
+;* V01 loc0 [V01,T25] ( 0, 0 ) ref -> zero-ref class-hnd exact EH-live single-def <System.Net.HttpListenerSession>
+; V02 loc1 [V02 ] ( 6, 5 ) ubyte -> [fp+0x48] do-not-enreg[X] addr-exposed ld-addr-op
+; V03 loc2 [V03 ] ( 14, 13.00) struct (40) [fp+0x20] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T04] ( 3, 6 ) ref -> x1 class-hnd exact single-def "dup spill" <System.Threading.ThreadPoolBoundHandle>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V09 tmp5 [V09,T09] ( 2, 4 ) ubyte -> x0 "Inlining Arg"
+; V09 tmp5 [V09,T08] ( 2, 4 ) ubyte -> x0 "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V11 tmp7 [V11,T07] ( 2, 4.00) ref -> x0 class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V11 tmp7 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V13 tmp9 [V13,T01] ( 5, 10.00) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V15 tmp11 [V15,T23] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V19 tmp15 [V19,T03] ( 4, 8 ) int -> x0 "Inlining Arg"
-;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V21 tmp17 [V21,T06] ( 3, 6 ) int -> x20 "Inlining Arg"
-; V22 tmp18 [V22,T10] ( 2, 4.00) byref -> x19 single-def "Inlining Arg"
+;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V16 tmp12 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V18 tmp14 [V18,T03] ( 4, 8 ) int -> x0 "Inlining Arg"
+;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V20 tmp16 [V20,T06] ( 3, 6 ) int -> x21 "Inlining Arg"
+; V21 tmp17 [V21,T09] ( 2, 4.00) byref -> x20 single-def "Inlining Arg"
+;* V22 tmp18 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp19 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp21 [V25,T19] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V27 tmp23 [V27 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V28 tmp24 [V28,T11] ( 2, 3.99) byref -> x0 single-def "Inlining Arg"
-; V29 tmp25 [V29,T08] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
-; V31 tmp27 [V31,T12] ( 3, 3 ) ref -> x19 single-def
-; V32 tmp28 [V32,T16] ( 2, 2 ) ref -> x2 single-def
+;* V24 tmp20 [V24,T19] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V25 tmp21 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V26 tmp22 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V27 tmp23 [V27,T10] ( 2, 3.99) byref -> x0 single-def "Inlining Arg"
+; V28 tmp24 [V28,T07] ( 2, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V29 tmp25 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
+; V30 tmp26 [V30,T11] ( 3, 3 ) ref -> x19 single-def
+; V31 tmp27 [V31,T16] ( 2, 2 ) ref -> x2 single-def
+;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
;* V33 tmp29 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
;* V34 tmp30 [V34 ] ( 0, 0 ) ref -> zero-ref single-def
;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V37 tmp33 [V37,T20] ( 0, 0 ) ref -> zero-ref single-def
-; V38 tmp34 [V38,T17] ( 2, 2 ) ref -> x0 single-def
-;* V39 tmp35 [V39,T24] ( 0, 0 ) int -> zero-ref
-; V40 tmp36 [V40,T18] ( 2, 2 ) ref -> x2 single-def
-;* V41 tmp37 [V41,T21] ( 0, 0 ) ref -> zero-ref single-def
-; V42 tmp38 [V42,T14] ( 3, 2 ) byref -> x19 "field V17._reference (fldOffset=0x0)" P-INDEP
-; V43 tmp39 [V43,T15] ( 3, 2 ) int -> x20 "field V17._length (fldOffset=0x8)" P-INDEP
-;* V44 tmp40 [V44 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp41 [V45 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V46 tmp42 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V48 tmp44 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V49 tmp45 [V49 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-;* V50 tmp46 [V50,T22] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
-;* V51 tmp47 [V51 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[008..016)"
-;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref "V08.[016..020)"
-;* V53 tmp49 [V53 ] ( 0, 0 ) ubyte -> zero-ref "V08.[020..021)"
-;* V54 tmp50 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "V08.[024..032)"
-;* V55 tmp51 [V55 ] ( 0, 0 ) int -> zero-ref "V08.[032..036)"
-; V56 tmp52 [V56,T05] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
-; V57 PSPSym [V57,T25] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[V] "PSPSym"
-;* V58 cse0 [V58,T26] ( 0, 0 ) long -> zero-ref "CSE - moderate"
-; V59 cse1 [V59,T02] ( 6, 6 ) ref -> x1 multi-def "CSE - aggressive"
-; V60 cse2 [V60,T13] ( 3, 3 ) int -> x1 "CSE - moderate"
+;* V36 tmp32 [V36,T20] ( 0, 0 ) ref -> zero-ref single-def
+; V37 tmp33 [V37,T17] ( 2, 2 ) ref -> x0 single-def
+;* V38 tmp34 [V38,T22] ( 0, 0 ) int -> zero-ref
+; V39 tmp35 [V39,T18] ( 2, 2 ) ref -> x2 single-def
+;* V40 tmp36 [V40,T21] ( 0, 0 ) ref -> zero-ref single-def
+; V41 tmp37 [V41,T14] ( 3, 2 ) byref -> x20 "field V16._reference (fldOffset=0x0)" P-INDEP
+; V42 tmp38 [V42,T15] ( 3, 2 ) int -> x21 "field V16._length (fldOffset=0x8)" P-INDEP
+;* V43 tmp39 [V43 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
+;* V45 tmp41 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp42 [V46 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V47 tmp43 [V47 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V48 tmp44 [V48 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
+;* V49 tmp45 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..008)"
+;* V50 tmp46 [V50 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[008..016)"
+;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "V08.[016..020)"
+;* V52 tmp48 [V52 ] ( 0, 0 ) ubyte -> zero-ref "V08.[020..021)"
+;* V53 tmp49 [V53 ] ( 0, 0 ) byref -> zero-ref single-def "V08.[024..032)"
+;* V54 tmp50 [V54 ] ( 0, 0 ) int -> zero-ref "V08.[032..036)"
+; V55 tmp51 [V55,T05] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V56 PSPSym [V56,T23] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+;* V57 cse0 [V57,T24] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V58 cse1 [V58,T02] ( 6, 6 ) ref -> x1 multi-def "CSE - aggressive"
+; V59 cse2 [V59,T12] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V60 cse3 [V60,T13] ( 3, 3 ) long -> x19 "CSE - aggressive"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M30627_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x50]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x58]
+ str x21, [sp, #0x68]
mov fp, sp
- add x9, fp, #24
+ add x9, fp, #32
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
- add x1, sp, #96
- str x1, [fp, #0x48] // [V57 PSPSym]
- str x0, [fp, #0x10] // [V00 this]
+ add x1, sp, #112
+ str x1, [fp, #0x50] // [V56 PSPSym]
+ str x0, [fp, #0x18] // [V00 this]
; GC ptr vars +{V00}
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M30627_IG02: ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x0]
- str wzr, [fp, #0x40] // [V02 loc1]
+ str wzr, [fp, #0x48] // [V02 loc1]
;; size=4 bbWeight=1 PerfScore 1.00
G_M30627_IG03: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
- ldrb w1, [fp, #0x40] // [V02 loc1]
+ ldrb w1, [fp, #0x48] // [V02 loc1]
cbnz w1, G_M30627_IG19
- add x1, fp, #64 // [V02 loc1]
+ add x1, fp, #72 // [V02 loc1]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldrb w0, [fp, #0x40] // [V02 loc1]
+ ldrb w0, [fp, #0x48] // [V02 loc1]
cbnz w0, G_M30627_IG04
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
@@ -112,7 +113,7 @@ G_M30627_IG03: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcr arg pop 0
;; size=60 bbWeight=1 PerfScore 15.00
G_M30627_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x10] // [V00 this]
+ ldr x0, [fp, #0x18] // [V00 this]
; gcrRegs +[x0]
ldr x1, [x0, #0x10]
; gcrRegs +[x1]
@@ -132,10 +133,10 @@ G_M30627_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
tbz w0, #0, G_M30627_IG18
;; size=52 bbWeight=1 PerfScore 22.00
G_M30627_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
+ movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x19, #0xD1FFAB1E LSL #16
+ movk x19, #0xD1FFAB1E LSL #32
+ ldr x0, [x19]
; gcrRegs +[x0]
ldrb w0, [x0, #0x9D]
; gcrRegs -[x0]
@@ -157,27 +158,27 @@ G_M30627_IG06: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
cbz x0, G_M30627_IG17
;; size=44 bbWeight=1.00 PerfScore 11.50
G_M30627_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- add x19, x0, #16
- ; byrRegs +[x19]
- ldr w20, [x0, #0x08]
+ add x20, x0, #16
+ ; byrRegs +[x20]
+ ldr w21, [x0, #0x08]
;; size=8 bbWeight=1 PerfScore 3.50
-G_M30627_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz
- stp xzr, x0, [fp, #0x18] // [V03 loc2], [V03 loc2+0x08]
- str wzr, [fp, #0x28] // [V03 loc2+0x10]
- strb wzr, [fp, #0x2C] // [V03 loc2+0x14]
- str x19, [fp, #0x30] // [V03 loc2+0x18]
- str w20, [fp, #0x38] // [V03 loc2+0x20]
- ldr w0, [fp, #0x28] // [V03 loc2+0x10]
+G_M30627_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=100000 {x20}, byref, isz
+ stp xzr, x0, [fp, #0x20] // [V03 loc2], [V03 loc2+0x08]
+ str wzr, [fp, #0x30] // [V03 loc2+0x10]
+ strb wzr, [fp, #0x34] // [V03 loc2+0x14]
+ str x20, [fp, #0x38] // [V03 loc2+0x18]
+ str w21, [fp, #0x40] // [V03 loc2+0x20]
+ ldr w0, [fp, #0x30] // [V03 loc2+0x10]
; gcrRegs -[x0]
- ldr w1, [fp, #0x38] // [V03 loc2+0x20]
+ ldr w1, [fp, #0x40] // [V03 loc2+0x20]
cmp w0, w1
bhi G_M30627_IG16
- ldr x2, [fp, #0x30] // [V03 loc2+0x18]
+ ldr x2, [fp, #0x38] // [V03 loc2+0x18]
; byrRegs +[x2]
ubfiz x3, x0, #1, #32
- add x19, x2, x3
- sub w20, w1, w0
- tbz w20, #31, G_M30627_IG09
+ add x20, x2, x3
+ sub w21, w1, w0
+ tbz w21, #31, G_M30627_IG09
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -192,31 +193,31 @@ G_M30627_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19},
; gcrRegs -[x0]
; gcr arg pop 0
;; size=92 bbWeight=1 PerfScore 23.00
-G_M30627_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, #31
+G_M30627_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cmp w21, #31
blo G_M30627_IG14
;; size=8 bbWeight=1 PerfScore 1.50
-G_M30627_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M30627_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldp q16, q17, [x0]
ldr q18, [x0, #0x20]
ldr q19, [x0, #0x2E]
- stp q16, q17, [x19]
- str q18, [x19, #0x20]
- str q19, [x19, #0x2E]
- ldr w0, [fp, #0x28] // [V03 loc2+0x10]
+ stp q16, q17, [x20]
+ str q18, [x20, #0x20]
+ str q19, [x20, #0x2E]
+ ldr w0, [fp, #0x30] // [V03 loc2+0x10]
...
+4 (+3.33%) : 207266.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,13 +8,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> x0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> x19 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> x20 single-def "argument with side effect"
; V05 tmp3 [V05,T02] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V06 cse0 [V06,T03] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -22,10 +21,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ mov w19, w0
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth w19, w0
- asr w0, w19, #8
+ uxth w0, w19
+ asr w0, w0, #8
movz x1, #0xD1FFAB1E // code for System.Number:Int32ToDecStr(int):System.String
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -61,7 +61,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 120, prolog size 12, PerfScore 27.00, instruction count 30, allocated bytes for code 120 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 124, prolog size 12, PerfScore 27.50, instruction count 31, allocated bytes for code 124 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+6.85%) : 267004.dasm - System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
@@ -15,17 +15,17 @@
; V04 tmp1 [V04,T04] ( 3, 4 ) int -> x22 "impAppendStmt"
; V05 tmp2 [V05,T00] ( 10, 20 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "spilled call-like call argument" <System.DateTimeOffset>
-;* V07 tmp4 [V07,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp5 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V10 tmp7 [V10,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T11] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V13 tmp10 [V13,T07] ( 2, 2 ) short -> x0 "field V06._offsetMinutes (fldOffset=0x0)" P-INDEP
; V14 tmp11 [V14,T08] ( 2, 2 ) long -> x1 "field V06._dateTime (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T13] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V15 tmp12 [V15,T11] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V16 cse0 [V16,T05] ( 4, 3.50) int -> x22 "CSE - aggressive"
-;* V17 cse1 [V17,T06] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 cse1 [V17,T06] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -99,10 +99,23 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
strh w0, [x23, #0x88]
str x1, [x23, #0x90]
strb w20, [x23, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x23, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x23, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x23, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x21, #8
; byrRegs +[x14]
mov x15, x23
@@ -110,7 +123,7 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x21 x23]
; byrRegs -[x14]
- ;; size=104 bbWeight=1 PerfScore 20.50
+ ;; size=124 bbWeight=1 PerfScore 23.50
G_M15258_IG08: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -138,7 +151,7 @@ G_M15258_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
brk_windows #0
;; size=52 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 20, PerfScore 47.11, instruction count 73, allocated bytes for code 292 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
+; Total bytes of code 312, prolog size 20, PerfScore 50.11, instruction count 78, allocated bytes for code 312 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
; ============================================================
Unwind Info:
@@ -149,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 73 (0x00049) Actual length = 292 (0x000124)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries_tests.run.windows.arm64.Release.mch
-28 (-58.33%) : 432366.dasm - TestType:meth1():int (Tier0)
@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- mov w1, #1
- add w1, w1, #1
- add w1, w1, #1
- add w0, w0, w1
- add w0, w0, #2
- add w0, w0, #1
- ;; size=32 bbWeight=1 PerfScore 4.00
+ mov w0, #8
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 48, prolog size 8, PerfScore 7.50, instruction count 12, allocated bytes for code 48 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-37.50%) : 432365.dasm - TestType:meth1():int (Tier0)
@@ -14,17 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- add w0, w0, #1
- add w0, w0, #1
- add w0, w0, #1
- ;; size=16 bbWeight=1 PerfScore 2.00
+ mov w0, #4
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 5.50, instruction count 8, allocated bytes for code 32 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-28.57%) : 69848.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
@@ -14,16 +14,14 @@ G_M23088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M23088_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #0xD1FFAB1E
- mov w1, #8
- udiv w0, w0, w1
- ;; size=12 bbWeight=1 PerfScore 12.00
+ mov w0, #64
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M23088_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 15.50, instruction count 7, allocated bytes for code 28 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 169800.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
@@ -19,20 +19,21 @@ G_M43989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
sxtb w0, w0
sxtw x0, w0
- and x0, x0, #255
+ uxtb w0, w0
+ mov w0, w0
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 9.00
+ ;; size=40 bbWeight=1 PerfScore 9.50
G_M43989_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 56, prolog size 8, PerfScore 13.50, instruction count 14, allocated bytes for code 56 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
+; Total bytes of code 60, prolog size 8, PerfScore 14.00, instruction count 15, allocated bytes for code 60 (MethodHash=7721542a) for method Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
; ============================================================
Unwind Info:
@@ -43,7 +44,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+12.50%) : 248265.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,14 +18,15 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
asr w0, w0, #16
+ uxth w0, w0
sxth w0, w0
- ;; size=12 bbWeight=1 PerfScore 3.50
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 36, prolog size 8, PerfScore 8.50, instruction count 9, allocated bytes for code 36 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -36,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 32 (0x000020)
+ Function Length : 9 (0x00009) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 248264.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,14 +17,15 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 2.50
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr w0, [fp, #0x1C] // [V00 arg0]
+ uxth w0, w0
sxth w0, w0
- ;; size=8 bbWeight=1 PerfScore 2.50
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 7.00, instruction count 7, allocated bytes for code 28 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 7.50, instruction count 8, allocated bytes for code 32 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
-16 (-8.33%) : 102055.dasm - SdtEventSources.EventSourceTest:LogTaskScheduled(System.Guid,System.String):this (FullOpts)
@@ -9,32 +9,32 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <SdtEventSources.EventSourceTest>
-; V01 arg1 [V01 ] ( 3, 3 ) struct (16) [fp-0x10] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op single-def <System.Guid>
+; V01 arg1 [V01 ] ( 3, 3 ) struct (16) [fp+0x18] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op single-def <System.Guid>
; V02 arg2 [V02,T00] ( 8, 8 ) ref -> x3 class-hnd <System.String>
-;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def
-; V04 loc1 [V04 ] ( 3, 3 ) byref -> [fp-0x18] must-init pinned
+;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def ptr
+; V04 loc1 [V04 ] ( 3, 3 ) byref -> [fp+0x10] must-init pinned ptr
; V05 loc2 [V05,T02] ( 4, 4 ) long -> x4 single-def
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T04] ( 2, 2 ) long -> x2
-;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V09 tmp3 [V09,T03] ( 2, 4 ) long -> x2 "Cast away GC"
-; V10 GsCookie [V10 ] ( 1, 1 ) long -> [fp-0x20] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp2 [V08 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp4 [V10,T03] ( 2, 4 ) long -> x2 "Cast away GC"
+; V11 GsCookie [V11 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M11227_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #48
- stp fp, lr, [sp, #0x20]
- add fp, sp, #32
- str xzr, [fp, #-0x18] // [V04 loc1]
+ stp fp, lr, [sp, #-0x40]!
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V04 loc1]
+ stp xzr, xzr, [fp, #0x28] // [V08 tmp2], [V08 tmp2+0x08]
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
movk x4, #0xD1FFAB1E LSL #48
- str x4, [fp, #-0x20] // [V10 GsCookie]
- str x1, [fp, #-0x10] // [V01 arg1]
- str x2, [fp, #-0x08] // [V01 arg1+0x08]
- ;; size=44 bbWeight=1 PerfScore 8.00
+ str x4, [fp, #0x38] // [V11 GsCookie]
+ stp x1, x2, [fp, #0x18] // [V01 arg1], [V01 arg1+0x08]
+ ;; size=40 bbWeight=1 PerfScore 7.50
G_M11227_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x3]
movz x2, #8
@@ -45,17 +45,16 @@ G_M11227_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, b
ldrsb wzr, [x3]
add x2, x3, #12
; byrRegs +[x2]
- str x2, [fp, #-0x18] // [V04 loc1]
- ldr x2, [fp, #-0x18] // [V04 loc1]
- stp xzr, xzr, [sp, #-0x10]!
- mov x4, sp
+ str x2, [fp, #0x10] // [V04 loc1]
+ ldr x2, [fp, #0x10] // [V04 loc1]
+ add x4, fp, #40 // [V08 tmp2]
str x2, [x4]
ldr w2, [x3, #0x08]
; byrRegs -[x2]
lsl w2, w2, #1
add w2, w2, #2
str w2, [x4, #0x08]
- sub x2, fp, #16 // [V01 arg1]
+ add x2, fp, #24 // [V01 arg1]
mov w1, #17
mov w3, #1
; gcrRegs -[x3]
@@ -65,43 +64,41 @@ G_M11227_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, b
ldr x5, [x5]
blr x5
; gcrRegs -[x0]
- str xzr, [fp, #-0x18] // [V04 loc1]
+ str xzr, [fp, #0x10] // [V04 loc1]
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
movk xip0, #0xD1FFAB1E LSL #32
movk xip0, #0xD1FFAB1E LSL #48
- ldr xip1, [fp, #-0x20] // [V10 GsCookie]
+ ldr xip1, [fp, #0x38] // [V11 GsCookie]
cmp xip0, xip1
beq G_M11227_IG03
bl CORINFO_HELP_FAIL_FAST
- ;; size=132 bbWeight=1 PerfScore 31.50
+ ;; size=128 bbWeight=1 PerfScore 30.50
G_M11227_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #32
- ldp fp, lr, [sp, #0x20]
- add sp, sp, #48
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 192, prolog size 36, PerfScore 42.50, instruction count 48, allocated bytes for code 192 (MethodHash=12bdd424) for method SdtEventSources.EventSourceTest:LogTaskScheduled(System.Guid,System.String):this (FullOpts)
+; Total bytes of code 176, prolog size 36, PerfScore 40.00, instruction count 44, allocated bytes for code 176 (MethodHash=12bdd424) for method SdtEventSources.EventSourceTest:LogTaskScheduled(System.Guid,System.String):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
- --- One epilog, unwind codes at 0
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 04 add_fp 4 (0x04); add fp, sp, #32
- 44 save_fplr #4 (0x04); stp fp, lr, [sp, #32]
- 03 alloc_s #3 (0x03); sub sp, sp, #48 (0x030)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
-16 (-8.33%) : 102056.dasm - SdtEventSources.EventSourceTest:LogTaskScheduledBad(System.Guid,System.String):this (FullOpts)
@@ -9,32 +9,32 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <SdtEventSources.EventSourceTest>
-; V01 arg1 [V01 ] ( 3, 3 ) struct (16) [fp-0x10] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op single-def <System.Guid>
+; V01 arg1 [V01 ] ( 3, 3 ) struct (16) [fp+0x18] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op single-def <System.Guid>
; V02 arg2 [V02,T00] ( 8, 8 ) ref -> x3 class-hnd <System.String>
-;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def
-; V04 loc1 [V04 ] ( 3, 3 ) byref -> [fp-0x18] must-init pinned
+;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def ptr
+; V04 loc1 [V04 ] ( 3, 3 ) byref -> [fp+0x10] must-init pinned ptr
; V05 loc2 [V05,T02] ( 4, 4 ) long -> x4 single-def
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T04] ( 2, 2 ) long -> x2
-;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V09 tmp3 [V09,T03] ( 2, 4 ) long -> x2 "Cast away GC"
-; V10 GsCookie [V10 ] ( 1, 1 ) long -> [fp-0x20] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V08 tmp2 [V08 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp4 [V10,T03] ( 2, 4 ) long -> x2 "Cast away GC"
+; V11 GsCookie [V11 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M41308_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #48
- stp fp, lr, [sp, #0x20]
- add fp, sp, #32
- str xzr, [fp, #-0x18] // [V04 loc1]
+ stp fp, lr, [sp, #-0x40]!
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V04 loc1]
+ stp xzr, xzr, [fp, #0x28] // [V08 tmp2], [V08 tmp2+0x08]
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
movk x4, #0xD1FFAB1E LSL #48
- str x4, [fp, #-0x20] // [V10 GsCookie]
- str x1, [fp, #-0x10] // [V01 arg1]
- str x2, [fp, #-0x08] // [V01 arg1+0x08]
- ;; size=44 bbWeight=1 PerfScore 8.00
+ str x4, [fp, #0x38] // [V11 GsCookie]
+ stp x1, x2, [fp, #0x18] // [V01 arg1], [V01 arg1+0x08]
+ ;; size=40 bbWeight=1 PerfScore 7.50
G_M41308_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x3]
movz x2, #8
@@ -45,17 +45,16 @@ G_M41308_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, b
ldrsb wzr, [x3]
add x2, x3, #12
; byrRegs +[x2]
- str x2, [fp, #-0x18] // [V04 loc1]
- ldr x2, [fp, #-0x18] // [V04 loc1]
- stp xzr, xzr, [sp, #-0x10]!
- mov x4, sp
+ str x2, [fp, #0x10] // [V04 loc1]
+ ldr x2, [fp, #0x10] // [V04 loc1]
+ add x4, fp, #40 // [V08 tmp2]
str x2, [x4]
ldr w2, [x3, #0x08]
; byrRegs -[x2]
lsl w2, w2, #1
add w2, w2, #2
str w2, [x4, #0x08]
- sub x2, fp, #16 // [V01 arg1]
+ add x2, fp, #24 // [V01 arg1]
mov w1, #23
mov w3, #1
; gcrRegs -[x3]
@@ -65,43 +64,41 @@ G_M41308_IG02: ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, b
ldr x5, [x5]
blr x5
; gcrRegs -[x0]
- str xzr, [fp, #-0x18] // [V04 loc1]
+ str xzr, [fp, #0x10] // [V04 loc1]
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
movk xip0, #0xD1FFAB1E LSL #32
movk xip0, #0xD1FFAB1E LSL #48
- ldr xip1, [fp, #-0x20] // [V10 GsCookie]
+ ldr xip1, [fp, #0x38] // [V11 GsCookie]
cmp xip0, xip1
beq G_M41308_IG03
bl CORINFO_HELP_FAIL_FAST
- ;; size=132 bbWeight=1 PerfScore 31.50
+ ;; size=128 bbWeight=1 PerfScore 30.50
G_M41308_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #32
- ldp fp, lr, [sp, #0x20]
- add sp, sp, #48
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 192, prolog size 36, PerfScore 42.50, instruction count 48, allocated bytes for code 192 (MethodHash=6ff75ea3) for method SdtEventSources.EventSourceTest:LogTaskScheduledBad(System.Guid,System.String):this (FullOpts)
+; Total bytes of code 176, prolog size 36, PerfScore 40.00, instruction count 44, allocated bytes for code 176 (MethodHash=6ff75ea3) for method SdtEventSources.EventSourceTest:LogTaskScheduledBad(System.Guid,System.String):this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
- Epilog Count : 0
- E bit : 1
+ Code Words : 1
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
- --- One epilog, unwind codes at 0
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 04 add_fp 4 (0x04); add fp, sp, #32
- 44 save_fplr #4 (0x04); stp fp, lr, [sp, #32]
- 03 alloc_s #3 (0x03); sub sp, sp, #48 (0x030)
- E4 end
- E4 end
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
-8 (-6.90%) : 78195.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass50:b__0():this (FullOpts)
@@ -32,9 +32,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldr w2, [x1, #0x08]
cmn w2, #1
bls G_M1950_IG04
- movz x2, #12
- movk x2, #4 LSL #32
- add x1, x1, x2
+ add x1, x1, #12
; gcrRegs -[x1]
; byrRegs +[x1]
ldr w2, [x1]
@@ -44,7 +42,7 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; byrRegs -[x1]
add w1, w1, #1
str w1, [x0, #0x14]
- ;; size=68 bbWeight=1 PerfScore 25.50
+ ;; size=60 bbWeight=1 PerfScore 24.50
G_M1950_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
@@ -63,7 +61,7 @@ G_M1950_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 116, prolog size 8, PerfScore 29.00, instruction count 29, allocated bytes for code 116 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 28.00, instruction count 27, allocated bytes for code 108 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
; ============================================================
Unwind Info:
@@ -74,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 121348.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_13():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M32844_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #55
strb w14, [x20, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M32844_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M32844_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=54b87fb3) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=54b87fb3) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 121352.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_17():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M15560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #103
strb w14, [x20, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M15560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M15560_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=1056c337) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=1056c337) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+9.80%) : 121356.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_111():System.Object:this (FullOpts)
@@ -17,14 +17,14 @@
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V12 tmp11 [V12,T03] ( 2, 2 ) short -> x0 "field V05._offsetMinutes (fldOffset=0x0)" P-INDEP
; V13 tmp12 [V13,T04] ( 2, 2 ) long -> x1 "field V05._dateTime (fldOffset=0x8)" P-INDEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T02] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T02] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -77,10 +77,23 @@ G_M39199_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x1, [x20, #0x90]
mov w14, #48
strb w14, [x20, #0x84]
- movz x14, #8
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- stp x14, x14, [x20, #0x20]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ add x14, x20, #32
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15] +[x0]
+ ; byrRegs -[x14]
+ add x14, x20, #40
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
mov x15, x20
@@ -90,14 +103,14 @@ G_M39199_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x14]
mov x0, x19
; gcrRegs +[x0]
- ;; size=180 bbWeight=1 PerfScore 33.50
+ ;; size=200 bbWeight=1 PerfScore 36.50
G_M39199_IG03: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 204, prolog size 12, PerfScore 39.00, instruction count 51, allocated bytes for code 204 (MethodHash=ae2166e0) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 42.00, instruction count 56, allocated bytes for code 224 (MethodHash=ae2166e0) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -108,7 +121,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
realworld.run.windows.arm64.checked.mch
-4 (-4.00%) : 4546.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
@@ -31,8 +31,7 @@ G_M26680_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w2, w1
- and w2, w2, #0xD1FFAB1E
+ and w2, w1, #0xD1FFAB1E
sxtw w3, w2
and x4, x0, #0xD1FFAB1E
asr x4, x4, #24
@@ -41,7 +40,7 @@ G_M26680_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w2, w5, w2
cmp w2, w3
bgt G_M26680_IG04
- ;; size=40 bbWeight=1 PerfScore 6.50
+ ;; size=36 bbWeight=1 PerfScore 6.00
G_M26680_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
@@ -62,7 +61,7 @@ G_M26680_IG05: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 100, prolog size 8, PerfScore 12.50, instruction count 25, allocated bytes for code 100 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 12.00, instruction count 24, allocated bytes for code 96 (MethodHash=7a0e97c7) for method FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
; ============================================================
Unwind Info:
@@ -73,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-3.12%) : 14071.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
@@ -13,76 +13,74 @@
; V02 arg2 [V02,T04] ( 3, 3 ) int -> x2 single-def
; V03 arg3 [V03,T03] ( 3, 3 ) byref -> x19 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
-; V05 loc1 [V05,T07] ( 4, 3 ) int -> x20
-; V06 loc2 [V06 ] ( 7, 4.75) ref -> [fp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-; V07 loc3 [V07,T09] ( 3, 3 ) ubyte -> x21
+; V05 loc1 [V05,T06] ( 4, 3 ) int -> x20
+; V06 loc2 [V06 ] ( 7, 4.75) ref -> [fp+0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <<unknown class>>
+; V07 loc3 [V07,T08] ( 3, 3 ) ubyte -> x21
;* V08 loc4 [V08 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
-;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-; V12 tmp3 [V12,T10] ( 3, 2 ) int -> x0
-; V13 tmp4 [V13,T00] ( 4, 5 ) ref -> x15 class-hnd "spilling QMark2" <<unknown class>>
-; V14 tmp5 [V14,T08] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Object[]>
-; V15 tmp6 [V15,T11] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
-; V16 tmp7 [V16,T06] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V10 tmp1 [V10 ] ( 1, 1 ) struct ( 8) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
+;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
+; V13 tmp4 [V13,T09] ( 3, 2 ) int -> x0
+; V14 tmp5 [V14,T00] ( 4, 5 ) ref -> x15 class-hnd "spilling QMark2" <<unknown class>>
+; V15 tmp6 [V15,T07] ( 3, 3 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Object[]>
+; V16 tmp7 [V16,T10] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[long]>
;* V18 tmp9 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V19 tmp10 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[long]>
-;* V20 tmp11 [V20,T18] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V20 tmp11 [V20,T17] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V21 tmp12 [V21,T05] ( 2, 4 ) byref -> x3 single-def "Inlining Arg"
;* V22 tmp13 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V25 tmp16 [V25,T12] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.NetEventSource>
-; V26 tmp17 [V26,T13] ( 2, 2 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V27 tmp18 [V27,T14] ( 2, 2 ) ref -> x23 class-hnd exact single-def "non-inline candidate call" <System.String>
+; V25 tmp16 [V25,T11] ( 2, 2 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Net.NetEventSource>
+; V26 tmp17 [V26,T12] ( 2, 2 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.FormattableString>
+; V27 tmp18 [V27,T13] ( 2, 2 ) ref -> x23 class-hnd exact single-def "non-inline candidate call" <System.String>
;* V28 tmp19 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-; V29 tmp20 [V29,T20] ( 2, 1 ) ref -> x0 single-def
-;* V30 tmp21 [V30,T24] ( 0, 0 ) int -> zero-ref
-; V31 tmp22 [V31,T21] ( 2, 1 ) ref -> x2 single-def
-;* V32 tmp23 [V32,T23] ( 0, 0 ) ref -> zero-ref single-def
-; V33 tmp24 [V33,T15] ( 2, 2 ) ref -> x4 class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp20 [V29,T19] ( 2, 1 ) ref -> x0 single-def
+;* V30 tmp21 [V30,T23] ( 0, 0 ) int -> zero-ref ptr
+; V31 tmp22 [V31,T20] ( 2, 1 ) ref -> x2 single-def
+;* V32 tmp23 [V32,T22] ( 0, 0 ) ref -> zero-ref single-def ptr
+; V33 tmp24 [V33,T14] ( 2, 2 ) ref -> x4 class-hnd exact single-def "Inlining Arg" <System.String>
;* V34 tmp25 [V34 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp26 [V35 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V36 tmp27 [V36 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-; V38 tmp29 [V38,T16] ( 2, 2 ) byref -> x3 single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V38 tmp29 [V38,T15] ( 2, 2 ) byref -> x3 single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+;* V40 tmp31 [V40 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
+;* V42 tmp33 [V42 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V17._reference (fldOffset=0x0)" P-INDEP
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-; V44 tmp35 [V44,T17] ( 2, 2 ) byref -> x3 single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp36 [V45,T22] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V46 tmp37 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+; V44 tmp35 [V44,T16] ( 2, 2 ) byref -> x3 single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V45 tmp36 [V45,T21] ( 0, 0 ) int -> zero-ref ptr "field V18._length (fldOffset=0x8)" P-INDEP
+;* V46 tmp37 [V46 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V19._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp38 [V47 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-; V48 GsCookie [V48 ] ( 1, 1 ) long -> [fp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V49 cse0 [V49,T19] ( 3, 1.50) ref -> x22 "CSE - moderate"
+; V48 GsCookie [V48 ] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V49 cse0 [V49,T18] ( 3, 1.50) ref -> x22 "CSE - moderate"
;
; Lcl frame size = 24
G_M35410_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub sp, sp, #80
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
- stp fp, lr, [sp, #0x40]
- add fp, sp, #64
- str xzr, [fp, #-0x30] // [V06 loc2]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x28]
+ stp x21, x22, [sp, #0x38]
+ str x23, [sp, #0x48]
+ mov fp, sp
+ str xzr, [fp, #0x10] // [V06 loc2]
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
movk x4, #0xD1FFAB1E LSL #48
- str x4, [fp, #-0x38] // [V48 GsCookie]
+ str x4, [fp, #0x20] // [V48 GsCookie]
mov x19, x3
; byrRegs +[x19]
- ;; size=52 bbWeight=1 PerfScore 9.50
+ ;; size=48 bbWeight=1 PerfScore 9.00
G_M35410_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=80000 {x19}, byref, isz
; gcrRegs +[x0-x1]
- ldr wzr, [sp], #-0x10
- mov x3, sp
+ add x3, fp, #24 // [V10 tmp1]
mov w4, #8
- sub x6, fp, #48 // [V06 loc2]
+ add x6, fp, #16 // [V06 loc2]
movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
@@ -94,7 +92,7 @@ G_M35410_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=80000 {x19
; gcrRegs -[x0-x1]
sxtw w20, w0
cbz w20, G_M35410_IG04
- ;; size=56 bbWeight=1 PerfScore 12.00
+ ;; size=52 bbWeight=1 PerfScore 10.00
G_M35410_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
movz w0, #0xD1FFAB1E
movk w0, #0xD1FFAB1E LSL #16
@@ -110,10 +108,10 @@ G_M35410_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
cbnz w21, G_M35410_IG08
;; size=8 bbWeight=1 PerfScore 1.50
G_M35410_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ldr x0, [fp, #-0x30] // [V06 loc2]
+ ldr x0, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x0]
cbz x0, G_M35410_IG07
- ldr x0, [fp, #-0x30] // [V06 loc2]
+ ldr x0, [fp, #0x10] // [V06 loc2]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -122,7 +120,7 @@ G_M35410_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0]
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- str xzr, [fp, #-0x30] // [V06 loc2]
+ str xzr, [fp, #0x10] // [V06 loc2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -200,7 +198,7 @@ G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0 x2 x4 x22-x23]
;; size=228 bbWeight=0.50 PerfScore 25.25
G_M35410_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ldr x15, [fp, #-0x30] // [V06 loc2]
+ ldr x15, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x15]
mov x14, x15
; gcrRegs +[x14]
@@ -208,7 +206,7 @@ G_M35410_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
;; size=12 bbWeight=1 PerfScore 3.50
G_M35410_IG09: ; bbWeight=0.25, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19}, byref
; gcrRegs -[x14]
- ldr x14, [fp, #-0x30] // [V06 loc2]
+ ldr x14, [fp, #0x10] // [V06 loc2]
; gcrRegs +[x14]
ldr x14, [x14]
; gcrRegs -[x14]
@@ -229,43 +227,41 @@ G_M35410_IG10: ; bbWeight=1, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19},
movk xip0, #0xD1FFAB1E LSL #16
movk xip0, #0xD1FFAB1E LSL #32
movk xip0, #0xD1FFAB1E LSL #48
- ldr xip1, [fp, #-0x38] // [V48 GsCookie]
+ ldr xip1, [fp, #0x20] // [V48 GsCookie]
cmp xip0, xip1
beq G_M35410_IG11
bl CORINFO_HELP_FAIL_FAST
;; size=44 bbWeight=1 PerfScore 8.50
G_M35410_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- sub sp, fp, #64
- ldp fp, lr, [sp, #0x40]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- add sp, sp, #80
+ ldr x23, [sp, #0x48]
+ ldp x21, x22, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=28 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 512, prolog size 48, PerfScore 76.12, instruction count 128, allocated bytes for code 512 (MethodHash=120775ad) for method System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
+; Total bytes of code 496, prolog size 44, PerfScore 72.62, instruction count 124, allocated bytes for code 496 (MethodHash=120775ad) for method System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 3
- Epilog Count : 0
- E bit : 1
+ Code Words : 2
+ Epilog Count : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 128 (0x00080) Actual length = 512 (0x000200)
- --- One epilog, unwind codes at 0
+ Function Length : 124 (0x0007c) Actual length = 496 (0x0001f0)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
- ---- Epilog start at index 0 ----
- E2 08 add_fp 8 (0x08); add fp, sp, #64
- 48 save_fplr #8 (0x08); stp fp, lr, [sp, #64]
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
+ E1 set_fp; mov fp, sp
+ ---- Epilog start at index 1 ----
+ D1 09 save_reg X#4 Z#9 (0x09); str x23, [sp, #72]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 05 alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
- E4 end
- E4 end
+ C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
-16 (-2.27%) : 13868.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -14,7 +14,7 @@
; V03 arg3 [V03,T13] ( 3, 2.50) ubyte -> x3 single-def
; V04 loc0 [V04,T01] ( 8,128 ) int -> x9
; V05 loc1 [V05,T00] ( 20,241 ) ushort -> x8
-; V06 loc2 [V06,T10] ( 14, 11 ) long -> x4
+; V06 loc2 [V06,T10] ( 16, 12 ) long -> x4
; V07 loc3 [V07,T04] ( 8, 61.50) long -> x5
; V08 loc4 [V08,T07] ( 7, 29.50) ubyte -> x6
; V09 loc5 [V09,T08] ( 8, 18.50) int -> x7
@@ -22,13 +22,11 @@
; V11 loc7 [V11,T03] ( 4, 64 ) int -> x6
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V13 tmp1 [V13 ] ( 1, 1 ) struct (32) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
-; V14 tmp2 [V14,T16] ( 2, 2 ) int -> x8 "dup spill"
+; V14 tmp2 [V14,T14] ( 2, 2 ) int -> x8 "dup spill"
; V15 tmp3 [V15,T11] ( 5, 5 ) long -> x0 "Single return block return value"
; V16 GsCookie [V16 ] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V17 cse0 [V17,T17] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V18 cse1 [V18,T15] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 7, 3.50) long -> registers multi-def "CSE - aggressive"
-; V20 cse3 [V20,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
+; V17 cse0 [V17,T15] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V18 cse1 [V18,T05] ( 6, 32 ) int -> x10 multi-def "CSE - aggressive"
;
; Lcl frame size = 48
@@ -188,45 +186,41 @@ G_M13748_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
b G_M13748_IG20
;; size=24 bbWeight=0.50 PerfScore 4.50
G_M13748_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x08]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x08]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
ldr x4, [x4]
- and x1, x1, #0xD1FFAB1E
- orr x0, x1, x4, LSL #24
+ and x0, x0, #0xD1FFAB1E
+ orr x0, x0, x4, LSL #24
b G_M13748_IG20
;; size=32 bbWeight=0.50 PerfScore 5.25
G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x4, #0x10]
- mov x0, #0xD1FFAB1E
- cmp x1, x0
+ ldr x0, [x4, #0x10]
+ mov x1, #0xD1FFAB1E
+ cmp x0, x1
bgt G_M13748_IG22
- ldp x0, x4, [x4]
- uxtb w4, w4
- ubfiz x2, x4, #16, #32
- orr x0, x2, x0, LSL #24
- uxth w1, w1
- mov w1, w1
- orr x0, x0, x1
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrh w4, [x4, #0x10]
+ orr x0, x0, x4
b G_M13748_IG20
- ;; size=48 bbWeight=0.50 PerfScore 7.00
+ ;; size=44 bbWeight=0.50 PerfScore 8.75
G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [x4, #0x18]
cmp x0, #255
bgt G_M13748_IG22
- ldp x1, x2, [x4]
- uxtb w2, w2
- ubfiz x2, x2, #16, #32
- orr x1, x2, x1, LSL #24
- ldr x2, [x4, #0x10]
- uxtb w2, w2
- ubfiz x2, x2, #8, #32
- orr x1, x1, x2
- uxtb w0, w0
- mov w0, w0
- orr x0, x1, x0
- ;; size=56 bbWeight=0.50 PerfScore 8.75
+ ldr x0, [x4]
+ lsl x0, x0, #24
+ ldrb w1, [x4, #0x08]
+ orr x0, x0, x1, LSL #16
+ ldrb w1, [x4, #0x10]
+ orr x0, x0, x1, LSL #8
+ ldrb w1, [x4, #0x18]
+ orr x0, x0, x1
+ ;; size=44 bbWeight=0.50 PerfScore 10.00
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz xip0, #0xD1FFAB1E
movk xip0, #0xD1FFAB1E LSL #16
@@ -264,7 +258,7 @@ RWD00 dd G_M13748_IG16 - G_M13748_IG02
dd G_M13748_IG19 - G_M13748_IG02
-; Total bytes of code 704, prolog size 28, PerfScore 788.00, instruction count 176, allocated bytes for code 704 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 791.00, instruction count 172, allocated bytes for code 688 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
@@ -275,7 +269,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+36 (+1.27%) : 26543.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -5,163 +5,154 @@
; fp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 115 single block inlinees; 43 inlinees without PGO data
+; 0 inlinees with PGO data; 115 single block inlinees; 44 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 10 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T08] ( 11, 6.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T17] ( 3, 3 ) ubyte -> x2 single-def
-; V03 arg3 [V03,T16] ( 5, 3.50) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V02 arg2 [V02,T18] ( 3, 3 ) ubyte -> x2 single-def
+; V03 arg3 [V03,T17] ( 5, 3.50) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V04 loc0 [V04,T49] ( 5, 2.50) ref -> x23 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T68] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
+; V06 tmp1 [V06,T69] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V07 tmp2 [V07,T01] ( 12, 12 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp4 [V09,T56] ( 2, 2 ) int -> x21 "Inlining Arg"
-; V10 tmp5 [V10,T61] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V11 tmp6 [V11,T18] ( 4, 4 ) ref -> x22 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp4 [V09,T57] ( 2, 2 ) int -> x21 "Inlining Arg"
+; V10 tmp5 [V10,T62] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V11 tmp6 [V11,T19] ( 4, 4 ) ref -> x22 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp7 [V12,T09] ( 6, 6 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V15 tmp10 [V15,T25] ( 6, 3 ) int -> x23 "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V25 tmp20 [V25,T10] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
-; V26 tmp21 [V26,T43] ( 3, 3 ) int -> x2 "impAppendStmt"
-;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp23 [V28,T70] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V29 tmp24 [V29,T44] ( 3, 3 ) int -> x1 "Inlining Arg"
-; V30 tmp25 [V30,T31] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
-; V31 tmp26 [V31,T02] ( 12, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V33 tmp28 [V33,T57] ( 2, 2 ) int -> x20 "Inlining Arg"
-; V34 tmp29 [V34,T62] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp30 [V35,T19] ( 4, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V36 tmp31 [V36,T11] ( 6, 6 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V39 tmp34 [V39,T26] ( 6, 3 ) int -> x22 "Inline stloc first use temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V23 tmp18 [V23,T10] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
+; V24 tmp19 [V24,T43] ( 3, 3 ) int -> x2 "impAppendStmt"
+;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V26 tmp21 [V26,T71] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V27 tmp22 [V27,T44] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V28 tmp23 [V28,T31] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
+; V29 tmp24 [V29,T02] ( 12, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V31 tmp26 [V31,T58] ( 2, 2 ) int -> x20 "Inlining Arg"
+; V32 tmp27 [V32,T63] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V33 tmp28 [V33,T20] ( 4, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp29 [V34,T11] ( 6, 6 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp32 [V37,T26] ( 6, 3 ) int -> x22 "Inline stloc first use temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V49 tmp44 [V49,T12] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
-; V50 tmp45 [V50,T45] ( 3, 3 ) int -> x2 "impAppendStmt"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp47 [V52,T71] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V53 tmp48 [V53,T46] ( 3, 3 ) int -> x1 "Inlining Arg"
-; V54 tmp49 [V54,T32] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
-; V55 tmp50 [V55,T03] ( 12, 12 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V57 tmp52 [V57,T58] ( 2, 2 ) int -> x21 "Inlining Arg"
-; V58 tmp53 [V58,T63] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V59 tmp54 [V59,T20] ( 4, 4 ) ref -> x22 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V60 tmp55 [V60,T13] ( 6, 6 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp40 [V45,T12] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
+; V46 tmp41 [V46,T45] ( 3, 3 ) int -> x2 "impAppendStmt"
+;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V48 tmp43 [V48,T72] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V49 tmp44 [V49,T46] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V50 tmp45 [V50,T32] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
+; V51 tmp46 [V51,T03] ( 12, 12 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V53 tmp48 [V53,T59] ( 2, 2 ) int -> x21 "Inlining Arg"
+; V54 tmp49 [V54,T64] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V55 tmp50 [V55,T21] ( 4, 4 ) ref -> x22 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V56 tmp51 [V56,T13] ( 6, 6 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp54 [V59,T27] ( 6, 3 ) int -> x23 "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp58 [V63,T27] ( 6, 3 ) int -> x23 "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V69 tmp64 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V73 tmp68 [V73,T14] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
-; V74 tmp69 [V74,T47] ( 3, 3 ) int -> x2 "impAppendStmt"
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp71 [V76,T72] ( 2, 1 ) int -> x1 "Inline return value spill temp"
-; V77 tmp72 [V77,T48] ( 3, 3 ) int -> x1 "Inlining Arg"
-; V78 tmp73 [V78,T33] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
-; V79 tmp74 [V79,T04] ( 12, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V81 tmp76 [V81,T59] ( 2, 2 ) int -> x20 "Inlining Arg"
-; V82 tmp77 [V82,T64] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V83 tmp78 [V83,T21] ( 4, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V84 tmp79 [V84,T15] ( 6, 6 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V67 tmp62 [V67,T14] ( 6, 6 ) byref -> x0 single-def "Inlining Arg"
+; V68 tmp63 [V68,T47] ( 3, 3 ) int -> x2 "impAppendStmt"
+;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V70 tmp65 [V70,T73] ( 2, 1 ) int -> x1 "Inline return value spill temp"
+; V71 tmp66 [V71,T48] ( 3, 3 ) int -> x1 "Inlining Arg"
+; V72 tmp67 [V72,T33] ( 3, 3 ) byref -> x0 single-def "Inlining Arg"
+; V73 tmp68 [V73,T04] ( 12, 12 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V75 tmp70 [V75,T60] ( 2, 2 ) int -> x20 "Inlining Arg"
+; V76 tmp71 [V76,T65] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V77 tmp72 [V77,T22] ( 4, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V78 tmp73 [V78,T15] ( 6, 6 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V81 tmp76 [V81,T28] ( 6, 3 ) int -> x22 "Inline stloc first use temp"
+;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp82 [V87,T28] ( 6, 3 ) int -> x22 "Inline stloc first use temp"
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp83 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp85 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V97 tmp92 [V97,T34] ( 3, 3 ) byref -> x3 single-def "Inlining Arg"
-; V98 tmp93 [V98,T51] ( 4, 2 ) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V99 tmp94 [V99,T52] ( 2, 2 ) ref -> x22 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
-;* V100 tmp95 [V100 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V101 tmp96 [V101,T53] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
-;* V102 tmp97 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;* V103 tmp98 [V103 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V104 tmp99 [V104,T05] ( 12, 12 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V106 tmp101 [V106,T60] ( 2, 2 ) int -> x24 "Inlining Arg"
-; V107 tmp102 [V107,T65] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V108 tmp103 [V108,T22] ( 4, 4 ) ref -> x25 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V109 tmp104 [V109,T06] ( 10, 10 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V113 tmp108 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp111 [V116,T29] ( 6, 3 ) int -> x26 "Inline stloc first use temp"
-;* V117 tmp112 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V120 tmp115 [V120,T30] ( 6, 3 ) int -> x26 "Inline stloc first use temp"
-;* V121 tmp116 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V122 tmp117 [V122,T35] ( 3, 3 ) byref -> x3 single-def "Inlining Arg"
-; V123 tmp118 [V123,T54] ( 2, 2 ) ref -> x1 class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V124 tmp119 [V124,T07] ( 10, 10 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V125 tmp120 [V125,T36] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
-;* V126 tmp121 [V126 ] ( 0, 0 ) ref -> zero-ref single-def
-; V127 tmp122 [V127,T55] ( 2, 2 ) ref -> x3 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V128 tmp123 [V128,T69] ( 3, 1.50) int -> x23
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V130 tmp125 [V130,T66] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V131 tmp126 [V131,T23] ( 4, 4 ) ref -> x20 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V132 tmp127 [V132,T24] ( 4, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-; V133 tmp128 [V133,T73] ( 2, 1 ) int -> x1 single-def "Inline stloc first use temp"
-;* V134 tmp129 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "field V100.array (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135,T74] ( 0, 0 ) ref -> zero-ref single-def "field V102.array (fldOffset=0x0)" P-INDEP
-;* V136 tmp131 [V136,T75] ( 0, 0 ) ref -> zero-ref single-def "field V103.array (fldOffset=0x0)" P-INDEP
-; V137 tmp132 [V137,T37] ( 3, 3 ) ref -> x1 single-def "arr expr"
-; V138 tmp133 [V138,T38] ( 3, 3 ) ref -> x0 single-def "arr expr"
-;* V139 tmp134 [V139 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V89 tmp84 [V89,T34] ( 3, 3 ) byref -> x3 single-def "Inlining Arg"
+; V90 tmp85 [V90,T52] ( 4, 2 ) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V91 tmp86 [V91,T53] ( 2, 2 ) ref -> x22 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V93 tmp88 [V93,T54] ( 2, 2 ) ref -> x1 class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
+;* V94 tmp89 [V94 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;* V95 tmp90 [V95 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V96 tmp91 [V96,T05] ( 12, 12 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V98 tmp93 [V98,T61] ( 2, 2 ) int -> x24 "Inlining Arg"
+; V99 tmp94 [V99,T66] ( 3, 1.50) ref -> x0 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V100 tmp95 [V100,T23] ( 4, 4 ) ref -> x25 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V101 tmp96 [V101,T06] ( 10, 10 ) ref -> x25 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V107 tmp102 [V107,T29] ( 6, 3 ) int -> x26 "Inline stloc first use temp"
+;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V110 tmp105 [V110,T30] ( 6, 3 ) int -> x26 "Inline stloc first use temp"
+;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V112 tmp107 [V112,T35] ( 3, 3 ) byref -> x3 single-def "Inlining Arg"
+; V113 tmp108 [V113,T55] ( 2, 2 ) ref -> x1 class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V114 tmp109 [V114,T07] ( 10, 10 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V115 tmp110 [V115,T36] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+;* V116 tmp111 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
+; V117 tmp112 [V117,T56] ( 2, 2 ) ref -> x3 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V118 tmp113 [V118,T70] ( 3, 1.50) int -> x23
+;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
...
+4 (+2.17%) : 1590.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 5, 5 ) byref -> x20 this single-def
+; V00 this [V00,T01] ( 4, 4 ) byref -> x20 this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> x21 single-def
; V02 arg2 [V02,T00] ( 6, 6 ) ref -> x19 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 3 ) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
-; V06 tmp2 [V06,T04] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
-;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V05 tmp1 [V05,T05] ( 2, 4 ) long -> x3 "VirtualCall through function pointer"
+; V06 tmp2 [V06,T06] ( 2, 4 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T04] ( 2, 4 ) byref -> x22 single-def "Inlining Arg"
+; V08 tmp4 [V08,T07] ( 2, 4 ) int -> x0 "Inlining Arg"
+; V09 tmp5 [V09,T08] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V10 tmp6 [V10,T09] ( 2, 4 ) long -> x1 "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V12 tmp8 [V12 ] ( 3, 3 ) long -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V13 tmp9 [V13 ] ( 2, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
; V14 tmp10 [V14 ] ( 2, 2 ) int -> [fp+0x24] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
-; V15 cse0 [V15,T05] ( 3, 3 ) byref -> x22 "CSE - aggressive"
-; V16 cse1 [V16,T06] ( 3, 3 ) long -> x23 "CSE - aggressive"
+; V15 cse0 [V15,T03] ( 4, 4 ) byref -> x22 "CSE - aggressive"
+; V16 cse1 [V16,T10] ( 3, 3 ) long -> x23 "CSE - aggressive"
;
; Lcl frame size = 24
@@ -64,14 +64,15 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
mov w1, w21
blr x3
; gcrRegs -[x0]
- ; byrRegs -[x2 x22]
- ldr x0, [x20, #0x08]
+ ; byrRegs -[x2]
+ ldr w0, [x20, #0x04]
+ ldr x3, [x22]
ldr x1, [fp, #0x18] // [V12 tmp8]
- ldr w2, [x20, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ lsl w0, w0, #2
+ mov w2, w0
+ mov x0, x3
bl CORINFO_HELP_MEMCPY
- ; byrRegs -[x20]
+ ; byrRegs -[x20 x22]
mov x0, x19
; gcrRegs +[x0]
mov x1, x23
@@ -86,7 +87,7 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x19]
- ;; size=132 bbWeight=1 PerfScore 29.00
+ ;; size=136 bbWeight=1 PerfScore 29.50
G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
@@ -95,7 +96,7 @@ G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 184, prolog size 20, PerfScore 41.00, instruction count 46, allocated bytes for code 184 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 188, prolog size 20, PerfScore 41.50, instruction count 47, allocated bytes for code 188 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -106,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 47 (0x0002f) Actual length = 188 (0x0000bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+3.39%) : 1192.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -15,16 +15,16 @@
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V06 tmp2 [V06,T04] ( 3, 3 ) int -> x0 "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
+; V07 tmp3 [V07,T08] ( 2, 2 ) long -> x3 "VirtualCall through function pointer"
+; V08 tmp4 [V08,T09] ( 2, 2 ) long -> x2 "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> x22 "Inline return value spill temp"
+; V11 tmp7 [V11,T13] ( 2, 1 ) int -> x22 "Inline return value spill temp"
; V12 tmp8 [V12,T05] ( 3, 3 ) int -> x1 "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V13 tmp9 [V13,T07] ( 2, 2 ) byref -> x0 single-def "Inlining Arg"
+; V14 tmp10 [V14,T10] ( 2, 2 ) int -> x1 "Inlining Arg"
+; V15 tmp11 [V15,T11] ( 2, 2 ) long -> x0 "Inlining Arg"
+; V16 tmp12 [V16,T12] ( 2, 2 ) long -> x3 "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V18 tmp14 [V18,T06] ( 3, 3 ) int -> x1 "Inline stloc first use temp"
; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> x0 single-def "impAppendStmt"
@@ -78,11 +78,15 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
blr x3
; gcrRegs -[x0]
; byrRegs -[x2]
- ldr x0, [x19, #0x08]
- ldr x1, [fp, #0x10] // [V20 tmp16]
- ldr w2, [x19, #0x04]
- lsl w2, w2, #2
- mov w2, w2
+ add x0, x19, #8
+ ; byrRegs +[x0]
+ ldr w1, [x19, #0x04]
+ ldr x0, [x0]
+ ; byrRegs -[x0]
+ ldr x3, [fp, #0x10] // [V20 tmp16]
+ lsl w1, w1, #2
+ mov w2, w1
+ mov x1, x3
bl CORINFO_HELP_MEMCPY
mov x0, x20
; gcrRegs +[x0]
@@ -100,7 +104,7 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
; gcrRegs +[x0]
blr x2
; gcrRegs -[x0 x20]
- ;; size=152 bbWeight=0.50 PerfScore 18.50
+ ;; size=160 bbWeight=0.50 PerfScore 19.00
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
add x0, x19, #8
; byrRegs +[x0]
@@ -118,7 +122,7 @@ G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 236, prolog size 16, PerfScore 44.00, instruction count 59, allocated bytes for code 236 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 244, prolog size 16, PerfScore 44.50, instruction count 61, allocated bytes for code 244 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
smoke_tests.nativeaot.windows.arm64.checked.mch
-4 (-2.56%) : 6017.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
@@ -14,8 +14,6 @@
; V03 tmp1 [V03,T04] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Threading.Thread>
; V05 tmp3 [V05,T02] ( 4, 3.50) ref -> x0
-;* V06 tmp4 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V07 tmp5 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
; Lcl frame size = 8
@@ -41,49 +39,45 @@ G_M37076_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M37076_IG04: ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
cmp x19, x0
- bne G_M37076_IG06
+ beq G_M37076_IG07
;; size=8 bbWeight=1 PerfScore 1.50
-G_M37076_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0 x19]
- bl <unknown method>
- cmp w0, #2
- beq G_M37076_IG10
- b G_M37076_IG08
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M37076_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19]
+G_M37076_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
add x0, x19, #72
; byrRegs +[x0]
ldar w0, [x0]
; byrRegs -[x0]
- tbz w0, #3, G_M37076_IG12
+ tbz w0, #3, G_M37076_IG11
ldr w0, [x19, #0x50]
;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37076_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M37076_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x19]
+ bl <unknown method>
+ cmp w0, #2
+ beq G_M37076_IG09
mov w1, #1
cmp w0, #3
cinc w0, w1, ne
- ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M37076_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
+G_M37076_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M37076_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M37076_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
bl CORINFO_HELP_NEWSFAST
@@ -99,7 +93,7 @@ G_M37076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 12, PerfScore 22.50, instruction count 39, allocated bytes for code 156 (MethodHash=bac66f2b) for method System.Threading.Thread:GetApartmentState():int:this (FullOpts)
+; Total bytes of code 152, prolog size 12, PerfScore 22.00, instruction count 38, allocated bytes for code 152 (MethodHash=bac66f2b) for method System.Threading.Thread:GetApartmentState():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -110,7 +104,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.56%) : 1891.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
@@ -13,8 +13,6 @@
; V03 tmp1 [V03,T04] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Threading.Thread>
; V05 tmp3 [V05,T02] ( 4, 3.50) ref -> x0
-;* V06 tmp4 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V07 tmp5 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
; Lcl frame size = 8
@@ -40,49 +38,45 @@ G_M37076_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M37076_IG04: ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
cmp x19, x0
- bne G_M37076_IG06
+ beq G_M37076_IG07
;; size=8 bbWeight=1 PerfScore 1.50
-G_M37076_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0 x19]
- bl <unknown method>
- cmp w0, #2
- beq G_M37076_IG10
- b G_M37076_IG08
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M37076_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19]
+G_M37076_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
add x0, x19, #72
; byrRegs +[x0]
ldar w0, [x0]
; byrRegs -[x0]
- tbz w0, #3, G_M37076_IG12
+ tbz w0, #3, G_M37076_IG11
ldr w0, [x19, #0x50]
;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M37076_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M37076_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x19]
+ bl <unknown method>
+ cmp w0, #2
+ beq G_M37076_IG09
mov w1, #1
cmp w0, #3
cinc w0, w1, ne
- ;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M37076_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
+G_M37076_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M37076_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M37076_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M37076_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
bl CORINFO_HELP_NEWSFAST
@@ -98,7 +92,7 @@ G_M37076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 12, PerfScore 22.50, instruction count 39, allocated bytes for code 156 (MethodHash=bac66f2b) for method System.Threading.Thread:GetApartmentState():int:this (FullOpts)
+; Total bytes of code 152, prolog size 12, PerfScore 22.00, instruction count 38, allocated bytes for code 152 (MethodHash=bac66f2b) for method System.Threading.Thread:GetApartmentState():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -109,7 +103,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 38 (0x00026) Actual length = 152 (0x000098)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.30%) : 8405.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
@@ -8,25 +8,23 @@
; control-flow guard enabled
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 6 ) ref -> x19 this class-hnd exact single-def <System.Threading.Thread>
+; V00 this [V00,T01] ( 7, 6 ) ref -> x19 this class-hnd exact single-def <System.Threading.Thread>
; V01 arg1 [V01,T02] ( 6, 5.50) int -> x20 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Threading.Lock+Scope>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T09] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V05 tmp2 [V05,T10] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V06 tmp3 [V06,T11] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V07 tmp4 [V07,T01] ( 4, 8 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Threading.Lock>
+; V04 tmp1 [V04,T08] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V05 tmp2 [V05,T09] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V06 tmp3 [V06,T10] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp4 [V07,T00] ( 5, 10 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Threading.Lock>
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Lock+Scope>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.Lock+ThreadId>
-;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Lock>
-; V13 tmp10 [V13,T08] ( 4, 1 ) ref -> [fp+0x10] EH-live single-def "field V02._lockObj (fldOffset=0x0)" P-INDEP
-; V14 tmp11 [V14,T04] ( 3, 2 ) int -> [fp+0x1C] do-not-enreg[Z] EH-live "field V02._currentThreadId (fldOffset=0x8)" P-INDEP
-; V15 tmp12 [V15,T05] ( 2, 2 ) ref -> x22 single-def "field V08._lockObj (fldOffset=0x0)" P-INDEP
-; V16 tmp13 [V16,T06] ( 2, 2 ) int -> x0 "field V08._currentThreadId (fldOffset=0x8)" P-INDEP
-; V17 tmp14 [V17,T07] ( 2, 2 ) int -> x0 "field V09._id (fldOffset=0x0)" P-INDEP
-; V18 cse0 [V18,T03] ( 3, 3 ) byref -> x21 "CSE - aggressive"
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Lock>
+; V11 tmp8 [V11,T11] ( 3, 0 ) ref -> [fp+0x10] EH-live single-def "field V02._lockObj (fldOffset=0x0)" P-INDEP
+; V12 tmp9 [V12,T04] ( 3, 2 ) int -> [fp+0x1C] do-not-enreg[Z] EH-live "field V02._currentThreadId (fldOffset=0x8)" P-INDEP
+;* V13 tmp10 [V13,T07] ( 0, 0 ) ref -> zero-ref single-def "field V08._lockObj (fldOffset=0x0)" P-INDEP
+; V14 tmp11 [V14,T05] ( 2, 2 ) int -> x0 "field V08._currentThreadId (fldOffset=0x8)" P-INDEP
+; V15 tmp12 [V15,T06] ( 2, 2 ) int -> x0 "field V09._id (fldOffset=0x0)" P-INDEP
+; V16 cse0 [V16,T03] ( 3, 3 ) byref -> x21 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -56,11 +54,11 @@ G_M62244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- str x22, [fp, #0x10] // [V13 tmp10]
- ; GC ptr vars +{V13}
- str w0, [fp, #0x1C] // [V14 tmp11]
+ str x22, [fp, #0x10] // [V11 tmp8]
+ ; GC ptr vars +{V11}
+ str w0, [fp, #0x1C] // [V12 tmp9]
;; size=52 bbWeight=1 PerfScore 16.50
-G_M62244_IG03: ; bbWeight=1, gcVars=0000000000000100 {V13}, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M62244_IG03: ; bbWeight=1, gcVars=0000000000000800 {V11}, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, gcvars, byref, isz
ldar w0, [x21]
tbnz w0, #3, G_M62244_IG06
;; size=8 bbWeight=1 PerfScore 4.00
@@ -74,8 +72,8 @@ G_M62244_IG04: ; bbWeight=0.50, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcr arg pop 0
cbnz w0, G_M62244_IG06
;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M62244_IG05: ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
+G_M62244_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19 x22]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
bl CORINFO_HELP_NEWSFAST
@@ -96,14 +94,14 @@ G_M62244_IG05: ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=36 bbWeight=0 PerfScore 0.00
G_M62244_IG06: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19]
+ ; gcrRegs +[x19 x22]
str w20, [x19, #0x4C]
;; size=4 bbWeight=1 PerfScore 1.00
-G_M62244_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M62244_IG07: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars -{V11}
mov x0, x22
; gcrRegs +[x0]
- ldr w1, [fp, #0x1C] // [V14 tmp11]
- ; GC ptr vars -{V13}
+ ldr w1, [fp, #0x1C] // [V12 tmp9]
bl <unknown method>
; gcrRegs -[x0 x22]
; gcr arg pop 0
@@ -127,18 +125,18 @@ G_M62244_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x19, x0
+ ; gcrRegs +[x19]
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
bl <unknown method>
; gcrRegs -[x0-x1]
; gcr arg pop 0
- mov x0, x22
+ mov x0, x19
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x22]
+ ; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=36 bbWeight=0 PerfScore 0.00
G_M62244_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -162,24 +160,22 @@ G_M62244_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=40 bbWeight=0 PerfScore 0.00
-G_M62244_IG12: ; bbWeight=0, gcVars=0000000000000100 {V13}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
- ; GC ptr vars +{V13}
+G_M62244_IG12: ; bbWeight=0, gcVars=0000000000000800 {V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+ ; GC ptr vars +{V11}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
;; size=12 bbWeight=0 PerfScore 0.00
-G_M62244_IG13: ; bbWeight=0, gcVars=0000000000000100 {V13}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x22, [fp, #0x10] // [V13 tmp10]
- ; gcrRegs +[x22]
- cbz x22, G_M62244_IG14
- mov x0, x22
+G_M62244_IG13: ; bbWeight=0, gcVars=0000000000000800 {V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr x0, [fp, #0x10] // [V11 tmp8]
; gcrRegs +[x0]
- ldr w1, [fp, #0x1C] // [V14 tmp11]
- ; GC ptr vars -{V13}
+ cbz x0, G_M62244_IG14
+ ldr w1, [fp, #0x1C] // [V12 tmp9]
+ ; GC ptr vars -{V11}
bl <unknown method>
- ; gcrRegs -[x0 x22]
+ ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M62244_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
@@ -187,7 +183,7 @@ G_M62244_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 308, prolog size 24, PerfScore 37.25, instruction count 77, allocated bytes for code 308 (MethodHash=db8f0cdb) for method System.Threading.Thread:set_Priority(int):this (FullOpts)
+; Total bytes of code 304, prolog size 24, PerfScore 37.25, instruction count 76, allocated bytes for code 304 (MethodHash=db8f0cdb) for method System.Threading.Thread:set_Priority(int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -221,7 +217,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+4 (+3.70%) : 5811.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -50,10 +50,11 @@ G_M19587_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
bl <unknown method>
; gcrRegs -[x0 x19]
mov w1, #1
- uxth w2, w0
+ sxtw x2, w0
+ uxth w2, w2
cmn w0, #1
csel w0, w1, w2, eq
- ;; size=28 bbWeight=1 PerfScore 4.00
+ ;; size=32 bbWeight=1 PerfScore 4.50
G_M19587_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
@@ -66,7 +67,7 @@ G_M19587_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
b G_M19587_IG03
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 108, prolog size 12, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 21.00, instruction count 28, allocated bytes for code 112 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+6.25%) : 7437.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
@@ -9,17 +9,17 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd exact single-def <Internal.Runtime.TypeLoader.TypeBuilderState>
-; V01 arg1 [V01,T02] ( 4, 3 ) long -> x20 single-def
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> x22 single-def
-; V03 arg3 [V03,T03] ( 3, 3 ) ubyte -> x21 single-def
-; V04 loc0 [V04,T05] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
+; V01 arg1 [V01,T01] ( 4, 3 ) long -> x20 single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> x22 single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) ubyte -> x21 single-def
+; V04 loc0 [V04,T04] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
; V05 loc1 [V05,T06] ( 4, 2 ) int -> x22
; V06 loc2 [V06,T07] ( 3, 1.50) int -> x0 single-def
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.RuntimeTypeHandle>
;* V09 tmp2 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.RuntimeTypeHandle>
-; V11 tmp4 [V11,T01] ( 5, 5 ) int -> x0 "Single return block return value"
+; V11 tmp4 [V11,T05] ( 4, 4 ) int -> x0 "Single return block return value"
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V13 tmp6 [V13 ] ( 0, 0 ) long -> zero-ref single-def "field V10._value (fldOffset=0x0)" P-INDEP
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
@@ -46,7 +46,7 @@ G_M27966_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
mov x23, x0
; gcrRegs +[x23]
tst w21, #255
- beq G_M27966_IG07
+ beq G_M27966_IG08
;; size=24 bbWeight=1 PerfScore 6.50
G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
@@ -55,22 +55,28 @@ G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=000
bl Internal.Runtime.TypeLoader.TypeBuilderState:get_IsArrayOfReferenceTypes():ubyte:this
; gcrRegs -[x0 x19]
cbnz w0, G_M27966_IG04
- cbz x23, G_M27966_IG05
+ cbz x23, G_M27966_IG06
mov x0, x23
; gcrRegs +[x0]
bl Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte
; gcrRegs -[x0]
- cbz w0, G_M27966_IG05
+ cbz w0, G_M27966_IG06
;; size=28 bbWeight=0.50 PerfScore 3.00
G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
mov w0, #24
- b G_M27966_IG09
- ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M27966_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x40
+ ret lr
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M27966_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x23]
mov w22, wzr
- cbz x23, G_M27966_IG06
+ cbz x23, G_M27966_IG07
mov x0, x23
; gcrRegs +[x0]
mov w1, #1
@@ -80,16 +86,16 @@ G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
; gcrRegs -[x0 x23]
sxtw w22, w0
;; size=32 bbWeight=0.50 PerfScore 2.50
-G_M27966_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp w22, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w2, w22, #3
add w0, w2, #16
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x23]
- cbz x23, G_M27966_IG08
+ cbz x23, G_M27966_IG09
uxtb w2, w22
mov x0, x23
; gcrRegs +[x0]
@@ -99,28 +105,28 @@ G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
bl <unknown method>
; gcrRegs -[x0 x23]
cmp w0, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w0, w0, #1
lsl w0, w0, #3
add w0, w0, #8
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=52 bbWeight=0.50 PerfScore 4.75
-G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M27966_IG10
+G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cbz x20, G_M27966_IG11
mov x0, x20
bl <unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M27966_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M27966_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M27966_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -128,18 +134,18 @@ G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-; Total bytes of code 256, prolog size 20, PerfScore 33.50, instruction count 64, allocated bytes for code 256 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
+; Total bytes of code 272, prolog size 20, PerfScore 36.00, instruction count 68, allocated bytes for code 272 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 2
- Epilog Count : 2
+ Epilog Count : 3
E bit : 0
X bit : 0
Vers : 0
- Function Length : 64 (0x00040) Actual length = 256 (0x000100)
+ Function Length : 68 (0x00044) Actual length = 272 (0x000110)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -147,6 +153,9 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
+ ---- Scope 2
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+16 (+6.25%) : 12976.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
@@ -8,17 +8,17 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd exact single-def <Internal.Runtime.TypeLoader.TypeBuilderState>
-; V01 arg1 [V01,T02] ( 4, 3 ) long -> x20 single-def
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> x22 single-def
-; V03 arg3 [V03,T03] ( 3, 3 ) ubyte -> x21 single-def
-; V04 loc0 [V04,T05] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
+; V01 arg1 [V01,T01] ( 4, 3 ) long -> x20 single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> x22 single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) ubyte -> x21 single-def
+; V04 loc0 [V04,T04] ( 7, 4 ) ref -> x23 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
; V05 loc1 [V05,T06] ( 4, 2 ) int -> x22
; V06 loc2 [V06,T07] ( 3, 1.50) int -> x0 single-def
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.RuntimeTypeHandle>
;* V09 tmp2 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.RuntimeTypeHandle>
-; V11 tmp4 [V11,T01] ( 5, 5 ) int -> x0 "Single return block return value"
+; V11 tmp4 [V11,T05] ( 4, 4 ) int -> x0 "Single return block return value"
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V13 tmp6 [V13 ] ( 0, 0 ) long -> zero-ref single-def "field V10._value (fldOffset=0x0)" P-INDEP
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
@@ -45,7 +45,7 @@ G_M27966_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
mov x23, x0
; gcrRegs +[x23]
tst w21, #255
- beq G_M27966_IG07
+ beq G_M27966_IG08
;; size=24 bbWeight=1 PerfScore 6.50
G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
@@ -54,22 +54,28 @@ G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=880000 {x19 x23}, byrefRegs=000
bl Internal.Runtime.TypeLoader.TypeBuilderState:get_IsArrayOfReferenceTypes():ubyte:this
; gcrRegs -[x0 x19]
cbnz w0, G_M27966_IG04
- cbz x23, G_M27966_IG05
+ cbz x23, G_M27966_IG06
mov x0, x23
; gcrRegs +[x0]
bl Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte
; gcrRegs -[x0]
- cbz w0, G_M27966_IG05
+ cbz w0, G_M27966_IG06
;; size=28 bbWeight=0.50 PerfScore 3.00
G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
mov w0, #24
- b G_M27966_IG09
- ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M27966_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x40
+ ret lr
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M27966_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x23]
mov w22, wzr
- cbz x23, G_M27966_IG06
+ cbz x23, G_M27966_IG07
mov x0, x23
; gcrRegs +[x0]
mov w1, #1
@@ -79,16 +85,16 @@ G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
; gcrRegs -[x0 x23]
sxtw w22, w0
;; size=32 bbWeight=0.50 PerfScore 2.50
-G_M27966_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp w22, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w2, w22, #3
add w0, w2, #16
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x23]
- cbz x23, G_M27966_IG08
+ cbz x23, G_M27966_IG09
uxtb w2, w22
mov x0, x23
; gcrRegs +[x0]
@@ -98,28 +104,28 @@ G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
bl <unknown method>
; gcrRegs -[x0 x23]
cmp w0, #0
- ble G_M27966_IG10
+ ble G_M27966_IG11
lsl w0, w0, #1
lsl w0, w0, #3
add w0, w0, #8
- b G_M27966_IG09
+ b G_M27966_IG10
;; size=52 bbWeight=0.50 PerfScore 4.75
-G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M27966_IG10
+G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cbz x20, G_M27966_IG11
mov x0, x20
bl <unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M27966_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M27966_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M27966_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -127,18 +133,18 @@ G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=20 bbWeight=0.50 PerfScore 3.00
-; Total bytes of code 256, prolog size 20, PerfScore 33.50, instruction count 64, allocated bytes for code 256 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
+; Total bytes of code 272, prolog size 20, PerfScore 36.00, instruction count 68, allocated bytes for code 272 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 2
- Epilog Count : 2
+ Epilog Count : 3
E bit : 0
X bit : 0
Vers : 0
- Function Length : 64 (0x00040) Actual length = 256 (0x000100)
+ Function Length : 68 (0x00044) Actual length = 272 (0x000110)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -146,6 +152,9 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
+ ---- Scope 2
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.windows.arm64.checked.mch |
36 |
11 |
12 |
13 |
-236 |
+104 |
benchmarks.run_pgo.windows.arm64.checked.mch |
227 |
125 |
7 |
95 |
-2,840 |
+696 |
benchmarks.run_tiered.windows.arm64.checked.mch |
148 |
87 |
7 |
54 |
-1,800 |
+184 |
coreclr_tests.run.windows.arm64.checked.mch |
7,131 |
6,184 |
133 |
814 |
-119,292 |
+2,960 |
libraries.crossgen2.windows.arm64.checked.mch |
51 |
21 |
2 |
28 |
-496 |
+8 |
libraries.pmi.windows.arm64.checked.mch |
195 |
75 |
73 |
47 |
-1,016 |
+13,436 |
libraries_tests.run.windows.arm64.Release.mch |
890 |
539 |
38 |
313 |
-248,088 |
+4,768 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
405 |
210 |
93 |
102 |
-133,412 |
+6,756 |
realworld.run.windows.arm64.checked.mch |
103 |
63 |
14 |
26 |
-740 |
+1,456 |
smoke_tests.nativeaot.windows.arm64.checked.mch |
25 |
9 |
7 |
9 |
-204 |
+52 |
|
9,211 |
7,324 |
386 |
1,501 |
-508,124 |
+30,420 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.arm64.checked.mch |
24,437 |
4 |
24,433 |
0 (0.00%) |
9 (0.04%) |
benchmarks.run_pgo.windows.arm64.checked.mch |
96,110 |
48,079 |
48,031 |
0 (0.00%) |
11 (0.01%) |
benchmarks.run_tiered.windows.arm64.checked.mch |
49,351 |
36,713 |
12,638 |
0 (0.00%) |
9 (0.02%) |
coreclr_tests.run.windows.arm64.checked.mch |
595,319 |
362,592 |
232,727 |
26 (0.00%) |
85 (0.01%) |
libraries.crossgen2.windows.arm64.checked.mch |
244,149 |
15 |
244,134 |
3 (0.00%) |
3 (0.00%) |
libraries.pmi.windows.arm64.checked.mch |
305,545 |
6 |
305,539 |
3 (0.00%) |
33 (0.01%) |
libraries_tests.run.windows.arm64.Release.mch |
651,489 |
469,431 |
182,058 |
0 (0.00%) |
117 (0.02%) |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
316,953 |
21,598 |
295,355 |
0 (0.00%) |
124 (0.04%) |
realworld.run.windows.arm64.checked.mch |
33,209 |
3 |
33,206 |
0 (0.00%) |
2 (0.01%) |
smoke_tests.nativeaot.windows.arm64.checked.mch |
23,829 |
8 |
23,821 |
333 (1.38%) |
333 (1.38%) |
|
2,340,391 |
938,449 |
1,401,942 |
365 (0.02%) |
726 (0.03%) |
jit-analyze output
benchmarks.run.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 10952576 (overridden on cmd)
Total bytes of diff: 10952444 (overridden on cmd)
Total bytes of delta: -132 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
20 : 16619.dasm (4.17 % of base)
20 : 20056.dasm (0.95 % of base)
16 : 9711.dasm (0.19 % of base)
8 : 10274.dasm (0.29 % of base)
8 : 9769.dasm (0.33 % of base)
8 : 9793.dasm (0.40 % of base)
4 : 16274.dasm (7.14 % of base)
4 : 9943.dasm (0.88 % of base)
4 : 22724.dasm (0.88 % of base)
4 : 22197.dasm (0.88 % of base)
4 : 22198.dasm (0.88 % of base)
4 : 9944.dasm (0.88 % of base)
Top file improvements (bytes):
-88 : 1779.dasm (-32.84 % of base)
-32 : 19034.dasm (-1.27 % of base)
-32 : 19020.dasm (-1.24 % of base)
-20 : 17556.dasm (-0.46 % of base)
-16 : 1451.dasm (-3.12 % of base)
-16 : 1917.dasm (-2.27 % of base)
-16 : 2212.dasm (-2.27 % of base)
-4 : 17547.dasm (-0.24 % of base)
-4 : 22164.dasm (-0.07 % of base)
-4 : 8469.dasm (-0.05 % of base)
-4 : 24005.dasm (-0.04 % of base)
23 total files with Code Size differences (11 improved, 12 regressed), 13 unchanged.
Top method regressions (bytes):
20 (4.17 % of base) : 16619.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 20056.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
16 (0.19 % of base) : 9711.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
8 (0.29 % of base) : 10274.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
8 (0.33 % of base) : 9769.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 9793.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (7.14 % of base) : 16274.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (0.88 % of base) : 22197.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 22724.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 9943.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 9944.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 22198.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 1779.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-32 (-1.27 % of base) : 19034.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 19020.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-20 (-0.46 % of base) : 17556.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-16 (-2.27 % of base) : 1917.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 2212.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-3.12 % of base) : 1451.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-4 (-0.05 % of base) : 8469.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.07 % of base) : 22164.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 24005.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.24 % of base) : 17547.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 16274.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
20 (4.17 % of base) : 16619.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
20 (0.95 % of base) : 20056.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
4 (0.88 % of base) : 22197.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 22724.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 9943.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 9944.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.88 % of base) : 22198.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.40 % of base) : 9793.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.33 % of base) : 9769.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
8 (0.29 % of base) : 10274.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
16 (0.19 % of base) : 9711.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 1779.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-3.12 % of base) : 1451.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-16 (-2.27 % of base) : 1917.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 2212.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-32 (-1.27 % of base) : 19034.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 19020.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-20 (-0.46 % of base) : 17556.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-0.24 % of base) : 17547.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-4 (-0.07 % of base) : 22164.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.05 % of base) : 8469.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-4 (-0.04 % of base) : 24005.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
23 total methods with Code Size differences (11 improved, 12 regressed).
benchmarks.run_pgo.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 45548636 (overridden on cmd)
Total bytes of diff: 45546492 (overridden on cmd)
Total bytes of delta: -2144 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
508 : 33702.dasm (5.65 % of base)
120 : 32134.dasm (1.26 % of base)
16 : 30190.dasm (3.51 % of base)
16 : 36393.dasm (3.51 % of base)
16 : 36416.dasm (3.51 % of base)
16 : 30161.dasm (3.51 % of base)
4 : 49253.dasm (3.03 % of base)
Top file improvements (bytes):
-120 : 91797.dasm (-40.00 % of base)
-120 : 48037.dasm (-40.00 % of base)
-120 : 32635.dasm (-40.00 % of base)
-120 : 41509.dasm (-40.00 % of base)
-100 : 6981.dasm (-8.45 % of base)
-100 : 31960.dasm (-8.45 % of base)
-96 : 17891.dasm (-17.39 % of base)
-92 : 3787.dasm (-6.99 % of base)
-92 : 7657.dasm (-7.80 % of base)
-88 : 15041.dasm (-7.51 % of base)
-88 : 2468.dasm (-2.88 % of base)
-88 : 3029.dasm (-7.51 % of base)
-88 : 10252.dasm (-2.88 % of base)
-80 : 11315.dasm (-11.98 % of base)
-60 : 7633.dasm (-5.49 % of base)
-56 : 66645.dasm (-4.19 % of base)
-56 : 75527.dasm (-2.73 % of base)
-48 : 5185.dasm (-4.92 % of base)
-28 : 1075.dasm (-1.47 % of base)
-28 : 9642.dasm (-14.29 % of base)
43 total files with Code Size differences (36 improved, 7 regressed), 31 unchanged.
Top method regressions (bytes):
508 (5.65 % of base) : 33702.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
120 (1.26 % of base) : 32134.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
16 (3.51 % of base) : 30190.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 30161.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 36393.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 36416.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (3.03 % of base) : 49253.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-120 (-40.00 % of base) : 91797.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 48037.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 32635.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 41509.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-100 (-8.45 % of base) : 6981.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-100 (-8.45 % of base) : 31960.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-96 (-17.39 % of base) : 17891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-92 (-7.80 % of base) : 7657.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-92 (-6.99 % of base) : 3787.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Instrumented Tier0)
-88 (-7.51 % of base) : 15041.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-88 (-7.51 % of base) : 3029.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-88 (-2.88 % of base) : 2468.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-88 (-2.88 % of base) : 10252.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-80 (-11.98 % of base) : 11315.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Tier0)
-60 (-5.49 % of base) : 7633.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-56 (-4.19 % of base) : 66645.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Instrumented Tier0)
-56 (-2.73 % of base) : 75527.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Instrumented Tier0)
-48 (-4.92 % of base) : 5185.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-28 (-14.29 % of base) : 9642.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-28 (-1.47 % of base) : 1075.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Instrumented Tier0)
Top method regressions (percentages):
508 (5.65 % of base) : 33702.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
16 (3.51 % of base) : 30190.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 30161.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 36393.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 36416.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (3.03 % of base) : 49253.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
120 (1.26 % of base) : 32134.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (percentages):
-120 (-40.00 % of base) : 91797.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 48037.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 32635.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-40.00 % of base) : 41509.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-16 (-28.57 % of base) : 323.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Instrumented Tier0)
-16 (-28.57 % of base) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
-20 (-27.78 % of base) : 2243.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
-20 (-27.78 % of base) : 994.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-12 (-21.43 % of base) : 2778.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Instrumented Tier0)
-12 (-21.43 % of base) : 995.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
-96 (-17.39 % of base) : 17891.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-8 (-16.67 % of base) : 834.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-4 (-16.67 % of base) : 6732.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
-4 (-16.67 % of base) : 1632.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-12 (-16.67 % of base) : 322.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Instrumented Tier0)
-12 (-16.67 % of base) : 43.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-8 (-14.29 % of base) : 58563.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Instrumented Tier0)
-8 (-14.29 % of base) : 54393.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-28 (-14.29 % of base) : 9642.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-12 (-13.04 % of base) : 8694.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
benchmarks.run_tiered.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15574332 (overridden on cmd)
Total bytes of diff: 15572716 (overridden on cmd)
Total bytes of delta: -1616 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
116 : 42739.dasm (2.51 % of base)
16 : 27424.dasm (4.08 % of base)
16 : 22952.dasm (4.08 % of base)
16 : 28404.dasm (0.19 % of base)
8 : 28345.dasm (0.40 % of base)
8 : 28307.dasm (0.33 % of base)
4 : 31251.dasm (3.03 % of base)
Top file improvements (bytes):
-100 : 3958.dasm (-9.92 % of base)
-96 : 12854.dasm (-17.39 % of base)
-92 : 5668.dasm (-8.46 % of base)
-92 : 6878.dasm (-9.66 % of base)
-88 : 2211.dasm (-3.51 % of base)
-88 : 11192.dasm (-32.84 % of base)
-88 : 2603.dasm (-9.32 % of base)
-80 : 14789.dasm (-11.98 % of base)
-60 : 6853.dasm (-6.22 % of base)
-56 : 42967.dasm (-4.47 % of base)
-56 : 44589.dasm (-2.85 % of base)
-48 : 4707.dasm (-6.56 % of base)
-28 : 125.dasm (-1.76 % of base)
-28 : 10416.dasm (-14.29 % of base)
-24 : 47854.dasm (-2.35 % of base)
-24 : 6718.dasm (-7.23 % of base)
-24 : 1166.dasm (-2.73 % of base)
-24 : 41216.dasm (-3.90 % of base)
-24 : 4796.dasm (-2.97 % of base)
-24 : 6938.dasm (-2.71 % of base)
42 total files with Code Size differences (35 improved, 7 regressed), 28 unchanged.
Top method regressions (bytes):
116 (2.51 % of base) : 42739.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
16 (4.08 % of base) : 22952.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27424.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
16 (0.19 % of base) : 28404.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
8 (0.33 % of base) : 28307.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.40 % of base) : 28345.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
4 (3.03 % of base) : 31251.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
Top method improvements (bytes):
-100 (-9.92 % of base) : 3958.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-96 (-17.39 % of base) : 12854.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-92 (-9.66 % of base) : 6878.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-92 (-8.46 % of base) : 5668.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
-88 (-9.32 % of base) : 2603.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-88 (-32.84 % of base) : 11192.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-88 (-3.51 % of base) : 2211.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
-80 (-11.98 % of base) : 14789.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Tier0)
-60 (-6.22 % of base) : 6853.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
-56 (-4.47 % of base) : 42967.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Tier0)
-56 (-2.85 % of base) : 44589.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Tier0)
-48 (-6.56 % of base) : 4707.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-28 (-14.29 % of base) : 10416.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-28 (-1.76 % of base) : 125.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(ulong,int,byref,byref):ulong (Tier0)
-24 (-2.73 % of base) : 1166.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
-24 (-2.71 % of base) : 6938.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
-24 (-2.97 % of base) : 4796.dasm - System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default](byref,int,byref):int (Tier0)
-24 (-2.35 % of base) : 47854.dasm - System.HexConverter:TryDecodeFromUtf16_Vector128(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0)
-24 (-7.23 % of base) : 6718.dasm - System.Number:WriteFourDigits[ushort](uint,ulong) (Tier0)
-24 (-3.90 % of base) : 41216.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
Top method regressions (percentages):
16 (4.08 % of base) : 22952.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
16 (4.08 % of base) : 27424.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
4 (3.03 % of base) : 31251.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
116 (2.51 % of base) : 42739.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
8 (0.40 % of base) : 28345.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.33 % of base) : 28307.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
16 (0.19 % of base) : 28404.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
Top method improvements (percentages):
-88 (-32.84 % of base) : 11192.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-16 (-28.57 % of base) : 44.dasm - System.SpanHelpers:GetCharVector128SpanLength(long,long):long (Tier0)
-20 (-27.78 % of base) : 958.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-12 (-21.43 % of base) : 959.dasm - System.SpanHelpers:GetByteVector128SpanLength(ulong,int):ulong (Tier0)
-96 (-17.39 % of base) : 12854.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-8 (-16.67 % of base) : 806.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-4 (-16.67 % of base) : 1518.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-12 (-16.67 % of base) : 43.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-8 (-14.29 % of base) : 34665.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-28 (-14.29 % of base) : 10416.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-12 (-13.04 % of base) : 617.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-12 (-13.04 % of base) : 6083.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-8 (-12.50 % of base) : 9200.dasm - Interop:SplitLong(long,byref,byref) (Tier0)
-8 (-12.50 % of base) : 34993.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
-8 (-12.50 % of base) : 33750.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-12 (-12.00 % of base) : 1503.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
-80 (-11.98 % of base) : 14789.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Tier0)
-16 (-10.53 % of base) : 2443.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-4 (-10.00 % of base) : 41021.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-100 (-9.92 % of base) : 3958.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
coreclr_tests.run.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 495064652 (overridden on cmd)
Total bytes of diff: 494948320 (overridden on cmd)
Total bytes of delta: -116332 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1044 : 295777.dasm (9.11 % of base)
324 : 295768.dasm (3.07 % of base)
192 : 316824.dasm (9.09 % of base)
156 : 177240.dasm (2.47 % of base)
104 : 177244.dasm (1.36 % of base)
96 : 313582.dasm (1.01 % of base)
64 : 561364.dasm (20.78 % of base)
64 : 589116.dasm (20.78 % of base)
16 : 470378.dasm (3.51 % of base)
16 : 470396.dasm (3.51 % of base)
16 : 470441.dasm (3.51 % of base)
16 : 470450.dasm (3.51 % of base)
12 : 257916.dasm (0.25 % of base)
12 : 314880.dasm (0.36 % of base)
12 : 314906.dasm (2.73 % of base)
12 : 150268.dasm (0.35 % of base)
12 : 183280.dasm (0.37 % of base)
12 : 150352.dasm (0.35 % of base)
12 : 150408.dasm (0.35 % of base)
12 : 318500.dasm (1.60 % of base)
Top file improvements (bytes):
-2112 : 517960.dasm (-4.30 % of base)
-1164 : 516410.dasm (-67.99 % of base)
-496 : 518268.dasm (-25.62 % of base)
-332 : 495942.dasm (-3.06 % of base)
-328 : 518070.dasm (-3.85 % of base)
-324 : 517363.dasm (-50.62 % of base)
-308 : 517504.dasm (-11.03 % of base)
-292 : 507267.dasm (-19.16 % of base)
-280 : 517664.dasm (-9.27 % of base)
-272 : 498186.dasm (-8.10 % of base)
-272 : 498196.dasm (-8.09 % of base)
-264 : 518044.dasm (-6.87 % of base)
-232 : 517045.dasm (-3.21 % of base)
-224 : 517676.dasm (-7.08 % of base)
-216 : 517769.dasm (-5.71 % of base)
-200 : 517603.dasm (-8.24 % of base)
-176 : 505956.dasm (-19.21 % of base)
-176 : 517912.dasm (-1.83 % of base)
-176 : 507209.dasm (-9.54 % of base)
-144 : 328546.dasm (-21.82 % of base)
83 total files with Code Size differences (55 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
1044 (9.11 % of base) : 295777.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
324 (3.07 % of base) : 295768.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 316824.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
156 (2.47 % of base) : 177240.dasm - div_r4._div:main():int (FullOpts)
104 (1.36 % of base) : 177244.dasm - div_r8._div:main():int (FullOpts)
96 (1.01 % of base) : 313582.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
64 (20.78 % of base) : 589116.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 561364.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
16 (3.51 % of base) : 470378.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 470396.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 470441.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 470450.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
12 (1.60 % of base) : 318500.dasm - EventCounterRegressionTests.TestEventCounter:TestEntryPoint():int (FullOpts)
12 (0.35 % of base) : 150268.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementInt323:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (0.35 % of base) : 150352.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementSingle7:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (0.35 % of base) : 150408.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementUInt327:RunReflectionScenario(int,ubyte):this (FullOpts)
12 (0.36 % of base) : 314880.dasm - Program:BoxUnbox():ubyte (FullOpts)
12 (2.73 % of base) : 314906.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
12 (0.37 % of base) : 183280.dasm - Program:Test[DefaultLayoutDefaultPacking`1[ubyte]](int,int,int):ubyte (FullOpts)
12 (0.25 % of base) : 257916.dasm - Test7685:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-2112 (-4.30 % of base) : 517960.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
-1164 (-67.99 % of base) : 516410.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-496 (-25.62 % of base) : 518268.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-332 (-3.06 % of base) : 495942.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-328 (-3.85 % of base) : 518070.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-324 (-50.62 % of base) : 517363.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-308 (-11.03 % of base) : 517504.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-292 (-19.16 % of base) : 507267.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-280 (-9.27 % of base) : 517664.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-272 (-8.10 % of base) : 498186.dasm - convr4a:Main():int (Tier0)
-272 (-8.09 % of base) : 498196.dasm - convr8d:Main():int (Tier0)
-264 (-6.87 % of base) : 518044.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-232 (-3.21 % of base) : 517045.dasm - ILGEN_0xdea951c0:Method_0x5a7bd7a1(ulong,short,byte,ubyte,long,long,ushort,long,int):double (Instrumented Tier0)
-224 (-7.08 % of base) : 517676.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-216 (-5.71 % of base) : 517769.dasm - ILGEN_0x12984aee:Method_0x786cd2b5(byte,ubyte,byte,long,long,short,long,uint):int (Tier0)
-200 (-8.24 % of base) : 517603.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-176 (-1.83 % of base) : 517912.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(long,int,byte,float,ushort,float):int (Tier0)
-176 (-9.54 % of base) : 507209.dasm - ILGEN_3171381355:main():int (Tier0)
-176 (-19.21 % of base) : 505956.dasm - ILGEN_941132142:main():int (Tier0)
-144 (-21.82 % of base) : 328546.dasm - testout1:Sub_Funclet_192():double (Tier0)
Top method regressions (percentages):
64 (20.78 % of base) : 589116.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Instrumented Tier0)
64 (20.78 % of base) : 561364.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitLong(long):this (Tier0)
1044 (9.11 % of base) : 295777.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
192 (9.09 % of base) : 316824.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
16 (3.51 % of base) : 470378.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 470396.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
16 (3.51 % of base) : 470441.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
16 (3.51 % of base) : 470450.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
324 (3.07 % of base) : 295768.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
12 (2.73 % of base) : 314906.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
156 (2.47 % of base) : 177240.dasm - div_r4._div:main():int (FullOpts)
8 (2.38 % of base) : 357329.dasm - JIT.HardwareIntrinsics.Arm.Helpers:SignedShift(byte,byte,ubyte,ubyte):byte (Tier0)
8 (2.25 % of base) : 357422.dasm - JIT.HardwareIntrinsics.Arm.Helpers:UnsignedShift(ubyte,byte,ubyte,ubyte):ubyte (Tier0)
4 (1.82 % of base) : 17550.dasm - testout1:Sub_Funclet_117():int (FullOpts)
4 (1.82 % of base) : 17472.dasm - testout1:Sub_Funclet_5():int (FullOpts)
12 (1.60 % of base) : 318500.dasm - EventCounterRegressionTests.TestEventCounter:TestEntryPoint():int (FullOpts)
104 (1.36 % of base) : 177244.dasm - div_r8._div:main():int (FullOpts)
4 (1.22 % of base) : 357304.dasm - JIT.HardwareIntrinsics.Arm.Helpers:SignedShift(int,int,ubyte,ubyte):int (Tier0)
4 (1.18 % of base) : 357279.dasm - JIT.HardwareIntrinsics.Arm.Helpers:SignedShift(short,short,ubyte,ubyte):short (Tier0)
4 (1.15 % of base) : 355678.dasm - JIT.HardwareIntrinsics.Arm.Helpers:UnsignedShift(uint,int,ubyte,ubyte):uint (Tier0)
Top method improvements (percentages):
-96 (-75.00 % of base) : 516390.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-56 (-73.68 % of base) : 515993.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-56 (-73.68 % of base) : 507262.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-52 (-72.22 % of base) : 516216.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-44 (-68.75 % of base) : 505673.dasm - _simple:main():int (Tier0)
-44 (-68.75 % of base) : 505752.dasm - _simple:main():int (Tier0)
-1164 (-67.99 % of base) : 516410.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-124 (-67.39 % of base) : 497877.dasm - JitTest_sizeof_Target_64Bit_and_arm_il.Test:Main():int (Tier0)
-40 (-66.67 % of base) : 516191.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-36 (-64.29 % of base) : 505749.dasm - _simple:main():int (Tier0)
-36 (-64.29 % of base) : 505669.dasm - _simple:main():int (Tier0)
-32 (-61.54 % of base) : 516444.dasm - _n:main():int (Tier0)
-28 (-58.33 % of base) : 516442.dasm - _shl:main():int (Tier0)
-28 (-58.33 % of base) : 505741.dasm - _simple:main():int (Tier0)
-32 (-57.14 % of base) : 495985.dasm - LongMulOn32BitTest:LongMul_23(int):long (Tier0)
-32 (-57.14 % of base) : 495986.dasm - LongMulOn32BitTest:LongMul_24(int):long (Tier0)
-32 (-57.14 % of base) : 496001.dasm - LongMulOn32BitTest:LongMul_39(int):long (Tier0)
-32 (-57.14 % of base) : 496015.dasm - LongMulOn32BitTest:LongMul_53(int):long (Tier0)
-32 (-57.14 % of base) : 495970.dasm - LongMulOn32BitTest:LongMul_8(int):long (Tier0)
-32 (-57.14 % of base) : 495971.dasm - LongMulOn32BitTest:LongMul_9(int):long (Tier0)
libraries.crossgen2.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 59069640 (overridden on cmd)
Total bytes of diff: 59069152 (overridden on cmd)
Total bytes of delta: -488 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 144301.dasm (3.12 % of base)
4 : 24539.dasm (3.12 % of base)
Top file improvements (bytes):
-88 : 24201.dasm (-32.84 % of base)
-88 : 22131.dasm (-32.84 % of base)
-88 : 24165.dasm (-32.84 % of base)
-44 : 151466.dasm (-6.18 % of base)
-24 : 197763.dasm (-3.33 % of base)
-16 : 14671.dasm (-11.11 % of base)
-16 : 14677.dasm (-8.00 % of base)
-16 : 197945.dasm (-2.78 % of base)
-16 : 201906.dasm (-1.96 % of base)
-16 : 23152.dasm (-7.55 % of base)
-16 : 243405.dasm (-1.96 % of base)
-16 : 14674.dasm (-11.11 % of base)
-16 : 231486.dasm (-1.96 % of base)
-8 : 121742.dasm (-1.13 % of base)
-4 : 155310.dasm (-0.62 % of base)
-4 : 174721.dasm (-3.70 % of base)
-4 : 223633.dasm (-0.62 % of base)
-4 : 210110.dasm (-1.96 % of base)
-4 : 142922.dasm (-1.96 % of base)
-4 : 174730.dasm (-3.70 % of base)
22 total files with Code Size differences (20 improved, 2 regressed), 27 unchanged.
Top method regressions (bytes):
4 (3.12 % of base) : 24539.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 144301.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 24165.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 24201.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 22131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-44 (-6.18 % of base) : 151466.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-24 (-3.33 % of base) : 197763.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
-16 (-11.11 % of base) : 14671.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 14674.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 14677.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-1.96 % of base) : 201906.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 243405.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 231486.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.78 % of base) : 197945.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-16 (-7.55 % of base) : 23152.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-1.13 % of base) : 121742.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-1.96 % of base) : 142922.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-4 (-3.70 % of base) : 174721.dasm - System.DirectoryServices.ActiveDirectory.ReplicationFailure:get_LastErrorMessage():System.String:this (FullOpts)
-4 (-3.70 % of base) : 174730.dasm - System.DirectoryServices.ActiveDirectory.ReplicationNeighbor:get_LastSyncMessage():System.String:this (FullOpts)
-4 (-0.62 % of base) : 155310.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 223633.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-1.96 % of base) : 210110.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
Top method regressions (percentages):
4 (3.12 % of base) : 24539.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.12 % of base) : 144301.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 24165.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 24201.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 22131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-16 (-11.11 % of base) : 14671.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-16 (-11.11 % of base) : 14674.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-16 (-8.00 % of base) : 14677.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-16 (-7.55 % of base) : 23152.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-44 (-6.18 % of base) : 151466.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-4 (-3.70 % of base) : 174721.dasm - System.DirectoryServices.ActiveDirectory.ReplicationFailure:get_LastErrorMessage():System.String:this (FullOpts)
-4 (-3.70 % of base) : 174730.dasm - System.DirectoryServices.ActiveDirectory.ReplicationNeighbor:get_LastSyncMessage():System.String:this (FullOpts)
-24 (-3.33 % of base) : 197763.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
-16 (-2.78 % of base) : 197945.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-4 (-1.96 % of base) : 142922.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-16 (-1.96 % of base) : 201906.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 243405.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-1.96 % of base) : 231486.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-4 (-1.96 % of base) : 210110.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-8 (-1.13 % of base) : 121742.dasm - System.Data.SqlTypes.SqlInt64:op_Multiply(System.Data.SqlTypes.SqlInt64,System.Data.SqlTypes.SqlInt64):System.Data.SqlTypes.SqlInt64 (FullOpts)
-4 (-0.62 % of base) : 155310.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
-4 (-0.62 % of base) : 223633.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
libraries.pmi.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 79743716 (overridden on cmd)
Total bytes of diff: 79756136 (overridden on cmd)
Total bytes of delta: 12420 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1236 : 221940.dasm (63.32 % of base)
1016 : 135115.dasm (7.72 % of base)
1016 : 221856.dasm (8.82 % of base)
1016 : 166376.dasm (7.72 % of base)
944 : 221939.dasm (41.70 % of base)
648 : 221825.dasm (6.15 % of base)
576 : 220328.dasm (15.62 % of base)
576 : 220329.dasm (14.20 % of base)
576 : 220331.dasm (14.66 % of base)
392 : 220352.dasm (11.60 % of base)
384 : 220360.dasm (18.71 % of base)
384 : 220343.dasm (14.93 % of base)
384 : 220332.dasm (11.58 % of base)
384 : 220357.dasm (8.93 % of base)
384 : 220359.dasm (17.81 % of base)
344 : 220337.dasm (18.66 % of base)
296 : 64394.dasm (3.03 % of base)
268 : 99538.dasm (14.63 % of base)
200 : 234308.dasm (37.04 % of base)
192 : 220345.dasm (19.28 % of base)
Top file improvements (bytes):
-88 : 64547.dasm (-2.44 % of base)
-80 : 166404.dasm (-2.75 % of base)
-80 : 135143.dasm (-2.75 % of base)
-36 : 252330.dasm (-0.53 % of base)
-36 : 4763.dasm (-19.57 % of base)
-32 : 135142.dasm (-1.14 % of base)
-32 : 166403.dasm (-1.14 % of base)
-28 : 135145.dasm (-1.09 % of base)
-28 : 166406.dasm (-1.09 % of base)
-28 : 230764.dasm (-1.73 % of base)
-24 : 236534.dasm (-0.74 % of base)
-24 : 282071.dasm (-3.09 % of base)
-24 : 283317.dasm (-2.62 % of base)
-24 : 219916.dasm (-2.14 % of base)
-20 : 195932.dasm (-1.29 % of base)
-20 : 212876.dasm (-3.07 % of base)
-20 : 236475.dasm (-1.11 % of base)
-20 : 236473.dasm (-0.27 % of base)
-16 : 282072.dasm (-2.65 % of base)
-16 : 184962.dasm (-0.64 % of base)
59 total files with Code Size differences (29 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
1236 (63.32 % of base) : 221940.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
1016 (8.82 % of base) : 221856.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
1016 (7.72 % of base) : 135115.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
1016 (7.72 % of base) : 166376.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
944 (41.70 % of base) : 221939.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
648 (6.15 % of base) : 221825.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
576 (14.66 % of base) : 220331.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 220328.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (14.20 % of base) : 220329.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
392 (11.60 % of base) : 220352.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.58 % of base) : 220332.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 220359.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 220360.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (8.93 % of base) : 220357.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
384 (14.93 % of base) : 220343.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 220337.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (3.03 % of base) : 64394.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
268 (14.63 % of base) : 99538.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
200 (37.04 % of base) : 234308.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
192 (20.69 % of base) : 220430.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
Top method improvements (bytes):
-88 (-2.44 % of base) : 64547.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-80 (-2.75 % of base) : 166404.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 135143.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-36 (-0.53 % of base) : 252330.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateInterfaceViewProxyType(System.Type):System.Type (FullOpts)
-36 (-19.57 % of base) : 4763.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-32 (-1.14 % of base) : 135142.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.14 % of base) : 166403.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.09 % of base) : 135145.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.09 % of base) : 166406.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-28 (-1.73 % of base) : 230764.dasm - Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CreateUnexpectedException(byref,System.String):System.FormatException (FullOpts)
-24 (-2.14 % of base) : 219916.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-24 (-0.74 % of base) : 236534.dasm - R2RDump.TextDumper:DumpAllMethods():this (FullOpts)
-24 (-2.62 % of base) : 283317.dasm - System.Net.Sockets.SocketAsyncEventArgs+<>c:<ProcessIOCPResult>b__138_0(System.Object):this (FullOpts)
-24 (-3.09 % of base) : 282071.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
-20 (-0.27 % of base) : 236473.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.DebugInfo,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-20 (-1.11 % of base) : 236475.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.ReadyToRunSection,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-20 (-3.07 % of base) : 212876.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-20 (-1.29 % of base) : 195932.dasm - System.Xml.XmlTextWriter:WriteDocType(System.String,System.String,System.String,System.String):this (FullOpts)
-16 (-2.27 % of base) : 280174.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 280651.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
Top method regressions (percentages):
1236 (63.32 % of base) : 221940.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
944 (41.70 % of base) : 221939.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
200 (37.04 % of base) : 234308.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
192 (21.15 % of base) : 234213.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (20.69 % of base) : 220430.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
192 (19.51 % of base) : 220348.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (19.28 % of base) : 220345.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (18.71 % of base) : 220360.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
344 (18.66 % of base) : 220337.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (17.81 % of base) : 220359.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (15.62 % of base) : 220328.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (14.93 % of base) : 220343.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
576 (14.66 % of base) : 220331.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
268 (14.63 % of base) : 99538.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
576 (14.20 % of base) : 220329.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (13.39 % of base) : 234295.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
392 (11.60 % of base) : 220352.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
384 (11.58 % of base) : 220332.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
192 (11.09 % of base) : 220327.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
180 (9.32 % of base) : 234294.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
Top method improvements (percentages):
-36 (-19.57 % of base) : 4763.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-4 (-12.50 % of base) : 7119.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-8 (-4.17 % of base) : 141156.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-24 (-3.09 % of base) : 282071.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
-20 (-3.07 % of base) : 212876.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-80 (-2.75 % of base) : 166404.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-80 (-2.75 % of base) : 135143.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-16 (-2.65 % of base) : 282072.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-24 (-2.62 % of base) : 283317.dasm - System.Net.Sockets.SocketAsyncEventArgs+<>c:<ProcessIOCPResult>b__138_0(System.Object):this (FullOpts)
-88 (-2.44 % of base) : 64547.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-4 (-2.38 % of base) : 289550.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-16 (-2.27 % of base) : 280174.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 280651.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-2.27 % of base) : 285661.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-24 (-2.14 % of base) : 219916.dasm - Internal.JitInterface.CorInfoImpl:ComputeLikelyClassMethod(int,System.Collections.Generic.Dictionary`2[long,System.Object],Internal.JitInterface.PgoInstrumentationSchema[],ubyte[],ILCompiler.CompilationModuleGroup):System.Nullable`1[Internal.Pgo.PgoSchemaElem] (FullOpts)
-28 (-1.73 % of base) : 230764.dasm - Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CreateUnexpectedException(byref,System.String):System.FormatException (FullOpts)
-20 (-1.29 % of base) : 195932.dasm - System.Xml.XmlTextWriter:WriteDocType(System.String,System.String,System.String,System.String):this (FullOpts)
-32 (-1.14 % of base) : 135142.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.14 % of base) : 166403.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.12 % of base) : 281175.dasm - System.Net.HttpWebRequest:get_Host():System.String:this (FullOpts)
libraries_tests.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 330523528 (overridden on cmd)
Total bytes of diff: 330280208 (overridden on cmd)
Total bytes of delta: -243320 (-0.07 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
3256 : 619366.dasm (89.16 % of base)
556 : 90859.dasm (7.97 % of base)
244 : 56543.dasm (5.16 % of base)
116 : 611948.dasm (1.23 % of base)
92 : 390493.dasm (1.14 % of base)
84 : 605956.dasm (2.33 % of base)
80 : 86718.dasm (2.04 % of base)
76 : 56542.dasm (1.71 % of base)
28 : 605983.dasm (2.15 % of base)
28 : 610439.dasm (1.66 % of base)
28 : 605982.dasm (1.23 % of base)
24 : 68858.dasm (0.52 % of base)
16 : 389879.dasm (2.15 % of base)
16 : 383737.dasm (2.15 % of base)
8 : 100286.dasm (0.34 % of base)
8 : 95458.dasm (0.50 % of base)
8 : 110803.dasm (0.36 % of base)
8 : 110539.dasm (0.39 % of base)
8 : 248262.dasm (6.06 % of base)
8 : 287027.dasm (0.67 % of base)
Top file improvements (bytes):
-131072 : 432350.dasm (-40.00 % of base)
-8192 : 432328.dasm (-39.95 % of base)
-3152 : 619326.dasm (-44.98 % of base)
-1336 : 372137.dasm (-30.12 % of base)
-1336 : 385033.dasm (-30.12 % of base)
-1336 : 373049.dasm (-30.12 % of base)
-1336 : 385433.dasm (-30.12 % of base)
-1028 : 374289.dasm (-26.66 % of base)
-1028 : 374757.dasm (-26.66 % of base)
-1028 : 382665.dasm (-26.66 % of base)
-1028 : 384677.dasm (-27.49 % of base)
-1028 : 386997.dasm (-26.66 % of base)
-1028 : 389309.dasm (-26.66 % of base)
-1028 : 373545.dasm (-26.66 % of base)
-1028 : 374797.dasm (-26.66 % of base)
-1028 : 376481.dasm (-26.66 % of base)
-1028 : 383433.dasm (-26.66 % of base)
-1028 : 386253.dasm (-26.66 % of base)
-1028 : 388925.dasm (-26.66 % of base)
-1028 : 389225.dasm (-26.66 % of base)
69 total files with Code Size differences (42 improved, 27 regressed), 20 unchanged.
Top method regressions (bytes):
3256 (89.16 % of base) : 619366.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitSwitchBuckets(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter+SwitchBucket],int,int):this (Tier1)
556 (7.97 % of base) : 90859.dasm - Microsoft.Interop.AttributedMarshallingModelGeneratorResolver:CreateCustomNativeTypeMarshaller(Microsoft.Interop.TypePositionInfo,Microsoft.Interop.StubCodeContext,Microsoft.Interop.NativeMarshallingAttributeInfo):Microsoft.Interop.ResolvedGenerator:this (Tier1)
244 (5.16 % of base) : 56543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
116 (1.23 % of base) : 611948.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (Tier1)
92 (1.14 % of base) : 390493.dasm - System.Numerics.Tests.QuaternionTests:QuaternionCreateFromYawPitchRollTest2():this (Tier1-OSR)
84 (2.33 % of base) : 605956.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
80 (2.04 % of base) : 86718.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
76 (1.71 % of base) : 56542.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
28 (2.15 % of base) : 605983.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
28 (1.23 % of base) : 605982.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
28 (1.66 % of base) : 610439.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
24 (0.52 % of base) : 68858.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
16 (2.15 % of base) : 383737.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
16 (2.15 % of base) : 389879.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[float,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Tier1)
8 (0.34 % of base) : 100286.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindConstantCast(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):int:this (Instrumented Tier0)
8 (0.50 % of base) : 95458.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindConstantCast(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):int:this (Tier0)
8 (6.06 % of base) : 248262.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
8 (0.36 % of base) : 110803.dasm - System.Security.Cryptography.Xml.SymmetricKeyWrap:AESKeyWrapDecrypt(ubyte[],ubyte[]):ubyte[] (Instrumented Tier0)
8 (0.39 % of base) : 110539.dasm - System.Security.Cryptography.Xml.SymmetricKeyWrap:AESKeyWrapEncrypt(ubyte[],ubyte[]):ubyte[] (Instrumented Tier0)
8 (0.67 % of base) : 287027.dasm - System.Security.Principal.SecurityIdentifier:CreateFromParts(long,System.ReadOnlySpan`1[int]):this (Instrumented Tier0)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 432350.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 432328.dasm - TestType:meth1():int (Tier0)
-3152 (-44.98 % of base) : 619326.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
-1336 (-30.12 % of base) : 385033.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 385433.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 372137.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1336 (-30.12 % of base) : 373049.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized128|232_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 383433.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,double,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 388925.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,double,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 376481.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 386997.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 374797.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,int,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 373545.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[uint,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 389225.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,uint,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 389309.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized128|234_1[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-1028 (-27.49 % of base) : 384677.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized128|228_1[float,System.Numerics.Tensors.TensorPrimitives+MinMagnitudePropagateNaNOperator`1[float]](byref,byref,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 374757.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 374289.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[long,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[long]](byref,byref,long,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 382665.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[ulong,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
-1028 (-26.66 % of base) : 386253.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[ulong,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
Top method regressions (percentages):
3256 (89.16 % of base) : 619366.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitSwitchBuckets(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter+SwitchBucket],int,int):this (Tier1)
4 (14.29 % of base) : 248264.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
4 (12.50 % of base) : 248265.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
556 (7.97 % of base) : 90859.dasm - Microsoft.Interop.AttributedMarshallingModelGeneratorResolver:CreateCustomNativeTypeMarshaller(Microsoft.Interop.TypePositionInfo,Microsoft.Interop.StubCodeContext,Microsoft.Interop.NativeMarshallingAttributeInfo):Microsoft.Interop.ResolvedGenerator:this (Tier1)
4 (7.14 % of base) : 169800.dasm - Microsoft.VisualBasic.Conversion:Oct(byte):System.String (Tier0)
4 (7.14 % of base) : 169741.dasm - Microsoft.VisualBasic.Conversion:Oct(short):System.String (Tier0)
8 (6.06 % of base) : 248262.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
244 (5.16 % of base) : 56543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
4 (4.17 % of base) : 276055.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier1)
4 (3.70 % of base) : 594725.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
4 (2.78 % of base) : 275105.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Instrumented Tier1)
84 (2.33 % of base) : 605956.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
28 (2.15 % of base) : 605983.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
16 (2.15 % of base) : 383737.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[double,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[double]](byref,byref,double,byref,ulong) (Tier1)
16 (2.15 % of base) : 389879.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized128|233_1[float,System.Numerics.Tensors.TensorPrimitives+FusedMultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Tier1)
80 (2.04 % of base) : 86718.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
76 (1.71 % of base) : 56542.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
28 (1.66 % of base) : 610439.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
116 (1.23 % of base) : 611948.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (Tier1)
28 (1.23 % of base) : 605982.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
Top method improvements (percentages):
-676 (-97.13 % of base) : 432367.dasm - TestType:meth1():int (Tier0)
-28 (-58.33 % of base) : 432366.dasm - TestType:meth1():int (Tier0)
-3152 (-44.98 % of base) : 619326.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:EmitJumpTable():this (Tier1)
-120 (-40.00 % of base) : 488792.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-131072 (-40.00 % of base) : 432350.dasm - TestType:meth1():int (Tier0)
-8192 (-39.95 % of base) : 432328.dasm - TestType:meth1():int (Tier0)
-120 (-39.47 % of base) : 172764.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 376887.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (Tier1)
-120 (-38.96 % of base) : 387331.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (Tier1)
-120 (-38.96 % of base) : 284059.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 525797.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.96 % of base) : 572022.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 158545.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-38.46 % of base) : 593898.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-256 (-38.32 % of base) : 432327.dasm - TestType:meth1():int (Tier0)
-120 (-37.97 % of base) : 89713.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-37.97 % of base) : 446281.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-12 (-37.50 % of base) : 432365.dasm - TestType:meth1():int (Tier0)
-116 (-37.18 % of base) : 641521.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
-120 (-37.04 % of base) : 427105.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 171356388 (overridden on cmd)
Total bytes of diff: 171229732 (overridden on cmd)
Total bytes of delta: -126656 (-0.07 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
824 : 57013.dasm (6.89 % of base)
640 : 166918.dasm (19.37 % of base)
636 : 166925.dasm (27.94 % of base)
636 : 166949.dasm (27.94 % of base)
636 : 166976.dasm (27.94 % of base)
544 : 166923.dasm (20.61 % of base)
544 : 166940.dasm (20.54 % of base)
540 : 166952.dasm (20.39 % of base)
124 : 215620.dasm (5.67 % of base)
120 : 228301.dasm (13.89 % of base)
120 : 195244.dasm (6.55 % of base)
96 : 204358.dasm (7.16 % of base)
72 : 95473.dasm (0.80 % of base)
64 : 188207.dasm (3.22 % of base)
44 : 46806.dasm (0.78 % of base)
40 : 278350.dasm (0.82 % of base)
40 : 278383.dasm (1.04 % of base)
40 : 278384.dasm (0.65 % of base)
40 : 56800.dasm (0.72 % of base)
36 : 57006.dasm (1.27 % of base)
Top file improvements (bytes):
-131072 : 184735.dasm (-40.00 % of base)
-88 : 200467.dasm (-32.84 % of base)
-68 : 226457.dasm (-2.15 % of base)
-52 : 188308.dasm (-1.51 % of base)
-52 : 215387.dasm (-1.83 % of base)
-52 : 41996.dasm (-0.90 % of base)
-48 : 122864.dasm (-3.02 % of base)
-48 : 124741.dasm (-3.02 % of base)
-48 : 153459.dasm (-2.05 % of base)
-48 : 198797.dasm (-1.30 % of base)
-48 : 226327.dasm (-1.07 % of base)
-44 : 226396.dasm (-2.36 % of base)
-40 : 226439.dasm (-1.32 % of base)
-40 : 226479.dasm (-1.07 % of base)
-32 : 4781.dasm (-0.69 % of base)
-32 : 55160.dasm (-1.27 % of base)
-32 : 55130.dasm (-1.24 % of base)
-28 : 17577.dasm (-0.54 % of base)
-28 : 215707.dasm (-0.71 % of base)
-28 : 226427.dasm (-1.43 % of base)
76 total files with Code Size differences (43 improved, 33 regressed), 20 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 57013.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
640 (19.37 % of base) : 166918.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
636 (27.94 % of base) : 166925.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
636 (27.94 % of base) : 166976.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
636 (27.94 % of base) : 166949.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
544 (20.54 % of base) : 166940.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
544 (20.61 % of base) : 166923.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
540 (20.39 % of base) : 166952.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
124 (5.67 % of base) : 215620.dasm - System.Tests.DateTimeTests:TryParse_TimeDesignators_NetCore() (FullOpts)
120 (6.55 % of base) : 195244.dasm - System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests:VerifyArchitecture():this (FullOpts)
120 (13.89 % of base) : 228301.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
96 (7.16 % of base) : 204358.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
72 (0.80 % of base) : 95473.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest:SqlStringToSqlDateTime():this (FullOpts)
64 (3.22 % of base) : 188207.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
44 (0.78 % of base) : 46806.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
40 (0.65 % of base) : 278384.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 56800.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 278383.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 278350.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 57006.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
Top method improvements (bytes):
-131072 (-40.00 % of base) : 184735.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 200467.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-68 (-2.15 % of base) : 226457.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-52 (-0.90 % of base) : 41996.dasm - Microsoft.Extensions.Logging.Test.EventSourceLoggerTest:VerifySingleEvent(System.String,System.String,System.String,System.Nullable`1[int],System.String,System.Nullable`1[int],System.String[]) (FullOpts)
-52 (-1.51 % of base) : 188308.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-52 (-1.83 % of base) : 215387.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-48 (-3.02 % of base) : 122864.dasm - System.Globalization.Tests.DateTimeFormatInfoMiscTests:TestFirstYearOfJapaneseEra():this (FullOpts)
-48 (-3.02 % of base) : 124741.dasm - System.Globalization.Tests.DateTimeFormatInfoMiscTests:TestFirstYearOfJapaneseEra():this (FullOpts)
-48 (-2.05 % of base) : 153459.dasm - System.Net.Test.Common.LoopbackServer:GetSingleChunkHttpResponse(int,System.String,System.String,ubyte):System.String (FullOpts)
-48 (-1.07 % of base) : 226327.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_AddSignatureWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-48 (-1.30 % of base) : 198797.dasm - System.Tests.StringTests:LastIndexOf_TurkishI_TurkishCulture() (FullOpts)
-44 (-2.36 % of base) : 226396.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithStringAlgorithm():this (FullOpts)
-40 (-1.32 % of base) : 226439.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:MultiSign_ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected_BodyProtected():this (FullOpts)
-40 (-1.07 % of base) : 226479.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:ReEncodeWithDuplicateHeaderBetweenProtectedAndUnprotected():this (FullOpts)
-32 (-1.27 % of base) : 55160.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 55130.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-0.69 % of base) : 4781.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-28 (-0.54 % of base) : 17577.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<ReadAsync_ContinuesOnCurrentSynchronizationContextIfDesired>d__38:MoveNext():this (FullOpts)
-28 (-1.43 % of base) : 226427.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
-28 (-0.71 % of base) : 215707.dasm - System.Tests.StringTests:LastIndexOf_TurkishI_TurkishCulture() (FullOpts)
Top method regressions (percentages):
636 (27.94 % of base) : 166925.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
636 (27.94 % of base) : 166976.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
636 (27.94 % of base) : 166949.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
544 (20.61 % of base) : 166923.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
544 (20.54 % of base) : 166940.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
540 (20.39 % of base) : 166952.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
640 (19.37 % of base) : 166918.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
120 (13.89 % of base) : 228301.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
20 (9.80 % of base) : 121346.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
20 (9.80 % of base) : 121355.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
20 (9.80 % of base) : 121356.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
20 (9.80 % of base) : 121357.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
20 (9.80 % of base) : 121358.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
20 (9.80 % of base) : 121359.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_14():System.Object:this (FullOpts)
20 (9.80 % of base) : 121347.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_2():System.Object:this (FullOpts)
20 (9.80 % of base) : 121348.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
20 (9.80 % of base) : 121350.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
20 (9.80 % of base) : 121351.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_6():System.Object:this (FullOpts)
20 (9.80 % of base) : 121352.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
20 (9.80 % of base) : 121354.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
Top method improvements (percentages):
-131072 (-40.00 % of base) : 184735.dasm - TestType:meth1():int (Tier0-MinOpts)
-88 (-32.84 % of base) : 200467.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-16 (-8.33 % of base) : 102055.dasm - SdtEventSources.EventSourceTest:LogTaskScheduled(System.Guid,System.String):this (FullOpts)
-16 (-8.33 % of base) : 102056.dasm - SdtEventSources.EventSourceTest:LogTaskScheduledBad(System.Guid,System.String):this (FullOpts)
-8 (-6.90 % of base) : 78195.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
-8 (-6.25 % of base) : 78185.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
-8 (-6.25 % of base) : 78188.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-8 (-5.71 % of base) : 78197.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-20 (-4.76 % of base) : 75517.dasm - System.Collections.Tests.BitArray_CtorTests:Ctor_Int_Bool_ShouldNotLeaveDirtyBits() (FullOpts)
-20 (-4.46 % of base) : 78177.dasm - System.Collections.Tests.BitArray_GetSetTests:SetAll_ShouldNotLeaveDirtyBits() (FullOpts)
-8 (-4.17 % of base) : 60090.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-8 (-4.00 % of base) : 214593.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.92 % of base) : 214594.dasm - System.Tests.DateTimeTests+<>c__DisplayClass27_0:<Ctor_InvalidDay_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-16 (-3.88 % of base) : 46938.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-16 (-3.88 % of base) : 52431.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-24 (-3.61 % of base) : 156372.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
-8 (-3.57 % of base) : 214904.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-8 (-3.51 % of base) : 214905.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__6():System.Object:this (FullOpts)
-16 (-3.12 % of base) : 21223.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-20 (-3.07 % of base) : 224108.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
realworld.run.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15898132 (overridden on cmd)
Total bytes of diff: 15898848 (overridden on cmd)
Total bytes of delta: 716 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
824 : 26208.dasm (6.89 % of base)
236 : 26765.dasm (2.61 % of base)
116 : 15920.dasm (2.51 % of base)
60 : 26542.dasm (1.05 % of base)
40 : 26240.dasm (0.82 % of base)
40 : 25938.dasm (0.72 % of base)
40 : 26209.dasm (0.65 % of base)
40 : 26237.dasm (1.04 % of base)
36 : 26543.dasm (1.27 % of base)
8 : 1192.dasm (3.39 % of base)
4 : 1590.dasm (2.17 % of base)
4 : 26087.dasm (0.14 % of base)
4 : 26339.dasm (0.20 % of base)
4 : 26194.dasm (0.08 % of base)
Top file improvements (bytes):
-88 : 811.dasm (-32.84 % of base)
-88 : 11837.dasm (-32.84 % of base)
-48 : 15862.dasm (-1.08 % of base)
-32 : 25956.dasm (-1.27 % of base)
-32 : 25952.dasm (-1.24 % of base)
-28 : 25944.dasm (-1.23 % of base)
-20 : 15366.dasm (-0.76 % of base)
-20 : 15447.dasm (-0.46 % of base)
-20 : 15578.dasm (-0.43 % of base)
-16 : 13868.dasm (-2.27 % of base)
-16 : 15422.dasm (-1.17 % of base)
-16 : 16521.dasm (-0.49 % of base)
-16 : 11553.dasm (-1.72 % of base)
-16 : 14071.dasm (-3.12 % of base)
-16 : 15383.dasm (-1.22 % of base)
-16 : 15653.dasm (-0.39 % of base)
-12 : 11552.dasm (-1.15 % of base)
-12 : 15398.dasm (-1.20 % of base)
-12 : 16532.dasm (-0.74 % of base)
-12 : 15409.dasm (-1.67 % of base)
47 total files with Code Size differences (33 improved, 14 regressed), 22 unchanged.
Top method regressions (bytes):
824 (6.89 % of base) : 26208.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
236 (2.61 % of base) : 26765.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
116 (2.51 % of base) : 15920.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
60 (1.05 % of base) : 26542.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (0.65 % of base) : 26209.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.72 % of base) : 25938.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (1.04 % of base) : 26237.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 26240.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (1.27 % of base) : 26543.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
8 (3.39 % of base) : 1192.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (2.17 % of base) : 1590.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
4 (0.08 % of base) : 26194.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
4 (0.14 % of base) : 26087.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 26339.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 11837.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 811.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-48 (-1.08 % of base) : 15862.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-32 (-1.27 % of base) : 25956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-32 (-1.24 % of base) : 25952.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.23 % of base) : 25944.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-20 (-0.76 % of base) : 15366.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAssemblyReferences(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineReference]) (FullOpts)
-20 (-0.46 % of base) : 15447.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-20 (-0.43 % of base) : 15578.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-16 (-1.17 % of base) : 15422.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:GetCompilationAndModuleNames(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],int,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineSourceFile],ubyte,System.String,byref,byref,byref):this (FullOpts)
-16 (-1.22 % of base) : 15383.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-16 (-0.49 % of base) : 16521.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseOperatorDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExplicitInterfaceSpecifierSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.OperatorDeclarationSyntax:this (FullOpts)
-16 (-0.39 % of base) : 15653.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-16 (-1.72 % of base) : 11553.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-16 (-2.27 % of base) : 13868.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-16 (-3.12 % of base) : 14071.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-12 (-1.20 % of base) : 15398.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAnalyzers(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineAnalyzerReference],System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-1.67 % of base) : 15409.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-12 (-0.74 % of base) : 16532.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
-12 (-1.15 % of base) : 11552.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
Top method regressions (percentages):
824 (6.89 % of base) : 26208.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
8 (3.39 % of base) : 1192.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
236 (2.61 % of base) : 26765.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
116 (2.51 % of base) : 15920.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
4 (2.17 % of base) : 1590.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
36 (1.27 % of base) : 26543.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
60 (1.05 % of base) : 26542.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
40 (1.04 % of base) : 26237.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.82 % of base) : 26240.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
40 (0.72 % of base) : 25938.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
40 (0.65 % of base) : 26209.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
4 (0.20 % of base) : 26339.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
4 (0.14 % of base) : 26087.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (0.08 % of base) : 26194.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 11837.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-88 (-32.84 % of base) : 811.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-4.00 % of base) : 4546.dasm - FSharp.Compiler.Text.RangeModule:trimRangeToLine(FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-16 (-3.12 % of base) : 14071.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-16 (-2.27 % of base) : 13868.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-8 (-2.11 % of base) : 6678.dasm - FSharp.Compiler.Text.RangeModule:unionRanges(FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Text.Range (FullOpts)
-4 (-1.89 % of base) : 10524.dasm - FSharp.Compiler.Parser+mIn@170:Invoke(FSharp.Compiler.Text.Range):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range]:this (FullOpts)
-16 (-1.72 % of base) : 11553.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-12 (-1.67 % of base) : 15409.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-4 (-1.56 % of base) : 972.dasm - BepuUtilities.Collections.QuickSet`2[int,BepuUtilities.Collections.PrimitiveComparer`1[int]]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuUtilities.Collections.PrimitiveComparer`1[int]):this (FullOpts)
-4 (-1.56 % of base) : 15040.dasm - Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeScalarHashGetter>b__0(byref):this (FullOpts)
-4 (-1.52 % of base) : 16809.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDouble(System.String):double:this (FullOpts)
-4 (-1.52 % of base) : 16799.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueSingle(System.String):float:this (FullOpts)
-4 (-1.49 % of base) : 6714.dasm - FSharp.Compiler.NameResolution:CallNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.47 % of base) : 7611.dasm - FSharp.Compiler.NameResolution:CallMethodGroupNameResolutionSink(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+Item,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.TypedTree+Typar,FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.AccessibilityLogic+AccessorDomain) (FullOpts)
-4 (-1.28 % of base) : 990.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
-32 (-1.27 % of base) : 25956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.27 % of base) : 17025.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:HandleCloseBraceInContent(int,int):this (FullOpts)
-32 (-1.24 % of base) : 25952.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-28 (-1.23 % of base) : 25944.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
smoke_tests.nativeaot.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 3800188 (overridden on cmd)
Total bytes of diff: 3800036 (overridden on cmd)
Total bytes of delta: -152 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 12976.dasm (6.25 % of base)
16 : 7437.dasm (6.25 % of base)
4 : 5227.dasm (2.00 % of base)
4 : 741.dasm (2.00 % of base)
4 : 19111.dasm (1.54 % of base)
4 : 5811.dasm (3.70 % of base)
4 : 1790.dasm (3.70 % of base)
Top file improvements (bytes):
-88 : 772.dasm (-32.84 % of base)
-88 : 4438.dasm (-32.84 % of base)
-4 : 13703.dasm (-1.30 % of base)
-4 : 14595.dasm (-0.99 % of base)
-4 : 6017.dasm (-2.56 % of base)
-4 : 1261.dasm (-0.99 % of base)
-4 : 1891.dasm (-2.56 % of base)
-4 : 8405.dasm (-1.30 % of base)
-4 : 4610.dasm (-0.99 % of base)
16 total files with Code Size differences (9 improved, 7 regressed), 9 unchanged.
Top method regressions (bytes):
16 (6.25 % of base) : 12976.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
16 (6.25 % of base) : 7437.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
4 (3.70 % of base) : 5811.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.70 % of base) : 1790.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (1.54 % of base) : 19111.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
4 (2.00 % of base) : 5227.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
4 (2.00 % of base) : 741.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
Top method improvements (bytes):
-88 (-32.84 % of base) : 772.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 4438.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-2.56 % of base) : 6017.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-4 (-2.56 % of base) : 1891.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-4 (-1.30 % of base) : 13703.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-1.30 % of base) : 8405.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-0.99 % of base) : 14595.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
-4 (-0.99 % of base) : 1261.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
-4 (-0.99 % of base) : 4610.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
Top method regressions (percentages):
16 (6.25 % of base) : 12976.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
16 (6.25 % of base) : 7437.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
4 (3.70 % of base) : 5811.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (3.70 % of base) : 1790.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
4 (2.00 % of base) : 5227.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
4 (2.00 % of base) : 741.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
4 (1.54 % of base) : 19111.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
Top method improvements (percentages):
-88 (-32.84 % of base) : 772.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-88 (-32.84 % of base) : 4438.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-2.56 % of base) : 6017.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-4 (-2.56 % of base) : 1891.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-4 (-1.30 % of base) : 13703.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-1.30 % of base) : 8405.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-0.99 % of base) : 14595.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
-4 (-0.99 % of base) : 1261.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
-4 (-0.99 % of base) : 4610.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
16 total methods with Code Size differences (9 improved, 7 regressed).
windows x64
Diffs are based on 2,511,270 contexts (997,391 MinOpts, 1,513,879 FullOpts).
MISSED contexts: base: 478 (0.02%), diff: 942 (0.04%)
Overall (-301,848 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
aspnet.run.windows.x64.checked.mch |
46,998,136 |
-1,860 |
benchmarks.run.windows.x64.checked.mch |
8,730,179 |
-41 |
benchmarks.run_pgo.windows.x64.checked.mch |
36,208,402 |
-2,680 |
benchmarks.run_tiered.windows.x64.checked.mch |
12,404,635 |
-1,741 |
coreclr_tests.run.windows.x64.checked.mch |
392,842,774 |
-137,001 |
libraries.crossgen2.windows.x64.checked.mch |
39,486,541 |
-309 |
libraries.pmi.windows.x64.checked.mch |
61,521,230 |
+11,270 |
libraries_tests.run.windows.x64.Release.mch |
281,823,883 |
-106,160 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
136,767,094 |
-63,799 |
realworld.run.windows.x64.checked.mch |
14,124,685 |
+610 |
smoke_tests.nativeaot.windows.x64.checked.mch |
4,884,417 |
-137 |
MinOpts (-303,461 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
aspnet.run.windows.x64.checked.mch |
18,491,049 |
-2,309 |
benchmarks.run_pgo.windows.x64.checked.mch |
14,170,656 |
-2,618 |
benchmarks.run_tiered.windows.x64.checked.mch |
9,099,239 |
-1,740 |
coreclr_tests.run.windows.x64.checked.mch |
272,788,580 |
-123,764 |
libraries_tests.run.windows.x64.Release.mch |
175,858,234 |
-107,494 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
10,619,106 |
-65,536 |
FullOpts (+1,613 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
aspnet.run.windows.x64.checked.mch |
28,507,087 |
+449 |
benchmarks.run.windows.x64.checked.mch |
8,729,816 |
-41 |
benchmarks.run_pgo.windows.x64.checked.mch |
22,037,746 |
-62 |
benchmarks.run_tiered.windows.x64.checked.mch |
3,305,396 |
-1 |
coreclr_tests.run.windows.x64.checked.mch |
120,054,194 |
-13,237 |
libraries.crossgen2.windows.x64.checked.mch |
39,485,354 |
-309 |
libraries.pmi.windows.x64.checked.mch |
61,407,709 |
+11,270 |
libraries_tests.run.windows.x64.Release.mch |
105,965,649 |
+1,334 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
126,147,988 |
+1,737 |
realworld.run.windows.x64.checked.mch |
13,738,076 |
+610 |
smoke_tests.nativeaot.windows.x64.checked.mch |
4,883,470 |
-137 |
Example diffs
aspnet.run.windows.x64.checked.mch
-24 (-37.50%) : 5708.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,7 +7,6 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp+0x10] do-not-enreg[]
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x10]
;
; Lcl frame size = 48
@@ -15,32 +14,22 @@ G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
- xor eax, eax
- mov qword ptr [rbp-0x10], rax
mov qword ptr [rbp-0x08], rcx
mov qword ptr [rbp+0x10], rcx
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov bword ptr [rbp-0x10], rax
- mov eax, 512
- ; byrRegs -[rax]
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- mov rcx, bword ptr [rbp-0x10]
- ; byrRegs +[rcx]
- mov dword ptr [rcx+0x08], eax
- ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
-11 (-29.73%) : 83506.dasm - System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Instrumented Tier0)
@@ -20,18 +20,14 @@ G_M10686_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10686_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp+0x18]
sub rax, qword ptr [rbp+0x10]
- mov ecx, 32
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -32
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M10686_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 37, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 37 (MethodHash=d9a2d641) for method System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 26, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 26 (MethodHash=d9a2d641) for method System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
-11 (-29.73%) : 1616.dasm - System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Tier0)
@@ -20,18 +20,14 @@ G_M10686_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10686_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp+0x18]
sub rax, qword ptr [rbp+0x10]
- mov ecx, 32
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -32
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M10686_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 37, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 37 (MethodHash=d9a2d641) for method System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Tier0)
+; Total bytes of code 26, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 26 (MethodHash=d9a2d641) for method System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
+0 (0.00%) : 50916.dasm - Npgsql.PostgresDatabaseInfo+d__23:MoveNext():this (FullOpts)
@@ -5,11 +5,11 @@
; rbp based frame
; fully interruptible
; No matching PGO data
-; 51 inlinees with PGO data; 254 single block inlinees; 23 inlinees without PGO data
+; 51 inlinees with PGO data; 257 single block inlinees; 23 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] (301,968 ) byref -> [rbp+0x10] this EH-live single-def
-; V01 loc0 [V01,T259] ( 3, 3 ) int -> rbx
+; V01 loc0 [V01,T260] ( 3, 3 ) int -> rbx
; V02 loc1 [V02,T05] ( 24,158 ) ref -> r14 class-hnd single-def <Npgsql.PostgresDatabaseInfo>
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.String>
@@ -17,8 +17,8 @@
; V06 loc5 [V06 ] ( 60, 59.94) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
;* V07 loc6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
-; V09 loc8 [V09,T257] ( 3, 3 ) ref -> rdi class-hnd exact single-def <System.Text.StringBuilder>
-; V10 loc9 [V10 ] (103,140.95) struct (24) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
+; V09 loc8 [V09,T258] ( 3, 3 ) ref -> rdi class-hnd exact single-def <System.Text.StringBuilder>
+; V10 loc9 [V10 ] (103,141.95) struct (24) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
; V11 loc10 [V11 ] ( 42, 66 ) struct (24) [rbp-0x78] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
; V12 loc11 [V12 ] ( 49, 76 ) struct (24) [rbp-0x90] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[Npgsql.IBackendMessage]>
; V13 loc12 [V13,T29] ( 8, 64 ) ref -> rbx class-hnd exact <System.String>
@@ -55,11 +55,11 @@
; V44 tmp2 [V44,T231] ( 2, 4 ) int -> rdx "impAppendStmt"
;* V45 tmp3 [V45 ] ( 0, 0 ) byref -> zero-ref single-def
;* V46 tmp4 [V46 ] ( 0, 0 ) byref -> zero-ref
-; V47 tmp5 [V47,T258] ( 3, 3 ) ref -> rdx
+; V47 tmp5 [V47,T259] ( 3, 3 ) ref -> rdx
;* V48 tmp6 [V48 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V49 tmp7 [V49,T299] ( 2, 2 ) int -> rdi
+; V49 tmp7 [V49,T298] ( 2, 2 ) int -> rdi
;* V50 tmp8 [V50 ] ( 0, 0 ) int -> zero-ref
-; V51 tmp9 [V51,T260] ( 3, 3 ) int -> r15
+; V51 tmp9 [V51,T261] ( 3, 3 ) int -> r15
; V52 tmp10 [V52,T167] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Text.StringBuilder>
; V53 tmp11 [V53,T186] ( 2, 4 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" <Npgsql.Internal.NpgsqlConnector>
; V54 tmp12 [V54,T187] ( 2, 4 ) ref -> rdx class-hnd exact single-def "impAppendStmt" <System.String>
@@ -191,7 +191,7 @@
;* V180 tmp138 [V180 ] ( 0, 0 ) int -> zero-ref
;* V181 tmp139 [V181 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V182 tmp140 [V182 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V183 tmp141 [V183,T309] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V183 tmp141 [V183,T308] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V184 tmp142 [V184,T246] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V185 tmp143 [V185 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V186 tmp144 [V186 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -205,7 +205,7 @@
;* V194 tmp152 [V194 ] ( 0, 0 ) int -> zero-ref
;* V195 tmp153 [V195 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V196 tmp154 [V196 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V197 tmp155 [V197,T310] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V197 tmp155 [V197,T309] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V198 tmp156 [V198,T247] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V199 tmp157 [V199 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V200 tmp158 [V200 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -219,7 +219,7 @@
;* V208 tmp166 [V208 ] ( 0, 0 ) int -> zero-ref
;* V209 tmp167 [V209 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V210 tmp168 [V210 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V211 tmp169 [V211,T311] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V211 tmp169 [V211,T310] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V212 tmp170 [V212,T248] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V213 tmp171 [V213 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V214 tmp172 [V214 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -233,7 +233,7 @@
;* V222 tmp180 [V222 ] ( 0, 0 ) int -> zero-ref
;* V223 tmp181 [V223 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V224 tmp182 [V224 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V225 tmp183 [V225,T312] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V225 tmp183 [V225,T311] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V226 tmp184 [V226,T249] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V227 tmp185 [V227 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V228 tmp186 [V228 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -248,7 +248,7 @@
;* V237 tmp195 [V237 ] ( 0, 0 ) int -> zero-ref
;* V238 tmp196 [V238 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V239 tmp197 [V239 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V240 tmp198 [V240,T313] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V240 tmp198 [V240,T312] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V241 tmp199 [V241,T250] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V242 tmp200 [V242 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V243 tmp201 [V243 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -264,7 +264,7 @@
;* V253 tmp211 [V253 ] ( 0, 0 ) int -> zero-ref
;* V254 tmp212 [V254 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V255 tmp213 [V255 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
-;* V256 tmp214 [V256,T314] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V256 tmp214 [V256,T313] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V257 tmp215 [V257,T251] ( 2, 3.96) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V258 tmp216 [V258 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V259 tmp217 [V259 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -279,7 +279,7 @@
; V268 tmp226 [V268,T197] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.__Canon>
; V269 tmp227 [V269,T238] ( 2, 4 ) short -> rax "Inlining Arg"
;* V270 tmp228 [V270 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-;* V271 tmp229 [V271,T328] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V271 tmp229 [V271,T327] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V272 tmp230 [V272,T252] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V273 tmp231 [V273,T340] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V274 tmp232 [V274 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -291,9 +291,9 @@
; V280 tmp238 [V280,T263] ( 4, 2.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V281 tmp239 [V281,T335] ( 5, 0.02) ref -> rbx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V282 tmp240 [V282 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
-;* V283 tmp241 [V283,T307] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+;* V283 tmp241 [V283,T306] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V284 tmp242 [V284 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "spilling QMark2" <<unknown class>>
-; V285 tmp243 [V285,T280] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Npgsql.Internal.NpgsqlConnector>
+; V285 tmp243 [V285,T279] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Npgsql.Internal.NpgsqlConnector>
;* V286 tmp244 [V286 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
;* V287 tmp245 [V287 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
;* V288 tmp246 [V288 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[Npgsql.IBackendMessage]>
@@ -301,7 +301,7 @@
; V290 tmp248 [V290,T199] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.__Canon>
; V291 tmp249 [V291,T239] ( 2, 4 ) short -> rax "Inlining Arg"
;* V292 tmp250 [V292 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-;* V293 tmp251 [V293,T329] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V293 tmp251 [V293,T328] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V294 tmp252 [V294,T253] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V295 tmp253 [V295,T341] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V296 tmp254 [V296 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -319,7 +319,7 @@
;* V308 tmp266 [V308 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Npgsql.Internal.NpgsqlConnector>
; V309 tmp267 [V309,T147] ( 5, 10 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <Npgsql.Internal.NpgsqlReadBuffer>
;* V310 tmp268 [V310 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
-; V311 tmp269 [V311,T300] ( 2, 2 ) int -> rdx
+; V311 tmp269 [V311,T299] ( 2, 2 ) int -> rdx
;* V312 tmp270 [V312 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V313 tmp271 [V313,T200] ( 2, 4 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V314 tmp272 [V314 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
@@ -329,7 +329,7 @@
; V318 tmp276 [V318,T202] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.__Canon>
; V319 tmp277 [V319,T240] ( 2, 4 ) short -> rax "Inlining Arg"
;* V320 tmp278 [V320 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-;* V321 tmp279 [V321,T330] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V321 tmp279 [V321,T329] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V322 tmp280 [V322,T254] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V323 tmp281 [V323,T342] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V324 tmp282 [V324 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -348,7 +348,7 @@
; V337 tmp295 [V337,T204] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.__Canon>
; V338 tmp296 [V338,T241] ( 2, 4 ) short -> rax "Inlining Arg"
;* V339 tmp297 [V339 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-;* V340 tmp298 [V340,T331] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V340 tmp298 [V340,T330] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V341 tmp299 [V341,T255] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V342 tmp300 [V342,T343] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V343 tmp301 [V343 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -367,7 +367,7 @@
; V356 tmp314 [V356,T206] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.__Canon>
; V357 tmp315 [V357,T242] ( 2, 4 ) short -> rax "Inlining Arg"
;* V358 tmp316 [V358 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-;* V359 tmp317 [V359,T332] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V359 tmp317 [V359,T331] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V360 tmp318 [V360,T256] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
; V361 tmp319 [V361,T344] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V362 tmp320 [V362 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -498,28 +498,28 @@
;* V487 tmp445 [V487 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V488 tmp446 [V488 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
; V489 tmp447 [V489,T351] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
-;* V490 tmp448 [V490 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-;* V491 tmp449 [V491 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V492 tmp450 [V492,T347] ( 4, 0 ) int -> rbx "Inlining Arg"
-;* V493 tmp451 [V493 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V494 tmp452 [V494,T352] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
-; V495 tmp453 [V495,T357] ( 2, 0 ) int -> rdx "Inlining Arg"
-;* V496 tmp454 [V496,T358] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V497 tmp455 [V497 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V498 tmp456 [V498 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V499 tmp457 [V499,T353] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
-;* V500 tmp458 [V500 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-;* V501 tmp459 [V501 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
-;* V502 tmp460 [V502 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
-;* V503 tmp461 [V503 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[Npgsql.IBackendMessage]>
-; V504 tmp462 [V504,T207] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Object>
-; V505 tmp463 [V505,T208] ( 2, 4 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.__Canon>
-; V506 tmp464 [V506,T243] ( 2, 4 ) short -> rax "Inlining Arg"
-;* V507 tmp465 [V507 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
-; V508 tmp466 [V508,T279] ( 2, 1.01) ubyte -> rax "Inline return value spill temp"
-; V509 tmp467 [V509,T262] ( 4, 2.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
-; V510 tmp468 [V510,T345] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;* V511 tmp469 [V511 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
+;* V490 tmp448 [V490 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V491 tmp449 [V491,T347] ( 4, 0 ) int -> rbx "Inlining Arg"
+;* V492 tmp450 [V492 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V493 tmp451 [V493,T352] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
+; V494 tmp452 [V494,T357] ( 2, 0 ) int -> rdx "Inlining Arg"
+;* V495 tmp453 [V495,T358] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V496 tmp454 [V496 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V497 tmp455 [V497 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V498 tmp456 [V498,T353] ( 2, 0 ) byref -> rdx single-def "Inlining Arg"
+;* V499 tmp457 [V499 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
+;* V500 tmp458 [V500 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[Npgsql.IBackendMessage]>
+;* V501 tmp459 [V501 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[Npgsql.IBackendMessage]>
+; V502 tmp460 [V502,T207] ( 2, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Object>
+; V503 tmp461 [V503,T208] ( 2, 4 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.__Canon>
+; V504 tmp462 [V504,T243] ( 2, 4 ) short -> rax "Inlining Arg"
+;* V505 tmp463 [V505 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[Npgsql.IBackendMessage]>
+;* V506 tmp464 [V506,T332] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V507 tmp465 [V507,T257] ( 4, 3.01) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V508 tmp466 [V508,T345] ( 3, 0.02) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;* V509 tmp467 [V509 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
+;* V510 tmp468 [V510 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V511 tmp469 [V511 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V512 tmp470 [V512 ] ( 36, 35.94) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V06.m_task (fldOffset=0x0)" P-DEP
; V513 tmp471 [V513 ] ( 36, 36 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V06.m_options (fldOffset=0x8)" P-DEP
;* V514 tmp472 [V514,T179] ( 0, 0 ) ref -> zero-ref "field V07._source (fldOffset=0x0)" P-INDEP
@@ -527,39 +527,39 @@
; V516 tmp474 [V516 ] ( 28, 46 ) ref -> [rbp-0x70] do-not-enreg[X] addr-exposed "field V11._result (fldOffset=0x8)" P-DEP
; V517 tmp475 [V517 ] ( 28, 46 ) short -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V11._token (fldOffset=0x10)" P-DEP
; V518 tmp476 [V518 ] ( 21, 36 ) ubyte -> [rbp-0x66] do-not-enreg[X] addr-exposed "field V11._continueOnCapturedContext (fldOffset=0x12)" P-DEP
-; V519 tmp477 [V519,T281] ( 2, 2 ) ref -> rax single-def "field V182.m_task (fldOffset=0x0)" P-INDEP
-;* V520 tmp478 [V520,T315] ( 0, 0 ) int -> zero-ref "field V182.m_options (fldOffset=0x8)" P-INDEP
-; V521 tmp479 [V521,T282] ( 2, 2 ) ref -> rax single-def "field V196.m_task (fldOffset=0x0)" P-INDEP
-;* V522 tmp480 [V522,T316] ( 0, 0 ) int -> zero-ref "field V196.m_options (fldOffset=0x8)" P-INDEP
-; V523 tmp481 [V523,T283] ( 2, 2 ) ref -> rax single-def "field V210.m_task (fldOffset=0x0)" P-INDEP
-;* V524 tmp482 [V524,T317] ( 0, 0 ) int -> zero-ref "field V210.m_options (fldOffset=0x8)" P-INDEP
-; V525 tmp483 [V525,T284] ( 2, 2 ) ref -> rax single-def "field V224.m_task (fldOffset=0x0)" P-INDEP
-;* V526 tmp484 [V526,T318] ( 0, 0 ) int -> zero-ref "field V224.m_options (fldOffset=0x8)" P-INDEP
-; V527 tmp485 [V527,T285] ( 2, 2 ) ref -> rax single-def "field V239.m_task (fldOffset=0x0)" P-INDEP
-;* V528 tmp486 [V528,T319] ( 0, 0 ) int -> zero-ref "field V239.m_options (fldOffset=0x8)" P-INDEP
-;* V529 tmp487 [V529,T308] ( 0, 0 ) ref -> zero-ref single-def "field V249._source (fldOffset=0x0)" P-INDEP
-; V530 tmp488 [V530,T286] ( 2, 2 ) ref -> rax single-def "field V255.m_task (fldOffset=0x0)" P-INDEP
-;* V531 tmp489 [V531,T320] ( 0, 0 ) int -> zero-ref "field V255.m_options (fldOffset=0x8)" P-INDEP
-; V532 tmp490 [V532,T287] ( 2, 2 ) ref -> rdx single-def "field V264._obj (fldOffset=0x0)" P-INDEP
-; V533 tmp491 [V533,T288] ( 2, 2 ) ref -> rcx single-def "field V264._result (fldOffset=0x8)" P-INDEP
-; V534 tmp492 [V534,T301] ( 2, 2 ) short -> rax "field V264._token (fldOffset=0x10)" P-INDEP
-;* V535 tmp493 [V535,T321] ( 0, 0 ) ubyte -> zero-ref "field V264._continueOnCapturedContext (fldOffset=0x12)" P-INDEP
-; V536 tmp494 [V536,T289] ( 2, 2 ) ref -> rdx single-def "field V286._obj (fldOffset=0x0)" P-INDEP
-; V537 tmp495 [V537,T290] ( 2, 2 ) ref -> rcx single-def "field V286._result (fldOffset=0x8)" P-INDEP
-; V538 tmp496 [V538,T302] ( 2, 2 ) short -> rax "field V286._token (fldOffset=0x10)" P-INDEP
-;* V539 tmp497 [V539,T322] ( 0, 0 ) ubyte -> zero-ref "field V286._continueOnCapturedContext (fldOffset=0x12)" P-INDEP
-; V540 tmp498 [V540,T291] ( 2, 2 ) ref -> rdx single-def "field V314._obj (fldOffset=0x0)" P-INDEP
-; V541 tmp499 [V541,T292] ( 2, 2 ) ref -> rcx single-def "field V314._result (fldOffset=0x8)" P-INDEP
-; V542 tmp500 [V542,T303] ( 2, 2 ) short -> rax "field V314._token (fldOffset=0x10)" P-INDEP
-;* V543 tmp501 [V543,T323] ( 0, 0 ) ubyte -> zero-ref "field V314._continueOnCapturedContext (fldOffset=0x12)" P-INDEP
-; V544 tmp502 [V544,T293] ( 2, 2 ) ref -> rdx single-def "field V333._obj (fldOffset=0x0)" P-INDEP
-; V545 tmp503 [V545,T294] ( 2, 2 ) ref -> rcx single-def "field V333._result (fldOffset=0x8)" P-INDEP
-; V546 tmp504 [V546,T304] ( 2, 2 ) short -> rax "field V333._token (fldOffset=0x10)" P-INDEP
-;* V547 tmp505 [V547,T324] ( 0, 0 ) ubyte -> zero-ref "field V333._continueOnCapturedContext (fldOffset=0x12)" P-INDEP
-; V548 tmp506 [V548,T295] ( 2, 2 ) ref -> rdx single-def "field V352._obj (fldOffset=0x0)" P-INDEP
-; V549 tmp507 [V549,T296] ( 2, 2 ) ref -> rcx single-def "field V352._result (fldOffset=0x8)" P-INDEP
-; V550 tmp508 [V550,T305] ( 2, 2 ) short -> rax "field V352._token (fldOffset=0x10)" P-INDEP
-;* V551 tmp509 [V551,T325] ( 0, 0 ) ubyte -> zero-ref "field V352._continueOnCapturedContext (fldOffset=0x12)" P-INDEP
+; V519 tmp477 [V519,T280] ( 2, 2 ) ref -> rax single-def "field V182.m_task (fldOffset=0x0)" P-INDEP
+;* V520 tmp478 [V520,T314] ( 0, 0 ) int -> zero-ref "field V182.m_options (fldOffset=0x8)" P-INDEP
...
+0 (0.00%) : 100180.dasm - System.Buffer:BlockCopy(System.Array,int,System.Array,int,int) (Tier1)
@@ -13,30 +13,30 @@
; V01 arg1 [V01,T02] ( 5, 4 ) int -> rdi single-def
; V02 arg2 [V02,T01] ( 10, 9.98) ref -> rsi class-hnd single-def <System.Array>
; V03 arg3 [V03,T03] ( 5, 4 ) int -> rbp single-def
-; V04 arg4 [V04,T11] ( 3, 2 ) int -> r14 single-def
+; V04 arg4 [V04,T10] ( 3, 2 ) int -> r14 single-def
; V05 loc0 [V05,T04] ( 5, 5.01) long -> r15
; V06 loc1 [V06,T05] ( 5, 4.99) long -> r12
; V07 loc2 [V07,T06] ( 4, 4 ) long -> r8
-; V08 loc3 [V08,T08] ( 3, 3 ) long -> rdx
-; V09 loc4 [V09,T09] ( 3, 3 ) long -> rcx
+; V08 loc3 [V08,T07] ( 3, 3 ) long -> rdx
+; V09 loc4 [V09,T08] ( 3, 3 ) long -> rcx
; V10 OutArgs [V10 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T12] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V12 tmp2 [V12,T07] ( 2, 4 ) byref -> rcx single-def "impAppendStmt"
-; V13 tmp3 [V13,T13] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V14 tmp4 [V14,T14] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp1 [V11,T11] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V12 tmp2 [V12 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+; V13 tmp3 [V13,T12] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V14 tmp4 [V14,T13] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V15 tmp5 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp6 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp7 [V17 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V18 tmp8 [V18 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V19 tmp9 [V19,T15] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V20 tmp10 [V20,T16] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V21 tmp11 [V21,T17] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V22 tmp12 [V22,T18] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V23 tmp13 [V23,T19] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V24 tmp14 [V24,T20] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V25 tmp15 [V25,T21] ( 2, 0 ) ref -> rbp single-def "argument with side effect"
-; V26 tmp16 [V26,T22] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V27 cse0 [V27,T10] ( 3, 3.00) long -> r13 "CSE - aggressive"
+; V19 tmp9 [V19,T14] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V20 tmp10 [V20,T15] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V21 tmp11 [V21,T16] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V22 tmp12 [V22,T17] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V23 tmp13 [V23,T18] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V24 tmp14 [V24,T19] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V25 tmp15 [V25,T20] ( 2, 0 ) ref -> rbp single-def "argument with side effect"
+; V26 tmp16 [V26,T21] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V27 cse0 [V27,T09] ( 3, 3.00) long -> r13 "CSE - aggressive"
;
; Lcl frame size = 40
@@ -98,13 +98,13 @@ G_M37941_IG06: ; bbWeight=1.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
call <unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov edx, 1
- shlx edx, edx, eax
- test edx, 0xD1FFAB1E
+ mov ecx, 1
+ shlx ecx, ecx, eax
+ test ecx, 0xD1FFAB1E
je G_M37941_IG12
- mov rdx, qword ptr [rsi]
- movzx rdx, word ptr [rdx]
- imul r12, rdx
+ mov rcx, qword ptr [rsi]
+ movzx rcx, word ptr [rcx]
+ imul r12, rcx
;; size=40 bbWeight=1.00 PerfScore 9.21
G_M37941_IG07: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
test edi, edi
@@ -127,11 +127,13 @@ G_M37941_IG07: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
mov r10, qword ptr [rsi]
mov r10d, dword ptr [r10+0x04]
add r10, -16
- add rax, r10
- add rcx, rax
+ add r10, rax
+ ; byrRegs +[r10]
+ add rcx, r10
; byrRegs +[rcx]
lea rax, bword ptr [rbx+0x08]
mov r10, qword ptr [rbx]
+ ; byrRegs -[r10]
mov r10d, dword ptr [r10+0x04]
add r10, -16
add r10, rax
+8 (+0.49%) : 19248.dasm - System.Net.Http.HttpRuleParser:GetHostLength(System.String,int,ubyte):int (Tier1)
@@ -9,18 +9,18 @@
; 25 inlinees with PGO data; 37 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T07] ( 4, 4 ) ref -> rcx class-hnd single-def <System.String>
+; V00 arg0 [V00,T08] ( 4, 4 ) ref -> rcx class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 6, 6 ) int -> rdx single-def
-; V02 arg2 [V02,T08] ( 4, 3 ) ubyte -> rbx single-def
+; V02 arg2 [V02,T09] ( 4, 3 ) ubyte -> rbx single-def
;* V03 loc0 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ushort]>
-; V04 loc1 [V04,T37] ( 7, 2 ) int -> rax
+; V04 loc1 [V04,T35] ( 7, 2 ) int -> rax
; V05 OutArgs [V05 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V09 tmp4 [V09,T15] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-; V10 tmp5 [V10,T25] ( 2, 4 ) int -> rsi "Inlining Arg"
-; V11 tmp6 [V11,T16] ( 2, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+; V09 tmp4 [V09,T14] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V10 tmp5 [V10,T23] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V11 tmp6 [V11,T15] ( 2, 4 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
@@ -30,7 +30,7 @@
;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V19 tmp14 [V19 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V20 tmp15 [V20 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V21 tmp16 [V21,T77] ( 2, 0 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+; V21 tmp16 [V21,T73] ( 2, 0 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
;* V22 tmp17 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -39,188 +39,187 @@
;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V28 tmp23 [V28 ] ( 31, 26 ) struct (40) [rsp+0x80] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;* V29 tmp24 [V29 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V30 tmp25 [V30,T47] ( 2, 2 ) ref -> rax ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Uri>
-; V31 tmp26 [V31,T17] ( 2, 4 ) ref -> rcx class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V30 tmp25 [V30,T44] ( 2, 2 ) ref -> rax ld-addr-op class-hnd single-def "Inline ldloca(s) first use temp" <System.Uri>
+;* V31 tmp26 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V33 tmp28 [V33,T00] ( 5, 10 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
;* V34 tmp29 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V35 tmp30 [V35,T61] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V38 tmp33 [V38 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V39 tmp34 [V39,T02] ( 4, 8 ) int -> r8 "Inlining Arg"
-;* V40 tmp35 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V41 tmp36 [V41,T18] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
-; V42 tmp37 [V42,T26] ( 2, 4 ) int -> rcx "Inlining Arg"
-;* V43 tmp38 [V43,T51] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V46 tmp41 [V46,T19] ( 2, 4.00) byref -> r8 single-def "Inlining Arg"
-;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V48 tmp43 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V49 tmp44 [V49,T03] ( 4, 8 ) int -> r8 "Inlining Arg"
-;* V50 tmp45 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V51 tmp46 [V51,T20] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
-; V52 tmp47 [V52,T27] ( 2, 4 ) int -> rcx "Inlining Arg"
-;* V53 tmp48 [V53,T52] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V38 tmp33 [V38,T02] ( 4, 8 ) int -> r8 "Inlining Arg"
+;* V39 tmp34 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V40 tmp35 [V40,T16] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
+; V41 tmp36 [V41,T24] ( 2, 4 ) int -> rcx "Inlining Arg"
+;* V42 tmp37 [V42,T48] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V45 tmp40 [V45,T17] ( 2, 4.00) byref -> r8 single-def "Inlining Arg"
+;* V46 tmp41 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V47 tmp42 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V48 tmp43 [V48,T03] ( 4, 8 ) int -> r8 "Inlining Arg"
+;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V50 tmp45 [V50,T18] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
+; V51 tmp46 [V51,T25] ( 2, 4 ) int -> rcx "Inlining Arg"
+;* V52 tmp47 [V52,T49] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V53 tmp48 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V54 tmp49 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V56 tmp51 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V57 tmp52 [V57,T28] ( 2, 4.00) long -> r8 "Inlining Arg"
-;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V59 tmp54 [V59,T04] ( 4, 8 ) int -> rcx "Inlining Arg"
-;* V60 tmp55 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V61 tmp56 [V61,T21] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
-; V62 tmp57 [V62,T29] ( 2, 4 ) int -> rax "Inlining Arg"
-;* V63 tmp58 [V63,T53] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V65 tmp60 [V65 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V66 tmp61 [V66,T22] ( 2, 4.00) byref -> rcx single-def "Inlining Arg"
-;* V67 tmp62 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <System.String>
-;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V69 tmp64 [V69,T32] ( 4, 3 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;* V70 tmp65 [V70 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V71 tmp66 [V71,T06] ( 5, 6.00) int -> rsi "Inlining Arg"
-;* V72 tmp67 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V73 tmp68 [V73 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V75 tmp70 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V76 tmp71 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-;* V77 tmp72 [V77 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V78 tmp73 [V78,T05] ( 10, 5 ) ref -> rbp class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V79 tmp74 [V79,T23] ( 2, 4 ) ref -> r15 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ushort]>
-; V80 tmp75 [V80,T58] ( 6, 1 ) ref -> r15 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ushort]>
-; V81 tmp76 [V81,T09] ( 8, 4 ) int -> r12 "Inline stloc first use temp"
-; V82 tmp77 [V82,T24] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-; V83 tmp78 [V83,T11] ( 5, 4 ) ref -> rax
-;* V84 tmp79 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-; V85 tmp80 [V85,T40] ( 4, 2 ) ubyte -> r13 "Inline stloc first use temp"
-; V86 tmp81 [V86,T59] ( 3, 1 ) ubyte -> rbx "Inline stloc first use temp"
-; V87 tmp82 [V87,T38] ( 4, 2 ) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
-; V88 tmp83 [V88,T82] ( 2, 0 ) int -> [rsp+0x7C] spill-single-def "impAppendStmt"
-; V89 tmp84 [V89,T83] ( 2, 0 ) int -> [rsp+0x78] spill-single-def "impAppendStmt"
-; V90 tmp85 [V90,T84] ( 2, 0 ) int -> rbx "impAppendStmt"
-; V91 tmp86 [V91,T85] ( 2, 0 ) int -> rbp "impAppendStmt"
-;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref single-def
+; V56 tmp51 [V56,T26] ( 2, 4.00) long -> r8 "Inlining Arg"
+;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V58 tmp53 [V58,T04] ( 4, 8 ) int -> rcx "Inlining Arg"
+;* V59 tmp54 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V60 tmp55 [V60,T19] ( 2, 4.00) byref -> rdx single-def "Inlining Arg"
+; V61 tmp56 [V61,T27] ( 2, 4 ) int -> rax "Inlining Arg"
+;* V62 tmp57 [V62,T50] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V63 tmp58 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V65 tmp60 [V65,T20] ( 2, 4.00) byref -> rcx single-def "Inlining Arg"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <System.String>
+;* V67 tmp62 [V67 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V68 tmp63 [V68,T30] ( 4, 3 ) ref -> rbp class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;* V69 tmp64 [V69 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V70 tmp65 [V70,T07] ( 5, 6.00) int -> rbp "Inlining Arg"
+;* V71 tmp66 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V72 tmp67 [V72 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V73 tmp68 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V75 tmp70 [V75 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V76 tmp71 [V76 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V77 tmp72 [V77,T05] ( 10, 5 ) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V78 tmp73 [V78,T21] ( 2, 4 ) ref -> r15 class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ushort]>
+; V79 tmp74 [V79,T55] ( 6, 1 ) ref -> r15 class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ushort]>
+; V80 tmp75 [V80,T10] ( 8, 4 ) int -> r13 "Inline stloc first use temp"
+; V81 tmp76 [V81,T22] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+; V82 tmp77 [V82,T11] ( 5, 4 ) ref -> rax
+;* V83 tmp78 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+; V84 tmp79 [V84,T38] ( 4, 2 ) ubyte -> rbx "Inline stloc first use temp"
+; V85 tmp80 [V85,T56] ( 3, 1 ) ubyte -> rdi "Inline stloc first use temp"
+; V86 tmp81 [V86,T36] ( 4, 2 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
+; V87 tmp82 [V87,T78] ( 2, 0 ) int -> [rsp+0x7C] spill-single-def "impAppendStmt"
+; V88 tmp83 [V88,T79] ( 2, 0 ) int -> [rsp+0x78] spill-single-def "impAppendStmt"
+; V89 tmp84 [V89,T80] ( 2, 0 ) int -> rdi "impAppendStmt"
+; V90 tmp85 [V90,T81] ( 2, 0 ) int -> r12 "impAppendStmt"
+;* V91 tmp86 [V91 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V92 tmp87 [V92 ] ( 0, 0 ) int -> zero-ref
;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref
-;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref
-; V95 tmp90 [V95,T86] ( 2, 0 ) int -> r9
-;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref single-def
+; V94 tmp89 [V94,T82] ( 2, 0 ) int -> r9
+;* V95 tmp90 [V95 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V96 tmp91 [V96 ] ( 0, 0 ) int -> zero-ref
;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref
;* V98 tmp93 [V98 ] ( 0, 0 ) int -> zero-ref
-;* V99 tmp94 [V99 ] ( 0, 0 ) int -> zero-ref
-; V100 tmp95 [V100,T72] ( 3, 0 ) int -> rcx
-;* V101 tmp96 [V101 ] ( 0, 0 ) ref -> zero-ref single-def
+; V99 tmp94 [V99,T68] ( 3, 0 ) int -> rcx
+;* V100 tmp95 [V100 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V101 tmp96 [V101 ] ( 0, 0 ) int -> zero-ref
;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref
;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref
;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref
-;* V106 tmp101 [V106 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref
;* V107 tmp102 [V107 ] ( 0, 0 ) int -> zero-ref
;* V108 tmp103 [V108 ] ( 0, 0 ) int -> zero-ref
;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref
-;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref
-; V111 tmp106 [V111,T73] ( 3, 0 ) int -> rdx
-;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V113 tmp108 [V113,T13] ( 4, 4 ) byref -> rdi single-def "Inline stloc first use temp"
-; V114 tmp109 [V114,T43] ( 3, 2 ) ref -> [rsp+0x40] class-hnd single-def "Inline stloc first use temp" <System.Array>
-;* V115 tmp110 [V115 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-; V116 tmp111 [V116,T78] ( 2, 0 ) ref -> rax class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-; V117 tmp112 [V117,T67] ( 4, 0 ) ref -> rax
-;* V118 tmp113 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
-; V119 tmp114 [V119,T69] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V120 tmp115 [V120 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V121 tmp116 [V121 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V122 tmp117 [V122 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V123 tmp118 [V123 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V124 tmp119 [V124,T74] ( 3, 0 ) ubyte -> rbx "Inline return value spill temp"
-; V125 tmp120 [V125,T65] ( 5, 0 ) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-; V126 tmp121 [V126,T64] ( 7, 0 ) int -> [rsp+0x74] "Inline stloc first use temp"
-; V127 tmp122 [V127,T68] ( 4, 0 ) int -> [rsp+0x70] "Inline stloc first use temp"
-; V128 tmp123 [V128,T87] ( 2, 0 ) int -> rax "dup spill"
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V130 tmp125 [V130 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V131 tmp126 [V131,T75] ( 3, 0 ) ubyte -> [rsp+0x6C] "Inline stloc first use temp"
-; V132 tmp127 [V132,T63] ( 8, 0 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V133 tmp128 [V133,T70] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <<unknown class>>
-; V134 tmp129 [V134,T66] ( 5, 0 ) int -> [rsp+0x68] spill-single-def "Inline stloc first use temp"
-; V135 tmp130 [V135,T88] ( 2, 0 ) int -> rax "Inlining Arg"
-; V136 tmp131 [V136,T41] ( 4, 2 ) ubyte -> rdx "Inline return value spill temp"
-; V137 tmp132 [V137 ] ( 5, 4 ) ref -> [rsp+0x60] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <<unknown class>>
-; V138 tmp133 [V138 ] ( 2, 2 ) struct ( 8) [rsp+0x58] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
-; V139 tmp134 [V139,T54] ( 2, 2 ) ubyte -> rdx "Inline return value spill temp"
-;* V140 tmp135 [V140 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
-; V141 tmp136 [V141,T30] ( 2, 4 ) int -> rax "Single return block return value"
-; V142 tmp137 [V142,T31] ( 5, 3 ) byref -> rbp "field V03._reference (fldOffset=0x0)" P-INDEP
-; V143 tmp138 [V143,T10] ( 6, 4 ) int -> r14 "field V03._length (fldOffset=0x8)" P-INDEP
-; V144 tmp139 [V144,T39] ( 4, 2 ) byref -> rdi single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-; V145 tmp140 [V145,T42] ( 4, 2 ) int -> rsi "field V06._length (fldOffset=0x8)" P-INDEP
-; V146 tmp141 [V146,T48] ( 2, 2 ) byref -> rdi single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-; V147 tmp142 [V147,T55] ( 2, 2 ) int -> rsi "field V07._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp143 [V148 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp144 [V149 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-;* V150 tmp145 [V150 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V151 tmp146 [V151 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-;* V152 tmp147 [V152 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V153 tmp148 [V153 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-;* V154 tmp149 [V154 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V155 tmp150 [V155 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-; V156 tmp151 [V156,T79] ( 2, 0 ) byref -> rbp single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-; V157 tmp152 [V157,T89] ( 2, 0 ) int -> r14 "field V18._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp153 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp154 [V159 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp155 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp156 [V161 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp157 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp158 [V163 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
-; V164 tmp159 [V164,T44] ( 3, 2.00) byref -> rbp single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-; V165 tmp160 [V165,T12] ( 5, 4 ) int -> rsi "field V29._length (fldOffset=0x8)" P-INDEP
-; V166 tmp161 [V166,T45] ( 3, 2 ) byref -> r13 "field V37._reference (fldOffset=0x0)" P-INDEP
-; V167 tmp162 [V167,T46] ( 3, 2 ) int -> r12 "field V37._length (fldOffset=0x8)" P-INDEP
-;* V168 tmp163 [V168 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V169 tmp164 [V169 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
-;* V170 tmp165 [V170 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V171 tmp166 [V171 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V172 tmp167 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V173 tmp168 [V173 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
-;* V174 tmp169 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
...
benchmarks.run.windows.x64.checked.mch
-18 (-1.10%) : 21382.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,151 +5,145 @@
; rsp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> rsi single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> rsi single-def
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V05 tmp2 [V05,T44] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V06 tmp3 [V06,T50] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V07 tmp4 [V07,T13] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V05 tmp2 [V05,T46] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V06 tmp3 [V06,T52] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V07 tmp4 [V07,T14] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V08 tmp5 [V08,T02] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp8 [V11,T20] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V21 tmp18 [V21,T03] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V22 tmp19 [V22,T38] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V24 tmp21 [V24,T57] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V25 tmp22 [V25,T39] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V26 tmp23 [V26,T26] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V28 tmp25 [V28,T45] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V29 tmp26 [V29,T51] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T14] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V31 tmp28 [V31,T04] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V34 tmp31 [V34,T21] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V19 tmp16 [V19,T03] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V20 tmp17 [V20,T38] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V22 tmp19 [V22,T59] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V23 tmp20 [V23,T39] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V24 tmp21 [V24,T26] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
+;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V26 tmp23 [V26,T47] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V27 tmp24 [V27,T53] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T15] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V29 tmp26 [V29,T04] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V32 tmp29 [V32,T21] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V36 tmp33 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V44 tmp41 [V44,T05] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V45 tmp42 [V45,T40] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp44 [V47,T58] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V48 tmp45 [V48,T41] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V49 tmp46 [V49,T27] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V51 tmp48 [V51,T46] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V52 tmp49 [V52,T52] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T15] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V54 tmp51 [V54,T06] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V40 tmp37 [V40,T05] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V41 tmp38 [V41,T40] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V43 tmp40 [V43,T60] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V44 tmp41 [V44,T41] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V45 tmp42 [V45,T27] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V47 tmp44 [V47,T48] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V48 tmp45 [V48,T54] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T16] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V50 tmp47 [V50,T06] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V53 tmp50 [V53,T22] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V57 tmp54 [V57,T22] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
-;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp63 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V67 tmp64 [V67,T07] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V68 tmp65 [V68,T42] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V69 tmp66 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V70 tmp67 [V70,T59] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V71 tmp68 [V71,T43] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V72 tmp69 [V72,T28] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
-;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V74 tmp71 [V74,T47] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V75 tmp72 [V75,T53] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T16] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp74 [V77,T08] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V61 tmp58 [V61,T07] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V62 tmp59 [V62,T42] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V64 tmp61 [V64,T61] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V65 tmp62 [V65,T43] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V66 tmp63 [V66,T28] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V68 tmp65 [V68,T49] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V69 tmp66 [V69,T55] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T17] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V71 tmp68 [V71,T08] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V74 tmp71 [V74,T23] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp77 [V80,T23] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V81 tmp78 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V83 tmp80 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V85 tmp82 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp86 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V90 tmp87 [V90,T29] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
-;* V91 tmp88 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V92 tmp89 [V92,T48] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V93 tmp90 [V93,T54] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T17] ( 4, 4 ) ref -> rbp class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V95 tmp92 [V95,T09] ( 6, 6 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V82 tmp79 [V82,T09] ( 6, 6 ) byref -> rax single-def "Inlining Arg"
+; V83 tmp80 [V83,T44] ( 3, 3 ) int -> rcx "impAppendStmt"
+;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V85 tmp82 [V85,T62] ( 2, 1 ) int -> rcx "Inline return value spill temp"
+; V86 tmp83 [V86,T45] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V87 tmp84 [V87,T29] ( 3, 3 ) byref -> rax single-def "Inlining Arg"
+;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V89 tmp86 [V89,T50] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V90 tmp87 [V90,T56] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T18] ( 4, 4 ) ref -> rbp class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V92 tmp89 [V92,T10] ( 6, 6 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp91 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V95 tmp92 [V95,T24] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
+;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp95 [V98,T24] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
+;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp96 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp99 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V107 tmp104 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V108 tmp105 [V108,T30] ( 3, 3 ) byref -> rbp single-def "Inlining Arg"
-;* V109 tmp106 [V109 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V110 tmp107 [V110,T55] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T18] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V112 tmp109 [V112,T10] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V113 tmp110 [V113 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp112 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp113 [V116,T25] ( 6, 3 ) int -> rdi "Inline stloc first use temp"
-;* V117 tmp114 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp115 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp116 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V120 tmp117 [V120,T49] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V121 tmp118 [V121,T56] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T19] ( 4, 4 ) ref -> rbp class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V123 tmp120 [V123,T31] ( 3, 3 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V124 tmp121 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V103 tmp100 [V103,T30] ( 3, 3 ) byref -> rbp single-def "Inlining Arg"
+;* V104 tmp101 [V104 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V105 tmp102 [V105,T57] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T19] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V107 tmp104 [V107,T11] ( 6, 6 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V109 tmp106 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V111 tmp108 [V111,T25] ( 6, 3 ) int -> rdi "Inline stloc first use temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp110 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V115 tmp112 [V115,T51] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V116 tmp113 [V116,T58] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V117 tmp114 [V117,T31] ( 3, 3 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V121 tmp118 [V121,T32] ( 3, 3 ) ref -> rcx single-def "arr expr"
+; V122 tmp119 [V122,T33] ( 3, 3 ) ref -> rcx single-def "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V125 tmp122 [V125,T34] ( 3, 3 ) ref -> rax single-def "arr expr"
;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V127 tmp124 [V127,T32] ( 3, 3 ) ref -> rcx single-def "arr expr"
-; V128 tmp125 [V128,T33] ( 3, 3 ) ref -> rcx single-def "arr expr"
+;* V127 tmp124 [V127 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V128 tmp125 [V128,T35] ( 3, 3 ) ref -> rcx single-def "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V130 tmp127 [V130 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V131 tmp128 [V131,T34] ( 3, 3 ) ref -> rcx single-def "arr expr"
...
-6 (-0.89%) : 3277.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -197,23 +197,23 @@ G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rcx, rdx
jmp rcx
;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 0xD1FFAB1E
cmp qword ptr [r10], rax
jg G_M13748_IG26
mov rax, qword ptr [r10]
- jmp G_M13748_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.12
+ jmp SHORT G_M13748_IG23
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r10+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r10+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG26
- mov rax, qword ptr [r10]
- shl rax, 24
- mov r10, qword ptr [r10+0x08]
- and r10, 0xD1FFAB1E
+ mov r10, qword ptr [r10]
+ shl r10, 24
+ and rax, 0xD1FFAB1E
or rax, r10
jmp SHORT G_M13748_IG23
- ;; size=37 bbWeight=0.50 PerfScore 5.50
+ ;; size=34 bbWeight=0.50 PerfScore 4.12
G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r10+0x10], 0xFFFF
jg SHORT G_M13748_IG26
@@ -227,20 +227,19 @@ G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp SHORT G_M13748_IG23
;; size=39 bbWeight=0.50 PerfScore 6.75
G_M13748_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r10+0x18]
- cmp rax, 255
+ cmp qword ptr [r10+0x18], 255
jg SHORT G_M13748_IG26
- mov rcx, qword ptr [r10]
- shl rcx, 24
- movzx rdx, byte ptr [r10+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r10+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r10]
+ shl rax, 24
+ movzx rcx, byte ptr [r10+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=49 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r10+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r10+0x18]
+ or rax, rcx
+ ;; size=49 bbWeight=0.50 PerfScore 7.12
G_M13748_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E
cmp qword ptr [rsp+0x48], rcx
@@ -286,7 +285,7 @@ RWD00 dd G_M13748_IG19 - G_M13748_IG02
dd G_M13748_IG22 - G_M13748_IG02
-; Total bytes of code 671, prolog size 25, PerfScore 661.50, instruction count 187, allocated bytes for code 671 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 665, prolog size 25, PerfScore 661.38, instruction count 186, allocated bytes for code 665 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
-6 (-0.89%) : 4794.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
@@ -197,23 +197,23 @@ G_M13748_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rcx, rdx
jmp rcx
;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13748_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 0xD1FFAB1E
cmp qword ptr [r10], rax
jg G_M13748_IG26
mov rax, qword ptr [r10]
- jmp G_M13748_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.12
+ jmp SHORT G_M13748_IG23
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M13748_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp qword ptr [r10+0x08], 0xD1FFAB1E
+ mov rax, qword ptr [r10+0x08]
+ cmp rax, 0xD1FFAB1E
jg G_M13748_IG26
- mov rax, qword ptr [r10]
- shl rax, 24
- mov r10, qword ptr [r10+0x08]
- and r10, 0xD1FFAB1E
+ mov r10, qword ptr [r10]
+ shl r10, 24
+ and rax, 0xD1FFAB1E
or rax, r10
jmp SHORT G_M13748_IG23
- ;; size=37 bbWeight=0.50 PerfScore 5.50
+ ;; size=34 bbWeight=0.50 PerfScore 4.12
G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp qword ptr [r10+0x10], 0xFFFF
jg SHORT G_M13748_IG26
@@ -227,20 +227,19 @@ G_M13748_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jmp SHORT G_M13748_IG23
;; size=39 bbWeight=0.50 PerfScore 6.75
G_M13748_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [r10+0x18]
- cmp rax, 255
+ cmp qword ptr [r10+0x18], 255
jg SHORT G_M13748_IG26
- mov rcx, qword ptr [r10]
- shl rcx, 24
- movzx rdx, byte ptr [r10+0x08]
- shl rdx, 16
- or rcx, rdx
- movzx rdx, byte ptr [r10+0x10]
- shl rdx, 8
- or rcx, rdx
- movzx rax, al
+ mov rax, qword ptr [r10]
+ shl rax, 24
+ movzx rcx, byte ptr [r10+0x08]
+ shl rcx, 16
or rax, rcx
- ;; size=49 bbWeight=0.50 PerfScore 5.88
+ movzx rcx, byte ptr [r10+0x10]
+ shl rcx, 8
+ or rax, rcx
+ movzx rcx, byte ptr [r10+0x18]
+ or rax, rcx
+ ;; size=49 bbWeight=0.50 PerfScore 7.12
G_M13748_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E
cmp qword ptr [rsp+0x48], rcx
@@ -286,7 +285,7 @@ RWD00 dd G_M13748_IG19 - G_M13748_IG02
dd G_M13748_IG22 - G_M13748_IG02
-; Total bytes of code 671, prolog size 25, PerfScore 661.50, instruction count 187, allocated bytes for code 671 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
+; Total bytes of code 665, prolog size 25, PerfScore 661.38, instruction count 186, allocated bytes for code 665 (MethodHash=69f4ca4b) for method System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
; ============================================================
Unwind Info:
+3 (+0.71%) : 25113.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:this (FullOpts)
@@ -15,19 +15,19 @@
; V04 tmp2 [V04,T03] ( 4, 3.50) ref -> rax
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V07 tmp5 [V07,T13] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V07 tmp5 [V07,T12] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V08 tmp6 [V08,T14] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V09 tmp7 [V09,T15] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V10 tmp8 [V10,T16] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V10 tmp8 [V10,T15] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp9 [V11 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V13 tmp11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V14 tmp12 [V14,T08] ( 4, 2 ) long -> rdi
+; V14 tmp12 [V14,T08] ( 4, 2 ) long -> rsi
;* V15 tmp13 [V15 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V16 tmp14 [V16 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V17 tmp15 [V17,T04] ( 5, 2.50) ref -> r14 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V19 tmp17 [V19,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V19 tmp17 [V19,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V20 tmp18 [V20,T06] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <<unknown class>>
; V21 tmp19 [V21 ] ( 8, 8 ) struct (40) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V22 tmp20 [V22,T09] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
@@ -39,7 +39,7 @@
; V28 tmp26 [V28 ] ( 8, 8 ) struct (40) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V31 tmp29 [V31,T05] ( 6, 3 ) int -> rsi "field V12._info (fldOffset=0x0)" P-INDEP
+; V31 tmp29 [V31,T05] ( 6, 3 ) int -> rdi "field V12._info (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "field V23._info (fldOffset=0x0)" P-INDEP
;* V33 tmp31 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[000..008)"
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[008..016)"
@@ -75,21 +75,23 @@ G_M62798_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=13 bbWeight=1 PerfScore 3.25
G_M62798_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
mov dword ptr [rsp+0x20], 1
mov dword ptr [rsp+0x28], 1
xor r8d, r8d
mov dword ptr [rsp+0x30], r8d
- ;; size=24 bbWeight=0.50 PerfScore 1.62
-G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=27 bbWeight=0.50 PerfScore 1.75
+G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x38], r8d
;; size=5 bbWeight=0.50 PerfScore 0.50
-G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
xor r9d, r9d
xor ecx, ecx
mov edx, 1
call [<unknown method>]
- mov esi, eax
- mov rcx, rbx
+ mov edi, eax
+ mov rcx, rsi
; gcrRegs +[rcx]
mov edx, 11
xor r8, r8
@@ -97,8 +99,8 @@ G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
xor r9, r9
; gcrRegs +[r9]
call [<unknown method>]
- ; gcrRegs -[rcx r8-r9]
- mov rdi, rax
+ ; gcrRegs -[rcx rsi r8-r9]
+ mov rsi, rax
mov rcx, gword ptr [rbx+0x88]
; gcrRegs +[rcx]
xor rdx, rdx
@@ -108,11 +110,11 @@ G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M62798_IG06: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov gword ptr [rbp-0x40], rdx
- mov qword ptr [rbp-0x38], rdi
+ mov qword ptr [rbp-0x38], rsi
mov dword ptr [rbp-0x30], 11
mov dword ptr [rbp-0x2C], -1
mov dword ptr [rbp-0x28], -1
- mov dword ptr [rbp-0x24], esi
+ mov dword ptr [rbp-0x24], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0x48]
call [<unknown method>]
@@ -142,11 +144,11 @@ G_M62798_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov gword ptr [r14+0x10], rcx
mov dword ptr [r14+0x2C], -1
mov dword ptr [r14+0x30], -1
- mov qword ptr [r14+0x20], rdi
- mov dword ptr [r14+0x34], esi
- test sil, 32
+ mov qword ptr [r14+0x20], rsi
+ mov dword ptr [r14+0x34], edi
+ test dil, 32
je SHORT G_M62798_IG09
- test sil, 8
+ test dil, 8
jne SHORT G_M62798_IG10
;; size=40 bbWeight=0.50 PerfScore 3.75
G_M62798_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
@@ -179,11 +181,11 @@ G_M62798_IG11: ; bbWeight=0.50, gcrefRegs=400C {rdx rbx r14}, byrefRegs=0
G_M62798_IG12: ; bbWeight=0.50, gcrefRegs=400A {rcx rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov gword ptr [rbp-0x68], rdx
- mov qword ptr [rbp-0x60], rdi
+ mov qword ptr [rbp-0x60], rsi
mov dword ptr [rbp-0x58], 11
mov dword ptr [rbp-0x54], -1
mov dword ptr [rbp-0x50], -1
- mov dword ptr [rbp-0x4C], esi
+ mov dword ptr [rbp-0x4C], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0x70]
mov r8, r14
@@ -222,7 +224,7 @@ G_M62798_IG14: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
ret
;; size=14 bbWeight=1 PerfScore 3.75
-; Total bytes of code 422, prolog size 40, PerfScore 55.96, instruction count 100, allocated bytes for code 422 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
+; Total bytes of code 425, prolog size 40, PerfScore 56.08, instruction count 101, allocated bytes for code 425 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
; ============================================================
Unwind Info:
+16 (+0.97%) : 23069.dasm - System.Formats.Tar.Tests.PerfTarWriter+<V7TarEntryWriteEntryAsync>d_7:MoveNext():this (FullOpts)
@@ -17,29 +17,29 @@
; V06 loc5 [V06,T39] ( 4, 2 ) ref -> rbx class-hnd single-def <System.Object>
; V07 loc6 [V07 ] ( 8, 8 ) struct (16) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter>
; V08 loc7 [V08 ] ( 2, 2 ) struct (16) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Threading.Tasks.ValueTask>
-; V09 loc8 [V09,T51] ( 3, 0 ) ref -> rax class-hnd <System.Exception>
+; V09 loc8 [V09,T49] ( 3, 0 ) ref -> rax class-hnd <System.Exception>
;* V10 loc9 [V10 ] ( 0, 0 ) int -> zero-ref
; V11 OutArgs [V11 ] ( 1, 1 ) struct (56) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V13 tmp2 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V14 tmp3 [V14,T07] ( 6, 10 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Formats.Tar.TarWriter>
-; V15 tmp4 [V15,T52] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V14 tmp3 [V14,T07] ( 6, 10 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.Formats.Tar.TarWriter>
+; V15 tmp4 [V15,T50] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V16 tmp5 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V17 tmp6 [V17,T12] ( 3, 6 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
-; V18 tmp7 [V18,T53] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V18 tmp7 [V18,T51] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V19 tmp8 [V19,T08] ( 5, 8 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp9 [V20,T44] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V21 tmp10 [V21,T04] ( 9, 18 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
; V22 tmp11 [V22 ] ( 2, 4 ) struct (16) [rbp-0x68] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
-;* V23 tmp12 [V23,T55] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V23 tmp12 [V23,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp14 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V26 tmp15 [V26,T45] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V28 tmp17 [V28,T46] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V28 tmp17 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V29 tmp18 [V29,T27] ( 3, 3 ) ref -> rax class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V30 tmp19 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;* V31 tmp20 [V31,T48] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V31 tmp20 [V31,T46] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp23 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -52,7 +52,7 @@
;* V41 tmp30 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V42 tmp31 [V42,T13] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V43 tmp32 [V43 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter>
-;* V44 tmp33 [V44,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V44 tmp33 [V44,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V45 tmp34 [V45,T09] ( 7, 7 ) ref -> rbx class-hnd single-def "Inline stloc first use temp" <System.Object>
; V46 tmp35 [V46,T35] ( 2, 2 ) int -> rcx
; V47 tmp36 [V47,T28] ( 3, 3 ) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
@@ -71,11 +71,11 @@
;* V60 tmp49 [V60 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
; V61 tmp50 [V61,T03] ( 10, 20 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V62 tmp51 [V62,T22] ( 2, 4 ) struct ( 8) rdi "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
-; V63 tmp52 [V63,T05] ( 6, 12 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
+; V63 tmp52 [V63,T05] ( 6, 12 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;* V64 tmp53 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V65 tmp54 [V65 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V66 tmp55 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-; V67 tmp56 [V67,T23] ( 2, 4 ) int -> r13 "Inlining Arg"
+; V67 tmp56 [V67,T23] ( 2, 4 ) int -> r14 "Inlining Arg"
;* V68 tmp57 [V68,T42] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V69 tmp58 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V70 tmp59 [V70,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -93,18 +93,18 @@
; V82 tmp71 [V82 ] ( 2, 2 ) ubyte -> [rbp-0x4E] do-not-enreg[X] addr-exposed "field V08._continueOnCapturedContext (fldOffset=0xa)" P-DEP
; V83 tmp72 [V83,T24] ( 2, 4 ) short -> [rbp-0x68] do-not-enreg[H] hidden-struct-arg "field V22._offsetMinutes (fldOffset=0x0)" P-DEP
; V84 tmp73 [V84,T25] ( 2, 4 ) long -> [rbp-0x60] do-not-enreg[H] hidden-struct-arg "field V22._dateTime (fldOffset=0x8)" P-DEP
-;* V85 tmp74 [V85,T47] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
+;* V85 tmp74 [V85,T45] ( 0, 0 ) ref -> zero-ref single-def "field V30._source (fldOffset=0x0)" P-INDEP
; V86 tmp75 [V86,T41] ( 2, 2 ) ref -> rax single-def "field V34.m_task (fldOffset=0x0)" P-INDEP
-; V87 tmp76 [V87,T54] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V87 tmp76 [V87,T52] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V88 tmp77 [V88,T20] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V89 tmp78 [V89,T21] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
-; V90 PSPSym [V90,T50] ( 1, 1 ) long -> [rbp-0x78] do-not-enreg[V] "PSPSym"
-; V91 cse0 [V91,T31] ( 3, 3 ) ref -> r15 "CSE - moderate"
+; V90 PSPSym [V90,T48] ( 1, 1 ) long -> [rbp-0x78] do-not-enreg[V] "PSPSym"
+; V91 cse0 [V91,T31] ( 3, 3 ) ref -> rbx "CSE - moderate"
; V92 cse1 [V92,T38] ( 3, 3 ) int -> rdx "CSE - moderate"
; V93 cse2 [V93,T32] ( 3, 3 ) ref -> rdx "CSE - moderate"
; V94 cse3 [V94,T33] ( 3, 3 ) ref -> rcx "CSE - moderate"
; V95 cse4 [V95,T06] ( 4, 11 ) byref -> rcx "CSE - aggressive"
-; V96 cse5 [V96,T11] ( 3, 3 ) ref -> rdx multi-def "CSE - aggressive"
+; V96 cse5 [V96,T11] ( 6, 6 ) ref -> r15 multi-def "CSE - aggressive"
; V97 cse6 [V97,T34] ( 3, 3 ) ref -> rsi "CSE - moderate"
;
; Lcl frame size = 128
@@ -189,9 +189,22 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0040 {rs
vmovups xmm0, xmmword ptr [rbp-0x68]
vmovups xmmword ptr [r13+0x88], xmm0
mov byte ptr [r13+0x84], 0
- mov rcx, 0xD1FFAB1E
- mov gword ptr [r13+0x20], rcx
- mov gword ptr [r13+0x28], rcx
+ mov r15, 0xD1FFAB1E
+ ; gcrRegs +[r15]
+ lea rcx, bword ptr [r13+0x20]
+ ; byrRegs +[rcx]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [r13+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx r15]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rdi+0x08]
; byrRegs +[rcx]
mov rdx, r13
@@ -214,7 +227,7 @@ G_M28013_IG04: ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=0040 {rs
xor rcx, rcx
; gcrRegs +[rcx]
mov gword ptr [rsi+0x10], rcx
- ;; size=191 bbWeight=1 PerfScore 36.25
+ ;; size=207 bbWeight=1 PerfScore 37.75
G_M28013_IG05: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rcx]
mov dword ptr [rsi+0x1C], ecx
@@ -222,10 +235,10 @@ G_M28013_IG05: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
G_M28013_IG06: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
test ebx, ebx
je G_M28013_IG09
- mov r13, gword ptr [rsi+0x08]
- ; gcrRegs +[r13]
- cmp byte ptr [r13], r13b
- cmp byte ptr [r13+0x19], 0
+ mov r15, gword ptr [rsi+0x08]
+ ; gcrRegs +[r15]
+ cmp byte ptr [r15], r15b
+ cmp byte ptr [r15+0x19], 0
jne G_M28013_IG08
test rdi, rdi
je SHORT G_M28013_IG07
@@ -236,21 +249,21 @@ G_M28013_IG06: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
call [System.Formats.Tar.TarWriter:ValidateEntryLinkName(ubyte,System.String)]
; gcrRegs -[rdx]
; gcr arg pop 0
- mov rcx, r13
+ mov rcx, r15
; gcrRegs +[rcx]
mov rdx, rdi
; gcrRegs +[rdx]
call [System.Formats.Tar.TarWriter:ValidateStreamsSeekability(System.Formats.Tar.TarEntry):this]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- mov rcx, r13
+ mov rcx, r15
; gcrRegs +[rcx]
mov rdx, rdi
; gcrRegs +[rdx]
xor r8, r8
; gcrRegs +[r8]
call [System.Formats.Tar.TarWriter:WriteEntryAsyncInternal(System.Formats.Tar.TarEntry,System.Threading.CancellationToken):System.Threading.Tasks.Task:this]
- ; gcrRegs -[rcx rdx rdi r8 r13] +[rax]
+ ; gcrRegs -[rcx rdx rdi r8 r15] +[rax]
; gcr arg pop 0
cmp byte ptr [rax], al
mov gword ptr [rbp-0x38], rax
@@ -283,7 +296,7 @@ G_M28013_IG06: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
; gcrRegs -[rax rdx]
; gcr arg pop 0
jmp G_M28013_IG42
- ;; size=148 bbWeight=1 PerfScore 50.00
+ ;; size=147 bbWeight=1 PerfScore 50.00
G_M28013_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
mov ecx, 0xB1D
mov rdx, 0xD1FFAB1E
@@ -297,12 +310,12 @@ G_M28013_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M28013_IG08: ; bbWeight=0, gcrefRegs=2000 {r13}, byrefRegs=0040 {rsi}, byref
- ; gcrRegs +[r13]
- mov rcx, r13
+G_M28013_IG08: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0040 {rsi}, byref
+ ; gcrRegs +[r15]
+ mov rcx, r15
; gcrRegs +[rcx]
call [System.ThrowHelper:ThrowObjectDisposedException(System.Object)]
- ; gcrRegs -[rcx r13]
+ ; gcrRegs -[rcx r15]
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
@@ -372,14 +385,16 @@ G_M28013_IG14: ; bbWeight=1, isz, extend
setne cl
test cl, cl
jne SHORT G_M28013_IG15
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov r15, 0xD1FFAB1E
+ ; gcrRegs +[r15]
+ mov rcx, r15
; gcrRegs +[rcx]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
call [<unknown method>]
- ; gcrRegs -[rax rcx rdx]
+ ; gcrRegs -[rax rcx rdx r15]
; gcr arg pop 0
- ;; size=89 bbWeight=1 PerfScore 12.75
+ ;; size=92 bbWeight=1 PerfScore 13.00
G_M28013_IG15: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
mov rdx, rbx
; gcrRegs +[rdx]
@@ -610,9 +625,9 @@ G_M28013_IG33: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
;; size=15 bbWeight=1 PerfScore 4.25
G_M28013_IG34: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov r15, gword ptr [rcx]
- ; gcrRegs +[r15]
- cmp byte ptr [r15+0x9D], 0
+ mov rbx, gword ptr [rcx]
+ ; gcrRegs +[rbx]
+ cmp byte ptr [rbx+0x9D], 0
je SHORT G_M28013_IG35
mov rcx, rsi
; gcrRegs +[rcx]
@@ -620,32 +635,32 @@ G_M28013_IG34: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
call [System.Threading.Tasks.Task:get_Id():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov r13d, eax
- movzx rdx, byte ptr [r15+0x9D]
+ mov r14d, eax
+ movzx rdx, byte ptr [rbx+0x9D]
test edx, edx
je SHORT G_M28013_IG35
mov dword ptr [rsp+0x20], 4
mov qword ptr [rsp+0x28], 8
xor r9d, r9d
mov dword ptr [rsp+0x30], r9d
- mov r9, qword ptr [r15+0x80]
- mov r8d, dword ptr [r15+0x98]
- mov rcx, r15
+ mov r9, qword ptr [rbx+0x80]
+ mov r8d, dword ptr [rbx+0x98]
+ mov rcx, rbx
; gcrRegs +[rcx]
call [System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this]
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
je SHORT G_M28013_IG35
- mov rcx, r15
+ mov rcx, rbx
; gcrRegs +[rcx]
...
+16 (+4.19%) : 19054.dasm - System.Formats.Tar.Tests.PerfTarWriter:V7TarEntryWriteEntry():this (FullOpts)
@@ -17,17 +17,17 @@
;* V06 tmp3 [V06,T08] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V07 tmp4 [V07,T00] ( 9, 18 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
; V08 tmp5 [V08 ] ( 2, 4 ) struct (16) [rbp-0x30] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
-;* V09 tmp6 [V09,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V09 tmp6 [V09,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T09] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V14 tmp11 [V14,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V15 tmp12 [V15,T04] ( 2, 4 ) short -> [rbp-0x30] do-not-enreg[H] hidden-struct-arg "field V08._offsetMinutes (fldOffset=0x0)" P-DEP
; V16 tmp13 [V16,T05] ( 2, 4 ) long -> [rbp-0x28] do-not-enreg[H] hidden-struct-arg "field V08._dateTime (fldOffset=0x8)" P-DEP
-; V17 tmp14 [V17,T12] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V18 PSPSym [V18,T11] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-;* V19 cse0 [V19,T06] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 tmp14 [V17,T10] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V18 PSPSym [V18,T09] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
+; V19 cse0 [V19,T06] ( 3, 3 ) ref -> rdi "CSE - aggressive"
;
; Lcl frame size = 64
@@ -96,9 +96,22 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
vmovups xmm0, xmmword ptr [rbp-0x30]
vmovups xmmword ptr [r14+0x88], xmm0
mov byte ptr [r14+0x84], 0
- mov rcx, 0xD1FFAB1E
- mov gword ptr [r14+0x20], rcx
- mov gword ptr [r14+0x28], rcx
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ lea rcx, bword ptr [r14+0x20]
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [r14+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rdi]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rsi+0x08]
; byrRegs +[rcx]
mov rdx, r14
@@ -113,7 +126,7 @@ G_M5976_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov gword ptr [rbp-0x38], rax
; GC ptr vars +{V02}
- ;; size=144 bbWeight=1 PerfScore 26.75
+ ;; size=160 bbWeight=1 PerfScore 28.25
G_M5976_IG06: ; bbWeight=1, gcVars=0000000000000080 {V02}, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, gcvars, byref
mov rcx, rax
; gcrRegs +[rcx]
@@ -203,7 +216,7 @@ G_M5976_IG14: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 382, prolog size 25, PerfScore 60.50, instruction count 95, allocated bytes for code 382 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
+; Total bytes of code 398, prolog size 25, PerfScore 62.00, instruction count 99, allocated bytes for code 398 (MethodHash=a05ae8a7) for method System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-24 (-37.50%) : 880.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,7 +7,6 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp+0x10] do-not-enreg[]
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x10]
;
; Lcl frame size = 48
@@ -15,32 +14,22 @@ G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
- xor eax, eax
- mov qword ptr [rbp-0x10], rax
mov qword ptr [rbp-0x08], rcx
mov qword ptr [rbp+0x10], rcx
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov bword ptr [rbp-0x10], rax
- mov eax, 512
- ; byrRegs -[rax]
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- mov rcx, bword ptr [rbp-0x10]
- ; byrRegs +[rcx]
- mov dword ptr [rcx+0x08], eax
- ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
-11 (-29.73%) : 45.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
@@ -20,18 +20,14 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp+0x18]
sub rax, qword ptr [rbp+0x10]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 37, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 37 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 26, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 26 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
-11 (-29.73%) : 517.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
@@ -20,18 +20,14 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp+0x18]
sub rax, qword ptr [rbp+0x10]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 37, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 37 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
+; Total bytes of code 26, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 26 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
; ============================================================
Unwind Info:
+6 (+1.65%) : 37824.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
@@ -119,7 +119,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp+0x18]
; gcrRegs +[rax]
@@ -136,7 +138,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp+0x10]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp+0x18]
; gcrRegs +[rax]
@@ -157,7 +161,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
; gcr arg pop 0
nop
- ;; size=124 bbWeight=1 PerfScore 34.00
+ ;; size=130 bbWeight=1 PerfScore 35.00
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
@@ -169,7 +173,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 364, prolog size 25, PerfScore 92.52, instruction count 99, allocated bytes for code 364 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
+; Total bytes of code 370, prolog size 25, PerfScore 93.52, instruction count 103, allocated bytes for code 370 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
; ============================================================
Unwind Info:
+6 (+1.66%) : 36607.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -121,7 +121,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -140,7 +142,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp+0x10]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -162,7 +166,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax rcx]
; gcr arg pop 0
nop
- ;; size=122 bbWeight=1 PerfScore 34.00
+ ;; size=128 bbWeight=1 PerfScore 35.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
@@ -174,7 +178,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 361, prolog size 25, PerfScore 92.52, instruction count 99, allocated bytes for code 361 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 367, prolog size 25, PerfScore 93.52, instruction count 103, allocated bytes for code 367 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
+6 (+1.66%) : 36560.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
@@ -121,7 +121,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -140,7 +142,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp+0x10]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -162,7 +166,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax rcx]
; gcr arg pop 0
nop
- ;; size=122 bbWeight=1 PerfScore 34.00
+ ;; size=128 bbWeight=1 PerfScore 35.00
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
@@ -174,7 +178,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 361, prolog size 25, PerfScore 92.52, instruction count 99, allocated bytes for code 361 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
+; Total bytes of code 367, prolog size 25, PerfScore 93.52, instruction count 103, allocated bytes for code 367 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
; ============================================================
Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch
-24 (-37.50%) : 813.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,7 +7,6 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp+0x10] do-not-enreg[]
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [rbp-0x10]
;
; Lcl frame size = 48
@@ -15,32 +14,22 @@ G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
- xor eax, eax
- mov qword ptr [rbp-0x10], rax
mov qword ptr [rbp-0x08], rcx
mov qword ptr [rbp+0x10], rcx
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov bword ptr [rbp-0x10], rax
- mov eax, 512
- ; byrRegs -[rax]
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- mov rcx, bword ptr [rbp-0x10]
- ; byrRegs +[rcx]
- mov dword ptr [rcx+0x08], eax
- ;; size=34 bbWeight=1 PerfScore 30.75
+ mov dword ptr [rax+0x08], 64
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 40, prolog size 14, PerfScore 8.50, instruction count 11, allocated bytes for code 40 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
-11 (-29.73%) : 44.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
@@ -20,18 +20,14 @@ G_M37561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M37561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp+0x18]
sub rax, qword ptr [rbp+0x10]
- mov ecx, 16
- dec ecx
- not ecx
- movsxd rcx, ecx
- and rax, rcx
- ;; size=23 bbWeight=1 PerfScore 4.25
+ and rax, -16
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M37561_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 37, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 37 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
+; Total bytes of code 26, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 26 (MethodHash=5e526d46) for method System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
; ============================================================
Unwind Info:
-8 (-25.00%) : 833.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
@@ -20,18 +20,15 @@ G_M40978_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M40978_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbp+0x18]
sub eax, dword ptr [rbp+0x10]
- mov ecx, 32
- dec ecx
- not ecx
- and eax, ecx
+ and eax, -32
mov eax, eax
- ;; size=19 bbWeight=1 PerfScore 4.25
+ ;; size=11 bbWeight=1 PerfScore 3.50
G_M40978_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 4, PerfScore 9.00, instruction count 13, allocated bytes for code 32 (MethodHash=f7265fed) for method System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
+; Total bytes of code 24, prolog size 4, PerfScore 8.25, instruction count 10, allocated bytes for code 24 (MethodHash=f7265fed) for method System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
; ============================================================
Unwind Info:
+6 (+0.35%) : 26432.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
@@ -31,19 +31,19 @@
;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V21 tmp14 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V22 tmp15 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V23 tmp16 [V23,T49] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V23 tmp16 [V23,T46] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V24 tmp17 [V24,T51] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V25 tmp18 [V25,T52] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V26 tmp19 [V26,T53] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V25 tmp18 [V25 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V26 tmp19 [V26,T52] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V27 tmp20 [V27 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V30 tmp23 [V30,T28] ( 4, 2 ) long -> rdi
+; V30 tmp23 [V30,T28] ( 4, 2 ) long -> rsi
;* V31 tmp24 [V31 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V32 tmp25 [V32 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V33 tmp26 [V33,T11] ( 5, 2.50) ref -> r14 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V34 tmp27 [V34,T04] ( 10, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V35 tmp28 [V35,T46] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V35 tmp28 [V35,T48] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V36 tmp29 [V36,T17] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <<unknown class>>
; V37 tmp30 [V37 ] ( 8, 8 ) struct (40) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V38 tmp31 [V38,T37] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
@@ -61,19 +61,19 @@
;* V50 tmp43 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V51 tmp44 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V52 tmp45 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V53 tmp46 [V53,T50] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
-;* V54 tmp47 [V54,T54] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V55 tmp48 [V55,T55] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V56 tmp49 [V56,T56] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V53 tmp46 [V53,T47] ( 2, 1 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+;* V54 tmp47 [V54,T53] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V55 tmp48 [V55 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V56 tmp49 [V56,T54] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V57 tmp50 [V57 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V58 tmp51 [V58 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V59 tmp52 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V60 tmp53 [V60,T29] ( 4, 2 ) long -> rdi
+; V60 tmp53 [V60,T29] ( 4, 2 ) long -> rsi
;* V61 tmp54 [V61 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V62 tmp55 [V62 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V63 tmp56 [V63,T12] ( 5, 2.50) ref -> r14 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V64 tmp57 [V64,T05] ( 10, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V65 tmp58 [V65,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V65 tmp58 [V65,T49] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V66 tmp59 [V66,T19] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <<unknown class>>
; V67 tmp60 [V67 ] ( 8, 8 ) struct (40) [rbp-0xA0] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V68 tmp61 [V68,T39] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
@@ -95,7 +95,7 @@
;* V84 tmp77 [V84 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V85 tmp78 [V85,T24] ( 4, 2 ) ref -> r15 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V86 tmp79 [V86,T06] ( 10, 10 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V87 tmp80 [V87,T48] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V87 tmp80 [V87,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V88 tmp81 [V88,T21] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <<unknown class>>
; V89 tmp82 [V89 ] ( 8, 8 ) struct (40) [rbp-0xF0] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V90 tmp83 [V90,T42] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp"
@@ -108,9 +108,9 @@
;* V97 tmp90 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V98 tmp91 [V98 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V99 tmp92 [V99,T02] ( 14, 15 ) ref -> rax "Single return block return value"
-; V100 tmp93 [V100,T13] ( 6, 3 ) int -> rsi "field V28._info (fldOffset=0x0)" P-INDEP
+; V100 tmp93 [V100,T13] ( 6, 3 ) int -> rdi "field V28._info (fldOffset=0x0)" P-INDEP
;* V101 tmp94 [V101 ] ( 0, 0 ) int -> zero-ref "field V39._info (fldOffset=0x0)" P-INDEP
-; V102 tmp95 [V102,T14] ( 6, 3 ) int -> rsi "field V58._info (fldOffset=0x0)" P-INDEP
+; V102 tmp95 [V102,T14] ( 6, 3 ) int -> rdi "field V58._info (fldOffset=0x0)" P-INDEP
;* V103 tmp96 [V103 ] ( 0, 0 ) int -> zero-ref "field V69._info (fldOffset=0x0)" P-INDEP
; V104 tmp97 [V104,T15] ( 6, 3 ) int -> rdi "field V84._info (fldOffset=0x0)" P-INDEP
;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref "field V91._info (fldOffset=0x0)" P-INDEP
@@ -355,22 +355,24 @@ G_M31232_IG12: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcrRegs +[rax]
test rax, rax
jne G_M31232_IG23
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
mov dword ptr [rsp+0x20], 1
mov dword ptr [rsp+0x28], 1
xor r8d, r8d
mov dword ptr [rsp+0x30], r8d
- ;; size=37 bbWeight=0.50 PerfScore 3.25
-G_M31232_IG13: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=40 bbWeight=0.50 PerfScore 3.38
+G_M31232_IG13: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov dword ptr [rsp+0x38], r8d
;; size=5 bbWeight=0.50 PerfScore 0.50
-G_M31232_IG14: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M31232_IG14: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
xor r9d, r9d
xor ecx, ecx
mov edx, 1
call [<unknown method>]
- mov esi, eax
- mov rcx, rbx
+ mov edi, eax
+ mov rcx, rsi
; gcrRegs +[rcx]
mov edx, 6
xor r8, r8
@@ -378,8 +380,8 @@ G_M31232_IG14: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
xor r9, r9
; gcrRegs +[r9]
call [<unknown method>]
- ; gcrRegs -[rcx r8-r9]
- mov rdi, rax
+ ; gcrRegs -[rcx rsi r8-r9]
+ mov rsi, rax
mov rcx, gword ptr [rbx+0x88]
; gcrRegs +[rcx]
xor rdx, rdx
@@ -389,11 +391,11 @@ G_M31232_IG14: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M31232_IG15: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov gword ptr [rbp-0x48], rdx
- mov qword ptr [rbp-0x40], rdi
+ mov qword ptr [rbp-0x40], rsi
mov dword ptr [rbp-0x38], 6
mov dword ptr [rbp-0x34], -1
mov dword ptr [rbp-0x30], -1
- mov dword ptr [rbp-0x2C], esi
+ mov dword ptr [rbp-0x2C], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0x50]
call [<unknown method>]
@@ -423,11 +425,11 @@ G_M31232_IG17: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov gword ptr [r14+0x10], rcx
mov dword ptr [r14+0x2C], -1
mov dword ptr [r14+0x30], -1
- mov qword ptr [r14+0x20], rdi
- mov dword ptr [r14+0x34], esi
- test sil, 32
+ mov qword ptr [r14+0x20], rsi
+ mov dword ptr [r14+0x34], edi
+ test dil, 32
je SHORT G_M31232_IG18
- test sil, 8
+ test dil, 8
jne SHORT G_M31232_IG19
;; size=40 bbWeight=0.50 PerfScore 3.75
G_M31232_IG18: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
@@ -460,11 +462,11 @@ G_M31232_IG20: ; bbWeight=0.50, gcrefRegs=400C {rdx rbx r14}, byrefRegs=0
G_M31232_IG21: ; bbWeight=0.50, gcrefRegs=400A {rcx rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov gword ptr [rbp-0x70], rdx
- mov qword ptr [rbp-0x68], rdi
+ mov qword ptr [rbp-0x68], rsi
mov dword ptr [rbp-0x60], 6
mov dword ptr [rbp-0x5C], -1
mov dword ptr [rbp-0x58], -1
- mov dword ptr [rbp-0x54], esi
+ mov dword ptr [rbp-0x54], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0x78]
mov r8, r14
@@ -502,22 +504,24 @@ G_M31232_IG24: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcrRegs +[rax]
test rax, rax
jne G_M31232_IG35
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
mov dword ptr [rsp+0x20], 1
mov dword ptr [rsp+0x28], 1
xor r8d, r8d
mov dword ptr [rsp+0x30], r8d
- ;; size=37 bbWeight=0.50 PerfScore 3.25
-G_M31232_IG25: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=40 bbWeight=0.50 PerfScore 3.38
+G_M31232_IG25: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov dword ptr [rsp+0x38], r8d
;; size=5 bbWeight=0.50 PerfScore 0.50
-G_M31232_IG26: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M31232_IG26: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
xor r9d, r9d
xor ecx, ecx
mov edx, 1
call [<unknown method>]
- mov esi, eax
- mov rcx, rbx
+ mov edi, eax
+ mov rcx, rsi
; gcrRegs +[rcx]
mov edx, 5
xor r8, r8
@@ -525,8 +529,8 @@ G_M31232_IG26: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
xor r9, r9
; gcrRegs +[r9]
call [<unknown method>]
- ; gcrRegs -[rcx r8-r9]
- mov rdi, rax
+ ; gcrRegs -[rcx rsi r8-r9]
+ mov rsi, rax
mov rcx, gword ptr [rbx+0x88]
; gcrRegs +[rcx]
xor rdx, rdx
@@ -536,11 +540,11 @@ G_M31232_IG26: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M31232_IG27: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov gword ptr [rbp-0x98], rdx
- mov qword ptr [rbp-0x90], rdi
+ mov qword ptr [rbp-0x90], rsi
mov dword ptr [rbp-0x88], 5
mov dword ptr [rbp-0x84], -1
mov dword ptr [rbp-0x80], -1
- mov dword ptr [rbp-0x7C], esi
+ mov dword ptr [rbp-0x7C], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0xA0]
call [<unknown method>]
@@ -570,11 +574,11 @@ G_M31232_IG29: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov gword ptr [r14+0x10], rcx
mov dword ptr [r14+0x2C], -1
mov dword ptr [r14+0x30], -1
- mov qword ptr [r14+0x20], rdi
- mov dword ptr [r14+0x34], esi
- test sil, 32
+ mov qword ptr [r14+0x20], rsi
+ mov dword ptr [r14+0x34], edi
+ test dil, 32
je SHORT G_M31232_IG30
- test sil, 8
+ test dil, 8
jne SHORT G_M31232_IG31
;; size=40 bbWeight=0.50 PerfScore 3.75
G_M31232_IG30: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
@@ -607,11 +611,11 @@ G_M31232_IG32: ; bbWeight=0.50, gcrefRegs=400C {rdx rbx r14}, byrefRegs=0
G_M31232_IG33: ; bbWeight=0.50, gcrefRegs=400A {rcx rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
mov gword ptr [rbp-0xC0], rdx
- mov qword ptr [rbp-0xB8], rdi
+ mov qword ptr [rbp-0xB8], rsi
mov dword ptr [rbp-0xB0], 5
mov dword ptr [rbp-0xAC], -1
mov dword ptr [rbp-0xA8], -1
- mov dword ptr [rbp-0xA4], esi
+ mov dword ptr [rbp-0xA4], edi
cmp byte ptr [rcx], cl
lea rdx, [rbp-0xC8]
mov r8, r14
@@ -842,7 +846,7 @@ RWD00 dd G_M31232_IG47 - G_M31232_IG02
dd G_M31232_IG40 - G_M31232_IG02
-; Total bytes of code 1721, prolog size 90, PerfScore 300.33, instruction count 384, allocated bytes for code 1721 (MethodHash=10b885ff) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
+; Total bytes of code 1727, prolog size 90, PerfScore 300.58, instruction count 386, allocated bytes for code 1727 (MethodHash=10b885ff) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
; ============================================================
...
+6 (+1.97%) : 28357.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
@@ -107,7 +107,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp+0x18]
; gcrRegs +[rax]
@@ -124,7 +126,9 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp+0x10]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, gword ptr [rbp+0x18]
; gcrRegs +[rax]
@@ -145,7 +149,7 @@ G_M15076_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
; gcr arg pop 0
nop
- ;; size=109 bbWeight=1 PerfScore 32.75
+ ;; size=115 bbWeight=1 PerfScore 33.75
G_M15076_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
@@ -157,7 +161,7 @@ G_M15076_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 304, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 304 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
+; Total bytes of code 310, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 310 (MethodHash=fbf1c51b) for method EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
; ============================================================
Unwind Info:
+6 (+1.99%) : 27103.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
@@ -109,7 +109,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
sar eax, 16
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -128,7 +130,9 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov eax, dword ptr [rbp+0x10]
; byrRegs -[rax]
cdqe
- and eax, 0xFFFF
+ movzx rax, ax
+ mov eax, eax
+ movzx rax, ax
mov dword ptr [rbp-0x40], eax
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
@@ -150,7 +154,7 @@ G_M51050_IG10: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax rcx]
; gcr arg pop 0
nop
- ;; size=107 bbWeight=1 PerfScore 32.75
+ ;; size=113 bbWeight=1 PerfScore 33.75
G_M51050_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
@@ -162,7 +166,7 @@ G_M51050_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 301, prolog size 25, PerfScore 87.52, instruction count 91, allocated bytes for code 301 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
+; Total bytes of code 307, prolog size 25, PerfScore 88.52, instruction count 95, allocated bytes for code 307 (MethodHash=22213895) for method EMFloat:LongToInternalFPF(int,byref) (Tier0)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.x64.checked.mch
-42 (-79.25%) : 286498.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
@@ -5,39 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01 ] ( 1, 1 ) int -> [rbp-0x04] "ReplaceWithLclVar is creating a new local variable"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 48
+; Lcl frame size = 0
G_M23300_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 48
- lea rbp, [rsp+0x30]
- ;; size=10 bbWeight=1 PerfScore 1.75
-G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov eax, 2
- mov ecx, 1
- mul edx:eax, ecx
- jb SHORT G_M23300_IG04
- mov dword ptr [rbp-0x04], eax
- mov eax, dword ptr [rbp-0x04]
- shr eax, 31
- add eax, dword ptr [rbp-0x04]
- sar eax, 1
- add eax, 99
- ;; size=31 bbWeight=1 PerfScore 9.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, 100
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M23300_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 48
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M23300_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call CORINFO_HELP_OVERFLOW
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 53, prolog size 10, PerfScore 13.25, instruction count 18, allocated bytes for code 53 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -45,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-38 (-77.55%) : 286581.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
@@ -5,35 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M4347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
-G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov eax, -1
- mov ecx, 1
- mul edx:eax, ecx
- jb SHORT G_M4347_IG04
- mov ecx, 4
- shrx eax, ecx, eax
- add eax, 100
- ;; size=27 bbWeight=1 PerfScore 5.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M4347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, 100
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M4347_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M4347_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call CORINFO_HELP_OVERFLOW
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 49, prolog size 10, PerfScore 9.00, instruction count 15, allocated bytes for code 49 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=369def04) for method ILGEN_0xd3a45436:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -41,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-38 (-77.55%) : 286834.dasm - _n:main():int (Tier0)
@@ -9,39 +9,19 @@
;
; Lcl frame size = 0
-G_M4754_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M4754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- vzeroupper
mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vmovsd xmm0, qword ptr [reloc @RWD00]
- vxorps xmm0, xmm0, xmmword ptr [reloc @RWD16]
- vucomisd xmm0, qword ptr [reloc @RWD32]
- jp SHORT G_M4754_IG03
- je SHORT G_M4754_IG05
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M4754_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 5
- ;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG04: ; bbWeight=1, epilog, nogc, extend
- pop rbp
- ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M4754_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M4754_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 100
;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M4754_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-RWD00 dq 4058C66666666666h ; 99.1
-RWD08 dd 00000000h, 00000000h
-RWD16 dq 8000000000000000h, 8000000000000000h
-RWD32 dq C058C66666666666h ; -99.1
-
-; Total bytes of code 49, prolog size 7, PerfScore 16.75, instruction count 14, allocated bytes for code 49 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
; ============================================================
Unwind Info:
+12 (+4.46%) : 567663.dasm - CGRecurse.RecursiveACC:C() (FullOpts)
@@ -9,12 +9,12 @@
; Final local variable assignments
;
; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T07] ( 3, 11.90) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V01 tmp1 [V01,T06] ( 3, 11.90) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
; V02 tmp2 [V02,T00] ( 4, 39.47) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
; V03 tmp3 [V03,T11] ( 4, 7.58) int -> rbp "Inline stloc first use temp"
-; V04 tmp4 [V04,T15] ( 3, 5.69) int -> rcx "Inline stloc first use temp"
-; V05 tmp5 [V05,T05] ( 7, 13.27) ref -> r14 class-hnd exact "Inline stloc first use temp" <System.String>
-;* V06 tmp6 [V06,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V04 tmp4 [V04,T16] ( 3, 5.69) int -> rcx "Inline stloc first use temp"
+; V05 tmp5 [V05,T07] ( 5, 9.48) ref -> r14 class-hnd exact "Inline stloc first use temp" <System.String>
+;* V06 tmp6 [V06,T18] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp7 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp8 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V09 tmp9 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -25,30 +25,33 @@
; V14 tmp14 [V14,T08] ( 3, 9.48) byref -> rcx "Inlining Arg"
; V15 tmp15 [V15,T09] ( 3, 9.48) byref -> rdx "Inlining Arg"
; V16 tmp16 [V16,T14] ( 2, 7.58) long -> r8 "Inlining Arg"
-; V17 tmp17 [V17,T06] ( 3, 11.38) long -> r8 "spilling arg"
+; V17 tmp17 [V17,T05] ( 3, 11.38) long -> r8 "spilling arg"
;* V18 tmp18 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V19 tmp19 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp20 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp21 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V22 tmp22 [V22,T12] ( 2, 7.58) byref -> rcx "Inlining Arg"
; V23 tmp23 [V23,T13] ( 2, 7.58) byref -> rdx "Inlining Arg"
-;* V24 tmp24 [V24 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V25 cse0 [V25,T03] ( 3, 20 ) int -> rcx "CSE - aggressive"
-; V26 cse1 [V26,T02] ( 4, 21 ) long -> rax "CSE - aggressive"
-; V27 cse2 [V27,T01] ( 3, 24 ) long -> rbx "CSE - aggressive"
-; V28 cse3 [V28,T10] ( 5, 9.37) int -> rdi "CSE - aggressive"
-; V29 cse4 [V29,T04] ( 9, 17.06) ref -> rdx multi-def "CSE - aggressive"
+; V24 cse0 [V24,T03] ( 3, 20 ) int -> rcx "CSE - aggressive"
+; V25 cse1 [V25,T02] ( 4, 21 ) long -> rax "CSE - aggressive"
+; V26 cse2 [V26,T01] ( 3, 24 ) long -> rbx "CSE - aggressive"
+; V27 cse3 [V27,T10] ( 5, 9.37) int -> rdi "CSE - aggressive"
+; V28 cse4 [V28,T04] ( 9, 17.06) ref -> rdx multi-def "CSE - aggressive"
+; V29 cse5 [V29,T17] ( 3, 5.69) int -> r15 "CSE - aggressive"
+; V30 cse6 [V30,T15] ( 3, 5.69) byref -> r13 "CSE - aggressive"
;
; Lcl frame size = 32
G_M6870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r15
push r14
+ push r13
push rdi
push rsi
push rbp
push rbx
sub rsp, 32
- ;; size=10 bbWeight=1 PerfScore 5.25
+ ;; size=14 bbWeight=1 PerfScore 7.25
G_M6870_IG02: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rsi, gword ptr [rbx]
@@ -82,7 +85,8 @@ G_M6870_IG04: ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
; gcr arg pop 0
;; size=45 bbWeight=1.90 PerfScore 15.17
G_M6870_IG05: ; bbWeight=1.90, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
- cmp dword ptr [r14+0x08], edi
+ mov r15d, dword ptr [r14+0x08]
+ cmp r15d, edi
jge SHORT G_M6870_IG06
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
@@ -91,9 +95,11 @@ G_M6870_IG05: ; bbWeight=1.90, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=25 bbWeight=1.90 PerfScore 14.22
+ ;; size=28 bbWeight=1.90 PerfScore 12.80
G_M6870_IG06: ; bbWeight=1.90, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
- lea rcx, bword ptr [r14+0x0C]
+ lea r13, bword ptr [r14+0x0C]
+ ; byrRegs +[r13]
+ mov rcx, r13
; byrRegs +[rcx]
lea rdx, bword ptr [rsi+0x0C]
; byrRegs +[rdx]
@@ -101,8 +107,8 @@ G_M6870_IG06: ; bbWeight=1.90, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {
add r8, r8
cmp r8, 6
jne SHORT G_M6870_IG09
- ;; size=20 bbWeight=1.90 PerfScore 5.21
-G_M6870_IG07: ; bbWeight=0.95, gcrefRegs=4000 {r14}, byrefRegs=0006 {rcx rdx}, byref, isz
+ ;; size=23 bbWeight=1.90 PerfScore 5.69
+G_M6870_IG07: ; bbWeight=0.95, gcrefRegs=4000 {r14}, byrefRegs=2006 {rcx rdx r13}, byref, isz
; gcrRegs -[rsi]
mov eax, dword ptr [rdx]
mov r8d, dword ptr [rdx+0x02]
@@ -112,22 +118,21 @@ G_M6870_IG07: ; bbWeight=0.95, gcrefRegs=4000 {r14}, byrefRegs=0006 {rcx
;; size=14 bbWeight=0.95 PerfScore 7.58
G_M6870_IG08: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
- ; byrRegs -[rcx rdx]
+ ; byrRegs -[rcx rdx r13]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
jmp SHORT G_M6870_IG12
;; size=12 bbWeight=2 PerfScore 4.50
-G_M6870_IG09: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=0006 {rcx rdx}, byref
+G_M6870_IG09: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=2006 {rcx rdx r13}, byref
; gcrRegs -[rdx] +[r14]
- ; byrRegs +[rcx rdx]
+ ; byrRegs +[rcx rdx r13]
call [<unknown method>]
; byrRegs -[rcx rdx]
; gcr arg pop 0
;; size=6 bbWeight=1.90 PerfScore 5.69
-G_M6870_IG10: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [r14+0x08]
- sub ecx, ebp
- test ecx, ecx
+G_M6870_IG10: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=2000 {r13}, byref, isz
+ sub r15d, ebp
+ test r15d, r15d
jg SHORT G_M6870_IG11
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
@@ -136,10 +141,10 @@ G_M6870_IG10: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, b
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=29 bbWeight=1.90 PerfScore 13.27
-G_M6870_IG11: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+ ;; size=27 bbWeight=1.90 PerfScore 9.48
+G_M6870_IG11: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=2000 {r13}, byref
movsxd rcx, ebp
- lea rcx, bword ptr [r14+2*rcx+0x0C]
+ lea rcx, bword ptr [r13+2*rcx]
; byrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; byrRegs +[rdx]
@@ -148,10 +153,10 @@ G_M6870_IG11: ; bbWeight=1.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, b
mov rdx, r14
; gcrRegs +[rdx]
; byrRegs -[rdx]
- ;; size=27 bbWeight=1.90 PerfScore 9.01
+ ;; size=27 bbWeight=1.90 PerfScore 10.90
G_M6870_IG12: ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx r13]
mov rcx, rbx
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
@@ -175,16 +180,18 @@ G_M6870_IG15: ; bbWeight=1, epilog, nogc, extend
pop rbp
pop rsi
pop rdi
+ pop r13
pop r14
+ pop r15
ret
- ;; size=11 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 4.75
G_M6870_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 269, prolog size 10, PerfScore 169.89, instruction count 76, allocated bytes for code 269 (MethodHash=24a4e529) for method CGRecurse.RecursiveACC:C() (FullOpts)
+; Total bytes of code 281, prolog size 14, PerfScore 170.04, instruction count 81, allocated bytes for code 281 (MethodHash=24a4e529) for method CGRecurse.RecursiveACC:C() (FullOpts)
; ============================================================
Unwind Info:
@@ -192,14 +199,16 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0A
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0E
+ CountOfUnwindCodes: 8
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+15 (+5.07%) : 270976.dasm - Test10w5d.testout1:Func03356():float (Tier0)
@@ -10,8 +10,7 @@
; V02 loc2 [V02 ] ( 1, 1 ) float -> [rbp-0x10] do-not-enreg[] must-init
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x18] do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V05 tmp2 [V05 ] ( 1, 1 ) float -> [rbp-0x1C] do-not-enreg[] "DUP instruction"
-; V06 tmp3 [V06 ] ( 1, 1 ) float -> [rbp-0x20] do-not-enreg[] must-init
+; V05 tmp2 [V05 ] ( 1, 1 ) float -> [rbp-0x1C] do-not-enreg[] must-init
;
; Lcl frame size = 64
@@ -21,8 +20,11 @@ G_M40752_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
vzeroupper
lea rbp, [rsp+0x40]
vxorps xmm4, xmm4, xmm4
- vmovdqu ymmword ptr [rbp-0x20], ymm4
- ;; size=22 bbWeight=1 PerfScore 5.08
+ vmovdqu xmmword ptr [rbp-0x1C], xmm4
+ xor eax, eax
+ mov qword ptr [rbp-0x0C], rax
+ mov dword ptr [rbp-0x04], eax
+ ;; size=31 bbWeight=1 PerfScore 7.33
G_M40752_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -47,13 +49,11 @@ G_M40752_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
vmovss xmm0, dword ptr [rbp-0x10]
vsubss xmm0, xmm0, dword ptr [reloc @RWD04]
vmovss dword ptr [rbp-0x10], xmm0
- vxorps xmm0, xmm0, xmm0
- vaddss xmm0, xmm0, dword ptr [reloc @RWD08]
+ vmovss xmm0, dword ptr [reloc @RWD08]
vsubss xmm0, xmm0, dword ptr [rbp-0x0C]
vmovss dword ptr [rbp-0x1C], xmm0
- vmovss xmm0, dword ptr [rbp-0x1C]
- vmovss dword ptr [rbp-0x20], xmm0
- vmovss xmm0, dword ptr [rbp-0x1C]
+ vmovss xmm0, dword ptr [reloc @RWD08]
+ vsubss xmm0, xmm0, dword ptr [rbp-0x0C]
mov rax, gword ptr [rbp-0x08]
vmovss xmm1, dword ptr [rax+0x08]
vdivss xmm1, xmm1, dword ptr [(reloc)]
@@ -61,11 +61,13 @@ G_M40752_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
vmovss xmm2, dword ptr [rbp-0x10]
vaddss xmm2, xmm2, dword ptr [reloc @RWD16]
vsubss xmm1, xmm1, xmm2
- vmulss xmm1, xmm1, dword ptr [rbp-0x1C]
+ vmovss xmm2, dword ptr [reloc @RWD08]
+ vsubss xmm2, xmm2, dword ptr [rbp-0x0C]
+ vmulss xmm1, xmm1, xmm2
vucomiss xmm0, xmm1
jp SHORT G_M40752_IG03
je SHORT G_M40752_IG04
- ;; size=198 bbWeight=1 PerfScore 107.58
+ ;; size=204 bbWeight=1 PerfScore 112.25
G_M40752_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, 0xD1FFAB1E
@@ -82,7 +84,7 @@ G_M40752_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
vmovss xmm1, dword ptr [rbp-0x10]
vaddss xmm1, xmm1, dword ptr [reloc @RWD16]
vsubss xmm0, xmm0, xmm1
- vmulss xmm0, xmm0, dword ptr [rbp-0x20]
+ vmulss xmm0, xmm0, dword ptr [rbp-0x1C]
call [<unknown method>]
; gcrRegs -[rax]
nop
@@ -99,7 +101,7 @@ RWD12 dd 45700000h ; 3840
RWD16 dd 3C0C0000h ; 0.00854492
-; Total bytes of code 296, prolog size 22, PerfScore 166.92, instruction count 58, allocated bytes for code 296 (MethodHash=314960cf) for method Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
+; Total bytes of code 311, prolog size 31, PerfScore 173.83, instruction count 61, allocated bytes for code 311 (MethodHash=314960cf) for method Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
; ============================================================
Unwind Info:
+5 (+27.78%) : 275380.dasm - ILGEN_622380794:main():int (Tier0)
@@ -14,15 +14,16 @@ G_M30338_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M30338_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- shl dword ptr [(reloc)], 0
+ mov eax, dword ptr [(reloc)] ; static handle
+ mov dword ptr [(reloc)], eax
mov eax, 100
- ;; size=12 bbWeight=1 PerfScore 4.25
+ ;; size=17 bbWeight=1 PerfScore 3.25
G_M30338_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 18, prolog size 4, PerfScore 7.00, instruction count 6, allocated bytes for code 18 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
+; Total bytes of code 23, prolog size 4, PerfScore 6.00, instruction count 7, allocated bytes for code 23 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
; ============================================================
Unwind Info:
libraries.crossgen2.windows.x64.checked.mch
-10 (-8.55%) : 26371.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
@@ -3,39 +3,38 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rcx this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-; V01 arg1 [V01,T01] ( 3, 2.50) int -> rdx single-def
-; V02 arg2 [V02 ] ( 3, 2.50) long -> [rbp+0x30] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
+; V01 arg1 [V01,T01] ( 3, 3 ) int -> rdx single-def
+; V02 arg2 [V02 ] ( 3, 2.50) long -> [rsp+0x60] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8
-; V04 OutArgs [V04 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp+0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V04 OutArgs [V04 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rsp+0x30] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rsp+0x40] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rcx single-def "shadowVar"
+; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rdx "shadowVar"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M56019_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- sub rsp, 64
- lea rbp, [rsp+0x30]
+ sub rsp, 72
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp+0x08], rax
- mov qword ptr [rbp+0x30], r8
- ;; size=25 bbWeight=1 PerfScore 5.75
+ mov qword ptr [rsp+0x40], rax
+ mov qword ptr [rsp+0x60], r8
+ ;; size=21 bbWeight=1 PerfScore 4.25
G_M56019_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x9D], 0
je SHORT G_M56019_IG04
;; size=9 bbWeight=1 PerfScore 4.00
G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp
- sub rsp, 16
lea r8, [rsp+0x30]
- lea r9, [rbp+0x30]
+ lea r9, [rsp+0x60]
mov qword ptr [r8], r9
mov dword ptr [r8+0x08], 8
xor r9d, r9d
@@ -45,24 +44,25 @@ G_M56019_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
mov r9d, 1
call [<unknown method>]
; gcrRegs -[rcx]
- ;; size=54 bbWeight=0.50 PerfScore 6.00
+ ; gcr arg pop 0
+ ;; size=48 bbWeight=0.50 PerfScore 4.38
G_M56019_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rcx, [(reloc)]
mov rcx, qword ptr [rcx]
- cmp qword ptr [rbp+0x08], rcx
+ cmp qword ptr [rsp+0x40], rcx
je SHORT G_M56019_IG05
call [CORINFO_HELP_FAIL_FAST]
- ;; size=22 bbWeight=1 PerfScore 8.50
+ ; gcr arg pop 0
+ ;; size=23 bbWeight=1 PerfScore 8.50
G_M56019_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M56019_IG06: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp+0x10]
- pop rbp
+ add rsp, 72
ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 117, prolog size 21, PerfScore 26.50, instruction count 29, allocated bytes for code 117 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
+; Total bytes of code 107, prolog size 16, PerfScore 22.62, instruction count 24, allocated bytes for code 107 (MethodHash=3808252c) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
; ============================================================
Unwind Info:
@@ -70,11 +70,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0A
- CountOfUnwindCodes: 3
- FrameRegister : rbp (5)
- FrameOffset : 3 * 16 = 0x30
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 1
+ FrameRegister : none (0)
+ FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0)
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48
-10 (-8.55%) : 26368.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
@@ -3,39 +3,38 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> rcx this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-; V01 arg1 [V01,T01] ( 3, 2.50) int -> rdx single-def
-; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp+0x30] do-not-enreg[X] addr-exposed ld-addr-op single-def
+; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
+; V01 arg1 [V01,T01] ( 3, 3 ) int -> rdx single-def
+; V02 arg2 [V02 ] ( 3, 2.50) int -> [rsp+0x60] do-not-enreg[X] addr-exposed ld-addr-op single-def
; V03 loc0 [V03,T02] ( 5, 2.50) long -> r8
-; V04 OutArgs [V04 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 GsCookie [V05 ] ( 1, 1 ) long -> [rbp+0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V04 OutArgs [V04 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V05 tmp1 [V05 ] ( 1, 0.50) struct (16) [rsp+0x30] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V06 GsCookie [V06 ] ( 1, 1 ) long -> [rsp+0x40] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V07 tmp3 [V07,T03] ( 3, 2.50) ref -> rcx single-def "shadowVar"
+; V08 tmp4 [V08,T04] ( 2, 1.50) int -> rdx "shadowVar"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M63626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- sub rsp, 64
- lea rbp, [rsp+0x30]
+ sub rsp, 72
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp+0x08], rax
- mov dword ptr [rbp+0x30], r8d
- ;; size=25 bbWeight=1 PerfScore 5.75
+ mov qword ptr [rsp+0x40], rax
+ mov dword ptr [rsp+0x60], r8d
+ ;; size=21 bbWeight=1 PerfScore 4.25
G_M63626_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x9D], 0
je SHORT G_M63626_IG04
;; size=9 bbWeight=1 PerfScore 4.00
G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
- test dword ptr [rsp], esp
- sub rsp, 16
lea r8, [rsp+0x30]
- lea r9, [rbp+0x30]
+ lea r9, [rsp+0x60]
mov qword ptr [r8], r9
mov dword ptr [r8+0x08], 4
xor r9d, r9d
@@ -45,24 +44,25 @@ G_M63626_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
mov r9d, 1
call [<unknown method>]
; gcrRegs -[rcx]
- ;; size=54 bbWeight=0.50 PerfScore 6.00
+ ; gcr arg pop 0
+ ;; size=48 bbWeight=0.50 PerfScore 4.38
G_M63626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rcx, [(reloc)]
mov rcx, qword ptr [rcx]
- cmp qword ptr [rbp+0x08], rcx
+ cmp qword ptr [rsp+0x40], rcx
je SHORT G_M63626_IG05
call [CORINFO_HELP_FAIL_FAST]
- ;; size=22 bbWeight=1 PerfScore 8.50
+ ; gcr arg pop 0
+ ;; size=23 bbWeight=1 PerfScore 8.50
G_M63626_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M63626_IG06: ; bbWeight=1, epilog, nogc, extend
- lea rsp, [rbp+0x10]
- pop rbp
+ add rsp, 72
ret
- ;; size=6 bbWeight=1 PerfScore 2.00
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 117, prolog size 21, PerfScore 26.50, instruction count 29, allocated bytes for code 117 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
+; Total bytes of code 107, prolog size 16, PerfScore 22.62, instruction count 24, allocated bytes for code 107 (MethodHash=13660775) for method System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -70,11 +70,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0A
- CountOfUnwindCodes: 3
- FrameRegister : rbp (5)
- FrameOffset : 3 * 16 = 0x30
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 1
+ FrameRegister : none (0)
+ FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x0A UnwindOp: UWOP_SET_FPREG (3) OpInfo: Unused (0)
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48
-6 (-7.50%) : 157045.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -8,15 +8,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> rbx single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> rcx single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> rbx single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> rcx single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> rcx single-def "arr expr"
-; V04 tmp2 [V04,T01] ( 3, 6 ) ref -> rax single-def "arr expr"
-; V05 tmp3 [V05,T02] ( 3, 6 ) int -> rcx "index expr"
+; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> rcx single-def "arr expr"
+; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> rax single-def "arr expr"
+; V05 tmp3 [V05,T03] ( 3, 6 ) int -> rcx "index expr"
; V06 cse0 [V06,T04] ( 3, 3 ) byref -> rax "CSE - aggressive"
-; V07 cse1 [V07,T05] ( 3, 3 ) int -> r8 "CSE - aggressive"
-; V08 cse2 [V08,T06] ( 3, 3 ) int -> rdx "CSE - aggressive"
+; V07 cse1 [V07,T05] ( 3, 3 ) int -> rdx "CSE - aggressive"
;
; Lcl frame size = 32
@@ -32,23 +31,22 @@ G_M53790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rcx, gword ptr [rax+0x0F08]
; gcrRegs +[rcx]
movzx rdx, bx
- mov r8d, edx
- sar r8d, 8
- cmp r8d, dword ptr [rcx+0x08]
+ sar edx, 8
+ cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M53790_IG04
- movzx rcx, byte ptr [rcx+r8+0x10]
+ movzx rcx, byte ptr [rcx+rdx+0x10]
; gcrRegs -[rcx]
mov rax, gword ptr [rax+0x0F10]
; gcrRegs +[rax]
; byrRegs -[rax]
shl ecx, 8
- movzx rdx, dl
+ movzx rdx, bl
add ecx, edx
cmp ecx, dword ptr [rax+0x08]
jae SHORT G_M53790_IG04
movzx rax, byte ptr [rax+rcx+0x10]
; gcrRegs -[rax]
- ;; size=60 bbWeight=1 PerfScore 21.00
+ ;; size=54 bbWeight=1 PerfScore 20.75
G_M53790_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -60,7 +58,7 @@ G_M53790_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 80, prolog size 5, PerfScore 24.25, instruction count 23, allocated bytes for code 80 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 74, prolog size 5, PerfScore 24.00, instruction count 22, allocated bytes for code 74 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
+2 (+0.34%) : 174013.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rsi single-def
-; V01 arg0 [V01,T00] ( 11, 15 ) byref -> rbx ld-addr-op single-def
+; V01 arg0 [V01,T00] ( 13, 17 ) byref -> rbx ld-addr-op single-def
; V02 loc0 [V02 ] ( 8, 4 ) struct ( 8) [rsp+0x68] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
; V03 loc1 [V03 ] ( 5, 3 ) struct (16) [rsp+0x58] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTimeOffset>
; V04 loc2 [V04 ] ( 4, 2 ) struct ( 8) [rsp+0x50] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
@@ -68,7 +68,7 @@
; V56 tmp47 [V56,T15] ( 2, 2 ) int -> rbp "argument with side effect"
; V57 tmp48 [V57,T16] ( 2, 2 ) int -> r9 "argument with side effect"
; V58 tmp49 [V58,T05] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
-; V59 cse0 [V59,T03] ( 6, 4 ) int -> rbx "CSE - aggressive"
+; V59 cse0 [V59,T03] ( 4, 3 ) int -> rdx "CSE - aggressive"
; V60 rat0 [V60,T02] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 112
@@ -189,30 +189,29 @@ G_M18003_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
mov qword ptr [rsp+0x68], rcx
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M18003_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
- mov ebx, dword ptr [rbx+0x08]
- ; byrRegs -[rbx]
- mov ecx, ebx
+ mov edx, dword ptr [rbx+0x08]
+ mov ecx, edx
and ecx, 0xD1FFAB1E
shr ecx, 16
cmp ecx, 3
ja G_M18003_IG10
- lea rdx, [reloc @RWD00]
- mov edx, dword ptr [rdx+4*rcx]
- lea r8, G_M18003_IG02
- add rdx, r8
- jmp rdx
- ;; size=45 bbWeight=1 PerfScore 10.00
-G_M18003_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+ lea r8, [reloc @RWD00]
+ mov r8d, dword ptr [r8+4*rcx]
+ lea r9, G_M18003_IG02
+ add r8, r9
+ jmp r8
+ ;; size=47 bbWeight=1 PerfScore 10.00
+G_M18003_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
mov rdi, qword ptr [rsp+0x68]
- mov edx, ebx
and edx, 0xFF00
shr edx, 8
- movzx r8, bl
+ movzx r8, byte ptr [rbx+0x08]
xor ecx, ecx
mov qword ptr [rsp+0x30], rcx
lea rcx, [rsp+0x30]
xor r9d, r9d
call [<unknown method>]
+ ; byrRegs -[rbx]
; gcr arg pop 0
lea rcx, [rsp+0x58]
mov rdx, rdi
@@ -220,21 +219,23 @@ G_M18003_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
call [<unknown method>]
; gcr arg pop 0
jmp G_M18003_IG11
- ;; size=65 bbWeight=0.50 PerfScore 7.00
-G_M18003_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+ ;; size=64 bbWeight=0.50 PerfScore 7.75
+G_M18003_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
+ ; byrRegs +[rbx]
mov rdi, qword ptr [rsp+0x68]
- mov r8d, ebx
+ mov r8d, edx
and r8d, 0xFF00
shr r8d, 8
mov edx, r8d
neg edx
- movzx r8, bl
+ movzx r8, byte ptr [rbx+0x08]
xor ecx, ecx
mov qword ptr [rsp+0x28], rcx
neg r8d
lea rcx, [rsp+0x28]
xor r9d, r9d
call [<unknown method>]
+ ; byrRegs -[rbx]
; gcr arg pop 0
lea rcx, [rsp+0x58]
mov rdx, rdi
@@ -242,7 +243,7 @@ G_M18003_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
call [<unknown method>]
; gcr arg pop 0
jmp SHORT G_M18003_IG11
- ;; size=73 bbWeight=0.50 PerfScore 7.38
+ ;; size=74 bbWeight=0.50 PerfScore 8.25
G_M18003_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
xor ecx, ecx
mov qword ptr [rsp+0x20], rcx
@@ -298,7 +299,7 @@ RWD00 dd G_M18003_IG10 - G_M18003_IG02
dd G_M18003_IG07 - G_M18003_IG02
-; Total bytes of code 589, prolog size 10, PerfScore 94.00, instruction count 151, allocated bytes for code 589 (MethodHash=b60fb9ac) for method System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
+; Total bytes of code 591, prolog size 10, PerfScore 95.62, instruction count 150, allocated bytes for code 591 (MethodHash=b60fb9ac) for method System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
; ============================================================
Unwind Info:
+14 (+3.51%) : 144162.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
@@ -3,140 +3,153 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Net.ISSPIInterface>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Net.Security.SafeDeleteContext>
-; V02 arg2 [V02,T03] ( 3, 3 ) int -> r14 single-def
-; V03 arg3 [V03,T02] ( 3, 3 ) byref -> rdi single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rcx class-hnd single-def <System.Net.ISSPIInterface>
+; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Net.Security.SafeDeleteContext>
+; V02 arg2 [V02,T03] ( 3, 3 ) int -> r8 single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) byref -> r9 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
-; V05 loc1 [V05,T07] ( 4, 3 ) int -> rbx
-; V06 loc2 [V06 ] ( 5, 3.50) ref -> [rbp+0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
-; V07 loc3 [V07,T09] ( 3, 3 ) ubyte -> rsi
+; V05 loc1 [V05,T07] ( 4, 3 ) int -> rsi
+; V06 loc2 [V06 ] ( 5, 3.50) ref -> [rsp+0x78] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <<unknown class>>
+; V07 loc3 [V07,T09] ( 3, 3 ) ubyte -> rdi
;* V08 loc4 [V08 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[long]>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10 ] ( 3, 6 ) struct (16) [rbp+0x38] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
-; V11 tmp2 [V11 ] ( 2, 4 ) struct (16) [rbp+0x28] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Span`1[ubyte]>
-; V12 tmp3 [V12,T10] ( 3, 2 ) int -> rcx
-; V13 tmp4 [V13,T08] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" <<unknown class>>
-; V14 tmp5 [V14,T11] ( 2, 2 ) ref -> rax class-hnd single-def "Strict ordering of exceptions for Array store" <System.String>
-;* V15 tmp6 [V15 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp8 [V17 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp9 [V18 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
-; V19 tmp10 [V19 ] ( 3, 6 ) byref -> [rbp+0x38] do-not-enreg[X] addr-exposed "field V10._reference (fldOffset=0x0)" P-DEP
-; V20 tmp11 [V20 ] ( 3, 6 ) int -> [rbp+0x40] do-not-enreg[X] addr-exposed "field V10._length (fldOffset=0x8)" P-DEP
-; V21 tmp12 [V21,T04] ( 2, 4 ) byref -> [rbp+0x28] do-not-enreg[H] hidden-struct-arg "field V11._reference (fldOffset=0x0)" P-DEP
-; V22 tmp13 [V22,T06] ( 2, 4 ) int -> [rbp+0x30] do-not-enreg[H] hidden-struct-arg "field V11._length (fldOffset=0x8)" P-DEP
-; V23 tmp14 [V23 ] ( 2, 4 ) struct (16) [rbp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[long]>
-; V24 tmp15 [V24 ] ( 2, 4 ) struct (16) [rbp+0x08] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
-; V25 tmp16 [V25,T05] ( 2, 4 ) ref -> rax single-def "argument with side effect"
-; V26 tmp17 [V26,T12] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
-; V27 tmp18 [V27,T13] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V28 GsCookie [V28 ] ( 1, 1 ) long -> [rbp+0x00] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V10 tmp1 [V10 ] ( 1, 1 ) struct ( 8) [rsp+0x30] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V11 tmp2 [V11 ] ( 3, 6 ) struct (16) [rsp+0x68] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
+; V12 tmp3 [V12 ] ( 2, 4 ) struct (16) [rsp+0x58] do-not-enreg[HS] must-init hidden-struct-arg ptr "spilled call-like call argument" <System.Span`1[ubyte]>
+; V13 tmp4 [V13,T10] ( 3, 2 ) int -> rcx
+; V14 tmp5 [V14,T08] ( 3, 3 ) ref -> rbp class-hnd exact single-def "dup spill" <<unknown class>>
+; V15 tmp6 [V15,T11] ( 2, 2 ) ref -> rax class-hnd single-def "Strict ordering of exceptions for Array store" <System.String>
+;* V16 tmp7 [V16 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+;* V18 tmp9 [V18 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V19 tmp10 [V19 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
+; V20 tmp11 [V20 ] ( 3, 6 ) byref -> [rsp+0x68] do-not-enreg[X] addr-exposed "field V11._reference (fldOffset=0x0)" P-DEP
+; V21 tmp12 [V21 ] ( 3, 6 ) int -> [rsp+0x70] do-not-enreg[X] addr-exposed "field V11._length (fldOffset=0x8)" P-DEP
+; V22 tmp13 [V22,T04] ( 2, 4 ) byref -> [rsp+0x58] do-not-enreg[H] hidden-struct-arg "field V12._reference (fldOffset=0x0)" P-DEP
+; V23 tmp14 [V23,T06] ( 2, 4 ) int -> [rsp+0x60] do-not-enreg[H] hidden-struct-arg "field V12._length (fldOffset=0x8)" P-DEP
+; V24 tmp15 [V24 ] ( 2, 4 ) struct (16) [rsp+0x48] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[long]>
+; V25 tmp16 [V25 ] ( 2, 4 ) struct (16) [rsp+0x38] do-not-enreg[XS] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[ubyte]>
+; V26 tmp17 [V26,T05] ( 2, 4 ) ref -> rax single-def "argument with side effect"
+; V27 tmp18 [V27,T12] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
+; V28 tmp19 [V28,T13] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V29 GsCookie [V29 ] ( 1, 1 ) long -> [rsp+0x80] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V30 tmp21 [V30,T14] ( 2, 2 ) ref -> rbp single-def "shadowVar"
+; V31 tmp22 [V31,T15] ( 2, 2 ) ref -> rdi single-def "shadowVar"
+; V32 tmp23 [V32,T17] ( 2, 2 ) int -> rsi "shadowVar"
+; V33 tmp24 [V33,T16] ( 2, 2 ) byref -> rbx single-def "shadowVar"
;
-; Lcl frame size = 128
+; Lcl frame size = 136
G_M35410_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- push r14
push rdi
push rsi
+ push rbp
push rbx
- sub rsp, 128
- lea rbp, [rsp+0x30]
+ sub rsp, 136
xor eax, eax
- mov qword ptr [rbp+0x08], rax
+ mov qword ptr [rsp+0x38], rax
xorps xmm4, xmm4
- movaps xmmword ptr [rbp+0x10], xmm4
- movaps xmmword ptr [rbp+0x20], xmm4
- movaps xmmword ptr [rbp+0x30], xmm4
- movaps xmmword ptr [rbp+0x40], xmm4
+ movaps xmmword ptr [rsp+0x40], xmm4
+ movaps xmmword ptr [rsp+0x50], xmm4
+ movaps xmmword ptr [rsp+0x60], xmm4
+ movaps xmmword ptr [rsp+0x70], xmm4
mov rax, qword ptr [(reloc)]
- mov qword ptr [rbp], rax
- mov rbx, rcx
- ; gcrRegs +[rbx]
- mov rsi, rdx
- ; gcrRegs +[rsi]
- mov r14d, r8d
- mov rdi, r9
- ; byrRegs +[rdi]
- ;; size=66 bbWeight=1 PerfScore 19.33
-G_M35410_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref
+ mov qword ptr [rsp+0x80], rax
+ ;; size=56 bbWeight=1 PerfScore 16.83
+G_M35410_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0200 {r9}, byref
+ ; gcrRegs +[rcx rdx]
+ ; byrRegs +[r9]
+ mov rbx, r9
+ ; byrRegs +[rbx]
+ mov esi, r8d
+ mov rdi, rdx
+ ; gcrRegs +[rdi]
+ mov rbp, rcx
+ ; gcrRegs +[rbp]
xorps xmm0, xmm0
- movups xmmword ptr [rbp+0x38], xmm0
- lea rcx, [rbp+0x38]
- test dword ptr [rsp], esp
- sub rsp, 16
+ movups xmmword ptr [rsp+0x68], xmm0
+ lea rcx, [rsp+0x68]
+ ; gcrRegs -[rcx]
lea rdx, [rsp+0x30]
+ ; gcrRegs -[rdx]
mov r8d, 1
call [<unknown method>]
- ;; size=35 bbWeight=1 PerfScore 8.83
+ ; byrRegs -[r9]
+ ; gcr arg pop 0
+ ;; size=42 bbWeight=1 PerfScore 6.58
G_M35410_IG03: ; bbWeight=1, nogc, extend
- movups xmm0, xmmword ptr [rbp+0x38]
- movups xmmword ptr [rbp+0x18], xmm0
- ;; size=8 bbWeight=1 PerfScore 4.00
+ movups xmm0, xmmword ptr [rsp+0x68]
+ movups xmmword ptr [rsp+0x48], xmm0
+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M35410_IG04: ; bbWeight=1, extend
- lea rdx, [rbp+0x18]
- lea rcx, [rbp+0x28]
+ lea rdx, [rsp+0x48]
+ lea rcx, [rsp+0x58]
call [<unknown method>]
- ;; size=14 bbWeight=1 PerfScore 4.00
+ ; gcr arg pop 0
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M35410_IG05: ; bbWeight=1, nogc, extend
- movups xmm0, xmmword ptr [rbp+0x28]
- movups xmmword ptr [rbp+0x08], xmm0
- ;; size=8 bbWeight=1 PerfScore 4.00
+ movups xmm0, xmmword ptr [rsp+0x58]
+ movups xmmword ptr [rsp+0x38], xmm0
+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M35410_IG06: ; bbWeight=1, isz, extend
mov rcx, qword ptr [(reloc)] ; <unknown class>
call [CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE]
; gcrRegs +[rax]
- lea r9, [rbp+0x48]
+ ; gcr arg pop 0
+ lea r9, [rsp+0x78]
mov qword ptr [rsp+0x28], r9
mov gword ptr [rsp+0x20], rax
- lea r9, [rbp+0x08]
- mov rdx, rsi
+ ; gcr arg write
+ lea r9, [rsp+0x38]
+ mov rdx, rdi
; gcrRegs +[rdx]
- mov r8d, r14d
- mov rcx, rbx
+ mov r8d, esi
+ mov rcx, rbp
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
call [r11]<unknown method>
- ; gcrRegs -[rax rcx rdx rbx rsi]
- mov ebx, eax
- test ebx, ebx
+ ; gcrRegs -[rax rcx rdx rbp rdi]
+ ; gcr arg pop 0
+ mov esi, eax
+ test esi, esi
je SHORT G_M35410_IG08
- ;; size=56 bbWeight=1 PerfScore 13.75
-G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ ;; size=58 bbWeight=1 PerfScore 13.75
+G_M35410_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
xor ecx, ecx
- cmp ebx, 0xD1FFAB1E
+ cmp esi, 0xD1FFAB1E
sete cl
jmp SHORT G_M35410_IG09
;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M35410_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M35410_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M35410_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
- movzx rsi, cl
- test esi, esi
+G_M35410_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ movzx rdi, cl
+ test edi, edi
jne G_M35410_IG12
;; size=12 bbWeight=1 PerfScore 1.50
-G_M35410_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
- cmp gword ptr [rbp+0x48], 0
+G_M35410_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+ cmp gword ptr [rsp+0x78], 0
je SHORT G_M35410_IG11
- mov rcx, gword ptr [rbp+0x48]
+ mov rcx, gword ptr [rsp+0x78]
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx]
- ;; size=17 bbWeight=0.50 PerfScore 3.50
-G_M35410_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref, isz
+ ; gcr arg pop 0
+ ;; size=19 bbWeight=0.50 PerfScore 3.50
+G_M35410_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
xor rax, rax
; gcrRegs +[rax]
- mov gword ptr [rbp+0x48], rax
+ mov gword ptr [rsp+0x78], rax
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
; gcrRegs -[rax]
; byrRegs +[rax]
+ ; gcr arg pop 0
mov rcx, gword ptr [rax+0x28]
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -144,16 +157,19 @@ G_M35410_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi},
call [r11]<unknown method>
; gcrRegs -[rcx]
; byrRegs -[rax]
+ ; gcr arg pop 0
test eax, eax
je SHORT G_M35410_IG12
mov ecx, 1
call [CORINFO_HELP_READYTORUN_NEWARR_1]
; gcrRegs +[rax]
- mov r14, rax
- ; gcrRegs +[r14]
- mov ecx, ebx
+ ; gcr arg pop 0
...
+3 (+3.85%) : 36211.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -49,18 +49,19 @@ G_M19587_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx rbx]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=30 bbWeight=1 PerfScore 4.75
+ ;; size=33 bbWeight=1 PerfScore 5.00
G_M19587_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 78, prolog size 5, PerfScore 18.62, instruction count 21, allocated bytes for code 78 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 81, prolog size 5, PerfScore 18.88, instruction count 22, allocated bytes for code 81 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
-35 (-14.83%) : 25117.dasm - System.SpanHelpers:Fill[System.Numerics.Vector1[float]](byref,ulong,System.Numerics.Vector
1[float]) (FullOpts)
@@ -11,18 +11,18 @@
; V00 arg0 [V00,T03] ( 10, 6 ) byref -> rcx single-def
; V01 arg1 [V01,T04] ( 8, 5.50) long -> rdx single-def
; V02 arg2 [V02,T01] ( 10, 12 ) byref -> r8 single-def
-; V03 loc0 [V03,T05] ( 12, 6 ) long -> rax
+; V03 loc0 [V03,T06] ( 7, 3.50) long -> rax
;* V04 loc1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op <System.Numerics.Vector`1[float]>
-; V05 loc2 [V05,T09] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T08] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T02] ( 5, 9.50) byref -> rcx single-def
; V07 loc4 [V07,T07] ( 4, 2 ) long -> r8
-; V08 loc5 [V08,T06] ( 2, 4.50) long -> rax
+; V08 loc5 [V08,T05] ( 2, 4.50) long -> rax
; V09 loc6 [V09,T00] ( 7, 21 ) long -> r10
;* V10 loc7 [V10 ] ( 0, 0 ) simd16 -> zero-ref <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V11 loc8 [V11 ] ( 0, 0 ) long -> zero-ref
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V14 tmp2 [V14,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -70,23 +70,15 @@ G_M26735_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
test dl, 4
je SHORT G_M26735_IG09
vmovups ymm0, ymmword ptr [r8]
- mov r10, rax
- shl r10, 5
- vmovups ymmword ptr [rcx+r10], ymm0
+ vmovups ymmword ptr [rcx], ymm0
vmovups ymm0, ymmword ptr [r8]
- lea r10, [rax+0x01]
- shl r10, 5
- vmovups ymmword ptr [rcx+r10], ymm0
+ vmovups ymmword ptr [rcx+0x20], ymm0
vmovups ymm0, ymmword ptr [r8]
- lea r10, [rax+0x02]
- shl r10, 5
- vmovups ymmword ptr [rcx+r10], ymm0
+ vmovups ymmword ptr [rcx+0x40], ymm0
vmovups ymm0, ymmword ptr [r8]
- lea r10, [rax+0x03]
- shl r10, 5
- vmovups ymmword ptr [rcx+r10], ymm0
- add rax, 4
- ;; size=86 bbWeight=0.50 PerfScore 16.75
+ vmovups ymmword ptr [rcx+0x60], ymm0
+ mov eax, 4
+ ;; size=51 bbWeight=0.50 PerfScore 14.88
G_M26735_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
test dl, 2
je SHORT G_M26735_IG10
@@ -113,7 +105,7 @@ G_M26735_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 236, prolog size 3, PerfScore 62.50, instruction count 60, allocated bytes for code 236 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
+; Total bytes of code 201, prolog size 3, PerfScore 60.62, instruction count 52, allocated bytes for code 201 (MethodHash=53139790) for method System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
; ============================================================
Unwind Info:
-1 (-7.14%) : 27780.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,9 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rcx this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> rcx this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 3 ) int -> rax "CSE - aggressive"
;
; Lcl frame size = 0
@@ -19,16 +20,16 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
; byrRegs +[rcx]
movzx rax, word ptr [rcx]
- movzx rdx, word ptr [rcx]
+ mov edx, eax
shl edx, 16
- or eax, edx
- mov dword ptr [rcx], eax
- ;; size=13 bbWeight=1 PerfScore 5.75
+ or edx, eax
+ mov dword ptr [rcx], edx
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 0, PerfScore 6.75, instruction count 6, allocated bytes for code 14 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 13, prolog size 0, PerfScore 5.00, instruction count 6, allocated bytes for code 13 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
Unwind Info:
-18 (-2.96%) : 217249.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:GenerateId(System.Xml.XPath.XPathNavigator):System.String:this (FullOpts)
@@ -13,65 +13,64 @@
; V02 loc0 [V02,T06] ( 6, 4.50) ref -> rdi class-hnd single-def <<unknown class>>
; V03 loc1 [V03 ] ( 21, 15.50) struct (40) [rsp+0x20] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T08] ( 2, 4 ) ref -> rcx class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
; V06 tmp2 [V06,T00] ( 5, 8 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
; V08 tmp4 [V08,T14] ( 2, 2 ) byref -> r15 single-def
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref
; V10 tmp6 [V10,T21] ( 3, 1.50) int -> rax
-;* V11 tmp7 [V11,T27] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V14 tmp10 [V14,T22] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
-; V15 tmp11 [V15,T26] ( 2, 1 ) int -> rcx
+;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V13 tmp9 [V13,T22] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
+; V14 tmp10 [V14,T26] ( 2, 1 ) int -> rcx
+;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp14 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp15 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp17 [V21,T01] ( 4, 8 ) int -> rcx "Inlining Arg"
-;* V22 tmp18 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp19 [V23,T03] ( 3, 6 ) int -> rbp "Inlining Arg"
-; V24 tmp20 [V24,T12] ( 2, 3.00) byref -> r14 single-def "Inlining Arg"
+;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V20 tmp16 [V20,T01] ( 4, 8 ) int -> rcx "Inlining Arg"
+;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V22 tmp18 [V22,T03] ( 3, 6 ) int -> rbp "Inlining Arg"
+; V23 tmp19 [V23,T12] ( 2, 3.00) byref -> r14 single-def "Inlining Arg"
+;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp23 [V27,T25] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V28 tmp24 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V29 tmp25 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V30 tmp26 [V30,T18] ( 2, 1.99) byref -> rcx single-def "Inlining Arg"
-;* V31 tmp27 [V31 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V32 tmp28 [V32,T05] ( 5, 5.00) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
-;* V33 tmp29 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V34 tmp30 [V34,T07] ( 4, 4 ) int -> rcx "Inlining Arg"
-;* V35 tmp31 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V36 tmp32 [V36,T10] ( 3, 3 ) int -> rbx "Inlining Arg"
-; V37 tmp33 [V37,T16] ( 3, 2.00) byref -> rsi single-def "Inlining Arg"
-;* V38 tmp34 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V39 tmp35 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V40 tmp36 [V40,T28] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V41 tmp37 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V42 tmp38 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V43 tmp39 [V43,T17] ( 3, 1.99) byref -> rdx single-def "Inlining Arg"
-; V44 tmp40 [V44,T19] ( 2, 1.99) long -> r8 "Inlining Arg"
-; V45 tmp41 [V45,T13] ( 3, 2.49) long -> r8 "spilling arg"
-; V46 tmp42 [V46,T20] ( 3, 1.50) byref -> rbp "field V13._reference (fldOffset=0x0)" P-INDEP
-; V47 tmp43 [V47,T23] ( 3, 1.50) int -> r14 "field V13._length (fldOffset=0x8)" P-INDEP
-;* V48 tmp44 [V48 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
-;* V49 tmp45 [V49 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-;* V50 tmp46 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
-;* V52 tmp48 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V53 tmp49 [V53 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-;* V54 tmp50 [V54 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V26 tmp22 [V26,T25] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp23 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V28 tmp24 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V29 tmp25 [V29,T18] ( 2, 1.99) byref -> rcx single-def "Inlining Arg"
+; V30 tmp26 [V30,T05] ( 5, 5.00) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
+;* V31 tmp27 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V32 tmp28 [V32,T08] ( 4, 4 ) int -> rcx "Inlining Arg"
+;* V33 tmp29 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V34 tmp30 [V34,T10] ( 3, 3 ) int -> rbx "Inlining Arg"
+; V35 tmp31 [V35,T16] ( 3, 2.00) byref -> rsi single-def "Inlining Arg"
+;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V37 tmp33 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V38 tmp34 [V38,T27] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V39 tmp35 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V40 tmp36 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V41 tmp37 [V41,T17] ( 3, 1.99) byref -> rdx single-def "Inlining Arg"
+; V42 tmp38 [V42,T19] ( 2, 1.99) long -> r8 "Inlining Arg"
+; V43 tmp39 [V43,T13] ( 3, 2.49) long -> r8 "spilling arg"
+; V44 tmp40 [V44,T20] ( 3, 1.50) byref -> rbp "field V12._reference (fldOffset=0x0)" P-INDEP
+; V45 tmp41 [V45,T23] ( 3, 1.50) int -> r14 "field V12._length (fldOffset=0x8)" P-INDEP
+;* V46 tmp42 [V46 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
+;* V48 tmp44 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V49 tmp45 [V49 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V50 tmp46 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+;* V52 tmp48 [V52 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V53 tmp49 [V53 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V54 tmp50 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V55 tmp51 [V55 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-;* V56 tmp52 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V57 tmp53 [V57 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V58 tmp54 [V58 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;* V59 tmp55 [V59 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
-; V60 tmp56 [V60,T09] ( 2, 4 ) int -> rdx "argument with side effect"
-; V61 cse0 [V61,T11] ( 3, 3 ) int -> rbp "CSE - moderate"
-; V62 cse1 [V62,T15] ( 4, 2.00) int -> r15 "CSE - moderate"
-; V63 cse2 [V63,T24] ( 3, 1.50) int -> rbx "CSE - moderate"
+;* V56 tmp52 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V57 tmp53 [V57 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+; V58 tmp54 [V58,T09] ( 2, 4 ) int -> rdx "argument with side effect"
+; V59 cse0 [V59,T11] ( 3, 3 ) int -> rbp "CSE - moderate"
+; V60 cse1 [V60,T07] ( 8, 4 ) ref -> rdx multi-def "CSE - aggressive"
+; V61 cse2 [V61,T15] ( 4, 2.00) int -> r15 "CSE - moderate"
+; V62 cse3 [V62,T24] ( 3, 1.50) int -> rbx "CSE - moderate"
;
; Lcl frame size = 72
@@ -186,14 +185,14 @@ G_M2170_IG08: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=8000 {r15
;; size=35 bbWeight=1 PerfScore 7.25
G_M2170_IG09: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, byref
; byrRegs -[rdx r15]
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
+ mov rcx, rdx
+ ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=26 bbWeight=0.50 PerfScore 1.75
+ ;; size=19 bbWeight=0.50 PerfScore 1.75
G_M2170_IG10: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, byref
cmp ebp, 2
jb G_M2170_IG17
@@ -208,7 +207,7 @@ G_M2170_IG11: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {
add ecx, 2
mov dword ptr [rsp+0x30], ecx
;; size=26 bbWeight=0.50 PerfScore 2.74
-G_M2170_IG12: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M2170_IG12: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; byrRegs -[r14]
mov rcx, gword ptr [rsi+0x68]
; gcrRegs +[rcx]
@@ -232,8 +231,8 @@ G_M2170_IG12: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
mov rdi, rax
; gcrRegs +[rdi]
cmp byte ptr [rsp+0x34], 0
- jne G_M2170_IG18
- ;; size=58 bbWeight=1 PerfScore 22.50
+ jne SHORT G_M2170_IG18
+ ;; size=54 bbWeight=1 PerfScore 22.50
G_M2170_IG13: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
test rdi, rdi
@@ -249,15 +248,15 @@ G_M2170_IG13: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, b
; byrRegs +[rsi]
sub ebx, ecx
jns SHORT G_M2170_IG14
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
+ mov rcx, rdx
+ ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=62 bbWeight=0.50 PerfScore 5.50
+ ;; size=55 bbWeight=0.50 PerfScore 5.50
G_M2170_IG14: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
mov r15d, dword ptr [rdi+0x08]
cmp r15d, ebx
@@ -351,7 +350,7 @@ G_M2170_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 608, prolog size 29, PerfScore 96.51, instruction count 148, allocated bytes for code 608 (MethodHash=02e5f785) for method System.Xml.Xsl.Runtime.XmlQueryRuntime:GenerateId(System.Xml.XPath.XPathNavigator):System.String:this (FullOpts)
+; Total bytes of code 590, prolog size 29, PerfScore 96.51, instruction count 148, allocated bytes for code 590 (MethodHash=02e5f785) for method System.Xml.Xsl.Runtime.XmlQueryRuntime:GenerateId(System.Xml.XPath.XPathNavigator):System.String:this (FullOpts)
; ============================================================
Unwind Info:
+9 (+1.56%) : 298302.dasm - System.Security.Claims.ClaimsIdentity:DebuggerToString():System.String:this (FullOpts)
@@ -8,50 +8,47 @@
; 7 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 7, 6.50) ref -> rbx this class-hnd single-def <System.Security.Claims.ClaimsIdentity>
+; V00 this [V00,T02] ( 8, 7.50) ref -> rbx this class-hnd single-def <System.Security.Claims.ClaimsIdentity>
; V01 loc0 [V01,T00] ( 5, 10.50) int -> rsi
-; V02 loc1 [V02,T04] ( 6, 4 ) ref -> r14 class-hnd <System.String>
+; V02 loc1 [V02,T04] ( 6, 4 ) ref -> rdi class-hnd <System.String>
; V03 loc2 [V03,T01] ( 7, 10 ) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 loc4 [V05 ] ( 15, 7.00) struct (40) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
-; V09 tmp3 [V09,T11] ( 2, 2 ) ref -> rdx
-; V10 tmp4 [V10,T12] ( 2, 2 ) ref -> rcx class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V09 tmp3 [V09,T10] ( 2, 2 ) ref -> rdx
+;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V11 tmp5 [V11 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V12 tmp6 [V12,T03] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V14 tmp8 [V14,T21] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V15 tmp9 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V17 tmp11 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V18 tmp12 [V18,T05] ( 4, 4 ) int -> rcx "Inlining Arg"
-;* V19 tmp13 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V20 tmp14 [V20,T07] ( 3, 3 ) int -> rdi "Inlining Arg"
-; V21 tmp15 [V21,T15] ( 2, 2.00) byref -> rbx single-def "Inlining Arg"
+;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V17 tmp11 [V17,T05] ( 4, 4 ) int -> rcx "Inlining Arg"
+;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V19 tmp13 [V19,T07] ( 3, 3 ) int -> r14 "Inlining Arg"
+; V20 tmp14 [V20,T13] ( 2, 2.00) byref -> rbx single-def "Inlining Arg"
+;* V21 tmp15 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp16 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp17 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V24 tmp18 [V24,T20] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V25 tmp19 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V26 tmp20 [V26 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V27 tmp21 [V27,T16] ( 2, 1.99) byref -> rcx single-def "Inlining Arg"
-;* V28 tmp22 [V28 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V29 tmp23 [V29,T17] ( 3, 1 ) byref -> rbx "field V16._reference (fldOffset=0x0)" P-INDEP
-; V30 tmp24 [V30,T18] ( 3, 1 ) int -> rdi "field V16._length (fldOffset=0x8)" P-INDEP
-;* V31 tmp25 [V31 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
-;* V35 tmp29 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp30 [V36 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
-; V37 tmp31 [V37,T06] ( 2, 4 ) ref -> rcx single-def "argument with side effect"
-; V38 tmp32 [V38,T13] ( 2, 2 ) ref -> r8 single-def "argument with side effect"
-; V39 tmp33 [V39,T14] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V40 PSPSym [V40,T19] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
-; V41 cse0 [V41,T08] ( 3, 3 ) long -> r14 "CSE - aggressive"
-; V42 cse1 [V42,T10] ( 3, 2.50) long -> rdi "CSE - moderate"
-; V43 cse2 [V43,T09] ( 3, 3 ) long -> rdi "CSE - aggressive"
+;* V23 tmp17 [V23,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V25 tmp19 [V25 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V26 tmp20 [V26,T14] ( 2, 1.99) byref -> rcx single-def "Inlining Arg"
+; V27 tmp21 [V27,T15] ( 3, 1 ) byref -> rbx "field V15._reference (fldOffset=0x0)" P-INDEP
+; V28 tmp22 [V28,T16] ( 3, 1 ) int -> r14 "field V15._length (fldOffset=0x8)" P-INDEP
+;* V29 tmp23 [V29 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP
+;* V30 tmp24 [V30 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
+;* V31 tmp25 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
+; V35 tmp29 [V35,T06] ( 2, 4 ) ref -> rcx single-def "argument with side effect"
+; V36 tmp30 [V36,T11] ( 2, 2 ) ref -> r8 single-def "argument with side effect"
+; V37 tmp31 [V37,T12] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V38 PSPSym [V38,T17] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
+; V39 cse0 [V39,T08] ( 3, 3 ) long -> rdi "CSE - aggressive"
+; V40 cse1 [V40,T09] ( 3, 2.50) long -> r14 "CSE - moderate"
;
; Lcl frame size = 96
@@ -76,9 +73,9 @@ G_M25469_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
xor esi, esi
mov rcx, rbx
; gcrRegs +[rcx]
- mov rdi, qword ptr [rbx]
- mov r14, qword ptr [rdi+0x48]
- call [r14+0x30]<unknown method>
+ mov rax, qword ptr [rbx]
+ mov rdi, qword ptr [rax+0x48]
+ call [rdi+0x30]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
@@ -91,7 +88,7 @@ G_M25469_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rcx]
mov gword ptr [rbp-0x50], rcx
; GC ptr vars +{V03}
- ;; size=39 bbWeight=1 PerfScore 12.25
+ ;; size=38 bbWeight=1 PerfScore 12.25
G_M25469_IG03: ; bbWeight=1, gcVars=0000000000000002 {V03}, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax]
mov r11, 0xD1FFAB1E ; function address
@@ -128,7 +125,7 @@ G_M25469_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov rcx, rbx
; gcrRegs +[rcx]
- call [r14+0x28]<unknown method>
+ call [rdi+0x28]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
mov rdx, 0xD1FFAB1E
@@ -141,42 +138,44 @@ G_M25469_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call [System.String:Concat(System.String,System.String):System.String]
; gcrRegs -[rcx rdx] +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov rdi, rax
+ ; gcrRegs +[rdi]
mov rcx, rbx
; gcrRegs +[rcx]
- mov rdi, qword ptr [rdi+0x50]
- call [rdi]<unknown method>
- ; gcrRegs -[rcx]
+ mov rax, qword ptr [rbx]
+ ; gcrRegs -[rax]
+ mov r14, qword ptr [rax+0x50]
+ call [r14]<unknown method>
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
test rax, rax
je SHORT G_M25469_IG07
- ;; size=83 bbWeight=1 PerfScore 18.50
-G_M25469_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ ;; size=86 bbWeight=1 PerfScore 20.50
+G_M25469_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, rbx
; gcrRegs +[rcx]
- call [rdi]<unknown method>
+ call [r14]<unknown method>
; gcrRegs -[rcx rbx] +[rax]
; gcr arg pop 0
mov r8, rax
; gcrRegs +[r8]
- mov rcx, r14
+ mov rcx, rdi
; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
call [<unknown method>]
- ; gcrRegs -[rcx rdx r8 r14]
+ ; gcrRegs -[rcx rdx rdi r8]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
- ;; size=30 bbWeight=0.50 PerfScore 3.62
-G_M25469_IG07: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+ mov rdi, rax
+ ; gcrRegs +[rdi]
+ ;; size=31 bbWeight=0.50 PerfScore 3.62
+G_M25469_IG07: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
test esi, esi
jle G_M25469_IG14
;; size=8 bbWeight=1 PerfScore 1.25
-G_M25469_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M25469_IG08: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
mov gword ptr [rbp-0x48], rcx
@@ -193,12 +192,12 @@ G_M25469_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
je G_M25469_IG16
lea rbx, bword ptr [rax+0x10]
; byrRegs +[rbx]
- mov edi, dword ptr [rax+0x08]
- ;; size=50 bbWeight=0.50 PerfScore 5.75
-G_M25469_IG09: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref, isz
+ mov r14d, dword ptr [rax+0x08]
+ ;; size=51 bbWeight=0.50 PerfScore 5.75
+G_M25469_IG09: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
; gcrRegs -[rax]
mov bword ptr [rbp-0x30], rbx
- mov dword ptr [rbp-0x28], edi
+ mov dword ptr [rbp-0x28], r14d
xor ecx, ecx
mov dword ptr [rbp-0x38], ecx
mov byte ptr [rbp-0x34], 0
@@ -209,8 +208,8 @@ G_M25469_IG09: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx
; byrRegs +[rdx]
mov eax, ecx
lea rbx, bword ptr [rdx+2*rax]
- mov edi, dword ptr [rbp-0x28]
- sub edi, ecx
+ mov r14d, dword ptr [rbp-0x28]
+ sub r14d, ecx
jns SHORT G_M25469_IG10
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -220,12 +219,12 @@ G_M25469_IG09: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=71 bbWeight=0.50 PerfScore 7.88
-G_M25469_IG10: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref, isz
- cmp edi, 11
+ ;; size=74 bbWeight=0.50 PerfScore 7.88
+G_M25469_IG10: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
+ cmp r14d, 11
jb SHORT G_M25469_IG12
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M25469_IG11: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx}, byref, isz
+ ;; size=6 bbWeight=0.50 PerfScore 0.62
+G_M25469_IG11: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0008 {rbx}, byref, isz
mov rcx, 0xD1FFAB1E
; byrRegs +[rcx]
vmovdqu xmm0, xmmword ptr [rcx]
@@ -238,7 +237,7 @@ G_M25469_IG11: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0008 {rbx
mov dword ptr [rbp-0x38], ecx
jmp SHORT G_M25469_IG13
;; size=39 bbWeight=0.50 PerfScore 8.23
-G_M25469_IG12: ; bbWeight=0.00, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M25469_IG12: ; bbWeight=0.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; byrRegs -[rbx]
lea rcx, [rbp-0x48]
mov rdx, 0xD1FFAB1E
@@ -247,7 +246,7 @@ G_M25469_IG12: ; bbWeight=0.00, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcrRegs -[rdx]
; gcr arg pop 0
;; size=20 bbWeight=0.00 PerfScore 0.01
-G_M25469_IG13: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M25469_IG13: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x48]
mov edx, esi
call [<unknown method>]
@@ -258,17 +257,17 @@ G_M25469_IG13: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcr arg pop 0
mov rdx, rax
; gcrRegs +[rdx]
- mov rcx, r14
+ mov rcx, rdi
; gcrRegs +[rcx]
call [System.String:Concat(System.String,System.String):System.String]
- ; gcrRegs -[rcx rdx r14]
+ ; gcrRegs -[rcx rdx rdi]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov rdi, rax
...
+6 (+2.48%) : 27159.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
@@ -8,27 +8,29 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> rcx single-def
-; V01 loc0 [V01,T02] ( 5, 3.50) int -> rsi
-; V02 loc1 [V02,T03] ( 6, 3 ) ref -> rdi class-hnd <ushort[]>
+; V00 arg0 [V00,T00] ( 4, 3.50) ushort -> rbx single-def
+; V01 loc0 [V01,T01] ( 5, 3.50) int -> rdi
+; V02 loc1 [V02,T03] ( 6, 3 ) ref -> rbp class-hnd <ushort[]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 3, 3 ) ref -> rcx single-def "arr expr"
; V05 tmp2 [V05,T05] ( 3, 3 ) ref -> rax single-def "arr expr"
-; V06 cse0 [V06,T06] ( 3, 1.50) int -> rax "CSE - moderate"
-; V07 cse1 [V07,T01] ( 6, 4 ) int -> rbx "CSE - aggressive"
+; V06 cse0 [V06,T02] ( 5, 3.50) int -> rsi "CSE - aggressive"
+; V07 cse1 [V07,T06] ( 3, 1.50) int -> rax "CSE - moderate"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M5920_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rdi
push rsi
+ push rbp
push rbx
- sub rsp, 32
- ;; size=7 bbWeight=1 PerfScore 3.25
+ sub rsp, 40
+ mov ebx, ecx
+ ;; size=10 bbWeight=1 PerfScore 4.50
G_M5920_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rbx, cx
- mov esi, ebx
- sar esi, 8
+ movzx rsi, bx
+ mov edi, esi
+ sar edi, 8
jne SHORT G_M5920_IG06
;; size=10 bbWeight=1 PerfScore 2.00
G_M5920_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -39,19 +41,20 @@ G_M5920_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
- cmp ebx, dword ptr [rax+0x08]
+ cmp esi, dword ptr [rax+0x08]
jae G_M5920_IG12
- mov ecx, ebx
+ mov ecx, esi
movzx rax, word ptr [rax+2*rcx+0x10]
; gcrRegs -[rax]
;; size=29 bbWeight=0.50 PerfScore 4.25
G_M5920_IG05: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx
+ pop rbp
pop rsi
pop rdi
ret
- ;; size=8 bbWeight=0.50 PerfScore 1.38
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
G_M5920_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
test byte ptr [(reloc)], 1 ; global ptr
je G_M5920_IG14
@@ -60,54 +63,56 @@ G_M5920_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
- cmp esi, dword ptr [rcx+0x08]
+ cmp edi, dword ptr [rcx+0x08]
jae SHORT G_M5920_IG12
- mov edx, esi
- mov rdi, gword ptr [rcx+8*rdx+0x10]
- ; gcrRegs +[rdi]
+ mov edx, edi
+ mov rbp, gword ptr [rcx+8*rdx+0x10]
+ ; gcrRegs +[rbp]
mov rcx, 0xD1FFAB1E
; gcrRegs -[rcx]
mov edx, 152
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
; gcr arg pop 0
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rdi, gword ptr [rax]
+ cmp rbp, gword ptr [rax]
jne SHORT G_M5920_IG09
- mov eax, ebx
+ mov eax, esi
;; size=62 bbWeight=0.50 PerfScore 7.25
G_M5920_IG08: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx
+ pop rbp
pop rsi
pop rdi
ret
- ;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M5920_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- test rdi, rdi
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M5920_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, gcvars, byref, isz
+ test rbp, rbp
jne SHORT G_M5920_IG10
- mov ecx, esi
+ mov ecx, edi
call [System.Globalization.OrdinalCasing:InitOrdinalCasingPage(int):ushort[]]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rbp] +[rax]
; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
+ mov rbp, rax
+ ; gcrRegs +[rbp]
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M5920_IG10: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+G_M5920_IG10: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
movzx rax, bl
- cmp eax, dword ptr [rdi+0x08]
+ cmp eax, dword ptr [rbp+0x08]
jae SHORT G_M5920_IG12
- movzx rax, word ptr [rdi+2*rax+0x10]
+ movzx rax, word ptr [rbp+2*rax+0x10]
;; size=13 bbWeight=0.50 PerfScore 3.12
G_M5920_IG11: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 32
+ add rsp, 40
pop rbx
+ pop rbp
pop rsi
pop rdi
ret
- ;; size=8 bbWeight=0.50 PerfScore 1.38
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
G_M5920_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rbp]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
@@ -126,7 +131,7 @@ G_M5920_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jmp G_M5920_IG07
;; size=25 bbWeight=0 PerfScore 0.00
-; Total bytes of code 242, prolog size 7, PerfScore 30.38, instruction count 64, allocated bytes for code 242 (MethodHash=cfe0e8df) for method System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
+; Total bytes of code 248, prolog size 8, PerfScore 32.38, instruction count 69, allocated bytes for code 248 (MethodHash=cfe0e8df) for method System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
; ============================================================
Unwind Info:
@@ -134,12 +139,13 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x07
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 5
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+16 (+6.69%) : 129235.dasm - System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
@@ -15,17 +15,17 @@
; V04 tmp1 [V04,T04] ( 3, 4 ) int -> rbp "impAppendStmt"
; V05 tmp2 [V05,T00] ( 9, 18 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
; V06 tmp3 [V06 ] ( 2, 4 ) struct (16) [rsp+0x20] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
-;* V07 tmp4 [V07,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp5 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V10 tmp7 [V10,T10] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V12 tmp9 [V12,T11] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
; V13 tmp10 [V13,T05] ( 2, 4 ) short -> [rsp+0x20] do-not-enreg[H] hidden-struct-arg "field V06._offsetMinutes (fldOffset=0x0)" P-DEP
; V14 tmp11 [V14,T06] ( 2, 4 ) long -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V06._dateTime (fldOffset=0x8)" P-DEP
-; V15 tmp12 [V15,T13] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V15 tmp12 [V15,T11] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V16 cse0 [V16,T07] ( 4, 3.50) int -> rbp "CSE - aggressive"
-;* V17 cse1 [V17,T08] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V17 cse1 [V17,T08] ( 3, 3 ) ref -> rbx "CSE - aggressive"
;
; Lcl frame size = 48
@@ -95,9 +95,22 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
vmovups xmm0, xmmword ptr [rsp+0x20]
vmovups xmmword ptr [r14+0x88], xmm0
mov byte ptr [r14+0x84], sil
- mov rcx, 0xD1FFAB1E
- mov gword ptr [r14+0x20], rcx
- mov gword ptr [r14+0x28], rcx
+ mov rbx, 0xD1FFAB1E
+ ; gcrRegs +[rbx]
+ lea rcx, bword ptr [r14+0x20]
+ ; byrRegs +[rcx]
+ mov rdx, rbx
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [r14+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, rbx
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rbx]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rdi+0x08]
; byrRegs +[rcx]
mov rdx, r14
@@ -106,7 +119,7 @@ G_M15258_IG07: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
; gcrRegs -[rdx rdi r14]
; byrRegs -[rcx]
nop
- ;; size=106 bbWeight=1 PerfScore 19.00
+ ;; size=122 bbWeight=1 PerfScore 20.50
G_M15258_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbx
@@ -133,7 +146,7 @@ G_M15258_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
int3
;; size=33 bbWeight=0 PerfScore 0.00
-; Total bytes of code 239, prolog size 13, PerfScore 39.97, instruction count 60, allocated bytes for code 239 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
+; Total bytes of code 255, prolog size 13, PerfScore 41.47, instruction count 64, allocated bytes for code 255 (MethodHash=93c3c465) for method System.Formats.Tar.V7TarEntry:.ctor(ubyte,System.String):this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-18 (-62.07%) : 446344.dasm - TestType:meth1():int (Tier0)
@@ -14,21 +14,14 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 1
- inc eax
- mov ecx, 1
- inc ecx
- inc ecx
- add eax, ecx
- add eax, 2
- inc eax
- ;; size=23 bbWeight=1 PerfScore 2.00
+ mov eax, 8
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 29, prolog size 4, PerfScore 4.75, instruction count 12, allocated bytes for code 29 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
-9 (-45.00%) : 71000.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
@@ -14,17 +14,14 @@ G_M23088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M23088_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 512
- mov ecx, 8
- xor edx, edx
- div edx:eax, ecx
- ;; size=14 bbWeight=1 PerfScore 25.75
+ mov eax, 64
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M23088_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 20, prolog size 4, PerfScore 28.50, instruction count 8, allocated bytes for code 20 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
+; Total bytes of code 11, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 11 (MethodHash=2b27a5cf) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
-10 (-38.46%) : 71382.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
@@ -14,18 +14,14 @@ G_M24709_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M24709_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 512
- mov ecx, 3
- xor edx, edx
- div edx:eax, ecx
- mov dword ptr [(reloc)], eax
- ;; size=20 bbWeight=1 PerfScore 26.75
+ mov dword ptr [(reloc)], 170 ; data for <unknown class>:<unknown field>
+ ;; size=10 bbWeight=1 PerfScore 1.00
G_M24709_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 29.50, instruction count 9, allocated bytes for code 26 (MethodHash=c5b29f7a) for method System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
+; Total bytes of code 16, prolog size 4, PerfScore 3.75, instruction count 5, allocated bytes for code 16 (MethodHash=c5b29f7a) for method System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
; ============================================================
Unwind Info:
+4 (+8.51%) : 415960.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
@@ -34,14 +34,18 @@ G_M24130_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[rax]
mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- and dword ptr [rax+0x10], 255
- ;; size=11 bbWeight=1 PerfScore 4.00
+ movzx rax, byte ptr [rax+0x10]
+ ; byrRegs -[rax]
+ mov rcx, bword ptr [rbp+0x10]
+ ; byrRegs +[rcx]
+ mov dword ptr [rcx+0x10], eax
+ ;; size=15 bbWeight=1 PerfScore 5.00
G_M24130_IG05: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 47, prolog size 4, PerfScore 16.75, instruction count 16, allocated bytes for code 47 (MethodHash=2fdaa1bd) for method MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
+; Total bytes of code 51, prolog size 4, PerfScore 17.75, instruction count 18, allocated bytes for code 51 (MethodHash=2fdaa1bd) for method MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
; ============================================================
Unwind Info:
+3 (+18.75%) : 272195.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,14 +18,15 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbp+0x10]
sar eax, 16
+ movzx rax, ax
cwde
- ;; size=7 bbWeight=1 PerfScore 1.75
+ ;; size=10 bbWeight=1 PerfScore 2.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 16, prolog size 4, PerfScore 5.50, instruction count 8, allocated bytes for code 16 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 19, prolog size 4, PerfScore 5.75, instruction count 9, allocated bytes for code 19 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
+3 (+23.08%) : 272194.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,14 +17,15 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=7 bbWeight=1 PerfScore 2.25
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbp+0x10]
+ movzx rax, ax
cwde
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=7 bbWeight=1 PerfScore 1.50
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 13, prolog size 4, PerfScore 5.00, instruction count 7, allocated bytes for code 13 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 16, prolog size 4, PerfScore 5.25, instruction count 8, allocated bytes for code 16 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
librariestestsnotieredcompilation.run.windows.x64.Release.mch
-9 (-13.24%) : 81026.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass50:b__0():this (FullOpts)
@@ -29,13 +29,12 @@ G_M1950_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
; gcrRegs +[rax]
cmp dword ptr [rax+0x08], -1
jbe SHORT G_M1950_IG04
- mov rdx, 0xD1FFAB1E
- add rax, rdx
+ add rax, 12
; gcrRegs -[rax]
; byrRegs +[rax]
or dword ptr [rax], 0xD1FFAB1E
inc dword ptr [rcx+0x14]
- ;; size=42 bbWeight=1 PerfScore 18.50
+ ;; size=33 bbWeight=1 PerfScore 18.25
G_M1950_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
@@ -53,7 +52,7 @@ G_M1950_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 68, prolog size 4, PerfScore 20.00, instruction count 17, allocated bytes for code 68 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
+; Total bytes of code 59, prolog size 4, PerfScore 19.75, instruction count 16, allocated bytes for code 59 (MethodHash=2d65f861) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
; ============================================================
Unwind Info:
-10 (-11.63%) : 81019.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__2():System.Object:this (FullOpts)
@@ -35,12 +35,11 @@ G_M31437_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs +[rcx]
cmp dword ptr [rcx+0x08], -1
jbe SHORT G_M31437_IG04
- mov rdx, 0xD1FFAB1E
- test dword ptr [rcx+rdx], 0xD1FFAB1E
+ test dword ptr [rcx+0x0C], 0xD1FFAB1E
setne cl
; gcrRegs -[rcx]
mov byte ptr [rax+0x08], cl
- ;; size=58 bbWeight=1 PerfScore 18.50
+ ;; size=48 bbWeight=1 PerfScore 18.25
G_M31437_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -58,7 +57,7 @@ G_M31437_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 86, prolog size 5, PerfScore 21.50, instruction count 21, allocated bytes for code 86 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
+; Total bytes of code 76, prolog size 5, PerfScore 21.25, instruction count 20, allocated bytes for code 76 (MethodHash=9cbc8532) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
-10 (-11.63%) : 81016.dasm - System.Collections.Tests.BitArrayGetSetTests+<>cDisplayClass40:b__0():System.Object:this (FullOpts)
@@ -35,12 +35,11 @@ G_M55567_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs +[rcx]
cmp dword ptr [rcx+0x08], -1
jbe SHORT G_M55567_IG04
- mov rdx, 0xD1FFAB1E
- test dword ptr [rcx+rdx], 0xD1FFAB1E
+ test dword ptr [rcx+0x0C], 0xD1FFAB1E
setne cl
; gcrRegs -[rcx]
mov byte ptr [rax+0x08], cl
- ;; size=58 bbWeight=1 PerfScore 18.50
+ ;; size=48 bbWeight=1 PerfScore 18.25
G_M55567_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -58,7 +57,7 @@ G_M55567_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 86, prolog size 5, PerfScore 21.50, instruction count 21, allocated bytes for code 86 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
+; Total bytes of code 76, prolog size 5, PerfScore 21.25, instruction count 20, allocated bytes for code 76 (MethodHash=413326f0) for method System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
+18 (+10.53%) : 124076.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_11():System.Object:this (FullOpts)
@@ -13,27 +13,28 @@
; V02 tmp1 [V02,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
;* V03 tmp2 [V03,T05] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V04 tmp3 [V04,T00] ( 9, 18 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
-; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x28] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
+; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x20] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
-; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x30] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x20] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
+; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T04] ( 3, 3 ) ref -> rdi "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M8078_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push rdi
push rsi
push rbx
- sub rsp, 56
+ sub rsp, 48
vzeroupper
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=10 bbWeight=1 PerfScore 4.25
G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -54,7 +55,7 @@ G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov rsi, rax
; gcrRegs +[rsi]
- lea rcx, [rsp+0x28]
+ lea rcx, [rsp+0x20]
call [System.DateTimeOffset:get_UtcNow():System.DateTimeOffset]
; gcrRegs -[rax]
; gcr arg pop 0
@@ -63,13 +64,26 @@ G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov gword ptr [rsi+0x10], rcx
mov dword ptr [rsi+0x6C], 420
- vmovups xmm0, xmmword ptr [rsp+0x28]
+ vmovups xmm0, xmmword ptr [rsp+0x20]
vmovups xmmword ptr [rsi+0x88], xmm0
mov byte ptr [rsi+0x84], 52
- mov rcx, 0xD1FFAB1E
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ lea rcx, bword ptr [rsi+0x20]
; gcrRegs -[rcx]
- mov gword ptr [rsi+0x20], rcx
- mov gword ptr [rsi+0x28], rcx
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [rsi+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rdi]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rbx+0x08]
; byrRegs +[rcx]
mov rdx, rsi
@@ -79,15 +93,16 @@ G_M8078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=155 bbWeight=1 PerfScore 23.75
+ ;; size=171 bbWeight=1 PerfScore 25.25
G_M8078_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
+ add rsp, 48
pop rbx
pop rsi
+ pop rdi
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 171, prolog size 9, PerfScore 29.25, instruction count 34, allocated bytes for code 171 (MethodHash=b788e071) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
+; Total bytes of code 189, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 189 (MethodHash=b788e071) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,11 +110,12 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+18 (+10.53%) : 124080.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_14():System.Object:this (FullOpts)
@@ -13,27 +13,28 @@
; V02 tmp1 [V02,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
;* V03 tmp2 [V03,T05] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V04 tmp3 [V04,T00] ( 9, 18 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
-; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x28] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
+; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x20] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
-; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x30] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x20] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
+; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T04] ( 3, 3 ) ref -> rdi "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M3179_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push rdi
push rsi
push rbx
- sub rsp, 56
+ sub rsp, 48
vzeroupper
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=10 bbWeight=1 PerfScore 4.25
G_M3179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -54,7 +55,7 @@ G_M3179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov rsi, rax
; gcrRegs +[rsi]
- lea rcx, [rsp+0x28]
+ lea rcx, [rsp+0x20]
call [System.DateTimeOffset:get_UtcNow():System.DateTimeOffset]
; gcrRegs -[rax]
; gcr arg pop 0
@@ -63,13 +64,26 @@ G_M3179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov gword ptr [rsi+0x10], rcx
mov dword ptr [rsi+0x6C], 493
- vmovups xmm0, xmmword ptr [rsp+0x28]
+ vmovups xmm0, xmmword ptr [rsp+0x20]
vmovups xmmword ptr [rsi+0x88], xmm0
mov byte ptr [rsi+0x84], 68
- mov rcx, 0xD1FFAB1E
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ lea rcx, bword ptr [rsi+0x20]
; gcrRegs -[rcx]
- mov gword ptr [rsi+0x20], rcx
- mov gword ptr [rsi+0x28], rcx
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [rsi+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rdi]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rbx+0x08]
; byrRegs +[rcx]
mov rdx, rsi
@@ -79,15 +93,16 @@ G_M3179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=155 bbWeight=1 PerfScore 23.75
+ ;; size=171 bbWeight=1 PerfScore 25.25
G_M3179_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
+ add rsp, 48
pop rbx
pop rsi
+ pop rdi
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 171, prolog size 9, PerfScore 29.25, instruction count 34, allocated bytes for code 171 (MethodHash=af8df394) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
+; Total bytes of code 189, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 189 (MethodHash=af8df394) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,11 +110,12 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+18 (+10.53%) : 124088.dasm - System.Formats.Tar.Tests.V7TarEntryTests+<>c:<ConstructorUnsupportedEntryTypes>b_110():System.Object:this (FullOpts)
@@ -13,27 +13,28 @@
; V02 tmp1 [V02,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.V7TarEntry>
;* V03 tmp2 [V03,T05] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V04 tmp3 [V04,T00] ( 9, 18 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Formats.Tar.TarHeader>
-; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x28] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
+; V05 tmp4 [V05 ] ( 2, 4 ) struct (16) [rsp+0x20] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
;* V06 tmp5 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V09 tmp8 [V09,T06] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
+;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-;* V11 tmp10 [V11,T07] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
-; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x30] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
+;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
+; V12 tmp11 [V12,T02] ( 2, 4 ) short -> [rsp+0x20] do-not-enreg[H] hidden-struct-arg "field V05._offsetMinutes (fldOffset=0x0)" P-DEP
+; V13 tmp12 [V13,T03] ( 2, 4 ) long -> [rsp+0x28] do-not-enreg[H] hidden-struct-arg "field V05._dateTime (fldOffset=0x8)" P-DEP
;* V14 tmp13 [V14 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V15 tmp14 [V15 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V16 cse0 [V16,T04] ( 0, 0 ) ref -> zero-ref "CSE - aggressive"
+; V16 cse0 [V16,T04] ( 3, 3 ) ref -> rdi "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M58814_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push rdi
push rsi
push rbx
- sub rsp, 56
+ sub rsp, 48
vzeroupper
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=10 bbWeight=1 PerfScore 4.25
G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Formats.Tar.V7TarEntry
call CORINFO_HELP_NEWSFAST
@@ -54,7 +55,7 @@ G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov rsi, rax
; gcrRegs +[rsi]
- lea rcx, [rsp+0x28]
+ lea rcx, [rsp+0x20]
call [System.DateTimeOffset:get_UtcNow():System.DateTimeOffset]
; gcrRegs -[rax]
; gcr arg pop 0
@@ -63,13 +64,26 @@ G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov gword ptr [rsi+0x10], rcx
mov dword ptr [rsi+0x6C], 420
- vmovups xmm0, xmmword ptr [rsp+0x28]
+ vmovups xmm0, xmmword ptr [rsp+0x20]
vmovups xmmword ptr [rsi+0x88], xmm0
mov byte ptr [rsi+0x84], 77
- mov rcx, 0xD1FFAB1E
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ lea rcx, bword ptr [rsi+0x20]
; gcrRegs -[rcx]
- mov gword ptr [rsi+0x20], rcx
- mov gword ptr [rsi+0x28], rcx
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [rsi+0x28]
+ ; byrRegs +[rcx]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rdi]
+ ; byrRegs -[rcx]
lea rcx, bword ptr [rbx+0x08]
; byrRegs +[rcx]
mov rdx, rsi
@@ -79,15 +93,16 @@ G_M58814_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=155 bbWeight=1 PerfScore 23.75
+ ;; size=171 bbWeight=1 PerfScore 25.25
G_M58814_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
+ add rsp, 48
pop rbx
pop rsi
+ pop rdi
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 171, prolog size 9, PerfScore 29.25, instruction count 34, allocated bytes for code 171 (MethodHash=620c1a41) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
+; Total bytes of code 189, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 189 (MethodHash=620c1a41) for method System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,11 +110,12 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
realworld.run.windows.x64.checked.mch
-19 (-5.60%) : 721.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
@@ -12,42 +12,42 @@
; V01 arg1 [V01,T03] ( 3, 3 ) int -> rbp single-def
; V02 arg2 [V02,T02] ( 4, 4 ) int -> rdi single-def
; V03 arg3 [V03,T01] ( 8, 8 ) ref -> rsi class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
-; V04 arg4 [V04,T20] ( 1, 1 ) struct ( 8) [rsp+0x100] single-def <BepuPhysics.CollisionDetection.CollidablePairComparer>
-; V05 loc0 [V05 ] ( 6, 6 ) struct (16) [rsp+0x98] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[BepuPhysics.CollisionDetection.CollidablePair]>
-; V06 loc1 [V06 ] ( 4, 4 ) struct (16) [rsp+0x88] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[BepuPhysics.CollisionDetection.CollidablePairPointers]>
-; V07 loc2 [V07 ] ( 6, 6 ) struct (16) [rsp+0x78] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
+; V04 arg4 [V04,T21] ( 1, 1 ) struct ( 8) [rsp+0xF0] single-def <BepuPhysics.CollisionDetection.CollidablePairComparer>
+; V05 loc0 [V05 ] ( 6, 6 ) struct (16) [rsp+0x88] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[BepuPhysics.CollisionDetection.CollidablePair]>
+; V06 loc1 [V06 ] ( 4, 4 ) struct (16) [rsp+0x78] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[BepuPhysics.CollisionDetection.CollidablePairPointers]>
+; V07 loc2 [V07 ] ( 6, 6 ) struct (16) [rsp+0x68] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
; V08 OutArgs [V08 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T05] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
; V10 tmp2 [V10,T06] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
; V11 tmp3 [V11,T07] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
-; V12 tmp4 [V12,T08] ( 2, 4 ) struct (72) [rsp+0x30] do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]>
-; V13 tmp5 [V13,T09] ( 2, 4 ) int -> [rsp+0x2C] spill-single-def "Inlining Arg"
-;* V14 tmp6 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V12 tmp4 [V12,T08] ( 2, 4 ) struct (72) [rsp+0x20] do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]>
+; V13 tmp5 [V13,T09] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V14 tmp6 [V14,T10] ( 2, 4 ) long -> rax "Inlining Arg"
;* V15 tmp7 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V16 tmp8 [V16 ] ( 2, 2 ) long -> [rsp+0x98] do-not-enreg[X] addr-exposed "field V05.Memory (fldOffset=0x0)" P-DEP
-; V17 tmp9 [V17 ] ( 4, 4 ) int -> [rsp+0xA0] do-not-enreg[X] addr-exposed "field V05.length (fldOffset=0x8)" P-DEP
-; V18 tmp10 [V18 ] ( 2, 2 ) int -> [rsp+0xA4] do-not-enreg[X] addr-exposed "field V05.Id (fldOffset=0xc)" P-DEP
-; V19 tmp11 [V19 ] ( 2, 2 ) long -> [rsp+0x88] do-not-enreg[X] addr-exposed "field V06.Memory (fldOffset=0x0)" P-DEP
-; V20 tmp12 [V20 ] ( 2, 2 ) int -> [rsp+0x90] do-not-enreg[X] addr-exposed "field V06.length (fldOffset=0x8)" P-DEP
-; V21 tmp13 [V21 ] ( 2, 2 ) int -> [rsp+0x94] do-not-enreg[X] addr-exposed "field V06.Id (fldOffset=0xc)" P-DEP
-; V22 tmp14 [V22 ] ( 3, 3 ) long -> [rsp+0x78] do-not-enreg[X] addr-exposed "field V07.Memory (fldOffset=0x0)" P-DEP
-; V23 tmp15 [V23 ] ( 3, 3 ) int -> [rsp+0x80] do-not-enreg[X] addr-exposed "field V07.length (fldOffset=0x8)" P-DEP
-; V24 tmp16 [V24 ] ( 2, 2 ) int -> [rsp+0x84] do-not-enreg[X] addr-exposed "field V07.Id (fldOffset=0xc)" P-DEP
+; V16 tmp8 [V16 ] ( 2, 2 ) long -> [rsp+0x88] do-not-enreg[X] addr-exposed "field V05.Memory (fldOffset=0x0)" P-DEP
+; V17 tmp9 [V17 ] ( 4, 4 ) int -> [rsp+0x90] do-not-enreg[X] addr-exposed "field V05.length (fldOffset=0x8)" P-DEP
+; V18 tmp10 [V18 ] ( 2, 2 ) int -> [rsp+0x94] do-not-enreg[X] addr-exposed "field V05.Id (fldOffset=0xc)" P-DEP
+; V19 tmp11 [V19 ] ( 2, 2 ) long -> [rsp+0x78] do-not-enreg[X] addr-exposed "field V06.Memory (fldOffset=0x0)" P-DEP
+; V20 tmp12 [V20 ] ( 2, 2 ) int -> [rsp+0x80] do-not-enreg[X] addr-exposed "field V06.length (fldOffset=0x8)" P-DEP
+; V21 tmp13 [V21 ] ( 2, 2 ) int -> [rsp+0x84] do-not-enreg[X] addr-exposed "field V06.Id (fldOffset=0xc)" P-DEP
+; V22 tmp14 [V22 ] ( 3, 3 ) long -> [rsp+0x68] do-not-enreg[X] addr-exposed "field V07.Memory (fldOffset=0x0)" P-DEP
+; V23 tmp15 [V23 ] ( 3, 3 ) int -> [rsp+0x70] do-not-enreg[X] addr-exposed "field V07.length (fldOffset=0x8)" P-DEP
+; V24 tmp16 [V24 ] ( 2, 2 ) int -> [rsp+0x74] do-not-enreg[X] addr-exposed "field V07.Id (fldOffset=0xc)" P-DEP
;* V25 tmp17 [V25 ] ( 0, 0 ) int -> zero-ref "V12.[000..004)"
-; V26 tmp18 [V26,T11] ( 2, 2 ) int -> r14 "V12.[004..008)"
+; V26 tmp18 [V26,T12] ( 2, 2 ) int -> r14 "V12.[004..008)"
;* V27 tmp19 [V27 ] ( 0, 0 ) int -> zero-ref "V12.[008..012)"
-; V28 tmp20 [V28,T12] ( 2, 2 ) long -> r11 "V12.[016..024)"
-; V29 tmp21 [V29,T10] ( 3, 3 ) int -> rsi "V12.[024..028)"
-; V30 tmp22 [V30,T13] ( 2, 2 ) int -> rbp "V12.[028..032)"
-; V31 tmp23 [V31,T14] ( 2, 2 ) long -> rax "V12.[032..040)"
-; V32 tmp24 [V32,T15] ( 2, 2 ) int -> rcx "V12.[040..044)"
-; V33 tmp25 [V33,T16] ( 2, 2 ) int -> rdx "V12.[044..048)"
-; V34 tmp26 [V34,T17] ( 2, 2 ) long -> r8 "V12.[048..056)"
-; V35 tmp27 [V35,T18] ( 2, 2 ) int -> r10 "V12.[056..060)"
-; V36 tmp28 [V36,T19] ( 2, 2 ) int -> r9 "V12.[060..064)"
+; V28 tmp20 [V28,T13] ( 2, 2 ) long -> r11 "V12.[016..024)"
+; V29 tmp21 [V29,T11] ( 3, 3 ) int -> rsi "V12.[024..028)"
+; V30 tmp22 [V30,T14] ( 2, 2 ) int -> rbp "V12.[028..032)"
+; V31 tmp23 [V31,T15] ( 2, 2 ) long -> rax "V12.[032..040)"
+; V32 tmp24 [V32,T16] ( 2, 2 ) int -> rcx "V12.[040..044)"
+; V33 tmp25 [V33,T17] ( 2, 2 ) int -> rdx "V12.[044..048)"
+; V34 tmp26 [V34,T18] ( 2, 2 ) long -> r8 "V12.[048..056)"
+; V35 tmp27 [V35,T19] ( 2, 2 ) int -> r10 "V12.[056..060)"
+; V36 tmp28 [V36,T20] ( 2, 2 ) int -> r9 "V12.[060..064)"
; V37 cse0 [V37,T04] ( 4, 4 ) long -> r14 "CSE - aggressive"
;
-; Lcl frame size = 168
+; Lcl frame size = 152
G_M3643_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push r15
@@ -56,7 +56,7 @@ G_M3643_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rsi
push rbp
push rbx
- sub rsp, 168
+ sub rsp, 152
mov rbx, rcx
; byrRegs +[rbx]
mov ebp, edx
@@ -73,7 +73,7 @@ G_M3643_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, b
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rcx]
; gcr arg pop 0
- lea r8, [rsp+0x98]
+ lea r8, [rsp+0x88]
mov rcx, rsi
; gcrRegs +[rcx]
mov edx, ebp
@@ -87,10 +87,10 @@ G_M3643_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, b
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rcx]
; gcr arg pop 0
- lea r8, [rsp+0x88]
+ lea r8, [rsp+0x78]
mov rcx, rsi
; gcrRegs +[rcx]
- mov edx, dword ptr [rsp+0xA0]
+ mov edx, dword ptr [rsp+0x90]
call rax
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -101,42 +101,42 @@ G_M3643_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, b
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rcx]
; gcr arg pop 0
- mov edx, dword ptr [rsp+0xA0]
+ mov edx, dword ptr [rsp+0x90]
shlx edx, edx, edi
- lea r8, [rsp+0x78]
+ lea r8, [rsp+0x68]
mov rcx, rsi
; gcrRegs +[rcx]
call rax
; gcrRegs -[rcx rsi]
; gcr arg pop 0
- mov ecx, dword ptr [rsp+0x80]
- mov dword ptr [rsp+0x2C], ecx
- mov rcx, qword ptr [rsp+0x78]
+ mov ecx, dword ptr [rsp+0x70]
+ mov rax, qword ptr [rsp+0x68]
xor edx, edx
- mov r8d, dword ptr [rsp+0x2C]
- shl r8d, 2
+ shl ecx, 2
+ mov r8d, ecx
+ mov rcx, rax
call CORINFO_HELP_MEMSET
; gcr arg pop 0
- mov rax, qword ptr [rsp+0x98]
- mov ecx, dword ptr [rsp+0xA0]
- mov edx, dword ptr [rsp+0xA4]
- mov r8, qword ptr [rsp+0x88]
- mov r10d, dword ptr [rsp+0x90]
- mov r9d, dword ptr [rsp+0x94]
- mov r11, qword ptr [rsp+0x78]
- mov esi, dword ptr [rsp+0x80]
- mov ebp, dword ptr [rsp+0x84]
+ mov rax, qword ptr [rsp+0x88]
+ mov ecx, dword ptr [rsp+0x90]
+ mov edx, dword ptr [rsp+0x94]
+ mov r8, qword ptr [rsp+0x78]
+ mov r10d, dword ptr [rsp+0x80]
+ mov r9d, dword ptr [rsp+0x84]
+ mov r11, qword ptr [rsp+0x68]
+ mov esi, dword ptr [rsp+0x70]
+ mov ebp, dword ptr [rsp+0x74]
lea r14d, [rsi-0x01]
- mov r15d, dword ptr [rsp+0x100]
- mov byte ptr [rsp+0x70], r15b
+ mov r15d, dword ptr [rsp+0xF0]
+ mov byte ptr [rsp+0x60], r15b
xor r15d, r15d
mov dword ptr [rbx], r15d
mov dword ptr [rbx+0x04], r14d
mov dword ptr [rbx+0x08], edi
mov qword ptr [rbx+0x10], r11
- ;; size=261 bbWeight=1 PerfScore 41.00
-G_M3643_IG03: ; bbWeight=1, extend
mov dword ptr [rbx+0x18], esi
+ ;; size=245 bbWeight=1 PerfScore 40.50
+G_M3643_IG03: ; bbWeight=1, extend
mov dword ptr [rbx+0x1C], ebp
mov qword ptr [rbx+0x20], rax
mov dword ptr [rbx+0x28], ecx
@@ -144,11 +144,11 @@ G_M3643_IG03: ; bbWeight=1, extend
mov qword ptr [rbx+0x30], r8
mov dword ptr [rbx+0x38], r10d
mov dword ptr [rbx+0x3C], r9d
- movzx rax, byte ptr [rsp+0x70]
+ movzx rax, byte ptr [rsp+0x60]
mov byte ptr [rbx+0x40], al
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=33 bbWeight=1 PerfScore 9.00
G_M3643_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 168
+ add rsp, 152
pop rbx
pop rbp
pop rsi
@@ -158,7 +158,7 @@ G_M3643_IG04: ; bbWeight=1, epilog, nogc, extend
ret
;; size=16 bbWeight=1 PerfScore 4.25
-; Total bytes of code 339, prolog size 15, PerfScore 62.50, instruction count 79, allocated bytes for code 339 (MethodHash=f3e3f1c4) for method BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
+; Total bytes of code 320, prolog size 15, PerfScore 61.00, instruction count 79, allocated bytes for code 320 (MethodHash=f3e3f1c4) for method BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
; ============================================================
Unwind Info:
@@ -172,7 +172,7 @@ Unwind Info:
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
CodeOffset: 0x0F UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
- Size: 21 * 8 = 168 = 0x000A8
+ Size: 19 * 8 = 152 = 0x00098
CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
-15 (-4.90%) : 18468.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 7 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 7, 11 ) int -> rcx
+; V00 arg0 [V00,T05] ( 7, 11 ) int -> rcx
; V01 arg1 [V01,T06] ( 9, 9.54) ref -> rdx class-hnd single-def <uint[]>
-; V02 arg2 [V02,T08] ( 7, 7 ) int -> r8 single-def
-; V03 arg3 [V03,T03] ( 10, 12 ) int -> r9 single-def
+; V02 arg2 [V02,T07] ( 7, 7 ) int -> r8 single-def
+; V03 arg3 [V03,T04] ( 10, 12 ) int -> r9 single-def
; V04 loc0 [V04,T01] ( 10, 17.04) int -> rax
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -19,10 +19,10 @@
; V08 tmp3 [V08,T10] ( 3, 2 ) int -> rax "Inline return value spill temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V10 tmp5 [V10,T02] ( 4, 16 ) int -> r10 "Inlining Arg"
-; V11 tmp6 [V11,T00] ( 8, 32 ) int -> r10 "Inlining Arg"
-; V12 tmp7 [V12,T09] ( 2, 4 ) int -> rax "Inlining Arg"
-; V13 tmp8 [V13,T07] ( 5, 10 ) int -> rax "Inlining Arg"
-; V14 tmp9 [V14,T05] ( 6, 12 ) int -> rax "Inlining Arg"
+; V11 tmp6 [V11,T03] ( 4, 16 ) int -> r10 "Inlining Arg"
+; V12 tmp7 [V12,T08] ( 2, 4 ) int -> rax "Inlining Arg"
+; V13 tmp8 [V13,T09] ( 2, 4 ) int -> rax "Inlining Arg"
+; V14 tmp9 [V14,T00] ( 9, 18 ) int -> rax "Inlining Arg"
;
; Lcl frame size = 40
@@ -50,14 +50,14 @@ G_M8803_IG05: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byre
jg G_M8803_IG14
mov eax, r8d
cmp r8d, r9d
- jge G_M8803_IG09
+ jge SHORT G_M8803_IG09
test rdx, rdx
je SHORT G_M8803_IG08
test r9d, r9d
jl SHORT G_M8803_IG08
cmp dword ptr [rdx+0x08], r9d
jl SHORT G_M8803_IG08
- ;; size=37 bbWeight=1 PerfScore 9.25
+ ;; size=33 bbWeight=1 PerfScore 9.25
G_M8803_IG06: ; bbWeight=3.96, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
mov r10d, eax
imul r10d, dword ptr [rdx+4*r10+0x10], 0xD1FFAB1E
@@ -65,13 +65,12 @@ G_M8803_IG06: ; bbWeight=3.96, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, b
imul r10d, r10d, 0xD1FFAB1E
xor r10d, ecx
rol r10d, 13
- lea r10d, [r10+4*r10]
- add r10d, 0xD1FFAB1E
- mov ecx, r10d
+ lea ecx, [r10+4*r10]
+ add ecx, 0xD1FFAB1E
inc eax
cmp eax, r9d
jl SHORT G_M8803_IG06
- ;; size=51 bbWeight=3.96 PerfScore 43.56
+ ;; size=47 bbWeight=3.96 PerfScore 42.57
G_M8803_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
jmp SHORT G_M8803_IG09
@@ -79,20 +78,20 @@ G_M8803_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M8803_IG08: ; bbWeight=0.04, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx]
cmp eax, dword ptr [rdx+0x08]
- jae G_M8803_IG11
+ jae SHORT G_M8803_IG11
mov r10d, eax
imul r10d, dword ptr [rdx+4*r10+0x10], 0xD1FFAB1E
rol r10d, 15
imul r10d, r10d, 0xD1FFAB1E
xor r10d, ecx
- rol r10d, 13
- lea r10d, [r10+4*r10]
- add r10d, 0xD1FFAB1E
mov ecx, r10d
+ rol ecx, 13
+ lea ecx, [rcx+4*rcx]
+ add ecx, 0xD1FFAB1E
inc eax
cmp eax, r9d
jl SHORT G_M8803_IG08
- ;; size=60 bbWeight=0.04 PerfScore 0.60
+ ;; size=53 bbWeight=0.04 PerfScore 0.60
G_M8803_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
sub r9d, r8d
@@ -155,7 +154,7 @@ G_M8803_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 306, prolog size 4, PerfScore 76.03, instruction count 80, allocated bytes for code 306 (MethodHash=e9b3dd9c) for method Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
+; Total bytes of code 291, prolog size 4, PerfScore 75.04, instruction count 79, allocated bytes for code 291 (MethodHash=e9b3dd9c) for method Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
; ============================================================
Unwind Info:
-20 (-2.31%) : 15056.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
@@ -104,14 +104,13 @@ G_M715_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
;; size=25 bbWeight=1 PerfScore 10.25
G_M715_IG03: ; bbWeight=4, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
movsxd r9, r10d
- movsx r9, word ptr [r8+2*r9]
- movzx r9, r9b
+ movzx r9, byte ptr [r8+2*r9]
movsxd r11, r10d
movsx r11, word ptr [rdx+2*r11]
lea ebx, [r11-0x01]
test r11d, r11d
je G_M715_IG14
- ;; size=33 bbWeight=4 PerfScore 42.00
+ ;; size=29 bbWeight=4 PerfScore 33.00
G_M715_IG04: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
mov r11d, r9d
cmp r11d, 255
@@ -138,8 +137,7 @@ G_M715_IG08: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
; gcrRegs +[r11]
mov rdi, qword ptr [r11+0x30]
movsxd rbp, esi
- movsx rdi, word ptr [rdi+2*rbp]
- movzx rdi, di
+ movzx rdi, word ptr [rdi+2*rbp]
mov r11, qword ptr [r11+0x40]
; gcrRegs -[r11]
movsxd rbp, esi
@@ -167,7 +165,7 @@ G_M715_IG08: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
mov byte ptr [r11+rbp], dil
shr dword ptr [rax+0x20], 16
add dword ptr [rax+0x24], -16
- ;; size=110 bbWeight=2 PerfScore 87.50
+ ;; size=106 bbWeight=2 PerfScore 83.00
G_M715_IG09: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
add esi, -261
mov r11d, esi
@@ -228,8 +226,7 @@ G_M715_IG12: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
; gcrRegs +[r9]
mov rsi, qword ptr [r9+0x30]
movsxd rdi, r11d
- movsx rsi, word ptr [rsi+2*rdi]
- movzx rsi, si
+ movzx rsi, word ptr [rsi+2*rdi]
mov r9, qword ptr [r9+0x40]
; gcrRegs -[r9]
movsxd rdi, r11d
@@ -257,7 +254,7 @@ G_M715_IG12: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
mov byte ptr [r9+rsi], dil
shr dword ptr [rax+0x20], 16
add dword ptr [rax+0x24], -16
- ;; size=113 bbWeight=2 PerfScore 88.00
+ ;; size=109 bbWeight=2 PerfScore 83.50
G_M715_IG13: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
sar r11d, 1
dec r11d
@@ -300,8 +297,7 @@ G_M715_IG14: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
; gcrRegs +[r11]
mov rbx, qword ptr [r11+0x30]
movsxd rsi, r9d
- movsx rbx, word ptr [rbx+2*rsi]
- movzx rbx, bx
+ movzx rbx, word ptr [rbx+2*rsi]
mov r11, qword ptr [r11+0x40]
; gcrRegs -[r11]
movsxd r9, r9d
@@ -329,7 +325,7 @@ G_M715_IG14: ; bbWeight=2, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
mov byte ptr [r9+r11], bl
shr dword ptr [rax+0x20], 16
add dword ptr [rax+0x24], -16
- ;; size=114 bbWeight=2 PerfScore 87.50
+ ;; size=110 bbWeight=2 PerfScore 83.00
G_M715_IG15: ; bbWeight=4, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
inc r10d
cmp r10d, dword ptr [rcx+0x48]
@@ -338,8 +334,7 @@ G_M715_IG15: ; bbWeight=4, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
G_M715_IG16: ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rcx+0x08]
mov rdx, qword ptr [rcx+0x30]
- movsx rdx, word ptr [rdx+0x200]
- movzx rdx, dx
+ movzx rdx, word ptr [rdx+0x200]
mov rcx, qword ptr [rcx+0x40]
; gcrRegs -[rcx]
movzx rcx, byte ptr [rcx+0x100]
@@ -350,7 +345,7 @@ G_M715_IG16: ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, b
mov dword ptr [rax+0x24], ecx
cmp ecx, 16
jl SHORT G_M715_IG18
- ;; size=53 bbWeight=1 PerfScore 20.25
+ ;; size=49 bbWeight=1 PerfScore 18.00
G_M715_IG17: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rax+0x10]
mov edx, dword ptr [rax+0x1C]
@@ -378,7 +373,7 @@ G_M715_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, e
ret
;; size=5 bbWeight=1 PerfScore 3.00
-; Total bytes of code 864, prolog size 4, PerfScore 602.00, instruction count 241, allocated bytes for code 864 (MethodHash=c6a5fd34) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
+; Total bytes of code 844, prolog size 4, PerfScore 577.25, instruction count 236, allocated bytes for code 844 (MethodHash=c6a5fd34) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
; ============================================================
Unwind Info:
+26 (+1.42%) : 29942.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -5,163 +5,154 @@
; rsp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 115 single block inlinees; 43 inlinees without PGO data
+; 0 inlinees with PGO data; 115 single block inlinees; 44 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 10 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T08] ( 11, 6.50) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T17] ( 3, 3 ) ubyte -> r8 single-def
-; V03 arg3 [V03,T16] ( 5, 3.50) ref -> rdi class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V02 arg2 [V02,T18] ( 3, 3 ) ubyte -> r8 single-def
+; V03 arg3 [V03,T17] ( 5, 3.50) ref -> rdi class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V04 loc0 [V04,T49] ( 5, 2.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T68] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V06 tmp1 [V06,T69] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V07 tmp2 [V07,T01] ( 12, 12 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp4 [V09,T56] ( 2, 2 ) int -> rbp "Inlining Arg"
-; V10 tmp5 [V10,T61] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V11 tmp6 [V11,T18] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp4 [V09,T57] ( 2, 2 ) int -> rbp "Inlining Arg"
+; V10 tmp5 [V10,T62] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V11 tmp6 [V11,T19] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp7 [V12,T09] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V15 tmp10 [V15,T25] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V25 tmp20 [V25,T10] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V26 tmp21 [V26,T43] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp23 [V28,T70] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V29 tmp24 [V29,T44] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V30 tmp25 [V30,T31] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
-; V31 tmp26 [V31,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V33 tmp28 [V33,T57] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V34 tmp29 [V34,T62] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp30 [V35,T19] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V36 tmp31 [V36,T11] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V39 tmp34 [V39,T26] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V23 tmp18 [V23,T10] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V24 tmp19 [V24,T43] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V26 tmp21 [V26,T71] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V27 tmp22 [V27,T44] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V28 tmp23 [V28,T31] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V29 tmp24 [V29,T02] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V31 tmp26 [V31,T58] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V32 tmp27 [V32,T63] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V33 tmp28 [V33,T20] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp29 [V34,T11] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp32 [V37,T26] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V49 tmp44 [V49,T12] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V50 tmp45 [V50,T45] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp47 [V52,T71] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V53 tmp48 [V53,T46] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V54 tmp49 [V54,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
-; V55 tmp50 [V55,T03] ( 12, 12 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V57 tmp52 [V57,T58] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V58 tmp53 [V58,T63] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V59 tmp54 [V59,T20] ( 4, 4 ) ref -> rbp class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V60 tmp55 [V60,T13] ( 6, 6 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp40 [V45,T12] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V46 tmp41 [V46,T45] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V48 tmp43 [V48,T72] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V49 tmp44 [V49,T46] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V50 tmp45 [V50,T32] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
+; V51 tmp46 [V51,T03] ( 12, 12 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V53 tmp48 [V53,T59] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V54 tmp49 [V54,T64] ( 3, 1.50) ref -> rbp class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V55 tmp50 [V55,T21] ( 4, 4 ) ref -> rbp class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V56 tmp51 [V56,T13] ( 6, 6 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp54 [V59,T27] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp58 [V63,T27] ( 6, 3 ) int -> r14 "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V69 tmp64 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V73 tmp68 [V73,T14] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
-; V74 tmp69 [V74,T47] ( 3, 3 ) int -> rax "impAppendStmt"
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp71 [V76,T72] ( 2, 1 ) int -> rax "Inline return value spill temp"
-; V77 tmp72 [V77,T48] ( 3, 3 ) int -> rdx "Inlining Arg"
-; V78 tmp73 [V78,T33] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
-; V79 tmp74 [V79,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V81 tmp76 [V81,T59] ( 2, 2 ) int -> rsi "Inlining Arg"
-; V82 tmp77 [V82,T64] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V83 tmp78 [V83,T21] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V84 tmp79 [V84,T15] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V67 tmp62 [V67,T14] ( 6, 6 ) byref -> rcx single-def "Inlining Arg"
+; V68 tmp63 [V68,T47] ( 3, 3 ) int -> rax "impAppendStmt"
+;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V70 tmp65 [V70,T73] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V71 tmp66 [V71,T48] ( 3, 3 ) int -> rdx "Inlining Arg"
+; V72 tmp67 [V72,T33] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V73 tmp68 [V73,T04] ( 12, 12 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V75 tmp70 [V75,T60] ( 2, 2 ) int -> rsi "Inlining Arg"
+; V76 tmp71 [V76,T65] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V77 tmp72 [V77,T22] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V78 tmp73 [V78,T15] ( 6, 6 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V81 tmp76 [V81,T28] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp82 [V87,T28] ( 6, 3 ) int -> rbp "Inline stloc first use temp"
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp83 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp85 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V97 tmp92 [V97,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
-; V98 tmp93 [V98,T51] ( 4, 2 ) ref -> rbp class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V99 tmp94 [V99,T52] ( 2, 2 ) ref -> rbp class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
-;* V100 tmp95 [V100 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V101 tmp96 [V101,T53] ( 2, 2 ) ref -> rdx class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
-;* V102 tmp97 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;* V103 tmp98 [V103 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V104 tmp99 [V104,T05] ( 12, 12 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V106 tmp101 [V106,T60] ( 2, 2 ) int -> r15 "Inlining Arg"
-; V107 tmp102 [V107,T65] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V108 tmp103 [V108,T22] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V109 tmp104 [V109,T06] ( 10, 10 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V113 tmp108 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp111 [V116,T29] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
-;* V117 tmp112 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V120 tmp115 [V120,T30] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
-;* V121 tmp116 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V122 tmp117 [V122,T35] ( 3, 3 ) byref -> r14 single-def "Inlining Arg"
-; V123 tmp118 [V123,T54] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V124 tmp119 [V124,T07] ( 10, 10 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V125 tmp120 [V125,T36] ( 3, 3 ) ref -> rcx class-hnd single-def "dup spill" <<unknown class>>
-;* V126 tmp121 [V126 ] ( 0, 0 ) ref -> zero-ref single-def
-; V127 tmp122 [V127,T55] ( 2, 2 ) ref -> r9 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V128 tmp123 [V128,T69] ( 3, 1.50) int -> r14
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V130 tmp125 [V130,T66] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V131 tmp126 [V131,T23] ( 4, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V132 tmp127 [V132,T24] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-; V133 tmp128 [V133,T73] ( 2, 1 ) int -> rdx single-def "Inline stloc first use temp"
-;* V134 tmp129 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "field V100.array (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135,T74] ( 0, 0 ) ref -> zero-ref single-def "field V102.array (fldOffset=0x0)" P-INDEP
-;* V136 tmp131 [V136,T75] ( 0, 0 ) ref -> zero-ref single-def "field V103.array (fldOffset=0x0)" P-INDEP
-; V137 tmp132 [V137,T37] ( 3, 3 ) ref -> rdx single-def "arr expr"
-; V138 tmp133 [V138,T38] ( 3, 3 ) ref -> rcx single-def "arr expr"
-;* V139 tmp134 [V139 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V89 tmp84 [V89,T34] ( 3, 3 ) byref -> rbx single-def "Inlining Arg"
+; V90 tmp85 [V90,T52] ( 4, 2 ) ref -> rbp class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V91 tmp86 [V91,T53] ( 2, 2 ) ref -> rbp class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V93 tmp88 [V93,T54] ( 2, 2 ) ref -> rdx class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
+;* V94 tmp89 [V94 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;* V95 tmp90 [V95 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V96 tmp91 [V96,T05] ( 12, 12 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V98 tmp93 [V98,T61] ( 2, 2 ) int -> r15 "Inlining Arg"
+; V99 tmp94 [V99,T66] ( 3, 1.50) ref -> r13 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V100 tmp95 [V100,T23] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V101 tmp96 [V101,T06] ( 10, 10 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V107 tmp102 [V107,T29] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
+;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V110 tmp105 [V110,T30] ( 6, 3 ) int -> r12 "Inline stloc first use temp"
+;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V112 tmp107 [V112,T35] ( 3, 3 ) byref -> r14 single-def "Inlining Arg"
+; V113 tmp108 [V113,T55] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V114 tmp109 [V114,T07] ( 10, 10 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V115 tmp110 [V115,T36] ( 3, 3 ) ref -> rcx class-hnd single-def "dup spill" <<unknown class>>
+;* V116 tmp111 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
+; V117 tmp112 [V117,T56] ( 2, 2 ) ref -> r9 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V118 tmp113 [V118,T70] ( 3, 1.50) int -> r14
+;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
...
+4 (+2.82%) : 1606.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 5, 5 ) byref -> rsi this single-def
+; V00 this [V00,T01] ( 4, 4 ) byref -> rsi this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> rdi single-def
; V02 arg2 [V02,T00] ( 6, 6 ) ref -> rbx class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 3 ) struct (16) [rsp+0x20] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T03] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
-; V06 tmp2 [V06,T04] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
-;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V05 tmp1 [V05,T05] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
+; V06 tmp2 [V06,T06] ( 2, 4 ) long -> rax "VirtualCall through function pointer"
+; V07 tmp3 [V07,T04] ( 2, 4 ) byref -> rbp single-def "Inlining Arg"
+; V08 tmp4 [V08,T07] ( 2, 4 ) int -> rcx "Inlining Arg"
+; V09 tmp5 [V09,T08] ( 2, 4 ) long -> rax "Inlining Arg"
+; V10 tmp6 [V10,T09] ( 2, 4 ) long -> rdx "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V12 tmp8 [V12 ] ( 3, 3 ) long -> [rsp+0x20] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V13 tmp9 [V13 ] ( 2, 2 ) int -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
; V14 tmp10 [V14 ] ( 2, 2 ) int -> [rsp+0x2C] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
-; V15 cse0 [V15,T05] ( 3, 3 ) byref -> rbp "CSE - aggressive"
-; V16 cse1 [V16,T06] ( 3, 3 ) long -> r14 "CSE - aggressive"
+; V15 cse0 [V15,T03] ( 4, 4 ) byref -> rbp "CSE - aggressive"
+; V16 cse1 [V16,T10] ( 3, 3 ) long -> r14 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -62,14 +62,16 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
mov edx, edi
call rax
; gcrRegs -[rcx]
- ; byrRegs -[rbp r8]
+ ; byrRegs -[r8]
; gcr arg pop 0
- mov rcx, qword ptr [rsi+0x08]
+ mov ecx, dword ptr [rsi+0x04]
+ mov rax, qword ptr [rbp]
mov rdx, qword ptr [rsp+0x20]
- mov r8d, dword ptr [rsi+0x04]
- shl r8d, 2
+ shl ecx, 2
+ mov r8d, ecx
+ mov rcx, rax
call CORINFO_HELP_MEMCPY
- ; byrRegs -[rsi]
+ ; byrRegs -[rbp rsi]
; gcr arg pop 0
mov rcx, rbx
; gcrRegs +[rcx]
@@ -85,7 +87,7 @@ G_M15724_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
; gcrRegs -[rcx rbx]
; gcr arg pop 0
nop
- ;; size=110 bbWeight=1 PerfScore 23.50
+ ;; size=114 bbWeight=1 PerfScore 24.00
G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbx
@@ -96,7 +98,7 @@ G_M15724_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=11 bbWeight=1 PerfScore 3.75
-; Total bytes of code 142, prolog size 13, PerfScore 34.25, instruction count 42, allocated bytes for code 142 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 146, prolog size 13, PerfScore 34.75, instruction count 44, allocated bytes for code 146 (MethodHash=0590c293) for method BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
+23 (+12.71%) : 1302.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,58 +8,62 @@
; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 13, 10 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 11, 9 ) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> rdi single-def
; V02 arg2 [V02,T01] ( 6, 4 ) ref -> rsi class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
-; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rsp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
+; V03 loc0 [V03 ] ( 3, 1.50) struct (16) [rsp+0x20] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V06 tmp2 [V06,T04] ( 3, 3 ) int -> rbp "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V06 tmp2 [V06,T05] ( 3, 3 ) int -> r14 "impAppendStmt"
+; V07 tmp3 [V07,T09] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V08 tmp4 [V08,T10] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 2, 1 ) int -> rbp "Inline return value spill temp"
-; V12 tmp8 [V12,T05] ( 3, 3 ) int -> rcx "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V11 tmp7 [V11,T14] ( 2, 1 ) int -> r14 "Inline return value spill temp"
+; V12 tmp8 [V12,T06] ( 3, 3 ) int -> rcx "Inlining Arg"
+; V13 tmp9 [V13,T08] ( 2, 2 ) byref -> rbp single-def "Inlining Arg"
+; V14 tmp10 [V14,T11] ( 2, 2 ) int -> rcx "Inlining Arg"
+; V15 tmp11 [V15,T12] ( 2, 2 ) long -> rax "Inlining Arg"
+; V16 tmp12 [V16,T13] ( 2, 2 ) long -> rdx "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V18 tmp14 [V18,T06] ( 3, 3 ) int -> rcx "Inline stloc first use temp"
-; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> rax single-def "impAppendStmt"
-; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
-; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rsp+0x30] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
-; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rsp+0x34] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
+; V18 tmp14 [V18,T07] ( 3, 3 ) int -> rcx "Inline stloc first use temp"
+; V19 tmp15 [V19,T04] ( 2, 4 ) byref -> rax single-def "impAppendStmt"
+; V20 tmp16 [V20 ] ( 3, 1.50) long -> [rsp+0x20] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
+; V21 tmp17 [V21 ] ( 2, 1 ) int -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x8)" P-DEP
+; V22 tmp18 [V22 ] ( 2, 1 ) int -> [rsp+0x2C] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0xc)" P-DEP
+; V23 cse0 [V23,T03] ( 6, 4 ) byref -> rbp multi-def "CSE - aggressive"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M19315_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 56
+ sub rsp, 48
vzeroupper
mov rbx, rcx
; byrRegs +[rbx]
mov edi, edx
mov rsi, r8
; gcrRegs +[rsi]
- ;; size=19 bbWeight=1 PerfScore 6.00
-G_M19315_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+ ;; size=21 bbWeight=1 PerfScore 7.00
+G_M19315_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
mov ecx, dword ptr [rbx+0x04]
cmp ecx, dword ptr [rbx+0x10]
- jne SHORT G_M19315_IG04
- ;; size=8 bbWeight=1 PerfScore 6.00
+ jne G_M19315_IG04
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
- vmovups xmm0, xmmword ptr [rbx+0x08]
- vmovups xmmword ptr [rsp+0x28], xmm0
- mov ebp, dword ptr [rbx+0x04]
- add ebp, ebp
+ lea rbp, bword ptr [rbx+0x08]
+ ; byrRegs +[rbp]
+ vmovups xmm0, xmmword ptr [rbp]
+ vmovups xmmword ptr [rsp+0x20], xmm0
+ mov r14d, dword ptr [rbx+0x04]
+ add r14d, r14d
mov ecx, dword ptr [rbx+0x10]
- cmp ebp, ecx
- cmovl ebp, ecx
+ cmp r14d, ecx
+ cmovl r14d, ecx
mov rcx, rsi
; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool
@@ -67,20 +71,23 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rcx]
; gcr arg pop 0
- lea r8, bword ptr [rbx+0x08]
+ mov r8, rbp
; byrRegs +[r8]
mov rcx, rsi
; gcrRegs +[rcx]
- mov edx, ebp
+ mov edx, r14d
call rax
; gcrRegs -[rcx]
; byrRegs -[r8]
; gcr arg pop 0
- mov rcx, qword ptr [rbx+0x08]
- mov rdx, qword ptr [rsp+0x28]
- mov r8d, dword ptr [rbx+0x04]
- shl r8d, 2
+ mov ecx, dword ptr [rbx+0x04]
+ mov rax, qword ptr [rbp]
+ mov rdx, qword ptr [rsp+0x20]
+ shl ecx, 2
+ mov r8d, ecx
+ mov rcx, rax
call CORINFO_HELP_MEMCPY
+ ; byrRegs -[rbp]
; gcr arg pop 0
mov rcx, rsi
; gcrRegs +[rcx]
@@ -89,15 +96,17 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rcx]
; gcr arg pop 0
- lea rdx, [rsp+0x28]
+ lea rdx, [rsp+0x20]
mov rcx, rsi
; gcrRegs +[rcx]
call rax
; gcrRegs -[rcx rsi]
; gcr arg pop 0
- ;; size=123 bbWeight=0.50 PerfScore 13.75
+ ;; size=135 bbWeight=0.50 PerfScore 14.12
G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
- lea rax, bword ptr [rbx+0x08]
+ lea rbp, bword ptr [rbx+0x08]
+ ; byrRegs +[rbp]
+ mov rax, rbp
; byrRegs +[rax]
mov ecx, dword ptr [rbx+0x04]
lea edx, [rcx+0x01]
@@ -106,17 +115,18 @@ G_M19315_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
; byrRegs -[rax]
movsxd rcx, ecx
mov dword ptr [rax+4*rcx], edi
- ;; size=22 bbWeight=1 PerfScore 7.25
+ ;; size=25 bbWeight=1 PerfScore 7.50
G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
+ add rsp, 48
pop rbx
pop rbp
pop rsi
pop rdi
+ pop r14
ret
- ;; size=9 bbWeight=1 PerfScore 3.25
+ ;; size=11 bbWeight=1 PerfScore 3.75
-; Total bytes of code 181, prolog size 11, PerfScore 36.25, instruction count 52, allocated bytes for code 181 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 204, prolog size 13, PerfScore 38.38, instruction count 58, allocated bytes for code 204 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -124,13 +134,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x08
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x0A
+ CountOfUnwindCodes: 6
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
smoke_tests.nativeaot.windows.x64.checked.mch
-3 (-5.17%) : 6661.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.RuntimeTypeHandle>
; V01 arg1 [V01,T01] ( 3, 3 ) byref -> r9 single-def
-; V02 loc0 [V02,T04] ( 2, 2 ) int -> rdx single-def
+;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 4, 3 ) int -> rdx "Inline return value spill temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref ld-addr-op "NewObj constructor temp"
@@ -42,21 +42,20 @@ G_M54122_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, b
G_M54122_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, byref
mov r8d, edx
rol r8d, 5
- add r8d, edx
- mov edx, r8d
+ add edx, r8d
xor edx, 0x12D0
mov r8d, 3
call <unknown method>
; byrRegs -[r9]
; gcr arg pop 0
nop
- ;; size=31 bbWeight=1 PerfScore 3.00
+ ;; size=28 bbWeight=1 PerfScore 2.75
G_M54122_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 58, prolog size 4, PerfScore 8.25, instruction count 18, allocated bytes for code 58 (MethodHash=82d82c95) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
+; Total bytes of code 55, prolog size 4, PerfScore 8.00, instruction count 17, allocated bytes for code 55 (MethodHash=82d82c95) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
-3 (-5.17%) : 11889.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
@@ -9,7 +9,7 @@
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.RuntimeTypeHandle>
; V01 arg1 [V01,T01] ( 3, 3 ) byref -> r9 single-def
-; V02 loc0 [V02,T04] ( 2, 2 ) int -> rdx single-def
+;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 4, 3 ) int -> rdx "Inline return value spill temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref ld-addr-op "NewObj constructor temp"
@@ -41,21 +41,20 @@ G_M30107_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, b
G_M30107_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, byref
mov r8d, edx
rol r8d, 7
- add r8d, edx
- mov edx, r8d
+ add edx, r8d
xor edx, 0x4C85
mov r8d, 11
call <unknown method>
; byrRegs -[r9]
; gcr arg pop 0
nop
- ;; size=31 bbWeight=1 PerfScore 3.00
+ ;; size=28 bbWeight=1 PerfScore 2.75
G_M30107_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 58, prolog size 4, PerfScore 8.25, instruction count 18, allocated bytes for code 58 (MethodHash=efee8a64) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
+; Total bytes of code 55, prolog size 4, PerfScore 8.00, instruction count 17, allocated bytes for code 55 (MethodHash=efee8a64) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
-3 (-5.17%) : 6663.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.RuntimeTypeHandle>
; V01 arg1 [V01,T01] ( 3, 3 ) byref -> r9 single-def
-; V02 loc0 [V02,T04] ( 2, 2 ) int -> rdx single-def
+;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 4, 3 ) int -> rdx "Inline return value spill temp"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref ld-addr-op "NewObj constructor temp"
@@ -42,21 +42,20 @@ G_M30107_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, b
G_M30107_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0200 {r9}, byref
mov r8d, edx
rol r8d, 7
- add r8d, edx
- mov edx, r8d
+ add edx, r8d
xor edx, 0x4C85
mov r8d, 11
call <unknown method>
; byrRegs -[r9]
; gcr arg pop 0
nop
- ;; size=31 bbWeight=1 PerfScore 3.00
+ ;; size=28 bbWeight=1 PerfScore 2.75
G_M30107_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 58, prolog size 4, PerfScore 8.25, instruction count 18, allocated bytes for code 58 (MethodHash=efee8a64) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
+; Total bytes of code 55, prolog size 4, PerfScore 8.00, instruction count 17, allocated bytes for code 55 (MethodHash=efee8a64) for method Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.33%) : 16908.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
@@ -48,11 +48,12 @@ G_M19587_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx rbx]
; gcr arg pop 0
mov ecx, 1
- movzx rdx, ax
+ movsxd rdx, eax
+ movzx rdx, dx
cmp eax, -1
mov eax, edx
cmove eax, ecx
- ;; size=29 bbWeight=1 PerfScore 2.75
+ ;; size=32 bbWeight=1 PerfScore 3.00
G_M19587_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -67,7 +68,7 @@ G_M19587_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
jmp SHORT G_M19587_IG03
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 90, prolog size 6, PerfScore 17.00, instruction count 26, allocated bytes for code 90 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
+; Total bytes of code 93, prolog size 6, PerfScore 17.25, instruction count 27, allocated bytes for code 93 (MethodHash=7049b37c) for method System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
; ============================================================
Unwind Info:
+9 (+4.43%) : 12953.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
@@ -8,17 +8,17 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rbx class-hnd exact single-def <Internal.Runtime.TypeLoader.TypeBuilderState>
-; V01 arg1 [V01,T02] ( 4, 3 ) long -> rsi single-def
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> rbp single-def
-; V03 arg3 [V03,T03] ( 3, 3 ) ubyte -> rdi single-def
-; V04 loc0 [V04,T05] ( 7, 4 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
+; V01 arg1 [V01,T01] ( 4, 3 ) long -> rsi single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> rbp single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) ubyte -> rdi single-def
+; V04 loc0 [V04,T04] ( 7, 4 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
; V05 loc1 [V05,T06] ( 4, 2 ) int -> rbp
; V06 loc2 [V06,T07] ( 3, 1.50) int -> rax single-def
; V07 OutArgs [V07 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.RuntimeTypeHandle>
;* V09 tmp2 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.RuntimeTypeHandle>
-; V11 tmp4 [V11,T01] ( 5, 5 ) int -> rax "Single return block return value"
+; V11 tmp4 [V11,T05] ( 4, 4 ) int -> rax "Single return block return value"
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V13 tmp6 [V13 ] ( 0, 0 ) long -> zero-ref single-def "field V10._value (fldOffset=0x0)" P-INDEP
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
@@ -48,7 +48,7 @@ G_M27966_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov r14, rax
; gcrRegs +[r14]
test dil, dil
- je SHORT G_M27966_IG07
+ je SHORT G_M27966_IG08
;; size=18 bbWeight=1 PerfScore 5.75
G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
@@ -60,25 +60,33 @@ G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
test eax, eax
jne SHORT G_M27966_IG04
test r14, r14
- je SHORT G_M27966_IG05
+ je SHORT G_M27966_IG06
mov rcx, r14
; gcrRegs +[rcx]
call Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je SHORT G_M27966_IG05
+ je SHORT G_M27966_IG06
;; size=29 bbWeight=0.50 PerfScore 3.12
-G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov eax, 24
- jmp SHORT G_M27966_IG09
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M27966_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 48
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ pop r14
+ ret
+ ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M27966_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r14]
xor ebp, ebp
test r14, r14
- je SHORT G_M27966_IG06
+ je SHORT G_M27966_IG07
mov rcx, r14
; gcrRegs +[rcx]
mov edx, 1
@@ -89,16 +97,16 @@ G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcr arg pop 0
mov ebp, eax
;; size=31 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ebp, ebp
- jle SHORT G_M27966_IG11
+ jle SHORT G_M27966_IG12
lea eax, [8*rbp+0x10]
- jmp SHORT G_M27966_IG09
+ jmp SHORT G_M27966_IG10
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r14]
test r14, r14
- je SHORT G_M27966_IG08
+ je SHORT G_M27966_IG09
xor r8d, r8d
mov qword ptr [rsp+0x20], r8
movzx r8, bpl
@@ -110,22 +118,22 @@ G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcrRegs -[rcx r14]
; gcr arg pop 0
test eax, eax
- jle SHORT G_M27966_IG11
+ jle SHORT G_M27966_IG12
add eax, eax
lea eax, [8*rax+0x08]
- jmp SHORT G_M27966_IG09
+ jmp SHORT G_M27966_IG10
;; size=45 bbWeight=0.50 PerfScore 4.25
-G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test rsi, rsi
- je SHORT G_M27966_IG11
+ je SHORT G_M27966_IG12
mov rcx, rsi
call <unknown method>
; gcr arg pop 0
;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M27966_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M27966_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -134,10 +142,10 @@ G_M27966_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop r14
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M27966_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG13: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -147,7 +155,7 @@ G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 203, prolog size 10, PerfScore 29.50, instruction count 75, allocated bytes for code 203 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
+; Total bytes of code 212, prolog size 10, PerfScore 30.38, instruction count 81, allocated bytes for code 212 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
; ============================================================
Unwind Info:
+9 (+4.43%) : 7432.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
@@ -9,17 +9,17 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rbx class-hnd exact single-def <Internal.Runtime.TypeLoader.TypeBuilderState>
-; V01 arg1 [V01,T02] ( 4, 3 ) long -> rsi single-def
-; V02 arg2 [V02,T04] ( 3, 2.50) ubyte -> rbp single-def
-; V03 arg3 [V03,T03] ( 3, 3 ) ubyte -> rdi single-def
-; V04 loc0 [V04,T05] ( 7, 4 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
+; V01 arg1 [V01,T01] ( 4, 3 ) long -> rsi single-def
+; V02 arg2 [V02,T03] ( 3, 2.50) ubyte -> rbp single-def
+; V03 arg3 [V03,T02] ( 3, 3 ) ubyte -> rdi single-def
+; V04 loc0 [V04,T04] ( 7, 4 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.LowLevelList`1[ubyte]>
; V05 loc1 [V05,T06] ( 4, 2 ) int -> rbp
; V06 loc2 [V06,T07] ( 3, 1.50) int -> rax single-def
; V07 OutArgs [V07 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.RuntimeTypeHandle>
;* V09 tmp2 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op single-def "Inline stloc first use temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.RuntimeTypeHandle>
-; V11 tmp4 [V11,T01] ( 5, 5 ) int -> rax "Single return block return value"
+; V11 tmp4 [V11,T05] ( 4, 4 ) int -> rax "Single return block return value"
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V13 tmp6 [V13 ] ( 0, 0 ) long -> zero-ref single-def "field V10._value (fldOffset=0x0)" P-INDEP
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
@@ -49,7 +49,7 @@ G_M27966_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov r14, rax
; gcrRegs +[r14]
test dil, dil
- je SHORT G_M27966_IG07
+ je SHORT G_M27966_IG08
;; size=18 bbWeight=1 PerfScore 5.75
G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
@@ -61,25 +61,33 @@ G_M27966_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
test eax, eax
jne SHORT G_M27966_IG04
test r14, r14
- je SHORT G_M27966_IG05
+ je SHORT G_M27966_IG06
mov rcx, r14
; gcrRegs +[rcx]
call Internal.Runtime.TypeLoader.EETypeCreator:IsAllGCPointers(System.Collections.Generic.LowLevelList`1[ubyte]):ubyte
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je SHORT G_M27966_IG05
+ je SHORT G_M27966_IG06
;; size=29 bbWeight=0.50 PerfScore 3.12
-G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov eax, 24
- jmp SHORT G_M27966_IG09
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M27966_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 48
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ pop r14
+ ret
+ ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M27966_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r14]
xor ebp, ebp
test r14, r14
- je SHORT G_M27966_IG06
+ je SHORT G_M27966_IG07
mov rcx, r14
; gcrRegs +[rcx]
mov edx, 1
@@ -90,16 +98,16 @@ G_M27966_IG05: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcr arg pop 0
mov ebp, eax
;; size=31 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ebp, ebp
- jle SHORT G_M27966_IG11
+ jle SHORT G_M27966_IG12
lea eax, [8*rbp+0x10]
- jmp SHORT G_M27966_IG09
+ jmp SHORT G_M27966_IG10
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r14]
test r14, r14
- je SHORT G_M27966_IG08
+ je SHORT G_M27966_IG09
xor r8d, r8d
mov qword ptr [rsp+0x20], r8
movzx r8, bpl
@@ -111,22 +119,22 @@ G_M27966_IG07: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcrRegs -[rcx r14]
; gcr arg pop 0
test eax, eax
- jle SHORT G_M27966_IG11
+ jle SHORT G_M27966_IG12
add eax, eax
lea eax, [8*rax+0x08]
- jmp SHORT G_M27966_IG09
+ jmp SHORT G_M27966_IG10
;; size=45 bbWeight=0.50 PerfScore 4.25
-G_M27966_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test rsi, rsi
- je SHORT G_M27966_IG11
+ je SHORT G_M27966_IG12
mov rcx, rsi
call <unknown method>
; gcr arg pop 0
;; size=13 bbWeight=0.50 PerfScore 1.25
-G_M27966_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M27966_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M27966_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -135,10 +143,10 @@ G_M27966_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop r14
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M27966_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M27966_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
+G_M27966_IG13: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -148,7 +156,7 @@ G_M27966_IG12: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 203, prolog size 10, PerfScore 29.50, instruction count 75, allocated bytes for code 203 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
+; Total bytes of code 212, prolog size 10, PerfScore 30.38, instruction count 81, allocated bytes for code 212 (MethodHash=43a892c1) for method Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
; ============================================================
Unwind Info:
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
aspnet.run.windows.x64.checked.mch |
220 |
199 |
4 |
17 |
-2,524 |
+664 |
benchmarks.run.windows.x64.checked.mch |
45 |
11 |
11 |
23 |
-114 |
+73 |
benchmarks.run_pgo.windows.x64.checked.mch |
269 |
228 |
6 |
35 |
-2,712 |
+32 |
benchmarks.run_tiered.windows.x64.checked.mch |
158 |
148 |
5 |
5 |
-1,773 |
+32 |
coreclr_tests.run.windows.x64.checked.mch |
7,601 |
6,558 |
276 |
767 |
-141,589 |
+4,588 |
libraries.crossgen2.windows.x64.checked.mch |
36 |
22 |
5 |
9 |
-331 |
+22 |
libraries.pmi.windows.x64.checked.mch |
267 |
83 |
137 |
47 |
-905 |
+12,175 |
libraries_tests.run.windows.x64.Release.mch |
979 |
805 |
64 |
110 |
-108,667 |
+2,507 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
609 |
215 |
192 |
202 |
-68,311 |
+4,512 |
realworld.run.windows.x64.checked.mch |
106 |
72 |
18 |
16 |
-527 |
+1,137 |
smoke_tests.nativeaot.windows.x64.checked.mch |
46 |
14 |
15 |
17 |
-237 |
+100 |
|
10,336 |
8,355 |
733 |
1,248 |
-327,690 |
+25,842 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
aspnet.run.windows.x64.checked.mch |
129,257 |
61,702 |
67,555 |
0 (0.00%) |
33 (0.03%) |
benchmarks.run.windows.x64.checked.mch |
27,917 |
4 |
27,913 |
0 (0.00%) |
9 (0.03%) |
benchmarks.run_pgo.windows.x64.checked.mch |
103,169 |
50,327 |
52,842 |
0 (0.00%) |
14 (0.01%) |
benchmarks.run_tiered.windows.x64.checked.mch |
53,502 |
36,872 |
16,630 |
0 (0.00%) |
9 (0.02%) |
coreclr_tests.run.windows.x64.checked.mch |
574,309 |
341,481 |
232,828 |
27 (0.00%) |
76 (0.01%) |
libraries.crossgen2.windows.x64.checked.mch |
243,730 |
15 |
243,715 |
1 (0.00%) |
1 (0.00%) |
libraries.pmi.windows.x64.checked.mch |
309,171 |
6 |
309,165 |
1 (0.00%) |
57 (0.02%) |
libraries_tests.run.windows.x64.Release.mch |
681,290 |
485,046 |
196,244 |
0 (0.00%) |
134 (0.02%) |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
320,378 |
21,924 |
298,454 |
0 (0.00%) |
158 (0.05%) |
realworld.run.windows.x64.checked.mch |
36,608 |
3 |
36,605 |
0 (0.00%) |
2 (0.01%) |
smoke_tests.nativeaot.windows.x64.checked.mch |
31,939 |
11 |
31,928 |
449 (1.39%) |
449 (1.39%) |
|
2,511,270 |
997,391 |
1,513,879 |
478 (0.02%) |
942 (0.04%) |
jit-analyze output
aspnet.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 46998136 (overridden on cmd)
Total bytes of diff: 46996276 (overridden on cmd)
Total bytes of delta: -1860 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
265 : 115925.dasm (6.22 % of base)
265 : 126323.dasm (6.22 % of base)
126 : 124506.dasm (2.13 % of base)
8 : 19248.dasm (0.49 % of base)
Top file improvements (bytes):
-93 : 2523.dasm (-6.34 % of base)
-93 : 31429.dasm (-6.34 % of base)
-83 : 31306.dasm (-3.34 % of base)
-83 : 3647.dasm (-3.34 % of base)
-77 : 116976.dasm (-33.33 % of base)
-66 : 108077.dasm (-7.73 % of base)
-66 : 82701.dasm (-6.18 % of base)
-62 : 14967.dasm (-5.82 % of base)
-62 : 16882.dasm (-7.29 % of base)
-56 : 37177.dasm (-5.07 % of base)
-47 : 38444.dasm (-21.76 % of base)
-45 : 47330.dasm (-6.11 % of base)
-42 : 1726.dasm (-2.94 % of base)
-42 : 24161.dasm (-2.94 % of base)
-39 : 66901.dasm (-7.63 % of base)
-39 : 34500.dasm (-5.23 % of base)
-35 : 36773.dasm (-5.79 % of base)
-34 : 2090.dasm (-1.67 % of base)
-34 : 2197.dasm (-1.23 % of base)
-34 : 2365.dasm (-1.10 % of base)
52 total files with Code Size differences (48 improved, 4 regressed), 17 unchanged.
Top method regressions (bytes):
265 (6.22 % of base) : 126323.dasm - OrchardCore.ContentManagement.Display.ContentDisplay.ContentPartDisplayDriver`1+<>c__DisplayClass3_0[System.__Canon]:<Factory>b__0(OrchardCore.DisplayManagement.Implementation.ShapeDisplayContext):this (FullOpts)
265 (6.22 % of base) : 115925.dasm - OrchardCore.ContentManagement.Display.ContentDisplay.ContentPartDisplayDriver`1+<>c__DisplayClass3_0[System.__Canon]:<Factory>b__0(OrchardCore.DisplayManagement.Implementation.ShapeDisplayContext):this (Tier1)
126 (2.13 % of base) : 124506.dasm - OrchardCore.Indexing.Services.IndexingTaskManager+<FlushAsync>d__8:MoveNext():this (FullOpts)
8 (0.49 % of base) : 19248.dasm - System.Net.Http.HttpRuleParser:GetHostLength(System.String,int,ubyte):int (Tier1)
Top method improvements (bytes):
-93 (-6.34 % of base) : 2523.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-93 (-6.34 % of base) : 31429.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-83 (-3.34 % of base) : 31306.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-83 (-3.34 % of base) : 3647.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-77 (-33.33 % of base) : 116976.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-66 (-6.18 % of base) : 82701.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-66 (-7.73 % of base) : 108077.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-62 (-5.82 % of base) : 14967.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-62 (-7.29 % of base) : 16882.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-56 (-5.07 % of base) : 37177.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-47 (-21.76 % of base) : 38444.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (Tier0)
-45 (-6.11 % of base) : 47330.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Instrumented Tier0)
-42 (-2.94 % of base) : 1726.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
-42 (-2.94 % of base) : 24161.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
-39 (-5.23 % of base) : 34500.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-39 (-7.63 % of base) : 66901.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-35 (-5.79 % of base) : 36773.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Tier0)
-34 (-1.67 % of base) : 2090.dasm - System.PackedSpanHelpers:Contains(byref,short,int):ubyte (Instrumented Tier0)
-34 (-1.23 % of base) : 2197.dasm - System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (Instrumented Tier0)
-34 (-1.10 % of base) : 2365.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Instrumented Tier0)
Top method regressions (percentages):
265 (6.22 % of base) : 126323.dasm - OrchardCore.ContentManagement.Display.ContentDisplay.ContentPartDisplayDriver`1+<>c__DisplayClass3_0[System.__Canon]:<Factory>b__0(OrchardCore.DisplayManagement.Implementation.ShapeDisplayContext):this (FullOpts)
265 (6.22 % of base) : 115925.dasm - OrchardCore.ContentManagement.Display.ContentDisplay.ContentPartDisplayDriver`1+<>c__DisplayClass3_0[System.__Canon]:<Factory>b__0(OrchardCore.DisplayManagement.Implementation.ShapeDisplayContext):this (Tier1)
126 (2.13 % of base) : 124506.dasm - OrchardCore.Indexing.Services.IndexingTaskManager+<FlushAsync>d__8:MoveNext():this (FullOpts)
8 (0.49 % of base) : 19248.dasm - System.Net.Http.HttpRuleParser:GetHostLength(System.String,int,ubyte):int (Tier1)
Top method improvements (percentages):
-24 (-37.50 % of base) : 5708.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-77 (-33.33 % of base) : 116976.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-11 (-29.73 % of base) : 83506.dasm - System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Instrumented Tier0)
-11 (-29.73 % of base) : 1616.dasm - System.SpanHelpers:GetCharVector512SpanLength(long,long):long (Tier0)
-8 (-25.00 % of base) : 31583.dasm - System.SpanHelpers:GetByteVector512SpanLength(ulong,int):ulong (Instrumented Tier0)
-8 (-25.00 % of base) : 3758.dasm - System.SpanHelpers:GetByteVector512SpanLength(ulong,int):ulong (Tier0)
-7 (-23.33 % of base) : 31631.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Instrumented Tier0)
-7 (-23.33 % of base) : 4597.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-22.58 % of base) : 6751.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Instrumented Tier0)
-7 (-22.58 % of base) : 1945.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-47 (-21.76 % of base) : 38444.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (Tier0)
-3 (-21.43 % of base) : 23567.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
-3 (-21.43 % of base) : 2774.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 23559.dasm - System.Runtime.Intrinsics.Vector256`1[ushort]:get_Count():int (Instrumented Tier0)
-3 (-21.43 % of base) : 2784.dasm - System.Runtime.Intrinsics.Vector256`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 2383.dasm - System.Runtime.Intrinsics.Vector512`1[ushort]:get_Count():int (Tier0)
-21 (-20.00 % of base) : 2672.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-11 (-19.64 % of base) : 31220.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
-11 (-19.64 % of base) : 3144.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-16 (-18.60 % of base) : 94657.dasm - NodaTime.TimeZones.IO.DateTimeZoneReader:ReadInt64():long:this (Tier0)
benchmarks.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 8730179 (overridden on cmd)
Total bytes of diff: 8730138 (overridden on cmd)
Total bytes of delta: -41 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 23069.dasm (0.97 % of base)
16 : 19054.dasm (4.19 % of base)
8 : 1844.dasm (0.10 % of base)
6 : 14489.dasm (0.23 % of base)
6 : 1914.dasm (0.29 % of base)
6 : 1939.dasm (0.35 % of base)
3 : 23936.dasm (0.70 % of base)
3 : 23937.dasm (0.70 % of base)
3 : 25113.dasm (0.71 % of base)
3 : 5475.dasm (0.70 % of base)
3 : 5476.dasm (0.70 % of base)
Top file improvements (bytes):
-61 : 2471.dasm (-29.61 % of base)
-18 : 21382.dasm (-1.10 % of base)
-6 : 3277.dasm (-0.89 % of base)
-6 : 4794.dasm (-0.89 % of base)
-6 : 21396.dasm (-0.38 % of base)
-5 : 19915.dasm (-0.14 % of base)
-3 : 4064.dasm (-0.77 % of base)
-3 : 25062.dasm (-0.06 % of base)
-3 : 27793.dasm (-0.04 % of base)
-2 : 19198.dasm (-0.89 % of base)
-1 : 19906.dasm (-0.07 % of base)
22 total files with Code Size differences (11 improved, 11 regressed), 23 unchanged.
Top method regressions (bytes):
16 (4.19 % of base) : 19054.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
16 (0.97 % of base) : 23069.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
8 (0.10 % of base) : 1844.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
6 (0.23 % of base) : 14489.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
6 (0.29 % of base) : 1914.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
6 (0.35 % of base) : 1939.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 23936.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.71 % of base) : 25113.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 5475.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 5476.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 23937.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (bytes):
-61 (-29.61 % of base) : 2471.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-18 (-1.10 % of base) : 21382.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.38 % of base) : 21396.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 3277.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 4794.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-5 (-0.14 % of base) : 19915.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.06 % of base) : 25062.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.04 % of base) : 27793.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.77 % of base) : 4064.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-2 (-0.89 % of base) : 19198.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-1 (-0.07 % of base) : 19906.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
Top method regressions (percentages):
16 (4.19 % of base) : 19054.dasm - System.Formats.Tar.Tests.Perf_TarWriter:V7TarEntry_WriteEntry():this (FullOpts)
16 (0.97 % of base) : 23069.dasm - System.Formats.Tar.Tests.Perf_TarWriter+<V7TarEntry_WriteEntry_Async>d__7:MoveNext():this (FullOpts)
3 (0.71 % of base) : 25113.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 23936.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 5475.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 5476.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
3 (0.70 % of base) : 23937.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
6 (0.35 % of base) : 1939.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
6 (0.29 % of base) : 1914.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
6 (0.23 % of base) : 14489.dasm - System.Formats.Tar.TarWriter:ConstructEntryForWriting(System.String,System.String,int):System.Formats.Tar.TarEntry:this (FullOpts)
8 (0.10 % of base) : 1844.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
Top method improvements (percentages):
-61 (-29.61 % of base) : 2471.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-18 (-1.10 % of base) : 21382.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 3277.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.89 % of base) : 4794.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-2 (-0.89 % of base) : 19198.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-3 (-0.77 % of base) : 4064.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-6 (-0.38 % of base) : 21396.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-5 (-0.14 % of base) : 19915.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-1 (-0.07 % of base) : 19906.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.06 % of base) : 25062.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.04 % of base) : 27793.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
22 total methods with Code Size differences (11 improved, 11 regressed).
benchmarks.run_pgo.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 36208402 (overridden on cmd)
Total bytes of diff: 36205722 (overridden on cmd)
Total bytes of delta: -2680 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
6 : 37824.dasm (1.65 % of base)
6 : 37792.dasm (1.65 % of base)
6 : 36560.dasm (1.66 % of base)
6 : 36607.dasm (1.66 % of base)
4 : 27000.dasm (0.04 % of base)
4 : 40037.dasm (0.07 % of base)
Top file improvements (bytes):
-83 : 2025.dasm (-3.12 % of base)
-83 : 25380.dasm (-3.12 % of base)
-80 : 15455.dasm (-20.67 % of base)
-66 : 102767.dasm (-6.18 % of base)
-66 : 7915.dasm (-6.18 % of base)
-66 : 5444.dasm (-5.25 % of base)
-63 : 6343.dasm (-5.49 % of base)
-63 : 26680.dasm (-5.49 % of base)
-62 : 12277.dasm (-5.82 % of base)
-62 : 125.dasm (-3.69 % of base)
-62 : 1385.dasm (-3.69 % of base)
-62 : 1961.dasm (-5.82 % of base)
-46 : 54685.dasm (-4.65 % of base)
-39 : 10964.dasm (-5.03 % of base)
-37 : 71042.dasm (-2.11 % of base)
-31 : 85355.dasm (-3.63 % of base)
-31 : 14965.dasm (-3.63 % of base)
-30 : 1580.dasm (-1.86 % of base)
-30 : 20972.dasm (-1.16 % of base)
-30 : 7124.dasm (-1.86 % of base)
62 total files with Code Size differences (56 improved, 6 regressed), 26 unchanged.
Top method regressions (bytes):
6 (1.66 % of base) : 36560.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.66 % of base) : 36607.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.65 % of base) : 37824.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (1.65 % of base) : 37792.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (0.07 % of base) : 40037.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
4 (0.04 % of base) : 27000.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (bytes):
-83 (-3.12 % of base) : 2025.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-83 (-3.12 % of base) : 25380.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Instrumented Tier0)
-80 (-20.67 % of base) : 15455.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-66 (-6.18 % of base) : 102767.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-66 (-6.18 % of base) : 7915.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Instrumented Tier0)
-66 (-5.25 % of base) : 5444.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Instrumented Tier0)
-63 (-5.49 % of base) : 6343.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-63 (-5.49 % of base) : 26680.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
-62 (-5.82 % of base) : 12277.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-62 (-5.82 % of base) : 1961.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Instrumented Tier0)
-62 (-3.69 % of base) : 125.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-62 (-3.69 % of base) : 1385.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
-46 (-4.65 % of base) : 54685.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Instrumented Tier0)
-39 (-5.03 % of base) : 10964.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Instrumented Tier0)
-37 (-2.11 % of base) : 71042.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Instrumented Tier0)
-31 (-3.63 % of base) : 85355.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-31 (-3.63 % of base) : 14965.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
-30 (-1.16 % of base) : 20972.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Instrumented Tier0)
-30 (-1.86 % of base) : 1580.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
-30 (-1.86 % of base) : 7124.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Instrumented Tier0)
Top method regressions (percentages):
6 (1.66 % of base) : 36560.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.66 % of base) : 36607.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.65 % of base) : 37824.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (1.65 % of base) : 37792.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
4 (0.07 % of base) : 40037.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
4 (0.04 % of base) : 27000.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
Top method improvements (percentages):
-24 (-37.50 % of base) : 880.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-11 (-29.73 % of base) : 517.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Instrumented Tier0)
-11 (-29.73 % of base) : 45.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
-8 (-25.00 % of base) : 3669.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Instrumented Tier0)
-8 (-25.00 % of base) : 907.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
-3 (-21.43 % of base) : 25077.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Instrumented Tier0)
-3 (-21.43 % of base) : 1390.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 42727.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Instrumented Tier0)
-3 (-21.43 % of base) : 6685.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
-80 (-20.67 % of base) : 15455.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-21 (-20.00 % of base) : 4565.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-11 (-19.64 % of base) : 3516.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Instrumented Tier0)
-11 (-19.64 % of base) : 906.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-9 (-16.67 % of base) : 515.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Instrumented Tier0)
-9 (-16.67 % of base) : 44.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-20 (-16.00 % of base) : 2926.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-21 (-15.56 % of base) : 4670.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-4 (-15.38 % of base) : 33068.dasm - System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[ubyte]:ScalarResult(byref,byref):int (Tier0)
-23 (-12.30 % of base) : 5273.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-7 (-12.07 % of base) : 2779.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
benchmarks.run_tiered.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 12404635 (overridden on cmd)
Total bytes of diff: 12402894 (overridden on cmd)
Total bytes of delta: -1741 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 26369.dasm (0.10 % of base)
6 : 26356.dasm (0.29 % of base)
6 : 26432.dasm (0.35 % of base)
6 : 27103.dasm (1.99 % of base)
6 : 28357.dasm (1.97 % of base)
Top file improvements (bytes):
-80 : 1944.dasm (-20.67 % of base)
-79 : 1784.dasm (-3.67 % of base)
-70 : 124.dasm (-5.23 % of base)
-66 : 3995.dasm (-7.73 % of base)
-66 : 11494.dasm (-6.33 % of base)
-63 : 2633.dasm (-6.56 % of base)
-62 : 1970.dasm (-7.29 % of base)
-46 : 33805.dasm (-5.71 % of base)
-39 : 5511.dasm (-7.21 % of base)
-37 : 43725.dasm (-2.21 % of base)
-31 : 3963.dasm (-4.22 % of base)
-30 : 6349.dasm (-1.20 % of base)
-30 : 1479.dasm (-2.40 % of base)
-29 : 34740.dasm (-2.43 % of base)
-29 : 29783.dasm (-3.36 % of base)
-28 : 8892.dasm (-4.64 % of base)
-24 : 813.dasm (-37.50 % of base)
-23 : 18425.dasm (-0.72 % of base)
-23 : 5256.dasm (-12.30 % of base)
-23 : 1016.dasm (-1.82 % of base)
67 total files with Code Size differences (62 improved, 5 regressed), 5 unchanged.
Top method regressions (bytes):
8 (0.10 % of base) : 26369.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
6 (1.99 % of base) : 27103.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
6 (1.97 % of base) : 28357.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
6 (0.29 % of base) : 26356.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
6 (0.35 % of base) : 26432.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
Top method improvements (bytes):
-80 (-20.67 % of base) : 1944.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-79 (-3.67 % of base) : 1784.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (Tier0)
-70 (-5.23 % of base) : 124.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Tier0)
-66 (-7.73 % of base) : 3995.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier0)
-66 (-6.33 % of base) : 11494.dasm - System.SpanHelpers:Fill[System.__Canon](byref,ulong,System.__Canon) (Tier0)
-63 (-6.56 % of base) : 2633.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Tier0)
-62 (-7.29 % of base) : 1970.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier0)
-46 (-5.71 % of base) : 33805.dasm - System.SpanHelpers:CountValueType[ubyte](byref,ubyte,int):int (Tier0)
-39 (-7.21 % of base) : 5511.dasm - System.SpanHelpers:SequenceCompareTo(byref,int,byref,int):int (Tier0)
-37 (-2.21 % of base) : 43725.dasm - System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint (Tier0)
-31 (-4.22 % of base) : 3963.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Tier0)
-30 (-1.20 % of base) : 6349.dasm - System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong (Tier0)
-30 (-2.40 % of base) : 1479.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(ulong,ulong):ulong (Tier0)
-29 (-2.43 % of base) : 34740.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
-29 (-3.36 % of base) : 29783.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
-28 (-4.64 % of base) : 8892.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (Tier0)
-24 (-37.50 % of base) : 813.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-23 (-1.82 % of base) : 1016.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[int,System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[short]](byref,int,byref):int (Tier0)
-23 (-1.81 % of base) : 2942.dasm - System.Buffers.IndexOfAnyAsciiSearcher:IndexOfAnyCore[ubyte,System.Buffers.IndexOfAnyAsciiSearcher+Negate,System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle,System.Buffers.IndexOfAnyAsciiSearcher+ContainsAnyResultMapper`1[short]](byref,int,byref):ubyte (Tier0)
-23 (-0.72 % of base) : 18425.dasm - System.Collections.BitArray:CopyTo(System.Array,int):this (Tier0)
Top method regressions (percentages):
6 (1.99 % of base) : 27103.dasm - EMFloat:LongToInternalFPF(int,byref) (Tier0)
6 (1.97 % of base) : 28357.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Tier0)
6 (0.35 % of base) : 26432.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
6 (0.29 % of base) : 26356.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
8 (0.10 % of base) : 26369.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier1)
Top method improvements (percentages):
-24 (-37.50 % of base) : 813.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-11 (-29.73 % of base) : 44.dasm - System.SpanHelpers:GetCharVector256SpanLength(long,long):long (Tier0)
-8 (-25.00 % of base) : 833.dasm - System.SpanHelpers:GetByteVector256SpanLength(ulong,int):ulong (Tier0)
-3 (-21.43 % of base) : 1291.dasm - System.Runtime.Intrinsics.Vector128`1[ushort]:get_Count():int (Tier0)
-3 (-21.43 % of base) : 7288.dasm - System.Runtime.Intrinsics.Vector256`1[short]:get_Count():int (Tier0)
-80 (-20.67 % of base) : 1944.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-21 (-20.00 % of base) : 3058.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-11 (-19.64 % of base) : 832.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):ulong (Tier0)
-9 (-16.67 % of base) : 43.dasm - System.SpanHelpers:UnalignedCountVector128(ulong):long (Tier0)
-20 (-16.00 % of base) : 8297.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(ulong,ulong):ulong (Tier0)
-4 (-15.38 % of base) : 23625.dasm - System.Buffers.IndexOfAnyAsciiSearcher+IndexOfAnyResultMapper`1[ubyte]:ScalarResult(byref,byref):int (Tier0)
-23 (-12.30 % of base) : 5256.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-7 (-12.07 % of base) : 7537.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-11.86 % of base) : 609.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-2 (-11.76 % of base) : 39180.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Tier0)
-2 (-11.76 % of base) : 35181.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Tier0)
-2 (-11.76 % of base) : 1165.dasm - System.Diagnostics.FileVersionInfo:LOWORD(uint):uint (Tier0)
-5 (-11.11 % of base) : 36306.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-5 (-10.87 % of base) : 10609.dasm - Interop:SplitLong(long,byref,byref) (Tier0)
-5 (-10.87 % of base) : 37643.dasm - System.Reflection.Metadata.ModuleDefinitionHandle:op_Implicit(System.Reflection.Metadata.ModuleDefinitionHandle):System.Reflection.Metadata.EntityHandle (Tier0)
coreclr_tests.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 392842774 (overridden on cmd)
Total bytes of diff: 392705773 (overridden on cmd)
Total bytes of delta: -137001 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1061 : 558303.dasm (9.97 % of base)
364 : 389261.dasm (4.36 % of base)
309 : 558294.dasm (2.90 % of base)
153 : 572451.dasm (10.62 % of base)
131 : 570567.dasm (2.37 % of base)
126 : 462595.dasm (11.84 % of base)
91 : 506257.dasm (2.36 % of base)
82 : 468913.dasm (3.06 % of base)
78 : 569307.dasm (0.99 % of base)
63 : 460745.dasm (1.50 % of base)
52 : 573980.dasm (1.72 % of base)
44 : 460749.dasm (0.92 % of base)
35 : 571554.dasm (1.26 % of base)
20 : 190477.dasm (2.67 % of base)
15 : 270976.dasm (5.07 % of base)
14 : 429051.dasm (0.94 % of base)
14 : 474008.dasm (0.47 % of base)
14 : 429632.dasm (0.94 % of base)
14 : 429967.dasm (0.94 % of base)
14 : 570311.dasm (0.34 % of base)
Top file improvements (bytes):
-2554 : 288408.dasm (-5.03 % of base)
-891 : 286802.dasm (-67.50 % of base)
-305 : 288766.dasm (-21.77 % of base)
-304 : 573855.dasm (-13.08 % of base)
-303 : 288551.dasm (-6.60 % of base)
-272 : 265116.dasm (-2.94 % of base)
-252 : 267382.dasm (-9.98 % of base)
-250 : 288106.dasm (-9.19 % of base)
-242 : 287802.dasm (-45.57 % of base)
-241 : 276353.dasm (-18.23 % of base)
-239 : 288577.dasm (-3.63 % of base)
-227 : 287946.dasm (-11.36 % of base)
-224 : 267392.dasm (-8.69 % of base)
-197 : 288327.dasm (-15.13 % of base)
-191 : 275027.dasm (-21.95 % of base)
-165 : 288045.dasm (-8.27 % of base)
-163 : 276297.dasm (-8.62 % of base)
-160 : 288357.dasm (-1.44 % of base)
-159 : 288118.dasm (-6.73 % of base)
-152 : 287545.dasm (-2.52 % of base)
83 total files with Code Size differences (54 improved, 29 regressed), 20 unchanged.
Top method regressions (bytes):
1061 (9.97 % of base) : 558303.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
364 (4.36 % of base) : 389261.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
309 (2.90 % of base) : 558294.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
153 (10.62 % of base) : 572451.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
131 (2.37 % of base) : 570567.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
126 (11.84 % of base) : 462595.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
91 (2.36 % of base) : 506257.dasm - Test_throw2dimarray.App:Main():int (FullOpts)
82 (3.06 % of base) : 468913.dasm - VectorTest:TestEntryPoint():int (FullOpts)
78 (0.99 % of base) : 569307.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
63 (1.50 % of base) : 460745.dasm - div_r4._div:main():int (FullOpts)
52 (1.72 % of base) : 573980.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<>c__DisplayClass2_1+<<TEST_MultipleConnectPortsSuspend>b__1>d:MoveNext():this (FullOpts)
44 (0.92 % of base) : 460749.dasm - div_r8._div:main():int (FullOpts)
35 (1.26 % of base) : 571554.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:AddBeforeAndAfterTargetMappings(Microsoft.Build.Construction.ProjectTargetElement,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.LinkedListNode`1[Microsoft.Build.Construction.ProjectTargetElement]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.Build.BackEnd.TargetSpecification]]):this (FullOpts)
20 (2.67 % of base) : 190477.dasm - ComWrappersTests.Common.ComWrappersHelper:Init[System.__Canon](byref,System.Object,ubyte,System.Runtime.InteropServices.ComWrappers,ulong) (Tier0)
15 (5.07 % of base) : 270976.dasm - Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
14 (0.47 % of base) : 474008.dasm - ImplicitByrefTailCalls:TestEntryPoint():int (FullOpts)
14 (0.94 % of base) : 429051.dasm - JIT.HardwareIntrinsics.X86._Avx512DQ.SimpleBinaryOpTest__MultiplyLowInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
14 (0.94 % of base) : 429632.dasm - JIT.HardwareIntrinsics.X86._Avx512DQ_VL_Vector128.SimpleBinaryOpTest__MultiplyLowInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
14 (0.94 % of base) : 429967.dasm - JIT.HardwareIntrinsics.X86._Avx512DQ_VL_Vector256.SimpleBinaryOpTest__MultiplyLowInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
14 (0.34 % of base) : 570311.dasm - XarchHardwareIntrinsicTest._CpuId.Program:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-2554 (-5.03 % of base) : 288408.dasm - ILGEN_0xd73e17d6:Method_0x49426e8a(ubyte,long,long,int,float,long,double,long,ulong,uint):int (Instrumented Tier0)
-891 (-67.50 % of base) : 286802.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-305 (-21.77 % of base) : 288766.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-304 (-13.08 % of base) : 573855.dasm - Tracing.Tests.ReverseValidation.ReverseValidation+<>c__DisplayClass0_1+<<TEST_ReverseConnectionCanRecycleWhileTracing>b__1>d:MoveNext():this (FullOpts)
-303 (-6.60 % of base) : 288551.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-272 (-2.94 % of base) : 265116.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-252 (-9.98 % of base) : 267382.dasm - convr4a:Main():int (Tier0)
-250 (-9.19 % of base) : 288106.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-242 (-45.57 % of base) : 287802.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-241 (-18.23 % of base) : 276353.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-239 (-3.63 % of base) : 288577.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-227 (-11.36 % of base) : 287946.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-224 (-8.69 % of base) : 267392.dasm - convr8d:Main():int (Tier0)
-197 (-15.13 % of base) : 288327.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (Tier0)
-191 (-21.95 % of base) : 275027.dasm - ILGEN_941132142:main():int (Tier0)
-165 (-8.27 % of base) : 288045.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-163 (-8.62 % of base) : 276297.dasm - ILGEN_3171381355:main():int (Tier0)
-160 (-1.44 % of base) : 288357.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(long,int,byte,float,ushort,float):int (Tier0)
-159 (-6.73 % of base) : 288118.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-152 (-2.52 % of base) : 287545.dasm - ILGEN_0xdea951c0:Method_0x5a7bd7a1(ulong,short,byte,ubyte,long,long,ushort,long,int):double (Instrumented Tier0)
Top method regressions (percentages):
5 (27.78 % of base) : 275380.dasm - ILGEN_622380794:main():int (Tier0)
126 (11.84 % of base) : 462595.dasm - SuppressGCTransitionTest:ILStubCache_GCTransition_NoGCTransition(int):int (FullOpts)
153 (10.62 % of base) : 572451.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
1061 (9.97 % of base) : 558303.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
15 (5.07 % of base) : 270976.dasm - Test_10w5d.testout1:Func_0_3_3_5_6():float (Tier0)
12 (4.46 % of base) : 567663.dasm - CGRecurse.RecursiveACC:C() (FullOpts)
364 (4.36 % of base) : 389261.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
82 (3.06 % of base) : 468913.dasm - VectorTest:TestEntryPoint():int (FullOpts)
309 (2.90 % of base) : 558294.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
10 (2.86 % of base) : 570384.dasm - Program:DisposeEnumeratorTest():ubyte (FullOpts)
20 (2.67 % of base) : 190477.dasm - ComWrappersTests.Common.ComWrappersHelper:Init[System.__Canon](byref,System.Object,ubyte,System.Runtime.InteropServices.ComWrappers,ulong) (Tier0)
131 (2.37 % of base) : 570567.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
91 (2.36 % of base) : 506257.dasm - Test_throw2dimarray.App:Main():int (FullOpts)
7 (2.33 % of base) : 567642.dasm - CGRecurse.RecursiveAAA:A() (FullOpts)
52 (1.72 % of base) : 573980.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<>c__DisplayClass2_1+<<TEST_MultipleConnectPortsSuspend>b__1>d:MoveNext():this (FullOpts)
6 (1.66 % of base) : 227875.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.66 % of base) : 227890.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
6 (1.65 % of base) : 227936.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
6 (1.65 % of base) : 227942.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
7 (1.53 % of base) : 375647.dasm - EnumIConvertibleToType:PosTest1():ubyte:this (FullOpts)
Top method improvements (percentages):
-63 (-85.14 % of base) : 274937.dasm - _simple:main():int (Tier0)
-57 (-83.82 % of base) : 276348.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-70 (-81.40 % of base) : 286790.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-42 (-79.25 % of base) : 286498.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-38 (-77.55 % of base) : 286834.dasm - _n:main():int (Tier0)
-38 (-77.55 % of base) : 286581.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-36 (-76.60 % of base) : 274888.dasm - _simple:main():int (Tier0)
-31 (-73.81 % of base) : 286842.dasm - s:main():int (Tier0)
-29 (-72.50 % of base) : 287700.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
-27 (-71.05 % of base) : 274935.dasm - _simple:main():int (Tier0)
-27 (-71.05 % of base) : 286605.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-26 (-70.27 % of base) : 265166.dasm - LongMulOn32BitTest:LongMul_24(int):long (Tier0)
-26 (-70.27 % of base) : 265181.dasm - LongMulOn32BitTest:LongMul_39(int):long (Tier0)
-26 (-70.27 % of base) : 265196.dasm - LongMulOn32BitTest:LongMul_54(int):long (Tier0)
-26 (-70.27 % of base) : 265151.dasm - LongMulOn32BitTest:LongMul_9(int):long (Tier0)
-25 (-69.44 % of base) : 274883.dasm - _simple:main():int (Tier0)
-25 (-69.44 % of base) : 265165.dasm - LongMulOn32BitTest:LongMul_23(int):long (Tier0)
-25 (-69.44 % of base) : 265180.dasm - LongMulOn32BitTest:LongMul_38(int):long (Tier0)
-25 (-69.44 % of base) : 265195.dasm - LongMulOn32BitTest:LongMul_53(int):long (Tier0)
-25 (-69.44 % of base) : 265150.dasm - LongMulOn32BitTest:LongMul_8(int):long (Tier0)
libraries.crossgen2.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 39486541 (overridden on cmd)
Total bytes of diff: 39486232 (overridden on cmd)
Total bytes of delta: -309 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
14 : 144162.dasm (3.51 % of base)
3 : 36211.dasm (3.85 % of base)
2 : 91368.dasm (0.22 % of base)
2 : 174013.dasm (0.34 % of base)
1 : 143983.dasm (0.21 % of base)
Top file improvements (bytes):
-69 : 33793.dasm (-32.39 % of base)
-69 : 35915.dasm (-32.39 % of base)
-69 : 35878.dasm (-32.39 % of base)
-21 : 85569.dasm (-0.62 % of base)
-12 : 150662.dasm (-2.34 % of base)
-10 : 34771.dasm (-5.56 % of base)
-10 : 26368.dasm (-8.55 % of base)
-10 : 26371.dasm (-8.55 % of base)
-8 : 26374.dasm (-4.97 % of base)
-6 : 181908.dasm (-7.50 % of base)
-6 : 222935.dasm (-0.77 % of base)
-6 : 223455.dasm (-0.77 % of base)
-6 : 225241.dasm (-0.77 % of base)
-6 : 157045.dasm (-7.50 % of base)
-5 : 127311.dasm (-1.17 % of base)
-4 : 225763.dasm (-0.88 % of base)
-4 : 174011.dasm (-1.28 % of base)
-2 : 174012.dasm (-0.21 % of base)
-2 : 24427.dasm (-0.25 % of base)
-2 : 240730.dasm (-1.59 % of base)
27 total files with Code Size differences (22 improved, 5 regressed), 9 unchanged.
Top method regressions (bytes):
14 (3.51 % of base) : 144162.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
3 (3.85 % of base) : 36211.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
2 (0.22 % of base) : 91368.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
2 (0.34 % of base) : 174013.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
1 (0.21 % of base) : 143983.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
Top method improvements (bytes):
-69 (-32.39 % of base) : 35878.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-69 (-32.39 % of base) : 33793.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-32.39 % of base) : 35915.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-21 (-0.62 % of base) : 85569.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-12 (-2.34 % of base) : 150662.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-10 (-8.55 % of base) : 26368.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-10 (-8.55 % of base) : 26371.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-10 (-5.56 % of base) : 34771.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-4.97 % of base) : 26374.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-6 (-7.50 % of base) : 181908.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-6 (-7.50 % of base) : 157045.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-6 (-0.77 % of base) : 222935.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.77 % of base) : 223455.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.77 % of base) : 225241.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-5 (-1.17 % of base) : 127311.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-4 (-0.88 % of base) : 225763.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-4 (-1.28 % of base) : 174011.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-2 (-0.86 % of base) : 77137.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-2 (-1.30 % of base) : 38279.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-2 (-0.25 % of base) : 24427.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
Top method regressions (percentages):
3 (3.85 % of base) : 36211.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
14 (3.51 % of base) : 144162.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
2 (0.34 % of base) : 174013.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
2 (0.22 % of base) : 91368.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
1 (0.21 % of base) : 143983.dasm - System.Net.SSPIWrapper:QueryStringContextAttributes(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int):System.String (FullOpts)
Top method improvements (percentages):
-69 (-32.39 % of base) : 35878.dasm - System.SpanHelpers:Fill[short](byref,ulong,short) (FullOpts)
-69 (-32.39 % of base) : 33793.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-32.39 % of base) : 35915.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-10 (-8.55 % of base) : 26368.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int):this (FullOpts)
-10 (-8.55 % of base) : 26371.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this (FullOpts)
-6 (-7.50 % of base) : 181908.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-6 (-7.50 % of base) : 157045.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-10 (-5.56 % of base) : 34771.dasm - System.Threading.Tasks.TplEventSource:TraceSynchronousWorkEnd(int):this (FullOpts)
-8 (-4.97 % of base) : 26374.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this (FullOpts)
-12 (-2.34 % of base) : 150662.dasm - System.Security.Cryptography.CngKey:ImportEncryptedPkcs8(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.CngProvider):System.Security.Cryptography.CngKey (FullOpts)
-2 (-1.59 % of base) : 240730.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-2 (-1.30 % of base) : 38279.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-4 (-1.28 % of base) : 174011.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-5 (-1.17 % of base) : 127311.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-4 (-0.88 % of base) : 225763.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-2 (-0.86 % of base) : 77137.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-6 (-0.77 % of base) : 222935.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.77 % of base) : 223455.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-6 (-0.77 % of base) : 225241.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-21 (-0.62 % of base) : 85569.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
27 total methods with Code Size differences (22 improved, 5 regressed).
libraries.pmi.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 61521230 (overridden on cmd)
Total bytes of diff: 61532500 (overridden on cmd)
Total bytes of delta: 11270 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1052 : 239313.dasm (9.83 % of base)
773 : 239397.dasm (61.45 % of base)
723 : 178802.dasm (8.59 % of base)
723 : 145032.dasm (8.59 % of base)
634 : 239282.dasm (5.95 % of base)
586 : 243251.dasm (9.57 % of base)
579 : 239396.dasm (38.94 % of base)
447 : 237787.dasm (16.17 % of base)
443 : 237789.dasm (17.00 % of base)
443 : 237786.dasm (18.30 % of base)
306 : 237815.dasm (9.80 % of base)
296 : 237817.dasm (20.99 % of base)
296 : 237818.dasm (21.99 % of base)
294 : 237790.dasm (14.36 % of base)
291 : 237810.dasm (12.98 % of base)
277 : 237801.dasm (17.04 % of base)
272 : 237795.dasm (23.92 % of base)
260 : 92222.dasm (3.10 % of base)
223 : 190557.dasm (4.23 % of base)
203 : 107333.dasm (16.31 % of base)
Top file improvements (bytes):
-110 : 220611.dasm (-1.68 % of base)
-61 : 25115.dasm (-29.61 % of base)
-58 : 145060.dasm (-3.04 % of base)
-58 : 178830.dasm (-3.04 % of base)
-54 : 250163.dasm (-0.88 % of base)
-42 : 235273.dasm (-1.62 % of base)
-35 : 25117.dasm (-14.83 % of base)
-29 : 60118.dasm (-1.65 % of base)
-28 : 102032.dasm (-1.34 % of base)
-18 : 217249.dasm (-2.96 % of base)
-18 : 192922.dasm (-1.63 % of base)
-18 : 250201.dasm (-0.29 % of base)
-17 : 201594.dasm (-2.06 % of base)
-16 : 200256.dasm (-2.36 % of base)
-16 : 92375.dasm (-0.67 % of base)
-15 : 254293.dasm (-0.40 % of base)
-14 : 210355.dasm (-2.34 % of base)
-14 : 289354.dasm (-1.22 % of base)
-14 : 250203.dasm (-0.56 % of base)
-14 : 287934.dasm (-0.97 % of base)
67 total files with Code Size differences (36 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
1052 (9.83 % of base) : 239313.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
773 (61.45 % of base) : 239397.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
723 (8.59 % of base) : 178802.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
723 (8.59 % of base) : 145032.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
634 (5.95 % of base) : 239282.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
586 (9.57 % of base) : 243251.dasm - ILCompiler.Reflection.ReadyToRun.SignatureDecoder:ParseHelper(System.Text.StringBuilder):this (FullOpts)
579 (38.94 % of base) : 239396.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
447 (16.17 % of base) : 237787.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
443 (17.00 % of base) : 237789.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
443 (18.30 % of base) : 237786.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
306 (9.80 % of base) : 237815.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
296 (20.99 % of base) : 237817.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (21.99 % of base) : 237818.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
294 (14.36 % of base) : 237790.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
291 (12.98 % of base) : 237810.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
277 (17.04 % of base) : 237801.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
272 (23.92 % of base) : 237795.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
260 (3.10 % of base) : 92222.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
223 (4.23 % of base) : 190557.dasm - System.DirectoryServices.ActiveDirectory.ActiveDirectorySite:GetBridgeheadServers():System.DirectoryServices.ActiveDirectory.ReadOnlyDirectoryServerCollection:this (FullOpts)
203 (16.31 % of base) : 107333.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
Top method improvements (bytes):
-110 (-1.68 % of base) : 220611.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-61 (-29.61 % of base) : 25115.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-58 (-3.04 % of base) : 145060.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-3.04 % of base) : 178830.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-54 (-0.88 % of base) : 250163.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.DebugInfo,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
-42 (-1.62 % of base) : 235273.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts)
-35 (-14.83 % of base) : 25117.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-29 (-1.65 % of base) : 60118.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-28 (-1.34 % of base) : 102032.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
-18 (-0.29 % of base) : 250201.dasm - R2RDump.R2RDiff:ShowMethodDiff(System.Collections.Generic.Dictionary`2[System.String,int],System.Collections.Generic.Dictionary`2[System.String,int],System.String):this (FullOpts)
-18 (-1.63 % of base) : 192922.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts)
-18 (-2.96 % of base) : 217249.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:GenerateId(System.Xml.XPath.XPathNavigator):System.String:this (FullOpts)
-17 (-2.06 % of base) : 201594.dasm - System.Xml.XmlBaseWriter:GeneratePrefix(System.String,System.Xml.XmlDictionaryString):System.String:this (FullOpts)
-16 (-0.67 % of base) : 92375.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-16 (-2.36 % of base) : 200256.dasm - System.Net.Sockets.SocketAsyncEventArgs+<>c:<ProcessIOCPResult>b__138_0(System.Object):this (FullOpts)
-15 (-0.40 % of base) : 254293.dasm - R2RTest.CompileNugetCommand:CompileNuget(R2RTest.BuildOptions):int (FullOpts)
-14 (-0.97 % of base) : 287934.dasm - Microsoft.Quic.QUIC_NEW_CONNECTION_INFO:ToString():System.String:this (FullOpts)
-14 (-0.56 % of base) : 250203.dasm - R2RDump.R2RDiff:ShowDiff(System.Collections.Generic.Dictionary`2[System.String,int],System.Collections.Generic.Dictionary`2[System.String,int],System.Collections.Generic.IEnumerable`1[System.String],System.String):this (FullOpts)
-14 (-1.22 % of base) : 289354.dasm - System.Net.SecurityStatusPal:ToString():System.String:this (FullOpts)
-14 (-2.34 % of base) : 210355.dasm - System.Xml.XmlTextWriter:GeneratePrefix():System.String:this (FullOpts)
Top method regressions (percentages):
773 (61.45 % of base) : 239397.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
138 (51.88 % of base) : 153649.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
579 (38.94 % of base) : 239396.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
147 (24.38 % of base) : 237806.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
138 (24.25 % of base) : 237888.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
138 (24.21 % of base) : 153551.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
147 (24.14 % of base) : 237803.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
272 (23.92 % of base) : 237795.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (21.99 % of base) : 237818.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
296 (20.99 % of base) : 237817.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
443 (18.30 % of base) : 237786.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
161 (18.15 % of base) : 153636.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
277 (17.04 % of base) : 237801.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
443 (17.00 % of base) : 237789.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
203 (16.31 % of base) : 107333.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
447 (16.17 % of base) : 237787.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
294 (14.36 % of base) : 237790.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
149 (13.89 % of base) : 237785.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
167 (13.11 % of base) : 153635.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
291 (12.98 % of base) : 237810.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
Top method improvements (percentages):
-61 (-29.61 % of base) : 25115.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-35 (-14.83 % of base) : 25117.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
-1 (-7.14 % of base) : 27780.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-58 (-3.04 % of base) : 145060.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-3.04 % of base) : 178830.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-18 (-2.96 % of base) : 217249.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:GenerateId(System.Xml.XPath.XPathNavigator):System.String:this (FullOpts)
-5 (-2.56 % of base) : 238848.dasm - ILCompiler.PEWriter.RelocationHelper:PutThumb2Imm16(ushort,ubyte[],int) (FullOpts)
-12 (-2.48 % of base) : 278074.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-16 (-2.36 % of base) : 200256.dasm - System.Net.Sockets.SocketAsyncEventArgs+<>c:<ProcessIOCPResult>b__138_0(System.Object):this (FullOpts)
-14 (-2.34 % of base) : 210355.dasm - System.Xml.XmlTextWriter:GeneratePrefix():System.String:this (FullOpts)
-17 (-2.06 % of base) : 201594.dasm - System.Xml.XmlBaseWriter:GeneratePrefix(System.String,System.Xml.XmlDictionaryString):System.String:this (FullOpts)
-13 (-1.90 % of base) : 230710.dasm - System.Text.Json.ThrowHelper:GetJsonReaderException(byref,int,ubyte,System.ReadOnlySpan`1[ubyte]):System.Text.Json.JsonException (FullOpts)
-2 (-1.80 % of base) : 171544.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.80 % of base) : 137742.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 295918.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-9 (-1.78 % of base) : 288540.dasm - System.Net.HttpWebRequest:get_Host():System.String:this (FullOpts)
-3 (-1.75 % of base) : 58590.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
-110 (-1.68 % of base) : 220611.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-29 (-1.65 % of base) : 60118.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-18 (-1.63 % of base) : 192922.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts)
libraries_tests.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 281823883 (overridden on cmd)
Total bytes of diff: 281717723 (overridden on cmd)
Total bytes of delta: -106160 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
559 : 61110.dasm (4.57 % of base)
312 : 589618.dasm (2.49 % of base)
234 : 593904.dasm (2.32 % of base)
230 : 617578.dasm (1.96 % of base)
153 : 627658.dasm (1.55 % of base)
132 : 617586.dasm (1.02 % of base)
131 : 61623.dasm (2.24 % of base)
114 : 2964.dasm (1.47 % of base)
112 : 69775.dasm (2.45 % of base)
62 : 618917.dasm (0.83 % of base)
62 : 625514.dasm (2.34 % of base)
41 : 639138.dasm (0.33 % of base)
26 : 627907.dasm (1.43 % of base)
26 : 654741.dasm (0.23 % of base)
22 : 627911.dasm (2.28 % of base)
22 : 620059.dasm (1.25 % of base)
21 : 627910.dasm (1.28 % of base)
21 : 627912.dasm (2.01 % of base)
21 : 628609.dasm (1.55 % of base)
20 : 656675.dasm (3.18 % of base)
Top file improvements (bytes):
-65536 : 446328.dasm (-30.77 % of base)
-4096 : 446321.dasm (-30.70 % of base)
-807 : 397221.dasm (-15.66 % of base)
-807 : 399021.dasm (-15.66 % of base)
-623 : 397029.dasm (-15.13 % of base)
-623 : 397981.dasm (-13.46 % of base)
-623 : 398945.dasm (-15.13 % of base)
-623 : 398990.dasm (-13.46 % of base)
-623 : 400965.dasm (-13.46 % of base)
-623 : 401105.dasm (-13.46 % of base)
-623 : 404157.dasm (-13.46 % of base)
-623 : 397091.dasm (-13.46 % of base)
-623 : 399251.dasm (-13.46 % of base)
-623 : 401493.dasm (-13.46 % of base)
-623 : 401509.dasm (-13.46 % of base)
-623 : 405022.dasm (-13.46 % of base)
-623 : 399769.dasm (-13.46 % of base)
-623 : 400093.dasm (-13.46 % of base)
-623 : 401701.dasm (-13.46 % of base)
-623 : 402737.dasm (-13.46 % of base)
86 total files with Code Size differences (54 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
559 (4.57 % of base) : 61110.dasm - Microsoft.Interop.ComInterfaceGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,int,Microsoft.Interop.StubEnvironment,Microsoft.Interop.ManagedTypeInfo,System.Threading.CancellationToken):Microsoft.Interop.IncrementalMethodStubGenerationContext (Tier1)
312 (2.49 % of base) : 589618.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteNumbers(System.Text.Json.JsonWriterOptions,System.String):this (Tier1-OSR)
234 (2.32 % of base) : 593904.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
230 (1.96 % of base) : 617578.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitRegexDerivedTypeRunnerFactory(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod,System.Collections.Generic.Dictionary`2[System.String,System.String[]],ubyte) (Tier1)
153 (1.55 % of base) : 627658.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConvertCollectionExpression(Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:this (Tier1)
132 (1.02 % of base) : 617586.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c:<Initialize>b__5_4(Microsoft.CodeAnalysis.SourceProductionContext,System.Collections.Immutable.ImmutableArray`1[System.Object]):this (Tier1)
131 (2.24 % of base) : 61623.dasm - Microsoft.Interop.ComInterfaceGenerator:<GenerateInterfaceInformation>g__CreateEmbeddedDataBlobCreationStatement|15_0(System.ReadOnlySpan`1[ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax (Tier1)
114 (1.47 % of base) : 2964.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (Tier0-FullOpts)
112 (2.45 % of base) : 69775.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
62 (2.34 % of base) : 625514.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
62 (0.83 % of base) : 618917.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (Tier1)
41 (0.33 % of base) : 639138.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|24_4(byref) (Tier1)
26 (1.43 % of base) : 627907.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
26 (0.23 % of base) : 654741.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1-OSR)
22 (2.28 % of base) : 627911.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
22 (1.25 % of base) : 620059.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
21 (2.01 % of base) : 627912.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
21 (1.28 % of base) : 627910.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLocalAddress(Microsoft.CodeAnalysis.CSharp.BoundLocal,int):Microsoft.CodeAnalysis.CodeGen.LocalDefinition:this (Tier1)
21 (1.55 % of base) : 628609.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
20 (3.18 % of base) : 656675.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
Top method improvements (bytes):
-65536 (-30.77 % of base) : 446328.dasm - TestType:meth1():int (Tier0)
-4096 (-30.70 % of base) : 446321.dasm - TestType:meth1():int (Tier0)
-807 (-15.66 % of base) : 397221.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-807 (-15.66 % of base) : 399021.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanSpanIntoSpan>g__Vectorized256|232_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 404157.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,double,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 401509.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,float,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 397091.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 401493.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[ulong,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 398990.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanScalarSpanIntoSpan>g__Vectorized256|234_2[ulong,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ulong]](byref,ulong,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.13 % of base) : 397029.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized256|228_2[ulong,System.Numerics.Tensors.TensorPrimitives+BitwiseAndOperator`1[ulong]](byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-15.13 % of base) : 398945.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanIntoSpan>g__Vectorized256|228_2[ulong,System.Numerics.Tensors.TensorPrimitives+BitwiseAndOperator`1[ulong]](byref,byref,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 405022.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[double,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[double]](byref,byref,double,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 402737.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[float,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[float]](byref,byref,float,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 400965.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[float,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[float]](byref,byref,float,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 401105.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[int,System.Numerics.Tensors.TensorPrimitives+AddMultiplyOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 399251.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[int,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[int]](byref,byref,int,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 399769.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 401701.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[uint,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[uint]](byref,byref,uint,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 397981.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[ulong,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
-623 (-13.46 % of base) : 400093.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanSpanScalarIntoSpan>g__Vectorized256|233_2[ulong,System.Numerics.Tensors.TensorPrimitives+MultiplyAddOperator`1[ulong]](byref,byref,ulong,byref,ulong) (Instrumented Tier0)
Top method regressions (percentages):
3 (23.08 % of base) : 272194.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
3 (18.75 % of base) : 272195.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
4 (8.51 % of base) : 415960.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Tier0)
6 (6.82 % of base) : 272192.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
559 (4.57 % of base) : 61110.dasm - Microsoft.Interop.ComInterfaceGenerator:CalculateStubInformation(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.IMethodSymbol,int,Microsoft.Interop.StubEnvironment,Microsoft.Interop.ManagedTypeInfo,System.Threading.CancellationToken):Microsoft.Interop.IncrementalMethodStubGenerationContext (Tier1)
10 (4.50 % of base) : 459206.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
4 (4.40 % of base) : 421762.dasm - MS.Internal.Xml.Cache.XPathNode:set_HasNamespaceDecls(ubyte):this (Instrumented Tier0)
10 (3.69 % of base) : 267440.dasm - SdtEventSources.EventSourceTest:LogTaskScheduled(System.Guid,System.String):this (Tier0)
10 (3.69 % of base) : 267441.dasm - SdtEventSources.EventSourceTest:LogTaskScheduledBad(System.Guid,System.String):this (Tier0)
8 (3.54 % of base) : 491962.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
20 (3.18 % of base) : 656675.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
15 (2.50 % of base) : 669940.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
312 (2.49 % of base) : 589618.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteNumbers(System.Text.Json.JsonWriterOptions,System.String):this (Tier1-OSR)
112 (2.45 % of base) : 69775.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
62 (2.34 % of base) : 625514.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
234 (2.32 % of base) : 593904.dasm - System.Text.Json.Serialization.Tests.SerializerTests+<TestMultiContextSerialization>d__8`1[System.__Canon]:MoveNext():this (Tier1)
22 (2.28 % of base) : 627911.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalAddress(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
131 (2.24 % of base) : 61623.dasm - Microsoft.Interop.ComInterfaceGenerator:<GenerateInterfaceInformation>g__CreateEmbeddedDataBlobCreationStatement|15_0(System.ReadOnlySpan`1[ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax (Tier1)
2 (2.02 % of base) : 615299.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
2 (2.02 % of base) : 172453.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
Top method improvements (percentages):
-289 (-96.33 % of base) : 446345.dasm - TestType:meth1():int (Tier0)
-18 (-62.07 % of base) : 446344.dasm - TestType:meth1():int (Tier0)
-9 (-45.00 % of base) : 71000.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:get_BufferSize():int (Tier0)
-10 (-38.46 % of base) : 2736.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[int,long]:.cctor() (Tier0)
-10 (-38.46 % of base) : 71382.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
-24 (-37.50 % of base) : 71716.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Instrumented Tier0)
-24 (-37.50 % of base) : 2783.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
-6 (-35.29 % of base) : 446343.dasm - TestType:meth1():int (Tier0)
-74 (-32.74 % of base) : 402851.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (Tier1)
-74 (-32.46 % of base) : 343262.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-65536 (-30.77 % of base) : 446328.dasm - TestType:meth1():int (Tier0)
-4096 (-30.70 % of base) : 446321.dasm - TestType:meth1():int (Tier0)
-65 (-30.66 % of base) : 618987.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-63 (-30.29 % of base) : 353273.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-63 (-30.00 % of base) : 207840.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
-128 (-28.76 % of base) : 446320.dasm - TestType:meth1():int (Tier0)
-8 (-20.51 % of base) : 183512.dasm - Microsoft.VisualBasic.Conversion:Oct(int):System.String (Instrumented Tier0)
-8 (-20.51 % of base) : 179705.dasm - Microsoft.VisualBasic.Conversion:Oct(int):System.String (Tier0)
-4 (-19.05 % of base) : 266435.dasm - PEFile.IMAGE_RESOURCE_DIRECTORY_ENTRY:get_Id():int:this (Tier0)
-4 (-19.05 % of base) : 456915.dasm - System.Runtime.Caching.ExpiresEntryRef:get_Index():int:this (Tier0)
librariestestsnotieredcompilation.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 136767094 (overridden on cmd)
Total bytes of diff: 136703295 (overridden on cmd)
Total bytes of delta: -63799 (-0.05 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
561 : 57271.dasm (7.56 % of base)
376 : 182293.dasm (3.33 % of base)
264 : 32558.dasm (2.25 % of base)
158 : 21013.dasm (1.42 % of base)
154 : 166468.dasm (7.05 % of base)
131 : 102382.dasm (2.37 % of base)
124 : 231051.dasm (16.60 % of base)
119 : 223581.dasm (7.01 % of base)
114 : 1523.dasm (1.47 % of base)
107 : 206203.dasm (9.68 % of base)
77 : 102377.dasm (4.52 % of base)
76 : 47110.dasm (1.69 % of base)
68 : 190070.dasm (4.51 % of base)
55 : 101342.dasm (2.23 % of base)
48 : 96107.dasm (0.63 % of base)
40 : 228066.dasm (3.86 % of base)
40 : 228074.dasm (3.86 % of base)
34 : 137359.dasm (0.74 % of base)
34 : 281999.dasm (0.85 % of base)
33 : 121615.dasm (2.12 % of base)
Top file improvements (bytes):
-65536 : 186482.dasm (-30.77 % of base)
-234 : 223417.dasm (-7.78 % of base)
-142 : 228335.dasm (-6.92 % of base)
-90 : 200403.dasm (-1.44 % of base)
-82 : 201808.dasm (-3.95 % of base)
-82 : 220501.dasm (-3.95 % of base)
-69 : 145887.dasm (-31.80 % of base)
-61 : 228271.dasm (-3.35 % of base)
-61 : 149929.dasm (-29.61 % of base)
-61 : 152841.dasm (-29.61 % of base)
-61 : 19082.dasm (-29.61 % of base)
-56 : 190184.dasm (-2.36 % of base)
-55 : 156898.dasm (-2.96 % of base)
-42 : 108539.dasm (-1.64 % of base)
-42 : 120305.dasm (-1.64 % of base)
-37 : 75185.dasm (-1.64 % of base)
-35 : 279525.dasm (-0.55 % of base)
-34 : 196772.dasm (-2.40 % of base)
-32 : 168774.dasm (-1.34 % of base)
-31 : 201950.dasm (-0.81 % of base)
78 total files with Code Size differences (41 improved, 37 regressed), 20 unchanged.
Top method regressions (bytes):
561 (7.56 % of base) : 57271.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
376 (3.33 % of base) : 182293.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
264 (2.25 % of base) : 32558.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderCollectionTests:TestOptionsWithDifferentCollectionInterfaces():this (FullOpts)
158 (1.42 % of base) : 21013.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
154 (7.05 % of base) : 166468.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts)
131 (2.37 % of base) : 102382.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
124 (16.60 % of base) : 231051.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
119 (7.01 % of base) : 223581.dasm - System.Tests.DateTimeTests:TryParse_TimeDesignators_NetCore() (FullOpts)
114 (1.47 % of base) : 1523.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
107 (9.68 % of base) : 206203.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
77 (4.52 % of base) : 102377.dasm - System.Diagnostics.FileVersionInfo:ToString():System.String:this (FullOpts)
76 (1.69 % of base) : 47110.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
68 (4.51 % of base) : 190070.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
55 (2.23 % of base) : 101342.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
48 (0.63 % of base) : 96107.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest:SqlStringToSqlDateTime():this (FullOpts)
40 (3.86 % of base) : 228066.dasm - System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>c__DisplayClass2_0:<SetValue_KnownHeaders_ThrowIf_IncorrectValue>b__0():this (FullOpts)
40 (3.86 % of base) : 228074.dasm - System.Security.Cryptography.Cose.Tests.CoseHeaderMapTests+<>c__DisplayClass2_0:<SetValue_KnownHeaders_ThrowIf_IncorrectValue>b__1():this (FullOpts)
34 (0.85 % of base) : 281999.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
34 (0.74 % of base) : 137359.dasm - System.IO.Tests.BinaryWriterTests:BinaryWriter_SeekTests():this (FullOpts)
33 (2.12 % of base) : 121615.dasm - System.Formats.Cbor.Tests.CborWriterTests:WriteDecimal_SingleValue_HappyPath(System.String,System.String) (FullOpts)
Top method improvements (bytes):
-65536 (-30.77 % of base) : 186482.dasm - TestType:meth1():int (Tier0-MinOpts)
-234 (-7.78 % of base) : 223417.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-142 (-6.92 % of base) : 228335.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
-90 (-1.44 % of base) : 200403.dasm - System.Reflection.Metadata.ApplyUpdateTest:CheckCustomNoteAttribute(System.Reflection.MemberInfo,System.String,System.String,System.String,int) (FullOpts)
-82 (-3.95 % of base) : 201808.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison() (FullOpts)
-82 (-3.95 % of base) : 220501.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison() (FullOpts)
-69 (-31.80 % of base) : 145887.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-61 (-3.35 % of base) : 228271.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithStringAlgorithm():this (FullOpts)
-61 (-29.61 % of base) : 152841.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-61 (-29.61 % of base) : 19082.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-61 (-29.61 % of base) : 149929.dasm - System.SpanHelpers:Fill[uint](byref,ulong,uint) (FullOpts)
-56 (-2.36 % of base) : 190184.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-55 (-2.96 % of base) : 156898.dasm - System.Net.Test.Common.LoopbackServer:GetSingleChunkHttpResponse(int,System.String,System.String,ubyte):System.String (FullOpts)
-42 (-1.64 % of base) : 108539.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage04c.usage04c.Parent:Foo(System.Object,int,System.Object):int:this (FullOpts)
-42 (-1.64 % of base) : 120305.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.basic.usage13c.usage13c.Parent:Foo(System.Object,int,System.Object):int:this (FullOpts)
-37 (-1.64 % of base) : 75185.dasm - System.Collections.Tests.SortedListTests:Ctor_IDictionary_IComparer(int,ubyte):this (FullOpts)
-35 (-0.55 % of base) : 279525.dasm - System.Text.Json.Tests.JsonDocumentTests:GetPropertyFindsLast_WithEscaping(System.String) (FullOpts)
-34 (-2.40 % of base) : 196772.dasm - System.Diagnostics.Tests.StopwatchTests:OverridesToString() (FullOpts)
-32 (-1.34 % of base) : 168774.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertSaturatingImpl[byte,byte]() (FullOpts)
-31 (-0.81 % of base) : 201950.dasm - System.Tests.StringTests:IndexOf_SingleLetter(System.String,ushort,int,int,int) (FullOpts)
Top method regressions (percentages):
124 (16.60 % of base) : 231051.dasm - System.Security.Cryptography.Pkcs.Tests.Pkcs12.Pkcs12BuilderTests:BuildWithoutContents(ubyte) (FullOpts)
18 (10.53 % of base) : 124072.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_0():System.Object:this (FullOpts)
18 (10.53 % of base) : 124076.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_1():System.Object:this (FullOpts)
18 (10.53 % of base) : 124088.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_10():System.Object:this (FullOpts)
18 (10.53 % of base) : 124091.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_11():System.Object:this (FullOpts)
18 (10.53 % of base) : 124094.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_12():System.Object:this (FullOpts)
18 (10.53 % of base) : 124097.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_13():System.Object:this (FullOpts)
18 (10.53 % of base) : 124099.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_14():System.Object:this (FullOpts)
18 (10.53 % of base) : 124078.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_2():System.Object:this (FullOpts)
18 (10.53 % of base) : 124079.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_3():System.Object:this (FullOpts)
18 (10.53 % of base) : 124080.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_4():System.Object:this (FullOpts)
18 (10.53 % of base) : 124081.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_5():System.Object:this (FullOpts)
18 (10.53 % of base) : 124082.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_6():System.Object:this (FullOpts)
18 (10.53 % of base) : 124083.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_7():System.Object:this (FullOpts)
18 (10.53 % of base) : 124085.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_8():System.Object:this (FullOpts)
18 (10.53 % of base) : 124086.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests+<>c:<Constructor_UnsupportedEntryTypes>b__1_9():System.Object:this (FullOpts)
107 (9.68 % of base) : 206203.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
18 (9.18 % of base) : 124044.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests:SupportedEntryType_HardLink():this (FullOpts)
18 (9.18 % of base) : 124043.dasm - System.Formats.Tar.Tests.V7TarEntry_Tests:SupportedEntryType_SymbolicLink():this (FullOpts)
561 (7.56 % of base) : 57271.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
Top method improvements (percentages):
-69 (-31.80 % of base) : 145887.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-65536 (-30.77 % of base) : 186482.dasm - TestType:meth1():int (Tier0-MinOpts)
-61 (-29.61 % of base) : 152841.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-61 (-29.61 % of base) : 19082.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-61 (-29.61 % of base) : 149929.dasm - System.SpanHelpers:Fill[uint](byref,ulong,uint) (FullOpts)
-9 (-13.24 % of base) : 81026.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():this (FullOpts)
-10 (-11.63 % of base) : 81016.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__0():System.Object:this (FullOpts)
-10 (-11.63 % of base) : 81019.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass4_0:<Get_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-9 (-10.34 % of base) : 81028.dasm - System.Collections.Tests.BitArray_GetSetTests+<>c__DisplayClass5_0:<Set_InvalidIndex_ThrowsArgumentOutOfRangeException>b__2():System.Object:this (FullOpts)
-234 (-7.78 % of base) : 223417.dasm - System.Tests.DateTimeTests:ParseExact_ToStringThenParseExactRoundtrip_Success(System.String) (FullOpts)
-20 (-7.04 % of base) : 199167.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NIntStoreTest():this (FullOpts)
-20 (-7.04 % of base) : 199141.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NIntStoreUnsafeTest():this (FullOpts)
-20 (-7.04 % of base) : 199580.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NUIntStoreTest():this (FullOpts)
-20 (-7.04 % of base) : 199117.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NUIntStoreUnsafeTest():this (FullOpts)
-11 (-7.01 % of base) : 223284.dasm - System.Tests.DateTimeTests+<>c__DisplayClass26_0:<Ctor_InvalidMonth_ThrowsArgumentOutOfRangeException>b__5():System.Object:this (FullOpts)
-142 (-6.92 % of base) : 228335.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
-18 (-6.72 % of base) : 199334.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NIntLoadTest():this (FullOpts)
-18 (-6.72 % of base) : 199322.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NIntLoadUnsafeTest():this (FullOpts)
-18 (-6.72 % of base) : 199316.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NUIntLoadTest():this (FullOpts)
-18 (-6.72 % of base) : 199436.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64NUIntLoadUnsafeTest():this (FullOpts)
realworld.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 14124685 (overridden on cmd)
Total bytes of diff: 14125295 (overridden on cmd)
Total bytes of delta: 610 (0.00 % of base)
diff is a regression.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
561 : 29607.dasm (7.56 % of base)
220 : 30164.dasm (2.82 % of base)
76 : 19331.dasm (2.16 % of base)
66 : 29941.dasm (1.38 % of base)
34 : 29608.dasm (0.85 % of base)
27 : 29336.dasm (0.74 % of base)
27 : 29636.dasm (1.11 % of base)
27 : 29639.dasm (0.88 % of base)
26 : 29942.dasm (1.42 % of base)
23 : 1302.dasm (12.71 % of base)
15 : 29342.dasm (1.04 % of base)
12 : 29738.dasm (0.90 % of base)
7 : 29485.dasm (0.36 % of base)
7 : 29593.dasm (0.21 % of base)
4 : 1606.dasm (2.82 % of base)
3 : 16202.dasm (0.04 % of base)
1 : 13975.dasm (0.30 % of base)
1 : 13571.dasm (0.28 % of base)
Top file improvements (bytes):
-109 : 15197.dasm (-35.62 % of base)
-69 : 14881.dasm (-31.80 % of base)
-61 : 15151.dasm (-29.61 % of base)
-20 : 15056.dasm (-2.31 % of base)
-19 : 721.dasm (-5.60 % of base)
-18 : 29350.dasm (-1.10 % of base)
-17 : 15140.dasm (-1.18 % of base)
-16 : 15034.dasm (-0.68 % of base)
-15 : 18468.dasm (-4.90 % of base)
-14 : 15171.dasm (-0.56 % of base)
-12 : 15055.dasm (-1.31 % of base)
-9 : 16216.dasm (-2.13 % of base)
-8 : 18776.dasm (-0.34 % of base)
-6 : 17582.dasm (-0.89 % of base)
-6 : 15687.dasm (-0.82 % of base)
-6 : 15695.dasm (-0.81 % of base)
-6 : 19248.dasm (-0.17 % of base)
-6 : 29354.dasm (-0.38 % of base)
-5 : 18986.dasm (-0.16 % of base)
-5 : 18855.dasm (-0.14 % of base)
48 total files with Code Size differences (30 improved, 18 regressed), 16 unchanged.
Top method regressions (bytes):
561 (7.56 % of base) : 29607.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
220 (2.82 % of base) : 30164.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
76 (2.16 % of base) : 19331.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
66 (1.38 % of base) : 29941.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
34 (0.85 % of base) : 29608.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
27 (0.74 % of base) : 29336.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
27 (1.11 % of base) : 29636.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
27 (0.88 % of base) : 29639.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
26 (1.42 % of base) : 29942.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
23 (12.71 % of base) : 1302.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
15 (1.04 % of base) : 29342.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
12 (0.90 % of base) : 29738.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
7 (0.21 % of base) : 29593.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
7 (0.36 % of base) : 29485.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
4 (2.82 % of base) : 1606.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
3 (0.04 % of base) : 16202.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainCore(Microsoft.ML.Runtime.IChannel,Microsoft.ML.Data.RoleMappedData,Microsoft.ML.Trainers.LinearModelParameters,int):System.__Canon:this (FullOpts)
1 (0.30 % of base) : 13975.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnostic:WithStart(FSharp.Compiler.Text.Position):FSharp.Compiler.Diagnostics.FSharpDiagnostic:this (FullOpts)
1 (0.28 % of base) : 13571.dasm - FSharp.Compiler.TypedTreePickle:p_range(FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
Top method improvements (bytes):
-109 (-35.62 % of base) : 15197.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
-69 (-31.80 % of base) : 14881.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-61 (-29.61 % of base) : 15151.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-20 (-2.31 % of base) : 15056.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-19 (-5.60 % of base) : 721.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
-18 (-1.10 % of base) : 29350.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-17 (-1.18 % of base) : 15140.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-16 (-0.68 % of base) : 15034.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:CollectTPixelBytes[SixLabors.ImageSharp.PixelFormats.Rgba32](System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-15 (-4.90 % of base) : 18468.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
-14 (-0.56 % of base) : 15171.dasm - SixLabors.ImageSharp.Formats.Bmp.BmpEncoderCore:Write24Bit[SixLabors.ImageSharp.PixelFormats.Rgba32](System.IO.Stream,SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-12 (-1.31 % of base) : 15055.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-9 (-2.13 % of base) : 16216.dasm - Microsoft.ML.Transforms.RowShufflingTransformer:GetRowCursorCore(System.Collections.Generic.IEnumerable`1[Microsoft.ML.DataViewSchema+Column],System.Random):Microsoft.ML.DataViewRowCursor:this (FullOpts)
-8 (-0.34 % of base) : 18776.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseAssemblyReferences(System.String,System.Nullable`1[System.ReadOnlyMemory`1[ushort]],System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineReference]) (FullOpts)
-6 (-0.38 % of base) : 29354.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.17 % of base) : 19248.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-6 (-0.82 % of base) : 15687.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-6 (-0.81 % of base) : 15695.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-6 (-0.89 % of base) : 17582.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-5 (-0.14 % of base) : 18855.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-5 (-0.16 % of base) : 18986.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
Top method regressions (percentages):
23 (12.71 % of base) : 1302.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
561 (7.56 % of base) : 29607.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
4 (2.82 % of base) : 1606.dasm - BepuUtilities.Memory.IdPool:InternalResize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
220 (2.82 % of base) : 30164.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
76 (2.16 % of base) : 19331.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
26 (1.42 % of base) : 29942.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
66 (1.38 % of base) : 29941.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
27 (1.11 % of base) : 29636.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
15 (1.04 % of base) : 29342.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
12 (0.90 % of base) : 29738.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
27 (0.88 % of base) : 29639.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (0.85 % of base) : 29608.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
27 (0.74 % of base) : 29336.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
7 (0.36 % of base) : 29485.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
1 (0.30 % of base) : 13975.dasm - FSharp.Compiler.Diagnostics.FSharpDiagnostic:WithStart(FSharp.Compiler.Text.Position):FSharp.Compiler.Diagnostics.FSharpDiagnostic:this (FullOpts)
1 (0.28 % of base) : 13571.dasm - FSharp.Compiler.TypedTreePickle:p_range(FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
7 (0.21 % of base) : 29593.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
3 (0.04 % of base) : 16202.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3[System.__Canon,System.__Canon,System.__Canon]:TrainCore(Microsoft.ML.Runtime.IChannel,Microsoft.ML.Data.RoleMappedData,Microsoft.ML.Trainers.LinearModelParameters,int):System.__Canon:this (FullOpts)
Top method improvements (percentages):
-109 (-35.62 % of base) : 15197.dasm - System.SpanHelpers:Fill[SixLabors.ImageSharp.PixelFormats.Rgba32](byref,ulong,SixLabors.ImageSharp.PixelFormats.Rgba32) (FullOpts)
-69 (-31.80 % of base) : 14881.dasm - System.SpanHelpers:Fill[float](byref,ulong,float) (FullOpts)
-61 (-29.61 % of base) : 15151.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
-19 (-5.60 % of base) : 721.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.CollisionDetection.CollidablePair,BepuPhysics.CollisionDetection.CollidablePairPointers,BepuPhysics.CollisionDetection.CollidablePairComparer]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuPhysics.CollisionDetection.CollidablePairComparer):this (FullOpts)
-15 (-4.90 % of base) : 18468.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
-20 (-2.31 % of base) : 15056.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-9 (-2.13 % of base) : 16216.dasm - Microsoft.ML.Transforms.RowShufflingTransformer:GetRowCursorCore(System.Collections.Generic.IEnumerable`1[Microsoft.ML.DataViewSchema+Column],System.Random):Microsoft.ML.DataViewRowCursor:this (FullOpts)
-2 (-1.80 % of base) : 19127.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-4 (-1.70 % of base) : 702.dasm - BepuUtilities.Collections.QuickSet`2[int,BepuUtilities.Collections.PrimitiveComparer`1[int]]:.ctor(int,int,BepuUtilities.Memory.IUnmanagedMemoryPool,BepuUtilities.Collections.PrimitiveComparer`1[int]):this (FullOpts)
-12 (-1.31 % of base) : 15055.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-17 (-1.18 % of base) : 15140.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-4 (-1.12 % of base) : 1077.dasm - BepuUtilities.Collections.QuickDictionary`3[BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints,int,BepuPhysics.Collidables.ConvexHullHelper+EdgeEndpoints]:Resize(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
-18 (-1.10 % of base) : 29350.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.89 % of base) : 17582.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
-2 (-0.89 % of base) : 18989.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-6 (-0.82 % of base) : 15687.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-6 (-0.81 % of base) : 15695.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
-3 (-0.77 % of base) : 17819.dasm - System.Net.SSPIWrapper:QueryCertContextAttribute(System.Net.ISSPIInterface,System.Net.Security.SafeDeleteContext,int,byref):ubyte (FullOpts)
-4 (-0.74 % of base) : 14802.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromRgb24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgb24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-16 (-0.68 % of base) : 15034.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:CollectTPixelBytes[SixLabors.ImageSharp.PixelFormats.Rgba32](System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
smoke_tests.nativeaot.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 4884417 (overridden on cmd)
Total bytes of diff: 4884280 (overridden on cmd)
Total bytes of delta: -137 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
10 : 16411.dasm (2.41 % of base)
10 : 19047.dasm (2.41 % of base)
10 : 21697.dasm (2.41 % of base)
10 : 1279.dasm (2.41 % of base)
10 : 14617.dasm (2.39 % of base)
10 : 4613.dasm (2.41 % of base)
9 : 7432.dasm (4.43 % of base)
9 : 12953.dasm (4.43 % of base)
6 : 27294.dasm (3.28 % of base)
3 : 1782.dasm (3.33 % of base)
3 : 5835.dasm (3.33 % of base)
3 : 19506.dasm (3.33 % of base)
3 : 22223.dasm (3.33 % of base)
3 : 16908.dasm (3.33 % of base)
1 : 27571.dasm (1.08 % of base)
Top file improvements (bytes):
-69 : 21257.dasm (-31.36 % of base)
-69 : 4589.dasm (-32.39 % of base)
-69 : 771.dasm (-32.39 % of base)
-4 : 8450.dasm (-1.48 % of base)
-4 : 13699.dasm (-1.48 % of base)
-3 : 11887.dasm (-5.17 % of base)
-3 : 6661.dasm (-5.17 % of base)
-3 : 6663.dasm (-5.17 % of base)
-3 : 11889.dasm (-5.17 % of base)
-2 : 16977.dasm (-0.88 % of base)
-2 : 22232.dasm (-0.88 % of base)
-2 : 1878.dasm (-0.88 % of base)
-2 : 19624.dasm (-0.88 % of base)
-2 : 6019.dasm (-0.88 % of base)
29 total files with Code Size differences (14 improved, 15 regressed), 17 unchanged.
Top method regressions (bytes):
10 (2.41 % of base) : 16411.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 19047.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 21697.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 1279.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.39 % of base) : 14617.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 4613.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
9 (4.43 % of base) : 7432.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
9 (4.43 % of base) : 12953.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
6 (3.28 % of base) : 27294.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
3 (3.33 % of base) : 1782.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 5835.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 19506.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 22223.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 16908.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
1 (1.08 % of base) : 27571.dasm - System.SpanHelpers:ComputeLastIndex[short](long,System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts)
Top method improvements (bytes):
-69 (-31.36 % of base) : 21257.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-32.39 % of base) : 4589.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-32.39 % of base) : 771.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-4 (-1.48 % of base) : 8450.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-1.48 % of base) : 13699.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-3 (-5.17 % of base) : 6663.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 11889.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 11887.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 6661.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-2 (-0.88 % of base) : 16977.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 22232.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 1878.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 19624.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 6019.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
Top method regressions (percentages):
9 (4.43 % of base) : 7432.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
9 (4.43 % of base) : 12953.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
3 (3.33 % of base) : 1782.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 5835.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 19506.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 22223.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
3 (3.33 % of base) : 16908.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
6 (3.28 % of base) : 27294.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
10 (2.41 % of base) : 16411.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 19047.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 21697.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 1279.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.41 % of base) : 4613.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
10 (2.39 % of base) : 14617.dasm - System.Threading.Thread:SetApartmentStateUnchecked(int,ubyte):ubyte:this (FullOpts)
1 (1.08 % of base) : 27571.dasm - System.SpanHelpers:ComputeLastIndex[short](long,System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts)
Top method improvements (percentages):
-69 (-32.39 % of base) : 4589.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-32.39 % of base) : 771.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-69 (-31.36 % of base) : 21257.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
-3 (-5.17 % of base) : 6663.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 11889.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetByRefTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 11887.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-3 (-5.17 % of base) : 6661.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
-4 (-1.48 % of base) : 8450.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-4 (-1.48 % of base) : 13699.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
-2 (-0.88 % of base) : 16977.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 22232.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 1878.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 19624.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
-2 (-0.88 % of base) : 6019.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
29 total methods with Code Size differences (14 improved, 15 regressed).