Assembly Diffs

linux arm64

Diffs are based on 2,505,432 contexts (1,007,092 MinOpts, 1,498,340 FullOpts).

MISSED contexts: base: 1,433 (0.06%), diff: 1,886 (0.08%)

Overall (-477,640 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,531,664 -192
benchmarks.run_pgo.linux.arm64.checked.mch 79,703,964 -2,200
benchmarks.run_tiered.linux.arm64.checked.mch 24,584,308 -1,508
coreclr_tests.run.linux.arm64.checked.mch 507,869,544 -118,224
libraries.crossgen2.linux.arm64.checked.mch 55,843,068 -416
libraries.pmi.linux.arm64.checked.mch 76,112,184 +13,896
libraries_tests.run.linux.arm64.Release.mch 393,594,124 -240,668
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 164,661,116 -128,912
realworld.run.linux.arm64.checked.mch 15,892,888 +668
smoke_tests.nativeaot.linux.arm64.checked.mch 2,829,664 -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,524 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,226,736 -192
benchmarks.run_pgo.linux.arm64.checked.mch 53,769,180 +64
benchmarks.run_tiered.linux.arm64.checked.mch 4,845,872 -28
coreclr_tests.run.linux.arm64.checked.mch 159,721,392 -7,472
libraries.crossgen2.linux.arm64.checked.mch 55,841,432 -416
libraries.pmi.linux.arm64.checked.mch 75,992,200 +13,896
libraries_tests.run.linux.arm64.Release.mch 178,462,172 +928
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 151,163,652 +2,160
realworld.run.linux.arm64.checked.mch 15,311,964 +668
smoke_tests.nativeaot.linux.arm64.checked.mch 2,828,676 -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.Vector1[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.ConditionalWeakTable2[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 551 842 -124,612 +6,388
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,010 558 58 394 -246,204 +5,536
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 435 191 154 90 -133,556 +4,644
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,304 7,809 922 1,573 -511,508 +33,868

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,696 2,779 30,917 5 (0.01%) 14 (0.04%)
benchmarks.run_pgo.linux.arm64.checked.mch 152,696 61,290 91,406 195 (0.13%) 208 (0.14%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,802 48,019 15,783 3 (0.00%) 12 (0.02%)
coreclr_tests.run.linux.arm64.checked.mch 625,059 382,318 242,741 128 (0.02%) 217 (0.03%)
libraries.crossgen2.linux.arm64.checked.mch 234,496 15 234,481 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 295,689 6 295,683 11 (0.00%) 56 (0.02%)
libraries_tests.run.linux.arm64.Release.mch 743,181 490,908 252,273 845 (0.11%) 985 (0.13%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,708 21,599 283,109 11 (0.00%) 157 (0.05%)
realworld.run.linux.arm64.checked.mch 33,303 151 33,152 4 (0.01%) 6 (0.02%)
smoke_tests.nativeaot.linux.arm64.checked.mch 18,802 7 18,795 231 (1.21%) 231 (1.21%)
2,505,432 1,007,092 1,498,340 1,433 (0.06%) 1,886 (0.08%)

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: 15531664 (overridden on cmd)
Total bytes of diff: 15531472 (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 : 10325.dasm (0.40 % of base)
           8 : 10299.dasm (0.33 % of base)
           8 : 12599.dasm (0.29 % of base)
           4 : 160.dasm (7.14 % of base)
           4 : 19326.dasm (0.88 % of base)
           4 : 19327.dasm (0.88 % of base)
           4 : 25203.dasm (0.88 % of base)
           4 : 11530.dasm (0.88 % of base)
           4 : 11531.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 : 25390.dasm (-0.35 % of base)
          -8 : 26796.dasm (-0.35 % of base)
          -8 : 29435.dasm (-0.35 % of base)
          -8 : 13418.dasm (-0.35 % of base)
          -8 : 23561.dasm (-0.35 % of base)
          -8 : 115.dasm (-0.35 % of base)
          -8 : 16647.dasm (-0.35 % of base)
          -4 : 33302.dasm (-0.04 % of base)
          -4 : 20174.dasm (-0.24 % of base)
          -4 : 28326.dasm (-0.07 % of base)
          -4 : 432.dasm (-1.23 % of base)
          -4 : 11070.dasm (-0.05 % 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) : 25390.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) : 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)
          -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) : 16647.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) : 25390.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) : 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)
          -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) : 16647.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: 79703964 (overridden on cmd)
Total bytes of diff: 79701764 (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.62 % of base)
         120 : 134866.dasm (1.26 % of base)
          16 : 38599.dasm (3.51 % of base)
          16 : 38631.dasm (3.51 % of base)
          16 : 46734.dasm (3.51 % of base)
          16 : 46709.dasm (3.51 % of base)
           4 : 578.dasm (3.70 % of base)

Top file improvements (bytes):
        -120 : 103768.dasm (-40.00 % of base)
        -120 : 146192.dasm (-40.00 % of base)
        -120 : 27147.dasm (-40.00 % of base)
        -120 : 37949.dasm (-40.00 % of base)
        -100 : 24917.dasm (-8.45 % of base)
        -100 : 11860.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 : 24535.dasm (-2.88 % of base)
         -88 : 3594.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.62 % 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.26 % 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) : 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)
        -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)
        -100 (-8.45 % of base) : 24917.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
        -100 (-8.45 % of base) : 11860.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) : 24535.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (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)
         -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.62 % 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.26 % 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) : 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)
        -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)
         -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: 24584308 (overridden on cmd)
Total bytes of diff: 24582800 (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 : 26384.dasm (4.08 % of base)
          16 : 27101.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 : 3419.dasm (-9.32 % of base)
         -88 : 3051.dasm (-3.51 % 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 : 8889.dasm (-2.71 % of base)
         -24 : 58202.dasm (-2.35 % of base)
         -24 : 8989.dasm (-2.97 % of base)
         -20 : 963.dasm (-27.78 % of base)
         -20 : 22065.dasm (-2.26 % of base)
         -20 : 18677.dasm (-8.47 % 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: 507869544 (overridden on cmd)
Total bytes of diff: 507751320 (overridden on cmd)
Total bytes of delta: -118224 (-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 : 87794.dasm (1.57 % of base)
          24 : 112263.dasm (1.57 % of base)
          24 : 87779.dasm (1.57 % of base)
          16 : 466256.dasm (3.51 % of base)
          16 : 466323.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 : 515281.dasm (-9.54 % of base)
        -176 : 513884.dasm (-19.21 % 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) : 311305.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           4 (4.17 % of base) : 251354.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) : 466323.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
          16 (3.51 % of base) : 466315.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) : 513734.dasm - _simple:main():int (Tier0)
         -36 (-64.29 % of base) : 513789.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: 55843068 (overridden on cmd)
Total bytes of diff: 55842652 (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 : 34605.dasm (-32.84 % of base)
         -88 : 36438.dasm (-32.84 % of base)
         -88 : 36467.dasm (-32.84 % of base)
         -16 : 219469.dasm (-1.96 % of base)
         -16 : 227307.dasm (-1.96 % of base)
         -16 : 181411.dasm (-1.96 % of base)
         -16 : 231074.dasm (-1.96 % of base)
         -16 : 27230.dasm (-11.11 % of base)
         -16 : 27233.dasm (-11.11 % of base)
         -16 : 27236.dasm (-8.00 % of base)
         -16 : 35548.dasm (-7.55 % of base)
          -8 : 137761.dasm (-1.13 % of base)
          -4 : 210353.dasm (-1.96 % of base)
          -4 : 219846.dasm (-0.62 % of base)
          -4 : 177848.dasm (-1.96 % of base)
          -4 : 25312.dasm (-0.35 % of base)
          -4 : 34920.dasm (-1.59 % of base)
          -4 : 57.dasm (-0.62 % 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) : 34605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 36467.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) : 219469.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) : 181411.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) : 34605.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 36467.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) : 219469.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) : 181411.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: 76112184 (overridden on cmd)
Total bytes of diff: 76126080 (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 : 85613.dasm (17.81 % of base)
         384 : 85614.dasm (18.71 % of base)
         384 : 85611.dasm (8.93 % 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 : 282337.dasm (-0.38 % of base)
         -28 : 225181.dasm (-1.09 % of base)
         -28 : 26837.dasm (-1.09 % 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 : 282216.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 : 259063.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) : 225181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
         -28 (-1.09 % of base) : 26837.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) : 282216.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) : 259063.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) : 282216.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) : 259063.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) : 225181.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
         -28 (-1.09 % of base) : 26837.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: 393594124 (overridden on cmd)
Total bytes of diff: 393353456 (overridden on cmd)
Total bytes of delta: -240668 (-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.33 % 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 : 412160.dasm (-30.12 % of base)
       -1336 : 428052.dasm (-30.12 % of base)
       -1336 : 411643.dasm (-30.12 % of base)
       -1336 : 427918.dasm (-30.12 % of base)
       -1028 : 411478.dasm (-26.66 % of base)
       -1028 : 419510.dasm (-26.66 % of base)
       -1028 : 427657.dasm (-27.49 % of base)
       -1028 : 427689.dasm (-26.66 % of base)
       -1028 : 413970.dasm (-26.66 % of base)
       -1028 : 427574.dasm (-26.66 % of base)
       -1028 : 427605.dasm (-26.66 % of base)
       -1028 : 427973.dasm (-26.66 % of base)
       -1028 : 411886.dasm (-26.66 % of base)
       -1028 : 424754.dasm (-26.66 % of base)
       -1028 : 424841.dasm (-26.66 % of base)
       -1028 : 427717.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.33 % 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) : 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)
       -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)
       -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.33 % 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) : 230382.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 (-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) : 190633.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 (-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) : 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)
        -120 (-38.46 % of base) : 64980.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: 164661116 (overridden on cmd)
Total bytes of diff: 164532204 (overridden on cmd)
Total bytes of delta: -128912 (-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)
         148 : 191635.dasm (2.03 % 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 : 151188.dasm (0.35 % of base)
          28 : 117273.dasm (1.47 % 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 : 71685.dasm (-2.27 % of base)
         -68 : 213674.dasm (-2.15 % of base)
         -68 : 265328.dasm (-0.69 % 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 : 262231.dasm (-2.64 % of base)
         -32 : 4634.dasm (-0.69 % of base)
         -32 : 54795.dasm (-1.24 % of base)
         -32 : 54814.dasm (-1.27 % of base)
         -28 : 156834.dasm (-0.73 % of base)
         -28 : 54430.dasm (-1.23 % 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)
         148 (2.03 % 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: 15892888 (overridden on cmd)
Total bytes of diff: 15893556 (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 : 27182.dasm (0.65 % of base)
          40 : 27210.dasm (1.04 % of base)
          40 : 27213.dasm (0.82 % of base)
          36 : 27516.dasm (1.27 % of base)
           8 : 1706.dasm (3.39 % of base)
           4 : 1814.dasm (2.17 % of base)
           4 : 27167.dasm (0.08 % of base)
           4 : 27060.dasm (0.14 % of base)
           4 : 27312.dasm (0.20 % of base)
           4 : 160.dasm (7.14 % 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 : 12100.dasm (-1.72 % of base)
         -16 : 16404.dasm (-1.17 % of base)
         -16 : 16635.dasm (-0.39 % of base)
         -16 : 17494.dasm (-0.49 % of base)
         -16 : 14936.dasm (-2.27 % of base)
         -16 : 16365.dasm (-1.22 % of base)
         -12 : 12099.dasm (-1.15 % of base)
         -12 : 16391.dasm (-1.67 % of base)
         -12 : 17531.dasm (-0.74 % of base)
         -12 : 16380.dasm (-1.20 % 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: 2829664 (overridden on cmd)
Total bytes of diff: 2829580 (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 : 12903.dasm (1.54 % of base)
           4 : 1409.dasm (2.00 % of base)

Top file improvements (bytes):
         -88 : 726.dasm (-32.84 % of base)
         -16 : 4244.dasm (-2.31 % of base)
          -4 : 4161.dasm (-1.45 % of base)
          -4 : 4230.dasm (-1.61 % 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,515,914 contexts (991,070 MinOpts, 1,524,844 FullOpts).

MISSED contexts: base: 1,584 (0.06%), diff: 1,995 (0.08%)

Overall (-297,309 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,323,346 +34
benchmarks.run_pgo.linux.x64.checked.mch 71,225,423 -2,069
benchmarks.run_tiered.linux.x64.checked.mch 21,423,742 -1,575
coreclr_tests.run.linux.x64.checked.mch 403,160,942 -124,017
libraries.crossgen2.linux.x64.checked.mch 38,726,572 -245
libraries.pmi.linux.x64.checked.mch 60,294,308 +10,312
libraries_tests.run.linux.x64.Release.mch 335,310,491 -115,530
librariestestsnotieredcompilation.run.linux.x64.Release.mch 132,293,350 -64,675
realworld.run.linux.x64.checked.mch 13,168,403 +602
smoke_tests.nativeaot.linux.x64.checked.mch 4,064,942 -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,192 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 14,024,043 +34
benchmarks.run_pgo.linux.x64.checked.mch 47,425,434 +499
benchmarks.run_tiered.linux.x64.checked.mch 3,682,962 +88
coreclr_tests.run.linux.x64.checked.mch 123,406,482 +531
libraries.crossgen2.linux.x64.checked.mch 38,725,374 -245
libraries.pmi.linux.x64.checked.mch 60,181,451 +10,312
libraries_tests.run.linux.x64.Release.mch 151,550,882 +656
librariestestsnotieredcompilation.run.linux.x64.Release.mch 121,675,582 +861
realworld.run.linux.x64.checked.mch 12,782,519 +602
smoke_tests.nativeaot.linux.x64.checked.mch 4,063,993 -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.Vector1[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,591 +4,574
libraries.crossgen2.linux.x64.checked.mch 42 19 6 17 -253 +8
libraries.pmi.linux.x64.checked.mch 241 81 116 44 -1,097 +11,409
libraries_tests.run.linux.x64.Release.mch 1,052 818 67 167 -117,702 +2,172
librariestestsnotieredcompilation.run.linux.x64.Release.mch 632 229 200 203 -70,201 +5,526
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,592 7,564 756 1,272 -323,035 +25,726

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 36,207 3,549 32,658 1 (0.00%) 10 (0.03%)
benchmarks.run_pgo.linux.x64.checked.mch 160,112 63,207 96,905 198 (0.12%) 215 (0.13%)
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,838 355,942 242,896 130 (0.02%) 175 (0.03%)
libraries.crossgen2.linux.x64.checked.mch 234,329 15 234,314 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 296,883 6 296,877 3 (0.00%) 48 (0.02%)
libraries_tests.run.linux.x64.Release.mch 758,740 496,184 262,556 887 (0.12%) 1,026 (0.14%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,295 21,912 283,383 3 (0.00%) 148 (0.05%)
realworld.run.linux.x64.checked.mch 33,080 9 33,071 1 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,053 10 27,043 361 (1.32%) 361 (1.32%)
2,515,914 991,070 1,524,844 1,584 (0.06%) 1,995 (0.08%)

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: 14323346 (overridden on cmd)
Total bytes of diff: 14323380 (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 : 24226.dasm (0.59 % of base)
           3 : 6242.dasm (0.59 % of base)
           3 : 24227.dasm (0.59 % of base)
           3 : 6243.dasm (0.59 % of base)
           3 : 27043.dasm (0.60 % of base)
           1 : 18316.dasm (0.05 % of base)
           1 : 27774.dasm (0.05 % of base)
           1 : 34879.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 : 30218.dasm (0.05 % of base)
           1 : 23295.dasm (0.05 % of base)
           1 : 33497.dasm (0.05 % of base)

Top file improvements (bytes):
         -53 : 3030.dasm (-27.32 % of base)
         -18 : 22161.dasm (-1.06 % of base)
          -6 : 2581.dasm (-0.89 % of base)
          -6 : 5650.dasm (-0.89 % of base)
          -6 : 22175.dasm (-0.37 % of base)
          -6 : 6513.dasm (-0.82 % of base)
          -6 : 2807.dasm (-0.89 % 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) : 18316.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) : 34879.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) : 30218.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) : 33497.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) : 2581.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
          -6 (-0.89 % of base) : 5650.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) : 18316.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) : 34879.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) : 30218.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) : 33497.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) : 2581.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
          -6 (-0.89 % of base) : 5650.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: 71225423 (overridden on cmd)
Total bytes of diff: 71223354 (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.73 % of base)
         124 : 145003.dasm (1.33 % of base)
           6 : 115120.dasm (2.90 % of base)
           6 : 27031.dasm (2.90 % of base)
           6 : 42363.dasm (1.66 % of base)
           6 : 42391.dasm (1.66 % of base)
           6 : 49481.dasm (1.65 % of base)
           6 : 49502.dasm (1.65 % 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 : 4514.dasm (-6.19 % of base)
         -66 : 10163.dasm (-5.06 % of base)
         -63 : 65398.dasm (-5.73 % of base)
         -63 : 9715.dasm (-5.73 % of base)
         -62 : 1176.dasm (-3.76 % of base)
         -62 : 180.dasm (-3.76 % of base)
         -62 : 3649.dasm (-5.83 % of base)
         -62 : 5123.dasm (-5.83 % 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 : 17815.dasm (-3.82 % of base)
         -31 : 4482.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.73 % 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.33 % 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) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           6 (2.90 % of base) : 27031.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) : 65398.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
         -63 (-5.73 % of base) : 9715.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) : 17815.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
         -31 (-3.82 % of base) : 4482.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.73 % 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) : 115120.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
           6 (2.90 % of base) : 27031.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.33 % 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: 21423742 (overridden on cmd)
Total bytes of diff: 21422167 (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 : 1435.dasm (-2.43 % of base)
         -30 : 19650.dasm (-1.55 % of base)
         -29 : 61327.dasm (-3.35 % of base)
         -29 : 30362.dasm (-2.43 % of base)
         -24 : 938.dasm (-37.50 % of base)
         -23 : 13698.dasm (-1.99 % of base)
         -23 : 18562.dasm (-12.30 % of base)
         -23 : 1152.dasm (-2.00 % 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 (-3.35 % of base) : 61327.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
         -29 (-2.43 % of base) : 30362.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: 403160942 (overridden on cmd)
Total bytes of diff: 403036925 (overridden on cmd)
Total bytes of delta: -124017 (-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)
          95 : 596384.dasm (3.18 % 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 : 402934.dasm (5.07 % of base)
          21 : 402936.dasm (4.98 % of base)
          21 : 402937.dasm (4.98 % of base)
          21 : 403080.dasm (5.07 % of base)
          21 : 403081.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)
          95 (3.18 % 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: 38726572 (overridden on cmd)
Total bytes of diff: 38726327 (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 : 66269.dasm (0.03 % of base)
           1 : 95903.dasm (0.12 % of base)
           1 : 233396.dasm (0.12 % of base)
           1 : 39925.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 : 17235.dasm (-6.67 % of base)
          -7 : 17241.dasm (-4.40 % of base)
          -7 : 17238.dasm (-6.60 % of base)
          -5 : 12136.dasm (-45.45 % of base)
          -5 : 127092.dasm (-1.17 % of base)
          -5 : 232838.dasm (-1.06 % of base)
          -2 : 15316.dasm (-0.26 % of base)
          -2 : 24910.dasm (-0.95 % of base)
          -2 : 146983.dasm (-2.94 % of base)
          -2 : 57829.dasm (-0.79 % of base)
          -2 : 200962.dasm (-1.19 % of base)
          -2 : 164390.dasm (-2.94 % 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) : 95903.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)

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) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-2.94 % of base) : 164390.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) : 95903.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.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) : 146983.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -2 (-2.94 % of base) : 164390.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: 60294308 (overridden on cmd)
Total bytes of diff: 60304620 (overridden on cmd)
Total bytes of delta: 10312 (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 : 171615.dasm (8.37 % of base)
         727 : 188978.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 : 60512.dasm (13.18 % of base)
         282 : 60539.dasm (19.56 % of base)
         282 : 60540.dasm (20.32 % 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 : 194828.dasm (-1.37 % of base)
         -27 : 265608.dasm (-1.37 % of base)
         -27 : 277642.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) : 171615.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
         727 (8.37 % of base) : 188978.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) : 194828.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) : 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: 335310491 (overridden on cmd)
Total bytes of diff: 335194961 (overridden on cmd)
Total bytes of delta: -115530 (-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)
         243 : 588411.dasm (2.34 % of base)
         234 : 669548.dasm (2.28 % of base)
         229 : 667208.dasm (2.07 % of base)
         128 : 675186.dasm (0.78 % of base)
         122 : 588465.dasm (4.32 % of base)
         111 : 89855.dasm (2.10 % of base)
          94 : 92093.dasm (0.75 % of base)
          84 : 69754.dasm (2.19 % of base)
          71 : 72271.dasm (1.66 % of base)
          67 : 713723.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 : 450072.dasm (-18.06 % of base)
        -807 : 434892.dasm (-18.06 % of base)
        -807 : 450212.dasm (-18.06 % of base)
        -623 : 435798.dasm (-15.52 % of base)
        -623 : 436949.dasm (-15.52 % of base)
        -623 : 438022.dasm (-15.52 % of base)
        -623 : 438762.dasm (-15.52 % of base)
        -623 : 447782.dasm (-15.52 % of base)
        -623 : 449562.dasm (-17.13 % of base)
        -623 : 437194.dasm (-15.52 % of base)
        -623 : 438838.dasm (-15.52 % of base)
        -623 : 439254.dasm (-15.52 % of base)
        -623 : 449697.dasm (-15.52 % of base)
        -623 : 435174.dasm (-17.13 % of base)
        -623 : 437577.dasm (-15.52 % of base)
        -623 : 437602.dasm (-15.52 % of base)
        -623 : 439885.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)
         243 (2.34 % 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)
         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)
         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.10 % 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)
          71 (1.66 % of base) : 72271.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
          67 (1.66 % of base) : 713723.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
          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)
         243 (2.34 % 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)
         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)

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) : 223145.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (Tier1)
         -55 (-27.78 % of base) : 382538.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: 132293350 (overridden on cmd)
Total bytes of diff: 132228675 (overridden on cmd)
Total bytes of delta: -64675 (-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)
         215 : 191751.dasm (3.48 % 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 : 161106.dasm (-8.21 % of base)
         -69 : 137801.dasm (-31.08 % 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)
         215 (3.48 % 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) : 18649.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
         -53 (-27.32 % of base) : 143983.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: 13168403 (overridden on cmd)
Total bytes of diff: 13169005 (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 : 26840.dasm (1.07 % of base)
          34 : 26538.dasm (0.91 % of base)
          34 : 26837.dasm (1.35 % 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 : 12743.dasm (-1.09 % of base)
          -8 : 12617.dasm (-3.25 % of base)
          -8 : 15991.dasm (-0.33 % of base)
          -8 : 12633.dasm (-1.11 % of base)
          -7 : 15704.dasm (-2.50 % of base)
          -7 : 13596.dasm (-1.30 % of base)
          -6 : 16478.dasm (-0.17 % of base)
          -6 : 14599.dasm (-0.89 % 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: 4064942 (overridden on cmd)
Total bytes of diff: 4064796 (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 : 19024.dasm (9.38 % of base)
           3 : 26466.dasm (9.38 % of base)
           3 : 23759.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 : 6258.dasm (-4.00 % of base)
          -2 : 6257.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) : 19024.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) : 23759.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) : 19024.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) : 23759.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,269,757 contexts (932,669 MinOpts, 1,337,088 FullOpts).

MISSED contexts: base: 772 (0.03%), diff: 1,113 (0.05%)

Overall (-474,764 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,160,132 -140
benchmarks.run_pgo.osx.arm64.checked.mch 34,330,056 -4,868
benchmarks.run_tiered.osx.arm64.checked.mch 15,496,344 -1,484
coreclr_tests.run.osx.arm64.checked.mch 486,098,552 -111,356
libraries.crossgen2.osx.arm64.checked.mch 55,724,572 -420
libraries.pmi.osx.arm64.checked.mch 80,133,124 +12,424
libraries_tests.run.osx.arm64.Release.mch 323,089,700 -242,556
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 162,339,072 -126,996
realworld.run.osx.arm64.checked.mch 15,051,672 +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,940 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,159,596 -140
benchmarks.run_pgo.osx.arm64.checked.mch 18,028,756 -2,812
benchmarks.run_tiered.osx.arm64.checked.mch 3,991,860 -48
coreclr_tests.run.osx.arm64.checked.mch 153,485,628 -980
libraries.crossgen2.osx.arm64.checked.mch 55,722,944 -420
libraries.pmi.osx.arm64.checked.mch 80,011,996 +12,424
libraries_tests.run.osx.arm64.Release.mch 119,373,852 -792
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 149,185,344 +4,076
realworld.run.osx.arm64.checked.mch 14,487,716 +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.Vector1[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 146 806 -114,592 +3,236
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 876 526 46 304 -243,796 +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,766 6,896 417 1,453 -500,668 +25,904

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,845 4 24,841 6 (0.02%) 15 (0.06%)
benchmarks.run_pgo.osx.arm64.checked.mch 83,753 48,088 35,665 54 (0.06%) 64 (0.08%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,111 37,350 10,761 3 (0.01%) 13 (0.03%)
coreclr_tests.run.osx.arm64.checked.mch 585,741 356,765 228,976 94 (0.02%) 147 (0.03%)
libraries.crossgen2.osx.arm64.checked.mch 234,105 15 234,090 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 316,314 18 316,296 15 (0.00%) 34 (0.01%)
libraries_tests.run.osx.arm64.Release.mch 643,183 468,829 174,354 584 (0.09%) 702 (0.11%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,168 21,597 280,571 13 (0.00%) 133 (0.04%)
realworld.run.osx.arm64.checked.mch 31,537 3 31,534 3 (0.01%) 5 (0.02%)
2,269,757 932,669 1,337,088 772 (0.03%) 1,113 (0.05%)

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: 11160132 (overridden on cmd)
Total bytes of diff: 11159992 (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 : 12257.dasm (0.33 % of base)
           8 : 12282.dasm (0.40 % of base)
           8 : 12549.dasm (0.29 % of base)
           4 : 14310.dasm (0.88 % of base)
           4 : 145.dasm (7.14 % of base)
           4 : 15708.dasm (0.88 % of base)
           4 : 16636.dasm (0.88 % of base)
           4 : 14311.dasm (0.88 % of base)
           4 : 15709.dasm (0.88 % of base)

Top file improvements (bytes):
         -88 : 970.dasm (-32.84 % of base)
         -32 : 19467.dasm (-1.27 % of base)
         -32 : 19453.dasm (-1.24 % 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 : 11954.dasm (-0.05 % of base)
          -4 : 22633.dasm (-0.07 % of base)
          -4 : 8815.dasm (-0.61 % of base)
          -4 : 24337.dasm (-0.04 % of base)
          -4 : 17987.dasm (-0.24 % of base)
          -4 : 417.dasm (-1.20 % 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: 34330056 (overridden on cmd)
Total bytes of diff: 34325188 (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 : 29033.dasm (3.51 % of base)
          16 : 34505.dasm (3.51 % of base)
          16 : 29011.dasm (3.51 % of base)
          16 : 34489.dasm (3.51 % of base)
           4 : 412.dasm (3.70 % of base)

Top file improvements (bytes):
        -132 : 38849.dasm (-30.84 % of base)
        -132 : 64677.dasm (-30.84 % of base)
        -132 : 74409.dasm (-30.84 % of base)
        -132 : 80000.dasm (-30.84 % of base)
        -132 : 82817.dasm (-30.84 % of base)
        -132 : 66675.dasm (-30.84 % of base)
        -132 : 5482.dasm (-30.84 % of base)
        -120 : 5472.dasm (-40.00 % of base)
        -120 : 59868.dasm (-40.00 % of base)
        -120 : 61178.dasm (-40.00 % of base)
        -120 : 64678.dasm (-40.00 % of base)
        -120 : 68127.dasm (-40.00 % of base)
        -120 : 70955.dasm (-40.00 % of base)
        -120 : 74410.dasm (-40.00 % of base)
        -120 : 75976.dasm (-40.00 % of base)
        -120 : 79994.dasm (-40.00 % of base)
        -120 : 78933.dasm (-40.00 % of base)
        -120 : 82818.dasm (-40.00 % of base)
        -120 : 38843.dasm (-40.00 % of base)
        -120 : 39131.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) : 29033.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 29011.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 34505.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
          16 (3.51 % of base) : 34489.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) : 38849.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) : 74409.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) : 66675.dasm - System.String:Ctor(ushort,int):System.String (Tier1)
        -132 (-30.84 % of base) : 5482.dasm - System.String:Ctor(ushort,int):System.String (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) : 64678.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) : 70955.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) : 75976.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -120 (-40.00 % of base) : 79994.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) : 82818.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (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)

Top method regressions (percentages):
           4 (3.70 % of base) : 412.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (Tier0)
          16 (3.51 % of base) : 29033.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 29011.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 34505.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
          16 (3.51 % of base) : 34489.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) : 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) : 64678.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) : 70955.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) : 75976.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -120 (-40.00 % of base) : 79994.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) : 82818.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (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) : 43507.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -120 (-40.00 % of base) : 66669.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -132 (-30.84 % of base) : 38849.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) : 74409.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: 15496344 (overridden on cmd)
Total bytes of diff: 15494860 (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 : 8402.dasm (-9.66 % of base)
         -92 : 12813.dasm (-8.46 % 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 : 32501.dasm (-3.90 % of base)
         -24 : 46887.dasm (-2.35 % of base)
         -24 : 5577.dasm (-2.71 % of base)
         -24 : 904.dasm (-2.73 % of base)
         -24 : 14330.dasm (-2.97 % of base)
         -20 : 23894.dasm (-2.26 % of base)
         -20 : 3983.dasm (-8.47 % of base)
         -20 : 41750.dasm (-0.43 % of base)
         -20 : 757.dasm (-27.78 % 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: 486098552 (overridden on cmd)
Total bytes of diff: 485987196 (overridden on cmd)
Total bytes of delta: -111356 (-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 : 248829.dasm (3.51 % of base)
          16 : 248883.dasm (3.51 % of base)
          16 : 248813.dasm (3.51 % of base)
          16 : 248876.dasm (3.51 % of base)
          12 : 585652.dasm (1.60 % of base)
          12 : 582268.dasm (2.73 % of base)
          12 : 442560.dasm (0.66 % of base)
          12 : 442680.dasm (0.66 % of base)
          12 : 448256.dasm (0.35 % of base)
          12 : 448340.dasm (0.34 % 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 : 13551.dasm (-21.82 % of base)
        -144 : 306202.dasm (-12.86 % 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) : 248829.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 248813.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 248883.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
          16 (3.51 % of base) : 248876.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) : 248829.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 248813.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 248883.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
          16 (3.51 % of base) : 248876.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: 55724572 (overridden on cmd)
Total bytes of diff: 55724152 (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 : 21813.dasm (7.69 % of base)
           4 : 200266.dasm (3.12 % of base)

Top file improvements (bytes):
         -88 : 21524.dasm (-32.84 % of base)
         -88 : 19609.dasm (-32.84 % of base)
         -88 : 21495.dasm (-32.84 % of base)
         -16 : 12317.dasm (-11.11 % of base)
         -16 : 163370.dasm (-1.96 % of base)
         -16 : 206390.dasm (-1.96 % of base)
         -16 : 206854.dasm (-1.96 % of base)
         -16 : 228884.dasm (-1.96 % of base)
         -16 : 12314.dasm (-11.11 % of base)
         -16 : 12320.dasm (-8.00 % of base)
         -16 : 20548.dasm (-7.55 % of base)
          -8 : 147464.dasm (-1.13 % of base)
          -4 : 190172.dasm (-0.66 % of base)
          -4 : 19924.dasm (-1.59 % of base)
          -4 : 215141.dasm (-1.96 % of base)
          -4 : 23165.dasm (-0.62 % of base)
          -4 : 140891.dasm (-1.96 % of base)
          -4 : 10391.dasm (-0.35 % of base)
          -4 : 212048.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) : 21524.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 19609.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) : 23165.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,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.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) : 21524.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 19609.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) : 23165.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,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.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: 80133124 (overridden on cmd)
Total bytes of diff: 80145548 (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 : 244292.dasm (7.72 % of base)
        1016 : 48003.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 : 90973.dasm (14.93 % of base)
         384 : 90989.dasm (17.81 % of base)
         384 : 90990.dasm (18.71 % of base)
         384 : 90987.dasm (8.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 : 165658.dasm (21.15 % of base)

Top file improvements (bytes):
         -88 : 85939.dasm (-2.44 % of base)
         -88 : 8850.dasm (-32.84 % 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 : 244319.dasm (-1.14 % of base)
         -32 : 48030.dasm (-1.14 % of base)
         -28 : 210010.dasm (-1.84 % of base)
         -28 : 244322.dasm (-1.09 % of base)
         -28 : 48033.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 : 17417.dasm (-7.41 % of base)
         -16 : 288302.dasm (-2.27 % of base)
         -16 : 288417.dasm (-0.22 % 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) : 244292.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
        1016 (7.72 % of base) : 48003.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 (21.15 % of base) : 165658.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) : 244319.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
         -32 (-1.14 % of base) : 48030.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
         -28 (-1.09 % of base) : 244322.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
         -28 (-1.09 % of base) : 48033.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: 323089700 (overridden on cmd)
Total bytes of diff: 322847144 (overridden on cmd)
Total bytes of delta: -242556 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         208 : 614275.dasm (4.75 % of base)
         172 : 90235.dasm (3.62 % of base)
          88 : 371943.dasm (1.11 % of base)
          84 : 610826.dasm (2.33 % of base)
          72 : 58781.dasm (1.45 % 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.02 % of base)
          28 : 613249.dasm (1.24 % of base)
          28 : 613784.dasm (1.42 % of base)
          28 : 613785.dasm (2.28 % of base)
          28 : 606972.dasm (1.20 % of base)
          28 : 612481.dasm (2.15 % of base)
          28 : 615878.dasm (1.66 % of base)
          28 : 94161.dasm (0.44 % of base)
          16 : 370986.dasm (2.15 % of base)
          16 : 58780.dasm (0.38 % of base)
          16 : 364588.dasm (2.15 % of base)
          16 : 365214.dasm (2.16 % of base)

Top file improvements (bytes):
     -131072 : 413399.dasm (-40.00 % of base)
       -8192 : 413186.dasm (-39.95 % of base)
       -1336 : 353819.dasm (-30.12 % of base)
       -1336 : 366816.dasm (-30.12 % of base)
       -1336 : 367803.dasm (-30.12 % of base)
       -1336 : 352758.dasm (-30.12 % of base)
       -1028 : 356037.dasm (-26.66 % of base)
       -1028 : 356678.dasm (-26.66 % of base)
       -1028 : 358321.dasm (-26.66 % of base)
       -1028 : 359461.dasm (-26.66 % of base)
       -1028 : 369185.dasm (-26.66 % of base)
       -1028 : 354638.dasm (-26.66 % of base)
       -1028 : 354818.dasm (-26.66 % of base)
       -1028 : 356742.dasm (-26.66 % of base)
       -1028 : 357381.dasm (-26.66 % of base)
       -1028 : 359974.dasm (-26.66 % of base)
       -1028 : 366290.dasm (-26.66 % of base)
       -1028 : 366405.dasm (-26.66 % of base)
       -1028 : 367825.dasm (-26.66 % of base)
       -1028 : 367829.dasm (-26.66 % of base)

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

Top method regressions (bytes):
         208 (4.75 % of base) : 614275.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
         172 (3.62 % 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)
          72 (1.45 % 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.02 % 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)
          16 (0.38 % 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) : 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)

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) : 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)
       -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)
       -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.75 % 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.62 % 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) : 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)
          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)
          28 (1.66 % of base) : 615878.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
          72 (1.45 % of base) : 58781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (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)

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) : 488417.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -116 (-36.71 % of base) : 317411.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) : 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)
       -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)


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: 162339072 (overridden on cmd)
Total bytes of diff: 162212076 (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 : 55790.dasm (0.72 % of base)
          40 : 264825.dasm (1.04 % of base)
          40 : 265022.dasm (0.82 % of base)
          40 : 265106.dasm (0.65 % 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 : 41403.dasm (-0.90 % of base)
         -52 : 180111.dasm (-1.51 % of base)
         -52 : 202421.dasm (-1.83 % 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 : 54751.dasm (-1.27 % of base)
         -32 : 54732.dasm (-1.24 % of base)
         -28 : 110487.dasm (-0.82 % of base)
         -28 : 17387.dasm (-0.55 % of base)
         -28 : 17458.dasm (-0.55 % of base)
         -28 : 110546.dasm (-0.82 % of base)
         -28 : 211549.dasm (-1.42 % of base)
         -28 : 54370.dasm (-1.23 % 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: 15051672 (overridden on cmd)
Total bytes of diff: 15052304 (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 : 24942.dasm (0.72 % of base)
          40 : 25213.dasm (0.65 % of base)
          40 : 25241.dasm (1.04 % of base)
          40 : 25244.dasm (0.82 % of base)
          36 : 25547.dasm (1.27 % of base)
           8 : 1252.dasm (3.39 % of base)
           4 : 1617.dasm (2.17 % of base)
           4 : 145.dasm (7.14 % of base)
           4 : 25091.dasm (0.14 % of base)
           4 : 25198.dasm (0.08 % of base)
           4 : 25343.dasm (0.20 % of base)

Top file improvements (bytes):
         -88 : 955.dasm (-32.84 % of base)
         -88 : 11973.dasm (-32.84 % of base)
         -48 : 14885.dasm (-1.08 % of base)
         -32 : 24960.dasm (-1.27 % of base)
         -32 : 24956.dasm (-1.24 % of base)
         -28 : 24948.dasm (-1.23 % of base)
         -20 : 14353.dasm (-0.76 % of base)
         -20 : 14434.dasm (-0.46 % 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 : 5099.dasm (-2.11 % 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,339,448 contexts (938,449 MinOpts, 1,400,999 FullOpts).

MISSED contexts: base: 1,309 (0.06%), diff: 1,669 (0.07%)

Overall (-477,696 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,943,920 -132
benchmarks.run_pgo.windows.arm64.checked.mch 45,415,036 -2,144
benchmarks.run_tiered.windows.arm64.checked.mch 15,572,852 -1,616
coreclr_tests.run.windows.arm64.checked.mch 494,876,668 -116,340
libraries.crossgen2.windows.arm64.checked.mch 59,068,308 -488
libraries.pmi.windows.arm64.checked.mch 79,724,924 +12,420
libraries_tests.run.windows.arm64.Release.mch 329,166,036 -243,304
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 171,336,032 -126,656
realworld.run.windows.arm64.checked.mch 15,895,404 +716
smoke_tests.nativeaot.windows.arm64.checked.mch 3,798,548 -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,588 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,943,384 -132
benchmarks.run_pgo.windows.arm64.checked.mch 29,403,640 +100
benchmarks.run_tiered.windows.arm64.checked.mch 4,395,664 -4
coreclr_tests.run.windows.arm64.checked.mch 156,187,564 -5,976
libraries.crossgen2.windows.arm64.checked.mch 59,066,672 -488
libraries.pmi.windows.arm64.checked.mch 79,604,940 +12,420
libraries_tests.run.windows.arm64.Release.mch 125,732,440 -1,312
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 158,182,284 +4,416
realworld.run.windows.arm64.checked.mch 15,331,424 +716
smoke_tests.nativeaot.windows.arm64.checked.mch 3,797,536 -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.Vector1[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 131 816 -119,292 +2,952
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 889 538 38 313 -248,072 +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,210 7,323 384 1,503 -508,108 +30,412

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,434 4 24,430 3 (0.01%) 12 (0.05%)
benchmarks.run_pgo.windows.arm64.checked.mch 96,026 48,079 47,947 84 (0.09%) 95 (0.10%)
benchmarks.run_tiered.windows.arm64.checked.mch 49,349 36,713 12,636 2 (0.00%) 11 (0.02%)
coreclr_tests.run.windows.arm64.checked.mch 595,221 362,592 232,629 124 (0.02%) 183 (0.03%)
libraries.crossgen2.windows.arm64.checked.mch 244,149 15 244,134 3 (0.00%) 3 (0.00%)
libraries.pmi.windows.arm64.checked.mch 305,535 6 305,529 13 (0.00%) 43 (0.01%)
libraries_tests.run.windows.arm64.Release.mch 650,756 469,431 181,325 734 (0.11%) 850 (0.13%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 316,943 21,598 295,345 10 (0.00%) 134 (0.04%)
realworld.run.windows.arm64.checked.mch 33,206 3 33,203 3 (0.01%) 5 (0.02%)
smoke_tests.nativeaot.windows.arm64.checked.mch 23,829 8 23,821 333 (1.38%) 333 (1.38%)
2,339,448 938,449 1,400,999 1,309 (0.06%) 1,669 (0.07%)

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: 10943920 (overridden on cmd)
Total bytes of diff: 10943788 (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 : 20056.dasm (0.95 % of base)
          20 : 16619.dasm (4.17 % of base)
          16 : 9711.dasm (0.19 % of base)
           8 : 9769.dasm (0.33 % of base)
           8 : 9793.dasm (0.40 % of base)
           8 : 10274.dasm (0.29 % of base)
           4 : 16274.dasm (7.14 % of base)
           4 : 22198.dasm (0.88 % of base)
           4 : 9944.dasm (0.88 % of base)
           4 : 9943.dasm (0.88 % of base)
           4 : 22197.dasm (0.88 % of base)
           4 : 22724.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 : 1917.dasm (-2.27 % of base)
         -16 : 1451.dasm (-3.12 % of base)
         -16 : 2212.dasm (-2.27 % of base)
          -4 : 24005.dasm (-0.04 % of base)
          -4 : 22164.dasm (-0.07 % of base)
          -4 : 8469.dasm (-0.05 % of base)
          -4 : 17547.dasm (-0.24 % 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: 45415036 (overridden on cmd)
Total bytes of diff: 45412892 (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.64 % of base)
         120 : 32134.dasm (1.26 % of base)
          16 : 30161.dasm (3.51 % of base)
          16 : 30190.dasm (3.51 % of base)
          16 : 36393.dasm (3.51 % of base)
          16 : 36416.dasm (3.51 % of base)
           4 : 49253.dasm (3.03 % of base)

Top file improvements (bytes):
        -120 : 32635.dasm (-40.00 % of base)
        -120 : 41509.dasm (-40.00 % of base)
        -120 : 48037.dasm (-40.00 % of base)
        -120 : 91797.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 : 10252.dasm (-2.88 % of base)
         -88 : 15041.dasm (-7.51 % of base)
         -88 : 2468.dasm (-2.88 % of base)
         -88 : 3029.dasm (-7.51 % of base)
         -80 : 11315.dasm (-11.98 % of base)
         -60 : 7633.dasm (-5.49 % of base)
         -56 : 75527.dasm (-2.73 % of base)
         -56 : 66645.dasm (-4.19 % 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.64 % 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) : 30161.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 30190.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) : 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)
        -120 (-40.00 % of base) : 48037.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -120 (-40.00 % of base) : 91797.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) : 10252.dasm - System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](ulong,ulong,ulong):ulong (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)
         -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.64 % 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) : 30161.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
          16 (3.51 % of base) : 30190.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) : 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)
        -120 (-40.00 % of base) : 48037.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (Tier1)
        -120 (-40.00 % of base) : 91797.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: 15572852 (overridden on cmd)
Total bytes of diff: 15571236 (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 : 22952.dasm (4.08 % of base)
          16 : 27424.dasm (4.08 % of base)
          16 : 28404.dasm (0.19 % of base)
           8 : 28307.dasm (0.33 % of base)
           8 : 28345.dasm (0.40 % 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 : 2603.dasm (-9.32 % of base)
         -88 : 11192.dasm (-32.84 % 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 : 41216.dasm (-3.90 % of base)
         -24 : 47854.dasm (-2.35 % of base)
         -24 : 4796.dasm (-2.97 % of base)
         -24 : 6718.dasm (-7.23 % of base)
         -24 : 6938.dasm (-2.71 % of base)
         -24 : 1166.dasm (-2.73 % 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: 494876668 (overridden on cmd)
Total bytes of diff: 494760328 (overridden on cmd)
Total bytes of delta: -116340 (-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 : 150352.dasm (0.35 % of base)
          12 : 150268.dasm (0.35 % of base)
          12 : 183280.dasm (0.37 % of base)
          12 : 314906.dasm (2.73 % of base)
          12 : 318500.dasm (1.60 % of base)
          12 : 314880.dasm (0.36 % of base)
          12 : 318611.dasm (0.43 % of base)
          12 : 150408.dasm (0.35 % 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 : 507209.dasm (-9.54 % of base)
        -176 : 517912.dasm (-1.83 % of base)
        -176 : 505956.dasm (-19.21 % 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: 59068308 (overridden on cmd)
Total bytes of diff: 59067820 (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 : 22131.dasm (-32.84 % of base)
         -88 : 24165.dasm (-32.84 % of base)
         -88 : 24201.dasm (-32.84 % of base)
         -44 : 151466.dasm (-6.18 % of base)
         -24 : 197763.dasm (-3.33 % of base)
         -16 : 23152.dasm (-7.55 % of base)
         -16 : 14671.dasm (-11.11 % of base)
         -16 : 197945.dasm (-2.78 % of base)
         -16 : 14674.dasm (-11.11 % of base)
         -16 : 14677.dasm (-8.00 % of base)
         -16 : 201906.dasm (-1.96 % of base)
         -16 : 231486.dasm (-1.96 % of base)
         -16 : 243405.dasm (-1.96 % of base)
          -8 : 121742.dasm (-1.13 % of base)
          -4 : 174730.dasm (-3.70 % of base)
          -4 : 223633.dasm (-0.62 % of base)
          -4 : 142922.dasm (-1.96 % of base)
          -4 : 155310.dasm (-0.62 % of base)
          -4 : 174721.dasm (-3.70 % of base)
          -4 : 210110.dasm (-1.96 % 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) : 22131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 24201.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) : 231486.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 (-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) : 223633.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
          -4 (-0.62 % of base) : 155310.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) : 22131.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 24201.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) : 231486.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)
          -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) : 223633.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts)
          -4 (-0.62 % of base) : 155310.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: 79724924 (overridden on cmd)
Total bytes of diff: 79737344 (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 : 221856.dasm (8.82 % of base)
        1016 : 135115.dasm (7.72 % 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 : 135143.dasm (-2.75 % of base)
         -80 : 166404.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 : 230764.dasm (-1.73 % of base)
         -28 : 166406.dasm (-1.09 % of base)
         -24 : 236534.dasm (-0.74 % of base)
         -24 : 283317.dasm (-2.62 % of base)
         -24 : 219916.dasm (-2.14 % of base)
         -24 : 282071.dasm (-3.09 % 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 : 285661.dasm (-2.27 % 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) : 135143.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
         -80 (-2.75 % of base) : 166404.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) : 285661.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (FullOpts)
         -16 (-2.27 % of base) : 280174.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) : 135143.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
         -80 (-2.75 % of base) : 166404.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) : 285661.dasm - System.IPv4AddressHelper:ParseNonCanonical(ulong,int,byref,ubyte):long (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)
         -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: 329166036 (overridden on cmd)
Total bytes of diff: 328922732 (overridden on cmd)
Total bytes of delta: -243304 (-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.24 % 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 : 610439.dasm (1.66 % of base)
          28 : 605982.dasm (1.23 % of base)
          28 : 605983.dasm (2.15 % of base)
          24 : 68858.dasm (0.52 % of base)
          16 : 389879.dasm (2.15 % of base)
          16 : 383737.dasm (2.15 % of base)
           8 : 110803.dasm (0.36 % of base)
           8 : 248262.dasm (6.06 % of base)
           8 : 287027.dasm (0.67 % of base)
           8 : 110539.dasm (0.39 % of base)
           8 : 95458.dasm (0.50 % of base)
           8 : 100286.dasm (0.34 % 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 : 373049.dasm (-30.12 % of base)
       -1336 : 385033.dasm (-30.12 % of base)
       -1336 : 372137.dasm (-30.12 % of base)
       -1336 : 385433.dasm (-30.12 % of base)
       -1028 : 373545.dasm (-26.66 % of base)
       -1028 : 374797.dasm (-26.66 % of base)
       -1028 : 376481.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 : 374289.dasm (-26.66 % of base)
       -1028 : 374757.dasm (-26.66 % of base)
       -1028 : 382665.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.24 % 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) : 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)
       -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)
       -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.24 % 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) : 387331.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (Tier1)
        -120 (-38.96 % of base) : 376887.dasm - System.SpanHelpers:Fill[System.Half](byref,ulong,System.Half) (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.96 % of base) : 284059.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: 171336032 (overridden on cmd)
Total bytes of diff: 171209376 (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 : 195244.dasm (6.55 % of base)
         120 : 228301.dasm (13.89 % 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 : 198797.dasm (-1.30 % of base)
         -48 : 226327.dasm (-1.07 % of base)
         -48 : 122864.dasm (-3.02 % of base)
         -48 : 124741.dasm (-3.02 % of base)
         -48 : 153459.dasm (-2.05 % of base)
         -44 : 226396.dasm (-2.36 % of base)
         -40 : 226439.dasm (-1.32 % of base)
         -40 : 226479.dasm (-1.07 % of base)
         -32 : 55130.dasm (-1.24 % of base)
         -32 : 55160.dasm (-1.27 % of base)
         -32 : 4781.dasm (-0.69 % 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: 15895404 (overridden on cmd)
Total bytes of diff: 15896120 (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 : 25938.dasm (0.72 % of base)
          40 : 26209.dasm (0.65 % of base)
          40 : 26237.dasm (1.04 % of base)
          40 : 26240.dasm (0.82 % 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 : 26194.dasm (0.08 % of base)
           4 : 26339.dasm (0.20 % of base)

Top file improvements (bytes):
         -88 : 11837.dasm (-32.84 % of base)
         -88 : 811.dasm (-32.84 % of base)
         -48 : 15862.dasm (-1.08 % of base)
         -32 : 25952.dasm (-1.24 % of base)
         -32 : 25956.dasm (-1.27 % 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 : 14071.dasm (-3.12 % of base)
         -16 : 15383.dasm (-1.22 % of base)
         -16 : 15422.dasm (-1.17 % of base)
         -16 : 15653.dasm (-0.39 % of base)
         -16 : 16521.dasm (-0.49 % of base)
         -16 : 13868.dasm (-2.27 % of base)
         -16 : 11553.dasm (-1.72 % of base)
         -12 : 11552.dasm (-1.15 % of base)
         -12 : 15398.dasm (-1.20 % of base)
         -12 : 15409.dasm (-1.67 % of base)
         -12 : 16532.dasm (-0.74 % 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: 3798548 (overridden on cmd)
Total bytes of diff: 3798396 (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 : 7437.dasm (6.25 % of base)
          16 : 12976.dasm (6.25 % of base)
           4 : 5227.dasm (2.00 % of base)
           4 : 5811.dasm (3.70 % of base)
           4 : 19111.dasm (1.54 % of base)
           4 : 741.dasm (2.00 % of base)
           4 : 1790.dasm (3.70 % of base)

Top file improvements (bytes):
         -88 : 4438.dasm (-32.84 % of base)
         -88 : 772.dasm (-32.84 % of base)
          -4 : 14595.dasm (-0.99 % of base)
          -4 : 13703.dasm (-1.30 % of base)
          -4 : 8405.dasm (-1.30 % of base)
          -4 : 1261.dasm (-0.99 % of base)
          -4 : 1891.dasm (-2.56 % of base)
          -4 : 4610.dasm (-0.99 % of base)
          -4 : 6017.dasm (-2.56 % of base)

16 total files with Code Size differences (9 improved, 7 regressed), 9 unchanged.

Top method regressions (bytes):
          16 (6.25 % of base) : 7437.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
          16 (6.25 % of base) : 12976.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) : 4438.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 772.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
          -4 (-2.56 % of base) : 1891.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
          -4 (-2.56 % of base) : 6017.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) : 7437.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
          16 (6.25 % of base) : 12976.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) : 4438.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
         -88 (-32.84 % of base) : 772.dasm - System.SpanHelpers:Fill[ushort](byref,ulong,ushort) (FullOpts)
          -4 (-2.56 % of base) : 1891.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
          -4 (-2.56 % of base) : 6017.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,510,378 contexts (997,391 MinOpts, 1,512,987 FullOpts).

MISSED contexts: base: 1,370 (0.05%), diff: 1,834 (0.07%)

Overall (-301,854 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 46,974,011 -1,860
benchmarks.run.windows.x64.checked.mch 8,729,507 -41
benchmarks.run_pgo.windows.x64.checked.mch 36,109,508 -2,680
benchmarks.run_tiered.windows.x64.checked.mch 12,404,420 -1,741
coreclr_tests.run.windows.x64.checked.mch 392,683,922 -136,997
libraries.crossgen2.windows.x64.checked.mch 39,485,796 -309
libraries.pmi.windows.x64.checked.mch 61,518,188 +11,246
libraries_tests.run.windows.x64.Release.mch 280,541,334 -106,156
librariestestsnotieredcompilation.run.windows.x64.Release.mch 136,764,896 -63,789
realworld.run.windows.x64.checked.mch 14,124,383 +610
smoke_tests.nativeaot.windows.x64.checked.mch 4,880,142 -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,607 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,482,962 +449
benchmarks.run.windows.x64.checked.mch 8,729,144 -41
benchmarks.run_pgo.windows.x64.checked.mch 21,938,852 -62
benchmarks.run_tiered.windows.x64.checked.mch 3,305,181 -1
coreclr_tests.run.windows.x64.checked.mch 119,895,342 -13,233
libraries.crossgen2.windows.x64.checked.mch 39,484,609 -309
libraries.pmi.windows.x64.checked.mch 61,404,667 +11,246
libraries_tests.run.windows.x64.Release.mch 104,683,100 +1,338
librariestestsnotieredcompilation.run.windows.x64.Release.mch 126,145,790 +1,747
realworld.run.windows.x64.checked.mch 13,737,774 +610
smoke_tests.nativeaot.windows.x64.checked.mch 4,879,195 -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.SymbolicRegexNode1[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.SymbolicRegexBuilder1[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.Vector1[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,585 +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,151
libraries_tests.run.windows.x64.Release.mch 973 801 64 108 -108,635 +2,479
librariestestsnotieredcompilation.run.windows.x64.Release.mch 609 215 192 202 -68,301 +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,330 8,351 733 1,246 -327,644 +25,790

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 129,235 61,702 67,533 22 (0.02%) 55 (0.04%)
benchmarks.run.windows.x64.checked.mch 27,916 4 27,912 1 (0.00%) 10 (0.04%)
benchmarks.run_pgo.windows.x64.checked.mch 103,094 50,327 52,767 75 (0.07%) 89 (0.09%)
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,230 341,481 232,749 106 (0.02%) 155 (0.03%)
libraries.crossgen2.windows.x64.checked.mch 243,730 15 243,715 1 (0.00%) 1 (0.00%)
libraries.pmi.windows.x64.checked.mch 309,168 6 309,162 4 (0.00%) 60 (0.02%)
libraries_tests.run.windows.x64.Release.mch 680,582 485,046 195,536 708 (0.10%) 842 (0.12%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 320,375 21,924 298,451 3 (0.00%) 161 (0.05%)
realworld.run.windows.x64.checked.mch 36,607 3 36,604 1 (0.00%) 3 (0.01%)
smoke_tests.nativeaot.windows.x64.checked.mch 31,939 11 31,928 449 (1.39%) 449 (1.39%)
2,510,378 997,391 1,512,987 1,370 (0.05%) 1,834 (0.07%)

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: 46974011 (overridden on cmd)
Total bytes of diff: 46972151 (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 : 31429.dasm (-6.34 % of base)
         -93 : 2523.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 : 34500.dasm (-5.23 % of base)
         -39 : 66901.dasm (-7.63 % of base)
         -35 : 36773.dasm (-5.79 % of base)
         -34 : 2365.dasm (-1.10 % of base)
         -34 : 2090.dasm (-1.67 % of base)
         -34 : 2197.dasm (-1.23 % 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) : 31429.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiChar_Vector(ulong,ulong):ulong (Instrumented Tier0)
         -93 (-6.34 % of base) : 2523.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) : 111723.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: 8729507 (overridden on cmd)
Total bytes of diff: 8729466 (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 : 19054.dasm (4.19 % of base)
          16 : 23069.dasm (0.97 % 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 : 5475.dasm (0.70 % of base)
           3 : 5476.dasm (0.70 % of base)
           3 : 23937.dasm (0.70 % of base)
           3 : 25113.dasm (0.71 % of base)

Top file improvements (bytes):
         -61 : 2471.dasm (-29.61 % of base)
         -18 : 21382.dasm (-1.10 % of base)
          -6 : 21396.dasm (-0.38 % of base)
          -6 : 3277.dasm (-0.89 % of base)
          -6 : 4794.dasm (-0.89 % of base)
          -5 : 19915.dasm (-0.14 % of base)
          -3 : 25062.dasm (-0.06 % of base)
          -3 : 27793.dasm (-0.04 % of base)
          -3 : 4064.dasm (-0.77 % 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: 36109508 (overridden on cmd)
Total bytes of diff: 36106828 (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 : 37792.dasm (1.65 % of base)
           6 : 36560.dasm (1.66 % of base)
           6 : 36607.dasm (1.66 % of base)
           6 : 37824.dasm (1.65 % of base)
           4 : 40037.dasm (0.07 % of base)
           4 : 27000.dasm (0.04 % 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 : 5444.dasm (-5.25 % of base)
         -66 : 102767.dasm (-6.18 % of base)
         -66 : 7915.dasm (-6.18 % of base)
         -63 : 26680.dasm (-5.49 % of base)
         -63 : 6343.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 : 14965.dasm (-3.63 % of base)
         -31 : 85355.dasm (-3.63 % of base)
         -30 : 1580.dasm (-1.86 % of base)
         -30 : 7124.dasm (-1.86 % of base)
         -30 : 20972.dasm (-1.16 % 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) : 37792.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
           6 (1.65 % of base) : 37824.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) : 26680.dasm - System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte (Instrumented Tier0)
         -63 (-5.49 % of base) : 6343.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) : 14965.dasm - System.Collections.Frozen.Hashing:GetHashCodeOrdinal(System.ReadOnlySpan`1[ushort]):int (Instrumented Tier0)
         -31 (-3.63 % of base) : 85355.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) : 37792.dasm - EMFloatClass:LongToInternalFPF(int,EMFloatClass+InternalFPF) (Instrumented Tier0)
           6 (1.65 % of base) : 37824.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: 12404420 (overridden on cmd)
Total bytes of diff: 12402679 (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 : 26432.dasm (0.35 % of base)
           6 : 27103.dasm (1.99 % of base)
           6 : 28357.dasm (1.97 % of base)
           6 : 26356.dasm (0.29 % 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 : 11494.dasm (-6.33 % of base)
         -66 : 3995.dasm (-7.73 % 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 : 1479.dasm (-2.40 % of base)
         -30 : 6349.dasm (-1.20 % of base)
         -29 : 29783.dasm (-3.36 % of base)
         -29 : 34740.dasm (-2.43 % of base)
         -28 : 8892.dasm (-4.64 % of base)
         -24 : 813.dasm (-37.50 % of base)
         -23 : 1016.dasm (-1.82 % of base)
         -23 : 18425.dasm (-0.72 % of base)
         -23 : 2942.dasm (-1.81 % 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 (-3.36 % of base) : 29783.dasm - System.SpanHelpers:Reverse(byref,ulong) (Tier0)
         -29 (-2.43 % of base) : 34740.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: 392683922 (overridden on cmd)
Total bytes of diff: 392546925 (overridden on cmd)
Total bytes of delta: -136997 (-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 : 429632.dasm (0.94 % of base)
          14 : 429967.dasm (0.94 % of base)
          14 : 429051.dasm (0.94 % of base)
          14 : 474008.dasm (0.47 % 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) : 227890.dasm - EMFloat:LongToInternalFPF(int,byref) (Instrumented Tier0)
           6 (1.66 % of base) : 227875.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: 39485796 (overridden on cmd)
Total bytes of diff: 39485487 (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 : 174013.dasm (0.34 % of base)
           2 : 91368.dasm (0.22 % of base)
           1 : 143983.dasm (0.21 % of base)

Top file improvements (bytes):
         -69 : 33793.dasm (-32.39 % of base)
         -69 : 35878.dasm (-32.39 % of base)
         -69 : 35915.dasm (-32.39 % of base)
         -21 : 85569.dasm (-0.62 % of base)
         -12 : 150662.dasm (-2.34 % of base)
         -10 : 26368.dasm (-8.55 % of base)
         -10 : 26371.dasm (-8.55 % of base)
         -10 : 34771.dasm (-5.56 % of base)
          -8 : 26374.dasm (-4.97 % of base)
          -6 : 157045.dasm (-7.50 % of base)
          -6 : 223455.dasm (-0.77 % of base)
          -6 : 225241.dasm (-0.77 % of base)
          -6 : 181908.dasm (-7.50 % of base)
          -6 : 222935.dasm (-0.77 % of base)
          -5 : 127311.dasm (-1.17 % of base)
          -4 : 174011.dasm (-1.28 % of base)
          -4 : 225763.dasm (-0.88 % of base)
          -2 : 174012.dasm (-0.21 % of base)
          -2 : 240730.dasm (-1.59 % of base)
          -2 : 24427.dasm (-0.25 % 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) : 157045.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -6 (-7.50 % of base) : 181908.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (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)
          -6 (-0.77 % of base) : 222935.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) : 157045.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
          -6 (-7.50 % of base) : 181908.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) : 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)
          -6 (-0.77 % of base) : 222935.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: 61518188 (overridden on cmd)
Total bytes of diff: 61529434 (overridden on cmd)
Total bytes of delta: 11246 (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)
         217 : 190557.dasm (4.06 % 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 : 192922.dasm (-1.63 % of base)
         -18 : 217249.dasm (-2.96 % of base)
         -18 : 250201.dasm (-0.29 % of base)
         -17 : 201594.dasm (-2.06 % of base)
         -16 : 92375.dasm (-0.67 % of base)
         -16 : 200256.dasm (-2.36 % of base)
         -15 : 254293.dasm (-0.40 % of base)
         -14 : 289354.dasm (-1.22 % of base)
         -14 : 210355.dasm (-2.34 % 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)
         217 (4.06 % 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: 280541334 (overridden on cmd)
Total bytes of diff: 280435178 (overridden on cmd)
Total bytes of delta: -106156 (-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)
         132 : 617586.dasm (1.02 % of base)
         131 : 61623.dasm (2.24 % of base)
         129 : 627658.dasm (1.31 % of base)
         114 : 2964.dasm (1.47 % of base)
         112 : 69775.dasm (2.45 % of base)
          62 : 625514.dasm (2.34 % of base)
          62 : 618917.dasm (0.83 % of base)
          37 : 639138.dasm (0.30 % of base)
          26 : 627907.dasm (1.43 % of base)
          26 : 654741.dasm (0.23 % of base)
          22 : 620059.dasm (1.25 % of base)
          22 : 627911.dasm (2.28 % of base)
          21 : 627912.dasm (2.01 % of base)
          21 : 627910.dasm (1.28 % 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 : 397091.dasm (-13.46 % of base)
        -623 : 399251.dasm (-13.46 % of base)
        -623 : 399769.dasm (-13.46 % of base)
        -623 : 402737.dasm (-13.46 % of base)
        -623 : 397029.dasm (-15.13 % of base)
        -623 : 397981.dasm (-13.46 % of base)
        -623 : 398945.dasm (-15.13 % of base)
        -623 : 401105.dasm (-13.46 % of base)
        -623 : 401493.dasm (-13.46 % of base)
        -623 : 404157.dasm (-13.46 % of base)
        -623 : 405022.dasm (-13.46 % of base)
        -623 : 398990.dasm (-13.46 % of base)
        -623 : 400093.dasm (-13.46 % of base)
        -623 : 400965.dasm (-13.46 % of base)
        -623 : 401509.dasm (-13.46 % of base)
        -623 : 401701.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)
         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)
         129 (1.31 % 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)
         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)
          37 (0.30 % 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) : 172453.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
           2 (2.02 % of base) : 615299.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: 136764896 (overridden on cmd)
Total bytes of diff: 136701107 (overridden on cmd)
Total bytes of delta: -63789 (-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 : 281999.dasm (0.85 % of base)
          34 : 137359.dasm (0.74 % 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 : 149929.dasm (-29.61 % of base)
         -61 : 19082.dasm (-29.61 % of base)
         -61 : 152841.dasm (-29.61 % of base)
         -61 : 228271.dasm (-3.35 % 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)
         -31 : 201950.dasm (-0.81 % of base)
         -31 : 219980.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) : 19082.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
         -61 (-29.61 % of base) : 152841.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)
         -31 (-0.81 % of base) : 201950.dasm - System.Tests.StringTests:IndexOf_SingleLetter(System.String,ushort,int,int,int) (FullOpts)
         -31 (-0.81 % of base) : 219980.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) : 19082.dasm - System.SpanHelpers:Fill[int](byref,ulong,int) (FullOpts)
         -61 (-29.61 % of base) : 152841.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: 14124383 (overridden on cmd)
Total bytes of diff: 14124993 (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 : 15687.dasm (-0.82 % of base)
          -6 : 15695.dasm (-0.81 % of base)
          -6 : 17582.dasm (-0.89 % of base)
          -6 : 19248.dasm (-0.17 % of base)
          -6 : 29354.dasm (-0.38 % of base)
          -5 : 18855.dasm (-0.14 % of base)
          -5 : 18986.dasm (-0.16 % 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: 4880142 (overridden on cmd)
Total bytes of diff: 4880005 (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 : 21697.dasm (2.41 % of base)
          10 : 4613.dasm (2.41 % of base)
          10 : 14617.dasm (2.39 % of base)
          10 : 19047.dasm (2.41 % of base)
          10 : 1279.dasm (2.41 % of base)
           9 : 12953.dasm (4.43 % of base)
           9 : 7432.dasm (4.43 % of base)
           6 : 27294.dasm (3.28 % of base)
           3 : 19506.dasm (3.33 % of base)
           3 : 5835.dasm (3.33 % of base)
           3 : 16908.dasm (3.33 % of base)
           3 : 1782.dasm (3.33 % of base)
           3 : 22223.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 : 13699.dasm (-1.48 % of base)
          -4 : 8450.dasm (-1.48 % of base)
          -3 : 6663.dasm (-5.17 % of base)
          -3 : 11889.dasm (-5.17 % of base)
          -3 : 6661.dasm (-5.17 % of base)
          -3 : 11887.dasm (-5.17 % of base)
          -2 : 16977.dasm (-0.88 % of base)
          -2 : 1878.dasm (-0.88 % of base)
          -2 : 6019.dasm (-0.88 % of base)
          -2 : 22232.dasm (-0.88 % of base)
          -2 : 19624.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) : 21697.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)
          10 (2.41 % of base) : 19047.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)
           9 (4.43 % of base) : 12953.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
           9 (4.43 % of base) : 7432.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) : 19506.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) : 16908.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (3.33 % of base) : 1782.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (3.33 % of base) : 22223.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) : 13699.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
          -4 (-1.48 % of base) : 8450.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) : 6661.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
          -3 (-5.17 % of base) : 11887.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) : 1878.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
          -2 (-0.88 % of base) : 6019.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) : 19624.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)

Top method regressions (percentages):
           9 (4.43 % of base) : 12953.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
           9 (4.43 % of base) : 7432.dasm - Internal.Runtime.TypeLoader.EETypeCreator:GetInstanceGCDescSize(Internal.Runtime.TypeLoader.TypeBuilderState,ulong,ubyte,ubyte):int (FullOpts)
           3 (3.33 % of base) : 19506.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) : 16908.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (3.33 % of base) : 1782.dasm - System.Globalization.CultureData:IcuGetDigitSubstitution(System.String):int (FullOpts)
           3 (3.33 % of base) : 22223.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) : 21697.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.41 % of base) : 19047.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)
           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) : 6661.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
          -3 (-5.17 % of base) : 11887.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetPointerTypeForNonDynamicElementType(System.RuntimeTypeHandle,byref):ubyte (FullOpts)
          -4 (-1.48 % of base) : 13699.dasm - System.Threading.Thread:set_Priority(int):this (FullOpts)
          -4 (-1.48 % of base) : 8450.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) : 1878.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)
          -2 (-0.88 % of base) : 6019.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) : 19624.dasm - System.Threading.Thread:GetApartmentState():int:this (FullOpts)

29 total methods with Code Size differences (14 improved, 15 regressed).