Assembly Diffs
linux arm64
Diffs are based on 2,507,310 contexts (1,007,092 MinOpts, 1,500,218 FullOpts).
MISSED contexts: 8 (0.00%)
Overall (-43,156 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
15,557,828 |
-444 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
80,090,028 |
-4,160 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
24,601,124 |
-168 |
| coreclr_tests.run.linux.arm64.checked.mch |
508,733,084 |
-6,112 |
| libraries.crossgen2.linux.arm64.checked.mch |
55,844,164 |
-1,660 |
| libraries.pmi.linux.arm64.checked.mch |
76,294,956 |
-3,560 |
| libraries_tests.run.linux.arm64.Release.mch |
395,684,632 |
-21,632 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
165,003,540 |
-3,844 |
| realworld.run.linux.arm64.checked.mch |
15,903,772 |
-1,340 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
2,946,836 |
-236 |
FullOpts (-43,156 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
15,252,900 |
-444 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
54,155,244 |
-4,160 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
4,862,688 |
-168 |
| coreclr_tests.run.linux.arm64.checked.mch |
160,584,932 |
-6,112 |
| libraries.crossgen2.linux.arm64.checked.mch |
55,842,528 |
-1,660 |
| libraries.pmi.linux.arm64.checked.mch |
76,174,972 |
-3,560 |
| libraries_tests.run.linux.arm64.Release.mch |
180,552,680 |
-21,632 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
151,506,076 |
-3,844 |
| realworld.run.linux.arm64.checked.mch |
15,322,848 |
-1,340 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
2,945,848 |
-236 |
Example diffs
benchmarks.run.linux.arm64.checked.mch
-24 (-12.50%) : 26373.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T04] ( 3, 4 ) ref -> x20 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,22 +23,21 @@
; V12 tmp7 [V12,T06] ( 2, 3 ) ref -> x21 "field V03._originalStack (fldOffset=0x0)" P-INDEP
; V13 tmp8 [V13,T00] ( 8, 27 ) ref -> x22 "field V03._remainingStack (fldOffset=0x8)" P-INDEP
;* V14 cse0 [V14,T07] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V15 rat0 [V15,T03] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+;* V15 rat0 [V15,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V16 rat1 [V16,T05] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V17 rat2 [V17,T02] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V17 rat2 [V17,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- str x0, [fp, #0x18]
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
-G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=20 bbWeight=1 PerfScore 4.00
+G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x20, xzr
; gcrRegs +[x20]
ldr x0, [x19, #0xA0]
@@ -54,16 +53,10 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x21]
mov x22, x1
; gcrRegs +[x22]
- ldr x0, [x19]
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x20]
- cbnz x0, G_M64146_IG04
b G_M64146_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 14.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1 x20]
+ ; gcrRegs -[x0-x1 x20]
mov x0, x22
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -110,13 +103,13 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x0]
;; size=4 bbWeight=1 PerfScore 0.50
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -127,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -136,8 +129,8 @@ Unwind Info:
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
E6 save_next
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 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
-28 (-7.61%) : 8466.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -38,8 +38,8 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M29540_IG08
- cbz x1, G_M29540_IG09
+ cbnz w14, G_M29540_IG07
+ cbz x1, G_M29540_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M29540_IG10
+ cbnz w0, G_M29540_IG09
mov w14, #7
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M29540_IG04
+ cbz w0, G_M29540_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M29540_IG05
- b G_M29540_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -91,7 +80,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
-28 (-7.61%) : 8498.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -38,8 +38,8 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M23091_IG08
- cbz x1, G_M23091_IG09
+ cbnz w14, G_M23091_IG07
+ cbz x1, G_M23091_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M23091_IG10
+ cbnz w0, G_M23091_IG09
mov w14, #4
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -91,7 +80,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-24 (-0.36%) : 21289.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 149 single block inlinees; 52 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T07] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+; V00 this [V00,T06] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
; V01 arg1 [V01,T01] ( 33, 17.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V02 arg2 [V02,T00] ( 53, 18 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V03 arg3 [V03,T14] ( 5, 3.50) ushort -> x24 single-def
; V04 arg4 [V04,T09] ( 10, 6 ) ubyte -> x23 single-def
; V05 arg5 [V05,T02] ( 32, 17 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V06 loc0 [V06,T06] ( 26, 13 ) ubyte -> x25
+; V06 loc0 [V06,T08] ( 23, 11.50) ubyte -> x25
;* V07 loc1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundNamespaceExpression>
;* V08 loc2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
;* V09 loc3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundUnconvertedAddressOfOperator>
@@ -574,7 +574,7 @@
; V563 cse0 [V563,T186] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V564 cse1 [V564,T187] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V565 cse2 [V565,T04] ( 31, 15.50) int -> x26 multi-def "CSE - aggressive"
-; V566 cse3 [V566,T08] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
+; V566 cse3 [V566,T07] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
; V567 rat0 [V567,T56] ( 3, 3 ) int -> x25 "ReplaceWithLclVar is creating a new local variable"
; V568 rat1 [V568,T57] ( 3, 3 ) int -> x28 "ReplaceWithLclVar is creating a new local variable"
; V569 rat2 [V569,T58] ( 3, 3 ) int -> x7 "ReplaceWithLclVar is creating a new local variable"
@@ -624,7 +624,7 @@ G_M42189_IG02: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefReg
ldr wzr, [x0]
blr x1
; gcrRegs -[x0]
- cbnz w0, G_M42189_IG168
+ cbnz w0, G_M42189_IG167
;; size=32 bbWeight=1 PerfScore 10.00
G_M42189_IG03: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x12]
@@ -644,7 +644,7 @@ G_M42189_IG04: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG170
+ bne G_M42189_IG169
ldr x4, [x19, #0x40]
; gcrRegs +[x4]
ldrb w4, [x4, #0x12]
@@ -670,7 +670,7 @@ G_M42189_IG05: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x6, [x6]
blr x6
; gcrRegs -[x0-x2 x5 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=52 bbWeight=0.50 PerfScore 5.00
G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21-x22]
@@ -679,7 +679,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG171
+ bne G_M42189_IG170
mov x1, x19
; gcrRegs +[x1]
uxth w26, w24
@@ -694,7 +694,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x1 x3 x19 x21-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -712,7 +712,7 @@ G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=48 bbWeight=0.50 PerfScore 5.00
G_M42189_IG08: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -860,37 +860,27 @@ G_M42189_IG21: ; bbWeight=0.50, gcrefRegs=200004 {x2 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0 x2 x21]
- b G_M42189_IG168
+ b G_M42189_IG167
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M42189_IG22: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
ldrb w25, [x19, #0x12]
cmp w25, #48
- bhi G_M42189_IG27
- cmp w25, #12
- bhi G_M42189_IG24
- cmp w25, #6
- bhi G_M42189_IG23
- cmp w25, #4
- ccmp w25, #6, z, ne
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=44 bbWeight=0.50 PerfScore 5.25
-G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19 x22]
- cmp w25, #10
- beq G_M42189_IG161
- cmp w25, #12
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19 x22]
- cmp w25, #35
bhi G_M42189_IG26
+ cmp w25, #12
+ bhi G_M42189_IG23
+ cmp w25, #6
+ bls G_M42189_IG164
+ cmp w25, #10
+ beq G_M42189_IG160
+ b G_M42189_IG164
+ ;; size=40 bbWeight=0.50 PerfScore 5.00
+G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ cmp w25, #35
+ bhi G_M42189_IG25
sub w28, w25, #22
cmp w28, #10
- bhi G_M42189_IG25
+ bhi G_M42189_IG24
mov w0, w28
adr x1, [@RWD16]
ldr w1, [x1, x0, LSL #2]
@@ -898,25 +888,25 @@ G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=44 bbWeight=0.50 PerfScore 4.75
-G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #35
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #42
- beq G_M42189_IG164
+ beq G_M42189_IG163
cmp w25, #47
- beq G_M42189_IG160
+ beq G_M42189_IG159
cmp w25, #48
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG172
+ bne G_M42189_IG171
ldr x3, [x19, #0x28]
; gcrRegs +[x3]
mov w2, w26
@@ -932,25 +922,25 @@ G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x5, [x5]
blr x5
; gcrRegs -[x0-x1 x3-x4 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=88 bbWeight=0.50 PerfScore 9.50
-G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #151
- bhi G_M42189_IG30
+ bhi G_M42189_IG29
cmp w25, #110
- bhi G_M42189_IG28
+ bhi G_M42189_IG27
cmp w25, #70
- beq G_M42189_IG116
+ beq G_M42189_IG115
cmp w25, #110
- bne G_M42189_IG165
- tbz w26, #5, G_M42189_IG142
- b G_M42189_IG139
+ bne G_M42189_IG164
+ tbz w26, #5, G_M42189_IG141
+ b G_M42189_IG138
;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
sub w7, w25, #114
cmp w7, #3
- bhi G_M42189_IG29
+ bhi G_M42189_IG28
mov w0, w7
adr x1, [@RWD60]
ldr w1, [x1, x0, LSL #2]
@@ -958,25 +948,25 @@ G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #151
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #159
- bhi G_M42189_IG31
+ bhi G_M42189_IG30
cmp w25, #157
- beq G_M42189_IG80
+ beq G_M42189_IG79
cmp w25, #159
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG173
+ bne G_M42189_IG172
mov x2, x19
; gcrRegs +[x2]
ldr x1, [x2, #0x28]
@@ -996,17 +986,17 @@ G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x7, [x7]
blr x7
; gcrRegs -[x0-x3 x6 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=100 bbWeight=0.50 PerfScore 11.50
-G_M42189_IG31: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #173
- beq G_M42189_IG128
+ beq G_M42189_IG127
cmp w25, #177
- beq G_M42189_IG161
+ beq G_M42189_IG160
...
-32 (-0.24%) : 10213.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T151] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T152] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T153] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T326] ( 3, 1.50) long -> x0 single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T326] ( 2, 1 ) long -> x0 single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T327] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -108,7 +108,7 @@
;* V97 tmp84 [V97 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V98 tmp85 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V99 tmp86 [V99 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V100 tmp87 [V100,T114] ( 3, 10 ) long -> x0 "Inline stloc first use temp"
+; V100 tmp87 [V100,T114] ( 2, 8 ) long -> x0 "Inline stloc first use temp"
;* V101 tmp88 [V101,T121] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V102 tmp89 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -513,7 +513,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x19]
- b G_M11467_IG260
+ b G_M11467_IG258
;; size=40 bbWeight=0.50 PerfScore 8.00
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x21]
@@ -568,13 +568,13 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs -[x0-x1]
ldr w0, [x24, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w25, w0
cmp w0, #0
ble G_M11467_IG44
ldr w0, [x24, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldrb w26, [x24, #0x10]
mov w0, #0xD1FFAB1E
cmp w26, w0
@@ -754,7 +754,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w4, [x26, w2, UXTW #2]
@@ -770,7 +770,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w4, w2, #1
@@ -787,7 +787,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w2, #2
@@ -803,7 +803,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w2, [x26, w1, UXTW #2]
@@ -819,7 +819,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w1, #1
@@ -839,7 +839,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x2, #16
; byrRegs +[x26]
add w2, w1, #2
@@ -847,18 +847,18 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x26, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -882,7 +882,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
beq G_M11467_IG44
ldr w1, [x24, #0x08]
cmp w26, w1
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x1, x24, #16
; byrRegs +[x1]
ldrb w28, [x1, w26, UXTW #2]
@@ -1088,7 +1088,7 @@ G_M11467_IG37: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1104,7 +1104,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1121,7 +1121,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1137,7 +1137,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1153,7 +1153,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1173,7 +1173,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x2, #16
; byrRegs +[x4]
add w2, w1, #2
@@ -1181,18 +1181,18 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x4, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -1249,7 +1249,7 @@ G_M11467_IG45: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x27]
- b G_M11467_IG91
+ b G_M11467_IG89
;; size=68 bbWeight=0.50 PerfScore 11.50
G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x27]
@@ -1265,34 +1265,28 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byre
; gcrRegs -[x0-x1]
ldr w0, [x27, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w26, w0
cmp w0, #0
- ble G_M11467_IG90
+ ble G_M11467_IG88
ldr w0, [x27, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldr x24, [x27, #0x10]
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG47
- mov x1, #0xD1FFAB1E
- cmp x0, x1
- beq G_M11467_IG48
- b G_M11467_IG48
- ;; size=92 bbWeight=0.50 PerfScore 13.75
-G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref
+ cbnz x0, G_M11467_IG47
and x0, x24, #0xD1FFAB1E
orr x24, x0, #0xD1FFAB1E
- ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
+ ;; size=84 bbWeight=0.50 PerfScore 12.75
+G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG49
+ cbz x0, G_M11467_IG48
mov x1, #0xD1FFAB1E
cmp x0, x1
- bne G_M11467_IG49
- b G_M11467_IG51
...
-8 (-0.20%) : 16061.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
@@ -30,15 +30,15 @@
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V21 tmp2 [V21 ] ( 8, 16 ) struct (16) [fp+0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T36] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V22 tmp3 [V22,T35] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V23 tmp4 [V23 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-; V24 tmp5 [V24,T44] ( 3, 6 ) int -> x1 "impAppendStmt"
+; V24 tmp5 [V24,T43] ( 3, 6 ) int -> x1 "impAppendStmt"
;* V25 tmp6 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp9 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V29 tmp10 [V29 ] ( 5, 10 ) struct (16) [fp+0x28] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V30 tmp11 [V30,T37] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp11 [V30,T36] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -48,7 +48,7 @@
; V37 tmp18 [V37,T128] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 tmp21 [V40,T38] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V40 tmp21 [V40,T37] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V41 tmp22 [V41 ] ( 0, 0 ) ref -> zero-ref
; V42 tmp23 [V42,T96] ( 2, 2 ) ref -> x14 single-def
;* V43 tmp24 [V43,T117] ( 0, 0 ) int -> zero-ref
@@ -66,14 +66,14 @@
;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V58 tmp39 [V58,T39] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V58 tmp39 [V58,T38] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V59 tmp40 [V59,T68] ( 2, 4 ) int -> x2 "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V61 tmp42 [V61,T04] ( 12, 12 ) int -> x20 "Inline return value spill temp"
-; V62 tmp43 [V62,T45] ( 3, 6 ) int -> x3 "Inlining Arg"
-; V63 tmp44 [V63,T46] ( 3, 6 ) int -> x1 "Inlining Arg"
+; V62 tmp43 [V62,T44] ( 3, 6 ) int -> x3 "Inlining Arg"
+; V63 tmp44 [V63,T45] ( 3, 6 ) int -> x1 "Inlining Arg"
; V64 tmp45 [V64,T11] ( 4, 8 ) ref -> x1 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V65 tmp46 [V65,T33] ( 4, 6 ) int -> x2 "Inlining Arg"
+; V65 tmp46 [V65,T46] ( 3, 6 ) int -> x2 "Inlining Arg"
;* V66 tmp47 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V67 tmp48 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V68 tmp49 [V68,T27] ( 6, 6 ) byref -> x24 "Inline stloc first use temp"
@@ -196,8 +196,8 @@
; V185 tmp166 [V185,T75] ( 2, 4 ) long -> x2 "Inlining Arg"
; V186 tmp167 [V186,T05] ( 6, 12 ) ref -> x0 class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V187 tmp168 [V187,T08] ( 5, 10 ) byref -> x19 single-def "Inlining Arg"
-; V188 tmp169 [V188,T40] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V189 tmp170 [V189,T41] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V188 tmp169 [V188,T39] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V189 tmp170 [V189,T40] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V190 tmp171 [V190 ] ( 6, 6 ) ref -> [fp+0x98] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V191 tmp172 [V191 ] ( 6, 6 ) int -> [fp+0xA0] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V192 tmp173 [V192 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -210,8 +210,8 @@
; V199 tmp180 [V199,T59] ( 4, 4 ) short -> [fp+0x64] do-not-enreg[] "field V14._token (fldOffset=0xc)" P-DEP
; V200 tmp181 [V200,T107] ( 2, 2 ) ubyte -> [fp+0x66] do-not-enreg[] "field V14._continueOnCapturedContext (fldOffset=0xe)" P-DEP
; V201 tmp182 [V201,T32] ( 4, 6 ) ref -> [fp+0x38] do-not-enreg[] "field V21._object (fldOffset=0x0)" P-DEP
-; V202 tmp183 [V202,T34] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
-; V203 tmp184 [V203,T35] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
+; V202 tmp183 [V202,T33] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
+; V203 tmp184 [V203,T34] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
;* V204 tmp185 [V204 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp186 [V205 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
; V206 tmp187 [V206,T51] ( 3, 5 ) ref -> [fp+0x28] do-not-enreg[] "field V29._object (fldOffset=0x0)" P-DEP
@@ -269,10 +269,10 @@
;* V258 tmp239 [V258 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
;* V259 tmp240 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V182._reference (fldOffset=0x0)" P-INDEP
;* V260 tmp241 [V260 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-; V261 tmp242 [V261,T42] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V261 tmp242 [V261,T41] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
; V262 tmp243 [V262,T64] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V263 tmp244 [V263,T65] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V264 tmp245 [V264,T43] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
+; V264 tmp245 [V264,T42] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
; V265 tmp246 [V265,T66] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V266 tmp247 [V266,T67] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V267 PSPSym [V267,T127] ( 1, 1 ) long -> [fp+0xB0] do-not-enreg[V] "PSPSym"
@@ -421,7 +421,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG92
+ b G_M33324_IG91
;; size=80 bbWeight=1 PerfScore 21.00
G_M33324_IG07: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, nogc
; gcrRegs +[x19]
@@ -491,7 +491,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ble G_M33324_IG15
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbz x1, G_M33324_IG75
+ cbz x1, G_M33324_IG74
mov w3, w2
add x3, x3, w20, UXTW
ldr w4, [x1, #0x08]
@@ -596,7 +596,7 @@ G_M33324_IG14: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=1200000 {x2
blr x1
; gcr arg pop 0
cmp w22, w25
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w22
mov x0, x24
; byrRegs +[x0]
@@ -620,7 +620,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
cmp w20, w1
bne G_M33324_IG16
str w20, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG80
+ b G_M33324_IG79
;; size=20 bbWeight=1 PerfScore 6.50
G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
cmp w20, #0
@@ -629,7 +629,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
; byrRegs +[x1]
ldr w2, [x1, #0x0C]
cmp w20, w2
- bhi G_M33324_IG77
+ bhi G_M33324_IG76
ldr x21, [x1]
; gcrRegs +[x21]
ldr w1, [x1, #0x08]
@@ -949,7 +949,7 @@ G_M33324_IG28: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
ldr w0, [x21, #0x14]
add w0, w20, w0
str w0, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG86
+ b G_M33324_IG85
;; size=16 bbWeight=1 PerfScore 5.50
G_M33324_IG29: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21]
@@ -1032,7 +1032,7 @@ G_M33324_IG33: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG82
+ b G_M33324_IG81
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG34: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[x21]
@@ -1140,7 +1140,7 @@ G_M33324_IG41: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG84
+ b G_M33324_IG83
;; size=92 bbWeight=1 PerfScore 22.50
G_M33324_IG42: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1411,7 +1411,7 @@ G_M33324_IG57: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG88
+ b G_M33324_IG87
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG58: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1666,7 +1666,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x1
; gcr arg pop 0
cmp w23, w26
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w23
mov x0, x25
; byrRegs +[x0]
@@ -1679,7 +1679,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x3
; byrRegs -[x0-x1 x22 x25]
; gcr arg pop 0
- b G_M33324_IG78
+ b G_M33324_IG77
;; size=72 bbWeight=1 PerfScore 16.00
G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1691,13 +1691,7 @@ G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
- ; byrRegs +[x0]
- cbnz w2, G_M33324_IG74
- b G_M33324_IG74
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
+G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -1706,7 +1700,7 @@ G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -1716,7 +1710,7 @@ G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG77: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
; byrRegs +[x21]
ldr w0, [x19, #0x30]
add w0, w0, w20
@@ -1725,9 +1719,9 @@ G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
add w0, w0, w20
str w0, [fp, #0xA8] // [V03 loc2]
;; size=24 bbWeight=1 PerfScore 9.00
-G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
ldr w0, [fp, #0xAC] // [V01 loc0]
- tbz w0, #31, G_M33324_IG90
+ tbz w0, #31, G_M33324_IG89
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -1740,51 +1734,51 @@ G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x0 x19]
; gcr arg pop 0
- b G_M33324_IG90
+ b G_M33324_IG89
;; size=44 bbWeight=1 PerfScore 16.00
-G_M33324_IG80: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
+G_M33324_IG79: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
; gcrRegs +[x19]
; byrRegs -[x21] +[x0]
; GC ptr vars +{V01 V02}
ldr x0, [fp, #0xB0] // [V267 PSPSym]
; byrRegs -[x0]
- bl G_M33324_IG93
+ bl G_M33324_IG92
;; size=8 bbWeight=1 PerfScore 3.00
-G_M33324_IG81: ; bbWeight=1, nogc, extend
- b G_M33324_IG90
+G_M33324_IG80: ; bbWeight=1, nogc, extend
+ b G_M33324_IG89
;; size=4 bbWeight=1 PerfScore 1.00
-G_M33324_IG82: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG81: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
...
benchmarks.run_pgo.linux.arm64.checked.mch
-24 (-14.63%) : 142426.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.68) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.76) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.68) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.68) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.68) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.71
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.67
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.32
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.14
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.68
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.16, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.93, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-14.63%) : 145586.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.67) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.76) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.67) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.67) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.67) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.66
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.64
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.33
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.13
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.67
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.10, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.90, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-12.50%) : 142399.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7 ) ref -> [fp+0x10] this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 6.25) ref -> [fp+0x18] this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T03] ( 4, 3.50) int -> x13
; V03 loc1 [V03,T05] ( 3, 2.75) ref -> x14 class-hnd exact single-def <<unknown class>>
@@ -20,37 +20,38 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
; V10 cse0 [V10,T06] ( 3, 2.25) byref -> x2 "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 3 ) long -> x1 "Spilling to split statement for tree"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V13 rat2 [V13,T02] ( 2, 3 ) long -> x1 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
G_M60687_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
mov fp, sp
- str x0, [fp, #0x18]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M60687_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
; gcrRegs +[x0]
; byrRegs +[x1]
ldr w13, [x0, #0x10]
sub w13, w13, #1
- str x0, [fp, #0x10] // [V00 this]
+ str x0, [fp, #0x18] // [V00 this]
; GC ptr vars +{V00}
ldr x14, [x0, #0x08]
; gcrRegs +[x14]
ldr w12, [x14, #0x08]
cmp w12, w13
- bls G_M60687_IG05
+ bls G_M60687_IG04
;; size=28 bbWeight=1 PerfScore 12.00
-G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=4000 {x14}, byrefRegs=0002 {x1}, gcvars, byref, isz
+G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=4000 {x14}, byrefRegs=0002 {x1}, gcvars, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x10] // [V00 this]
+ ldr x0, [fp, #0x18] // [V00 this]
; gcrRegs +[x0]
ldr w12, [x0, #0x14]
add w12, w12, #1
- stp w13, w12, [x0, #0x10]
+ str w12, [x0, #0x14]
+ str x0, [fp, #0x18] // [V00 this]
+ str w13, [x0, #0x10]
mov w12, #24
mov x15, #16
umaddl x13, w13, w12, x15
@@ -61,46 +62,35 @@ G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=
; byrRegs +[x14]
mov x13, x2
; byrRegs +[x13]
- ; GC ptr vars -{V00}
bl CORINFO_HELP_ASSIGN_BYREF
+ ; gcrRegs -[x0]
; byrRegs -[x1]
bl CORINFO_HELP_ASSIGN_BYREF
bl CORINFO_HELP_ASSIGN_BYREF
- str x0, [fp, #0x10] // [V00 this]
- ; GC ptr vars +{V00}
- ldr x1, [x0]
- ldr x1, [x1, #0x38]
- ldr x1, [x1]
- ldr x1, [x1, #0x20]
- cbnz x1, G_M60687_IG07
- ;; size=76 bbWeight=0.75 PerfScore 23.25
-G_M60687_IG04: ; bbWeight=0.15, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
- ; gcrRegs -[x0]
- ; byrRegs -[x13-x14]
- b G_M60687_IG07
- ;; size=4 bbWeight=0.15 PerfScore 0.15
-G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
- ; byrRegs -[x2] +[x1]
+ b G_M60687_IG06
+ ;; size=64 bbWeight=0.75 PerfScore 15.00
+G_M60687_IG04: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2 x13-x14] +[x1]
stp xzr, xzr, [x1]
str xzr, [x1, #0x10]
mov w0, wzr
;; size=12 bbWeight=0.25 PerfScore 0.62
-G_M60687_IG06: ; bbWeight=0.25, epilog, nogc, extend
+G_M60687_IG05: ; bbWeight=0.25, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
+G_M60687_IG06: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
; byrRegs -[x1] +[x2]
stp xzr, xzr, [x2]
str xzr, [x2, #0x10]
mov w0, #1
;; size=12 bbWeight=0.75 PerfScore 1.88
-G_M60687_IG08: ; bbWeight=0.75, epilog, nogc, extend
+G_M60687_IG07: ; bbWeight=0.75, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=0.75 PerfScore 1.50
-; Total bytes of code 160, prolog size 12, PerfScore 42.40, instruction count 40, allocated bytes for code 160 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 8, PerfScore 33.00, instruction count 35, allocated bytes for code 140 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -111,7 +101,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.22%) : 104250.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
@@ -11,59 +11,61 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T18] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T26] ( 5, 166.65) int -> x20
-; V03 loc2 [V03,T31] ( 3, 50.02) int -> x21
+; V01 loc0 [V01,T20] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T28] ( 5, 166.65) int -> x20
+; V03 loc2 [V03,T32] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T16] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T17] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T29] ( 2, 66.69) ref -> x22 class-hnd "dup spill" <<unknown class>>
+; V08 tmp1 [V08,T30] ( 2, 66.69) ref -> x23 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T17] ( 8, 366.83) ref -> x22
-; V11 tmp4 [V11,T38] ( 5, 0.11) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp5 [V12,T34] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
+; V10 tmp3 [V10,T18] ( 8, 366.83) ref -> x23
+; V11 tmp4 [V11,T39] ( 5, 0.11) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V12 tmp5 [V12,T35] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7821.24) ref -> x22 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6543.00) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T27] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V20 tmp13 [V20,T39] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T15] ( 12, 633.60) ref -> x23 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
-; V22 tmp15 [V22,T20] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V23 tmp16 [V23,T21] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V24 tmp17 [V24,T24] ( 3, 200.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V25 tmp18 [V25,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V27 tmp20 [V27,T13] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T25] ( 4, 166.74) ref -> x22
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V20 tmp13 [V20,T40] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
+; V21 tmp14 [V21,T16] ( 12, 633.60) ref -> x24 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V22 tmp15 [V22,T22] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V23 tmp16 [V23,T23] ( 4, 266.78) ref -> x22 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V24 tmp17 [V24,T26] ( 3, 200.08) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V25 tmp18 [V25,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V26 tmp19 [V26,T13] ( 5, 666.95) ref -> x28 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V27 tmp20 [V27,T14] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V28 tmp21 [V28,T27] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T22] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T23] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T19] ( 6, 283.32) int -> x23 "Inline stloc first use temp"
+; V31 tmp24 [V31,T15] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T24] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T25] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T21] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5114.16) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2557.08) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10228.32) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10228.32) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T28] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T29] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25871.22) byref -> x25 "Inlining Arg"
-; V44 tmp37 [V44,T05] ( 8, 5164.16) ref -> x26 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T30] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V47 tmp40 [V47,T36] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T33] ( 4, 33.94) int -> x24 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7671.24) ref -> x27 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7671.24) int -> x2 "index expr"
-; V51 PSPSym [V51,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3830.26) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T32] ( 3, 38.69) int -> x2 "CSE - moderate"
+; V43 tmp36 [V43,T00] ( 24,25871.22) byref -> x2 "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 8, 5164.16) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V45 tmp38 [V45,T31] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T36] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
+;* V47 tmp40 [V47,T37] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V48 tmp41 [V48,T34] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7671.24) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7671.24) int -> x3 "index expr"
+; V51 PSPSym [V51,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V52 cse0 [V52,T07] ( 3, 3830.26) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T33] ( 3, 38.69) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1312.18) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T19] ( 15, 303.77) long -> x22 multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -82,24 +84,24 @@ G_M64534_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w20, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M64534_IG02: ; bbWeight=1, gcVars=0000000000010000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V16}
+G_M64534_IG02: ; bbWeight=1, gcVars=0000000000020000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05 V17}
b G_M64534_IG17
;; size=4 bbWeight=1 PerfScore 1.00
G_M64534_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V16}
+ ; GC ptr vars -{V05 V17}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- ; gcrRegs +[x22]
- cbz x22, G_M64534_IG06
+ ldr x23, [x0]
+ ; gcrRegs +[x23]
+ cbz x23, G_M64534_IG06
;; size=20 bbWeight=16.67 PerfScore 91.71
-G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x19, G_M64534_IG55
+G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x19, G_M64534_IG56
;; size=4 bbWeight=16.67 PerfScore 16.67
-G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M64534_IG56
+G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M64534_IG57
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -109,34 +111,34 @@ G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
cbz x0, G_M64534_IG07
- mov x1, x22
+ mov x1, x23
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x50]
ldr x2, [x2, #0x10]
blr x2
- ; gcrRegs -[x1 x22]
+ ; gcrRegs -[x1 x23]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x24, x0
+ ; gcrRegs +[x24]
b G_M64534_IG11
;; size=56 bbWeight=66.69 PerfScore 1133.81
G_M64534_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x24]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x23, x0
+ ; gcrRegs +[x23]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x22, #8
+ add x14, x23, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
@@ -144,17 +146,17 @@ G_M64534_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movz x14, #0xD1FFAB1E // code for LinqBenchmarks+<>c:<Where00LinqMethodX>b__8_0(Product):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x22, #0x18]
+ str x14, [x23, #0x18]
movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- mov x15, x22
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M64534_IG04
;; size=84 bbWeight=0.01 PerfScore 0.16
-G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -167,10 +169,10 @@ G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
blr x2
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- mov x28, x0
- ; gcrRegs +[x28]
- cbz x28, G_M64534_IG09
- ldr w0, [x28, #0x08]
+ mov x22, x0
+ ; gcrRegs +[x22]
+ cbz x22, G_M64534_IG09
+ ldr w0, [x22, #0x08]
; gcrRegs -[x0]
cbnz w0, G_M64534_IG08
movz x0, #0xD1FFAB1E
@@ -178,65 +180,23 @@ G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
movk x0, #0xD1FFAB1E LSL #32
mov w1, #44
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ; gcrRegs -[x22 x28]
+ ; gcrRegs -[x22-x23]
; gcr arg pop 0
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- ; gcrRegs +[x23]
+ ldr x24, [x0]
+ ; gcrRegs +[x24]
b G_M64534_IG11
;; size=92 bbWeight=66.69 PerfScore 1433.94
-G_M64534_IG08: ; bbWeight=66.69, gcrefRegs=10480000 {x19 x22 x28}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x22 x28]
+G_M64534_IG08: ; bbWeight=66.69, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x24] +[x22-x23]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
- bl <unknown method>
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- str w0, [x23, #0x10]
- add x14, x23, #24
- ; byrRegs +[x14]
- mov x15, x28
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
...
+4 (+0.22%) : 101372.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
@@ -11,59 +11,61 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T18] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T26] ( 5, 166.65) int -> x20
-; V03 loc2 [V03,T31] ( 3, 50.02) int -> x21
+; V01 loc0 [V01,T20] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T28] ( 5, 166.65) int -> x20
+; V03 loc2 [V03,T32] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T16] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T17] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T29] ( 2, 66.69) ref -> x22 class-hnd "dup spill" <<unknown class>>
+; V08 tmp1 [V08,T30] ( 2, 66.69) ref -> x23 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T17] ( 8, 366.83) ref -> x22
-; V11 tmp4 [V11,T38] ( 5, 0.11) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp5 [V12,T34] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
+; V10 tmp3 [V10,T18] ( 8, 366.83) ref -> x23
+; V11 tmp4 [V11,T39] ( 5, 0.11) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V12 tmp5 [V12,T35] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7811.05) ref -> x22 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6534.52) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T27] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V20 tmp13 [V20,T39] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T15] ( 12, 633.60) ref -> x23 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
-; V22 tmp15 [V22,T20] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V23 tmp16 [V23,T21] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V24 tmp17 [V24,T24] ( 3, 200.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V25 tmp18 [V25,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V27 tmp20 [V27,T13] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T25] ( 4, 166.74) ref -> x22
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V20 tmp13 [V20,T40] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
+; V21 tmp14 [V21,T16] ( 12, 633.60) ref -> x24 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V22 tmp15 [V22,T22] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V23 tmp16 [V23,T23] ( 4, 266.78) ref -> x22 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V24 tmp17 [V24,T26] ( 3, 200.08) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V25 tmp18 [V25,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V26 tmp19 [V26,T13] ( 5, 666.95) ref -> x28 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V27 tmp20 [V27,T14] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V28 tmp21 [V28,T27] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T22] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T23] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T19] ( 6, 283.32) int -> x23 "Inline stloc first use temp"
+; V31 tmp24 [V31,T15] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T24] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T25] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T21] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5107.37) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2553.69) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10214.74) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10214.74) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T28] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T29] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25837.59) byref -> x25 "Inlining Arg"
-; V44 tmp37 [V44,T05] ( 8, 5157.37) ref -> x26 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T30] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V47 tmp40 [V47,T36] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T33] ( 4, 33.94) int -> x24 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7661.06) ref -> x27 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7661.06) int -> x2 "index expr"
-; V51 PSPSym [V51,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3825.22) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T32] ( 3, 38.64) int -> x2 "CSE - moderate"
+; V43 tmp36 [V43,T00] ( 24,25837.59) byref -> x2 "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 8, 5157.37) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V45 tmp38 [V45,T31] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T36] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
+;* V47 tmp40 [V47,T37] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V48 tmp41 [V48,T34] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7661.06) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7661.06) int -> x3 "index expr"
+; V51 PSPSym [V51,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V52 cse0 [V52,T07] ( 3, 3825.22) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T33] ( 3, 38.64) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1310.48) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T19] ( 15, 303.77) long -> x22 multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -82,24 +84,24 @@ G_M15171_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w20, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M15171_IG02: ; bbWeight=1, gcVars=0000000000010000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V16}
+G_M15171_IG02: ; bbWeight=1, gcVars=0000000000020000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05 V17}
b G_M15171_IG17
;; size=4 bbWeight=1 PerfScore 1.00
G_M15171_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V16}
+ ; GC ptr vars -{V05 V17}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- ; gcrRegs +[x22]
- cbz x22, G_M15171_IG06
+ ldr x23, [x0]
+ ; gcrRegs +[x23]
+ cbz x23, G_M15171_IG06
;; size=20 bbWeight=16.67 PerfScore 91.71
-G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x19, G_M15171_IG54
+G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x19, G_M15171_IG55
;; size=4 bbWeight=16.67 PerfScore 16.67
-G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M15171_IG55
+G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M15171_IG56
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -109,34 +111,34 @@ G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
cbz x0, G_M15171_IG07
- mov x1, x22
+ mov x1, x23
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x50]
ldr x2, [x2, #0x10]
blr x2
- ; gcrRegs -[x1 x22]
+ ; gcrRegs -[x1 x23]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x24, x0
+ ; gcrRegs +[x24]
b G_M15171_IG11
;; size=56 bbWeight=66.69 PerfScore 1133.81
G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x24]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x23, x0
+ ; gcrRegs +[x23]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x22, #8
+ add x14, x23, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
@@ -144,17 +146,17 @@ G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movz x14, #0xD1FFAB1E // code for LinqBenchmarks+<>c:<Where00LinqQueryX>b__7_0(Product):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x22, #0x18]
+ str x14, [x23, #0x18]
movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- mov x15, x22
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M15171_IG04
;; size=84 bbWeight=0.01 PerfScore 0.16
-G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -167,10 +169,10 @@ G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
blr x2
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- mov x28, x0
- ; gcrRegs +[x28]
- cbz x28, G_M15171_IG09
- ldr w0, [x28, #0x08]
+ mov x22, x0
+ ; gcrRegs +[x22]
+ cbz x22, G_M15171_IG09
+ ldr w0, [x22, #0x08]
; gcrRegs -[x0]
cbnz w0, G_M15171_IG08
movz x0, #0xD1FFAB1E
@@ -178,65 +180,23 @@ G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
movk x0, #0xD1FFAB1E LSL #32
mov w1, #45
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ; gcrRegs -[x22 x28]
+ ; gcrRegs -[x22-x23]
; gcr arg pop 0
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- ; gcrRegs +[x23]
+ ldr x24, [x0]
+ ; gcrRegs +[x24]
b G_M15171_IG11
;; size=92 bbWeight=66.69 PerfScore 1433.94
-G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=10480000 {x19 x22 x28}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x22 x28]
+G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x24] +[x22-x23]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
- bl <unknown method>
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- str w0, [x23, #0x10]
- add x14, x23, #24
- ; byrRegs +[x14]
- mov x15, x28
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
...
+16 (+7.27%) : 124282.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -6,113 +6,121 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 98.71
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 98.71
; 1 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 2.57) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T08] ( 3, 12.85) int -> x0
-; V03 loc2 [V03,T10] ( 3, 3.86) int -> x1
-; V04 loc3 [V04,T09] ( 4, 4 ) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 2.57) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T06] ( 3, 12.85) int -> x0
+; V03 loc2 [V03,T08] ( 3, 3.86) int -> x1
+; V04 loc3 [V04,T07] ( 4, 4 ) struct (24) [fp+0x58] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T07] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> x3 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 2.57) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T02] ( 6,210.39) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 3,198.71) ref -> x7 "V04.[008..016)"
-; V17 tmp11 [V17,T01] ( 8,498.45) int -> x4 "V04.[016..020)"
-; V18 tmp12 [V18,T06] ( 3,102.29) int -> x5 "V04.[020..024)"
-; V19 tmp13 [V19,T00] ( 3,592.32) ref -> x7 "arr expr"
-; V20 cse0 [V20,T05] ( 2,108.10) int -> x6 hoist "CSE - aggressive"
+; V14 tmp8 [V14,T10] ( 2, 2.57) int -> x22 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T02] ( 6,302.29) ref -> x20 "V04.[000..008)"
+; V16 tmp10 [V16,T04] ( 3,198.71) ref -> x2 "V04.[008..016)"
+; V17 tmp11 [V17,T01] ( 8,498.45) int -> x21 "V04.[016..020)"
+; V18 tmp12 [V18,T05] ( 3,102.29) int -> x22 "V04.[020..024)"
+; V19 tmp13 [V19,T00] ( 3,592.32) ref -> x2 "arr expr"
;
; Lcl frame size = 0
G_M51974_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- ldr x2, [fp, #0x58]
- ; gcrRegs +[x2]
- ldp w1, w0, [fp, #0x50]
- ;; size=16 bbWeight=1 PerfScore 5.50
-G_M51974_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
- ldr x3, [fp, #0x38] // [V04 loc3]
- ; gcrRegs +[x3]
- ldp w4, w5, [fp, #0x48] // [V04 loc3+0x10], [V04 loc3+0x14]
- b G_M51974_IG04
+ ldr x19, [fp, #0x78]
+ ; gcrRegs +[x19]
+ ldp w1, w0, [fp, #0x70]
+ ;; size=24 bbWeight=1 PerfScore 7.50
+G_M51974_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ldr x20, [fp, #0x58] // [V04 loc3]
+ ; gcrRegs +[x20]
+ ldp w21, w22, [fp, #0x68] // [V04 loc3+0x10], [V04 loc3+0x14]
+ b G_M51974_IG05
;; size=12 bbWeight=1 PerfScore 5.00
-G_M51974_IG03: ; bbWeight=1.29, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x3]
- ldr w5, [x2, #0x14]
- mov x3, x2
- ; gcrRegs +[x3]
- mov w4, wzr
- ;; size=12 bbWeight=1.29 PerfScore 5.15
-G_M51974_IG04: ; bbWeight=8.10, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M51974_IG06
- ;; size=8 bbWeight=8.10 PerfScore 32.42
-G_M51974_IG05: ; bbWeight=98.71, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x7]
- ldr w7, [x7, #0x1C]
- ; gcrRegs -[x7]
- cbz w7, G_M51974_IG10
+G_M51974_IG03: ; bbWeight=1.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
+ ldr w22, [x19, #0x14]
+ mov x20, x19
+ ; gcrRegs +[x20]
+ mov w21, wzr
+ b G_M51974_IG05
+ ;; size=16 bbWeight=1.29 PerfScore 6.43
+G_M51974_IG04: ; bbWeight=98.71, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x2]
+ ldr w2, [x2, #0x1C]
+ ; gcrRegs -[x2]
+ cbz w2, G_M51974_IG09
;; size=8 bbWeight=98.71 PerfScore 394.85
-G_M51974_IG06: ; bbWeight=100, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- cmp w5, w6
- bne G_M51974_IG15
- ldr w7, [x3, #0x10]
- cmp w4, w7
- bhs G_M51974_IG11
- ;; size=20 bbWeight=100 PerfScore 600.00
-G_M51974_IG07: ; bbWeight=98.72, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
+G_M51974_IG05: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr w2, [x20, #0x14]
+ cmp w22, w2
+ bne G_M51974_IG11
+ ldr w2, [x20, #0x10]
+ cmp w21, w2
+ bhs G_M51974_IG10
+ ;; size=24 bbWeight=100 PerfScore 900.00
+G_M51974_IG06: ; bbWeight=98.72, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr x2, [x20, #0x08]
+ ; gcrRegs +[x2]
+ ldr w3, [x2, #0x08]
+ cmp w21, w3
bhs G_M51974_IG12
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr x7, [x7, w4, UXTW #3]
- ; gcrRegs +[x7]
- ; byrRegs -[x7]
- add w4, w4, #1
- mov w8, #1
+ add x2, x2, #16
+ ; gcrRegs -[x2]
+ ; byrRegs +[x2]
+ ldr x2, [x2, w21, UXTW #3]
+ ; gcrRegs +[x2]
+ ; byrRegs -[x2]
+ add w21, w21, #1
+ mov w3, #1
;; size=32 bbWeight=98.72 PerfScore 1184.64
-G_M51974_IG08: ; bbWeight=100, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M51974_IG05
+G_M51974_IG07: ; bbWeight=100, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+ cbnz w3, G_M51974_IG04
;; size=4 bbWeight=100 PerfScore 100.00
-G_M51974_IG09: ; bbWeight=1.29, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3 x7]
+G_M51974_IG08: ; bbWeight=1.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x2 x20]
add w1, w1, #1
- movz w3, #0xD1FFAB1E
- movk w3, #15 LSL #16
- cmp w1, w3
+ movz w2, #0xD1FFAB1E
+ movk w2, #15 LSL #16
+ cmp w1, w2
bge G_M51974_IG13
b G_M51974_IG03
;; size=24 bbWeight=1.29 PerfScore 5.15
-G_M51974_IG10: ; bbWeight=6.42, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x3]
+G_M51974_IG09: ; bbWeight=6.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x20]
add w0, w0, #1
- b G_M51974_IG06
+ b G_M51974_IG05
;; size=8 bbWeight=6.42 PerfScore 9.63
-G_M51974_IG11: ; bbWeight=1.28, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w4, [x3, #0x10]
- add w4, w4, #1
- mov x7, xzr
- ; gcrRegs +[x7]
- mov w8, wzr
- b G_M51974_IG08
+G_M51974_IG10: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ldr w2, [x20, #0x10]
+ add w21, w2, #1
+ mov x2, xzr
+ ; gcrRegs +[x2]
+ mov w3, wzr
+ b G_M51974_IG07
;; size=20 bbWeight=1.28 PerfScore 7.04
+G_M51974_IG11: ; bbWeight=1.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x2 x19-x20]
+ movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ blr x0
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=24 bbWeight=1.28 PerfScore 8.32
G_M51974_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x2-x3 x7]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -123,32 +131,25 @@ G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cset x0, eq
;; size=16 bbWeight=0 PerfScore 0.00
G_M51974_IG14: ; bbWeight=0, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
add sp, sp, #96
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51974_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcr arg pop 0
- brk_unix #0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 220, prolog size 16, PerfScore 2349.38, instruction count 55, allocated bytes for code 220 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 236, prolog size 24, PerfScore 2628.57, instruction count 59, allocated bytes for code 236 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 55 (0x00037) Actual length = 220 (0x0000dc)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +157,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
+ 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]!
06 alloc_s #6 (0x06); sub sp, sp, #96 (0x060)
E4 end
...
benchmarks.run_tiered.linux.arm64.checked.mch
-28 (-7.61%) : 29857.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -38,8 +38,8 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M23091_IG08
- cbz x1, G_M23091_IG09
+ cbnz w14, G_M23091_IG07
+ cbz x1, G_M23091_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M23091_IG10
+ cbnz w0, G_M23091_IG09
mov w14, #4
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -91,7 +80,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-28 (-7.61%) : 29986.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -38,8 +38,8 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M29540_IG08
- cbz x1, G_M29540_IG09
+ cbnz w14, G_M29540_IG07
+ cbz x1, G_M29540_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M29540_IG10
+ cbnz w0, G_M29540_IG09
mov w14, #7
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M29540_IG04
+ cbz w0, G_M29540_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M29540_IG05
- b G_M29540_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -91,7 +80,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
-12 (-2.78%) : 51415.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
@@ -10,20 +10,20 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T22] ( 2, 4 ) ref -> x22 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T18] ( 3, 17 ) int -> x21
-; V03 loc2 [V03,T16] ( 3, 24 ) int -> x20
-; V04 loc3 [V04,T08] ( 9, 66 ) ref -> x19 class-hnd exact <System.Collections.Generic.List`1[Product]>
-; V05 loc4 [V05,T24] ( 4, 1.03) struct (24) [fp+0xA0] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T21] ( 2, 4 ) ref -> x22 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T17] ( 3, 17 ) int -> x21
+; V03 loc2 [V03,T15] ( 3, 24 ) int -> x20
+; V04 loc3 [V04,T07] ( 9, 66 ) ref -> x19 class-hnd exact <System.Collections.Generic.List`1[Product]>
+; V05 loc4 [V05,T23] ( 4, 1.03) struct (24) [fp+0xA0] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
-; V07 loc6 [V07,T25] ( 1, 1 ) struct (24) [fp+0x80] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V07 loc6 [V07,T24] ( 1, 1 ) struct (24) [fp+0x80] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V08 loc7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T20] ( 3, 12 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-; V11 tmp2 [V11,T06] ( 3, 72.01) int -> x23 "OSR entry state var"
+; V10 tmp1 [V10,T19] ( 3, 12 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V13 tmp4 [V13,T15] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp5 [V14,T12] ( 4, 32 ) int -> x23 "Inline stloc first use temp"
+; V13 tmp4 [V13,T14] ( 3, 24 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V14 tmp5 [V14,T11] ( 4, 32 ) int -> x26 "Inline stloc first use temp"
; V15 tmp6 [V15,T04] ( 3, 80 ) ubyte -> x1 "Inline return value spill temp"
;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,24 +32,24 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref "field V12._list (fldOffset=0x0)" P-INDEP
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref "field V12._current (fldOffset=0x8)" P-INDEP
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "field V12._index (fldOffset=0x10)" P-INDEP
-; V23 tmp14 [V23,T23] ( 2, 4 ) int -> x26 "field V12._version (fldOffset=0x14)" P-INDEP
+; V23 tmp14 [V23,T22] ( 2, 4 ) int -> x25 "field V12._version (fldOffset=0x14)" P-INDEP
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref "field V17._list (fldOffset=0x0)" P-INDEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "field V17._current (fldOffset=0x8)" P-INDEP
;* V26 tmp17 [V26 ] ( 0, 0 ) int -> zero-ref "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18 [V27,T19] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
-; V28 tmp19 [V28,T02] ( 5, 82.01) ref -> x24 "V05.[000..008)"
-; V29 tmp20 [V29,T11] ( 5, 40 ) ref -> x2 "V05.[008..016)"
-; V30 tmp21 [V30,T09] ( 8, 50.01) int -> x25 "V05.[016..020)"
-; V31 tmp22 [V31,T07] ( 3, 66.01) int -> x26 "V05.[020..024)"
+;* V27 tmp18 [V27,T18] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
+; V28 tmp19 [V28,T02] ( 5, 82.01) ref -> x23 "V05.[000..008)"
+; V29 tmp20 [V29,T10] ( 5, 40 ) ref -> x2 "V05.[008..016)"
+; V30 tmp21 [V30,T08] ( 8, 50.01) int -> x24 "V05.[016..020)"
+; V31 tmp22 [V31,T06] ( 3, 66.01) int -> x25 "V05.[020..024)"
; V32 tmp23 [V32,T03] ( 3, 80 ) ref -> x19 "V07.[000..008)"
;* V33 tmp24 [V33 ] ( 0, 0 ) ref -> zero-ref "V07.[008..016)"
; V34 tmp25 [V34,T01] ( 6,104 ) int -> x0 "V07.[016..020)"
-;* V35 tmp26 [V35,T21] ( 0, 0 ) int -> zero-ref "V07.[020..024)"
-; V36 tmp27 [V36,T10] ( 3, 48 ) ref -> x1 "arr expr"
-; V37 tmp28 [V37,T14] ( 2, 32 ) ref -> x1 "arr expr"
-; V38 cse0 [V38,T13] ( 2, 16 ) int -> x1 multi-def "CSE - aggressive"
-; V39 cse1 [V39,T17] ( 3, 24 ) int -> x1 "CSE - moderate"
-; V40 cse2 [V40,T00] ( 5,152 ) int -> registers multi-def "CSE - aggressive"
+;* V35 tmp26 [V35,T20] ( 0, 0 ) int -> zero-ref "V07.[020..024)"
+; V36 tmp27 [V36,T09] ( 3, 48 ) ref -> x1 "arr expr"
+; V37 tmp28 [V37,T13] ( 2, 32 ) ref -> x1 "arr expr"
+; V38 cse0 [V38,T12] ( 2, 16 ) int -> x1 multi-def "CSE - aggressive"
+; V39 cse1 [V39,T16] ( 3, 24 ) int -> x1 "CSE - moderate"
+; V40 cse2 [V40,T00] ( 5,152 ) int -> x26 multi-def "CSE - aggressive"
;
; Lcl frame size = 0
@@ -67,14 +67,13 @@ G_M25128_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[x19]
;; size=36 bbWeight=0.01 PerfScore 0.12
G_M25128_IG02: ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- mov w23, wzr
- ldr x24, [fp, #0xA0] // [V05 loc4]
- ; gcrRegs +[x24]
- ldp w25, w26, [fp, #0xB0] // [V05 loc4+0x10], [V05 loc4+0x14]
- b G_M25128_IG04
- ;; size=16 bbWeight=0.01 PerfScore 0.06
+ ldr x23, [fp, #0xA0] // [V05 loc4]
+ ; gcrRegs +[x23]
+ ldp w24, w25, [fp, #0xB0] // [V05 loc4+0x10], [V05 loc4+0x14]
+ b G_M25128_IG06
+ ;; size=12 bbWeight=0.01 PerfScore 0.05
G_M25128_IG03: ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x24]
+ ; gcrRegs -[x19 x23]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -88,36 +87,33 @@ G_M25128_IG03: ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str x0, [x19, #0x08]
- ldr w26, [x22, #0x14]
- mov x24, x22
- ; gcrRegs +[x24]
- mov w25, wzr
- ;; size=48 bbWeight=2 PerfScore 19.00
-G_M25128_IG04: ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
- cbz w23, G_M25128_IG07
- b G_M25128_IG07
- ;; size=8 bbWeight=8 PerfScore 16.00
-G_M25128_IG05: ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
+ ldr w25, [x22, #0x14]
+ mov x23, x22
+ ; gcrRegs +[x23]
+ mov w24, wzr
+ b G_M25128_IG06
+ ;; size=52 bbWeight=2 PerfScore 21.00
+G_M25128_IG04: ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x2]
ldr w1, [x2, #0x1C]
- cbnz w1, G_M25128_IG07
- ldp w23, w1, [x19, #0x10]
+ cbnz w1, G_M25128_IG06
+ ldp w26, w1, [x19, #0x10]
add w1, w1, #1
str w1, [x19, #0x14]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
- cmp w1, w23
- bls G_M25128_IG06
- add w1, w23, #1
+ cmp w1, w26
+ bls G_M25128_IG05
+ add w1, w26, #1
str w1, [x19, #0x10]
- sxtw x1, w23
+ sxtw x1, w26
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
- b G_M25128_IG07
+ b G_M25128_IG06
;; size=56 bbWeight=8 PerfScore 160.00
-G_M25128_IG06: ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref
+G_M25128_IG05: ; bbWeight=8, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x2]
mov x0, x19
; gcrRegs +[x0]
@@ -132,74 +128,73 @@ G_M25128_IG06: ; bbWeight=8, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefReg
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=28 bbWeight=8 PerfScore 52.00
-G_M25128_IG07: ; bbWeight=64, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
- mov w23, #1
- ldr w1, [x24, #0x14]
- cmp w26, w1
- bne G_M25128_IG21
- ;; size=16 bbWeight=64 PerfScore 320.00
-G_M25128_IG08: ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref, isz
- ldr w1, [x24, #0x10]
+G_M25128_IG06: ; bbWeight=64, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ldr w1, [x23, #0x14]
cmp w25, w1
- bhs G_M25128_IG09
- ldr x1, [x24, #0x08]
+ bne G_M25128_IG20
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M25128_IG07: ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ldr w1, [x23, #0x10]
+ cmp w24, w1
+ bhs G_M25128_IG08
+ ldr x1, [x23, #0x08]
; gcrRegs +[x1]
ldr w0, [x1, #0x08]
- cmp w25, w0
- bhs G_M25128_IG20
+ cmp w24, w0
+ bhs G_M25128_IG19
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- ldr x2, [x1, w25, UXTW #3]
+ ldr x2, [x1, w24, UXTW #3]
; gcrRegs +[x2]
- add w25, w25, #1
+ add w24, w24, #1
mov w1, #1
; byrRegs -[x1]
- b G_M25128_IG10
+ b G_M25128_IG09
;; size=48 bbWeight=8 PerfScore 140.00
-G_M25128_IG09: ; bbWeight=8, gcrefRegs=1480000 {x19 x22 x24}, byrefRegs=0000 {}, byref
+G_M25128_IG08: ; bbWeight=8, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
- add w25, w1, #1
+ add w24, w1, #1
mov x2, xzr
; gcrRegs +[x2]
mov w1, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M25128_IG10: ; bbWeight=64, gcrefRegs=1480004 {x2 x19 x22 x24}, byrefRegs=0000 {}, byref, isz
- cbnz w1, G_M25128_IG05
+G_M25128_IG09: ; bbWeight=64, gcrefRegs=C80004 {x2 x19 x22 x23}, byrefRegs=0000 {}, byref, isz
+ cbnz w1, G_M25128_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG11: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x2 x24]
+G_M25128_IG10: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x2 x23]
ldr wzr, [x19, #0x14]
mov w0, wzr
- b G_M25128_IG13
+ b G_M25128_IG12
;; size=12 bbWeight=8 PerfScore 36.00
-G_M25128_IG12: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M25128_IG11: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
add w21, w21, #1
;; size=4 bbWeight=8 PerfScore 4.00
-G_M25128_IG13: ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ldr w1, [x19, #0x10]
- cmp w0, w1
- bhs G_M25128_IG15
+G_M25128_IG12: ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ ldr w26, [x19, #0x10]
+ cmp w0, w26
+ bhs G_M25128_IG14
;; size=12 bbWeight=64 PerfScore 288.00
-G_M25128_IG14: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG13: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr w1, [x1, #0x08]
; gcrRegs -[x1]
cmp w0, w1
- bhs G_M25128_IG20
+ bhs G_M25128_IG19
add w0, w0, #1
mov w1, #1
- b G_M25128_IG16
+ b G_M25128_IG15
;; size=28 bbWeight=8 PerfScore 76.00
-G_M25128_IG15: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- add w0, w1, #1
+G_M25128_IG14: ; bbWeight=8, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ add w0, w26, #1
mov w1, wzr
;; size=8 bbWeight=8 PerfScore 8.00
-G_M25128_IG16: ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbnz w1, G_M25128_IG12
+G_M25128_IG15: ; bbWeight=64, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz w1, G_M25128_IG11
;; size=4 bbWeight=64 PerfScore 64.00
-G_M25128_IG17: ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+G_M25128_IG16: ; bbWeight=8, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19]
add w20, w20, #1
movz w0, #0xD1FFAB1E
...
-8 (-0.20%) : 48007.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (Tier1)
@@ -30,15 +30,15 @@
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V21 tmp2 [V21 ] ( 8, 16 ) struct (16) [fp+0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T36] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V22 tmp3 [V22,T35] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V23 tmp4 [V23 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-; V24 tmp5 [V24,T44] ( 3, 6 ) int -> x1 "impAppendStmt"
+; V24 tmp5 [V24,T43] ( 3, 6 ) int -> x1 "impAppendStmt"
;* V25 tmp6 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp9 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V29 tmp10 [V29 ] ( 5, 10 ) struct (16) [fp+0x28] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V30 tmp11 [V30,T37] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp11 [V30,T36] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -48,7 +48,7 @@
; V37 tmp18 [V37,T128] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 tmp21 [V40,T38] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V40 tmp21 [V40,T37] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V41 tmp22 [V41 ] ( 0, 0 ) ref -> zero-ref
; V42 tmp23 [V42,T96] ( 2, 2 ) ref -> x14 single-def
;* V43 tmp24 [V43,T117] ( 0, 0 ) int -> zero-ref
@@ -66,14 +66,14 @@
;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V58 tmp39 [V58,T39] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V58 tmp39 [V58,T38] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V59 tmp40 [V59,T68] ( 2, 4 ) int -> x2 "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V61 tmp42 [V61,T04] ( 12, 12 ) int -> x20 "Inline return value spill temp"
-; V62 tmp43 [V62,T45] ( 3, 6 ) int -> x3 "Inlining Arg"
-; V63 tmp44 [V63,T46] ( 3, 6 ) int -> x1 "Inlining Arg"
+; V62 tmp43 [V62,T44] ( 3, 6 ) int -> x3 "Inlining Arg"
+; V63 tmp44 [V63,T45] ( 3, 6 ) int -> x1 "Inlining Arg"
; V64 tmp45 [V64,T11] ( 4, 8 ) ref -> x1 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V65 tmp46 [V65,T33] ( 4, 6 ) int -> x2 "Inlining Arg"
+; V65 tmp46 [V65,T46] ( 3, 6 ) int -> x2 "Inlining Arg"
;* V66 tmp47 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V67 tmp48 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V68 tmp49 [V68,T27] ( 6, 6 ) byref -> x24 "Inline stloc first use temp"
@@ -196,8 +196,8 @@
; V185 tmp166 [V185,T75] ( 2, 4 ) long -> x2 "Inlining Arg"
; V186 tmp167 [V186,T05] ( 6, 12 ) ref -> x0 class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V187 tmp168 [V187,T08] ( 5, 10 ) byref -> x14 single-def "Inlining Arg"
-; V188 tmp169 [V188,T40] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V189 tmp170 [V189,T41] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V188 tmp169 [V188,T39] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V189 tmp170 [V189,T40] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V190 tmp171 [V190 ] ( 6, 6 ) ref -> [fp+0x98] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V191 tmp172 [V191 ] ( 6, 6 ) int -> [fp+0xA0] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V192 tmp173 [V192 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -210,8 +210,8 @@
; V199 tmp180 [V199,T59] ( 4, 4 ) short -> [fp+0x64] do-not-enreg[] "field V14._token (fldOffset=0xc)" P-DEP
; V200 tmp181 [V200,T107] ( 2, 2 ) ubyte -> [fp+0x66] do-not-enreg[] "field V14._continueOnCapturedContext (fldOffset=0xe)" P-DEP
; V201 tmp182 [V201,T32] ( 4, 6 ) ref -> [fp+0x38] do-not-enreg[] "field V21._object (fldOffset=0x0)" P-DEP
-; V202 tmp183 [V202,T34] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
-; V203 tmp184 [V203,T35] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
+; V202 tmp183 [V202,T33] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
+; V203 tmp184 [V203,T34] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
;* V204 tmp185 [V204 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp186 [V205 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
; V206 tmp187 [V206,T51] ( 3, 5 ) ref -> [fp+0x28] do-not-enreg[] "field V29._object (fldOffset=0x0)" P-DEP
@@ -269,10 +269,10 @@
;* V258 tmp239 [V258 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
;* V259 tmp240 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V182._reference (fldOffset=0x0)" P-INDEP
;* V260 tmp241 [V260 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-; V261 tmp242 [V261,T42] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V261 tmp242 [V261,T41] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
; V262 tmp243 [V262,T64] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V263 tmp244 [V263,T65] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V264 tmp245 [V264,T43] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
+; V264 tmp245 [V264,T42] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
; V265 tmp246 [V265,T66] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V266 tmp247 [V266,T67] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V267 PSPSym [V267,T127] ( 1, 1 ) long -> [fp+0xB0] do-not-enreg[V] "PSPSym"
@@ -421,7 +421,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG92
+ b G_M33324_IG91
;; size=80 bbWeight=1 PerfScore 21.00
G_M33324_IG07: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, nogc
; gcrRegs +[x19]
@@ -491,7 +491,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ble G_M33324_IG15
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbz x1, G_M33324_IG75
+ cbz x1, G_M33324_IG74
mov w3, w2
add x3, x3, w20, UXTW
ldr w4, [x1, #0x08]
@@ -596,7 +596,7 @@ G_M33324_IG14: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=1200000 {x2
blr x1
; gcr arg pop 0
cmp w22, w25
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w22
mov x0, x24
; byrRegs +[x0]
@@ -620,7 +620,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
cmp w20, w1
bne G_M33324_IG16
str w20, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG80
+ b G_M33324_IG79
;; size=20 bbWeight=1 PerfScore 6.50
G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
cmp w20, #0
@@ -629,7 +629,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
; byrRegs +[x1]
ldr w2, [x1, #0x0C]
cmp w20, w2
- bhi G_M33324_IG77
+ bhi G_M33324_IG76
ldr x21, [x1]
; gcrRegs +[x21]
ldr w1, [x1, #0x08]
@@ -949,7 +949,7 @@ G_M33324_IG28: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
ldr w0, [x21, #0x14]
add w0, w20, w0
str w0, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG86
+ b G_M33324_IG85
;; size=16 bbWeight=1 PerfScore 5.50
G_M33324_IG29: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21]
@@ -1032,7 +1032,7 @@ G_M33324_IG33: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG82
+ b G_M33324_IG81
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG34: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[x21]
@@ -1140,7 +1140,7 @@ G_M33324_IG41: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG84
+ b G_M33324_IG83
;; size=92 bbWeight=1 PerfScore 22.50
G_M33324_IG42: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1411,7 +1411,7 @@ G_M33324_IG57: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG88
+ b G_M33324_IG87
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG58: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1666,7 +1666,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x1
; gcr arg pop 0
cmp w23, w26
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w23
mov x0, x25
; byrRegs +[x0]
@@ -1679,7 +1679,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x3
; byrRegs -[x0-x1 x22 x25]
; gcr arg pop 0
- b G_M33324_IG78
+ b G_M33324_IG77
;; size=72 bbWeight=1 PerfScore 16.00
G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1691,13 +1691,7 @@ G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
- ; byrRegs +[x0]
- cbnz w2, G_M33324_IG74
- b G_M33324_IG74
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
+G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -1706,7 +1700,7 @@ G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -1716,7 +1710,7 @@ G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG77: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
; byrRegs +[x21]
ldr w0, [x19, #0x30]
add w0, w0, w20
@@ -1725,9 +1719,9 @@ G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
add w0, w0, w20
str w0, [fp, #0xA8] // [V03 loc2]
;; size=24 bbWeight=1 PerfScore 9.00
-G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
ldr w0, [fp, #0xAC] // [V01 loc0]
- tbz w0, #31, G_M33324_IG90
+ tbz w0, #31, G_M33324_IG89
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -1740,51 +1734,51 @@ G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x0 x19]
; gcr arg pop 0
- b G_M33324_IG90
+ b G_M33324_IG89
;; size=44 bbWeight=1 PerfScore 16.00
-G_M33324_IG80: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
+G_M33324_IG79: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
; gcrRegs +[x19]
; byrRegs -[x21] +[x0]
; GC ptr vars +{V01 V02}
ldr x0, [fp, #0xB0] // [V267 PSPSym]
; byrRegs -[x0]
- bl G_M33324_IG93
+ bl G_M33324_IG92
;; size=8 bbWeight=1 PerfScore 3.00
-G_M33324_IG81: ; bbWeight=1, nogc, extend
- b G_M33324_IG90
+G_M33324_IG80: ; bbWeight=1, nogc, extend
+ b G_M33324_IG89
;; size=4 bbWeight=1 PerfScore 1.00
-G_M33324_IG82: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG81: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
...
+0 (0.00%) : 54650.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T10] ( 3, 17 ) int -> x1
-; V03 loc2 [V03,T08] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T08] ( 3, 17 ) int -> x1
+; V03 loc2 [V03,T06] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T07] ( 3, 24 ) ref -> x7 "V04.[008..016)"
-; V17 tmp11 [V17,T04] ( 8, 50.01) int -> x4 "V04.[016..020)"
+; V14 tmp8 [V14,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T05] ( 3, 24 ) ref -> x6 "V04.[008..016)"
+; V17 tmp11 [V17,T03] ( 8, 50.01) int -> x4 "V04.[016..020)"
; V18 tmp12 [V18,T02] ( 3, 66.01) int -> x5 "V04.[020..024)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M51974_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x48] // [V04 loc3+0x10], [V04 loc3+0x14]
- b G_M51974_IG04
+ b G_M51974_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,76 +52,74 @@ G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byre
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
-G_M51974_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M51974_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M51974_IG05: ; bbWeight=8, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x7]
- ldr w7, [x7, #0x1C]
- ; gcrRegs -[x7]
- cbnz w7, G_M51974_IG06
+ b G_M51974_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
+G_M51974_IG04: ; bbWeight=8, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x6]
+ ldr w6, [x6, #0x1C]
+ ; gcrRegs -[x6]
+ cbnz w6, G_M51974_IG05
add w1, w1, #1
;; size=12 bbWeight=8 PerfScore 36.00
-G_M51974_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M51974_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M51974_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M51974_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M51974_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M51974_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M51974_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M51974_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr x7, [x7, w4, UXTW #3]
- ; gcrRegs +[x7]
- ; byrRegs -[x7]
+ bhs G_M51974_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr x6, [x6, w4, UXTW #3]
+ ; gcrRegs +[x6]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M51974_IG09
+ mov w7, #1
+ b G_M51974_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M51974_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x7]
- add w4, w7, #1
- mov x7, xzr
- ; gcrRegs +[x7]
- mov w8, wzr
+G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x6]
+ add w4, w6, #1
+ mov x6, xzr
+ ; gcrRegs +[x6]
+ mov w7, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M51974_IG09: ; bbWeight=64, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M51974_IG05
+G_M51974_IG08: ; bbWeight=64, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M51974_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M51974_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3 x7]
+G_M51974_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x3 x6]
add w0, w0, #1
movz w3, #0xD1FFAB1E
movk w3, #15 LSL #16
cmp w0, w3
blt G_M51974_IG03
;; size=20 bbWeight=8 PerfScore 24.00
-G_M51974_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz w0, #0xD1FFAB1E
movk w0, #76 LSL #16
cmp w1, w0
cset x0, eq
;; size=16 bbWeight=1 PerfScore 2.00
-G_M51974_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M51974_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M51974_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M51974_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -132,7 +129,7 @@ G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 16, PerfScore 416.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 208, prolog size 16, PerfScore 578.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
+0 (0.00%) : 30835.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <PerfLabTests.LowLevelPerf>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
-; V02 loc1 [V02,T10] ( 2, 9 ) int -> x1
-; V03 loc2 [V03,T07] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
+; V02 loc1 [V02,T08] ( 2, 9 ) int -> x1
+; V03 loc2 [V03,T05] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[int]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x8)" P-INDEP
-; V13 tmp7 [V13,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
+; V13 tmp7 [V13,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "field V08._current (fldOffset=0x10)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 8, 50.01) int -> x4 "V04.[008..012)"
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T03] ( 8, 50.01) int -> x4 "V04.[008..012)"
; V17 tmp11 [V17,T02] ( 3, 66.01) int -> x5 "V04.[012..016)"
-; V18 tmp12 [V18,T08] ( 3, 24 ) int -> x7 "V04.[016..020)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V18 tmp12 [V18,T06] ( 3, 24 ) int -> x6 "V04.[016..020)"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M6486_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, by
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x40] // [V04 loc3+0x08], [V04 loc3+0x0c]
- b G_M6486_IG04
+ b G_M6486_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,45 +52,43 @@ G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
+ b G_M6486_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
G_M6486_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M6486_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M6486_IG05: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- sxtw w1, w7
+ sxtw w1, w6
;; size=4 bbWeight=8 PerfScore 4.00
-G_M6486_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M6486_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M6486_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M6486_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M6486_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M6486_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M6486_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr w7, [x7, w4, UXTW #2]
- ; byrRegs -[x7]
+ bhs G_M6486_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr w6, [x6, w4, UXTW #2]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M6486_IG09
+ mov w7, #1
+ b G_M6486_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M6486_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- add w4, w7, #1
+G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ add w4, w6, #1
+ mov w6, wzr
mov w7, wzr
- mov w8, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M6486_IG09: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M6486_IG05
+G_M6486_IG08: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M6486_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x3]
add w0, w0, #1
movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field>
@@ -101,20 +98,20 @@ G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
cmp w0, w4
blt G_M6486_IG03
;; size=28 bbWeight=8 PerfScore 52.00
-G_M6486_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
mov w0, w1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M6486_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M6486_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M6486_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M6486_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -124,7 +121,7 @@ G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 16, PerfScore 411.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
+; Total bytes of code 196, prolog size 16, PerfScore 573.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
; ============================================================
Unwind Info:
coreclr_tests.run.linux.arm64.checked.mch
-44 (-55.00%) : 242759.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 5, 4 ) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 4 ) float -> d0 "Single return block return value"
+; V02 tmp1 [V02,T00] ( 2, 4 ) float -> d0 "Single return block return value"
;
; Lcl frame size = 0
@@ -18,34 +18,19 @@ G_M53791_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- ble G_M53791_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53791_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- b G_M53791_IG05
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- blo G_M53791_IG03
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53791_IG03
- b G_M53791_IG03
- ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M53791_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-28 (-43.75%) : 236186.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+; V00 loc0 [V00,T00] ( 2, 2 ) float -> d0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,28 +19,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -51,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
-28 (-43.75%) : 242707.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
@@ -17,28 +17,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -49,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
+12 (+6.25%) : 15830.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -15,14 +15,14 @@
;* V04 loc4 [V04 ] ( 0, 0 ) ubyte -> zero-ref
; V05 loc5 [V05,T01] ( 4, 4 ) ref -> x19 class-hnd exact single-def <testout1>
;* V06 loc6 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V07 loc7 [V07,T04] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V07 loc7 [V07,T03] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
; V08 loc8 [V08,T00] ( 5, 5 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <testout1>
;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref single-def
+;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref single-def
@@ -31,60 +31,60 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-;* V23 tmp14 [V23,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V23 tmp14 [V23,T20] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp17 [V26,T08] ( 2, 2 ) int -> x1 single-def
+; V26 tmp17 [V26,T09] ( 2, 2 ) int -> x2 single-def
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp20 [V29,T09] ( 2, 2 ) int -> x1 single-def
+; V29 tmp20 [V29,T10] ( 2, 2 ) int -> x2 single-def
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp23 [V32,T10] ( 2, 2 ) int -> x1 single-def
+; V32 tmp23 [V32,T11] ( 2, 2 ) int -> x2 single-def
;* V33 tmp24 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp26 [V35,T11] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp26 [V35,T12] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref
-; V38 tmp29 [V38,T12] ( 2, 2 ) int -> x0 single-def
+;* V38 tmp29 [V38,T13] ( 0, 0 ) int -> zero-ref single-def
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp32 [V41,T13] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp35 [V44,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V44 tmp35 [V44,T21] ( 0, 0 ) int -> zero-ref single-def
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp38 [V47,T14] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp38 [V47,T14] ( 2, 2 ) int -> x2 single-def
;* V48 tmp39 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp41 [V50,T15] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp41 [V50,T15] ( 2, 2 ) int -> x1 single-def
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp44 [V53,T16] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp44 [V53,T16] ( 2, 2 ) int -> x1 single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp47 [V56,T23] ( 0, 0 ) int -> zero-ref single-def
+; V56 tmp47 [V56,T17] ( 2, 2 ) int -> x1 single-def
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp50 [V59,T17] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp50 [V59,T18] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp53 [V62,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp53 [V62,T19] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp56 [V65,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp56 [V65,T22] ( 0, 0 ) int -> zero-ref single-def
;* V66 tmp57 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp58 [V67 ] ( 0, 0 ) int -> zero-ref
-;* V68 tmp59 [V68,T24] ( 0, 0 ) int -> zero-ref single-def
+;* V68 tmp59 [V68 ] ( 0, 0 ) int -> zero-ref
;* V69 tmp60 [V69 ] ( 0, 0 ) int -> zero-ref
;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 cse0 [V71,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V72 cse1 [V72,T20] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V73 cse2 [V73,T02] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V74 cse3 [V74,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V75 cse4 [V75,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V76 cse5 [V76,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V71 cse0 [V71,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V72 cse1 [V72,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V73 cse2 [V73,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V74 cse3 [V74,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V75 cse4 [V75,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V76 cse5 [V76,T02] ( 3, 3 ) long -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -136,21 +136,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -161,7 +164,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+12 (+6.25%) : 16247.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref
-;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref single-def
+;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref single-def
@@ -28,61 +28,61 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref
-;* V20 tmp15 [V20,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V20 tmp15 [V20,T21] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp18 [V23,T09] ( 2, 2 ) int -> x1 single-def
+; V23 tmp18 [V23,T10] ( 2, 2 ) int -> x2 single-def
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp21 [V26,T10] ( 2, 2 ) int -> x1 single-def
+; V26 tmp21 [V26,T11] ( 2, 2 ) int -> x2 single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp24 [V29,T11] ( 2, 2 ) int -> x1 single-def
+; V29 tmp24 [V29,T12] ( 2, 2 ) int -> x2 single-def
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp27 [V32,T12] ( 2, 2 ) int -> x0 single-def
+;* V32 tmp27 [V32,T13] ( 0, 0 ) int -> zero-ref single-def
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp30 [V35,T13] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp30 [V35,T14] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref
-;* V38 tmp33 [V38,T14] ( 0, 0 ) int -> zero-ref single-def
+;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp36 [V41,T23] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp36 [V41,T22] ( 0, 0 ) int -> zero-ref single-def
;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp39 [V44,T15] ( 0, 0 ) int -> zero-ref single-def
+; V44 tmp39 [V44,T15] ( 2, 2 ) int -> x2 single-def
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp42 [V47,T16] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp42 [V47,T16] ( 2, 2 ) int -> x1 single-def
;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp45 [V50,T17] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp45 [V50,T17] ( 2, 2 ) int -> x1 single-def
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp48 [V53,T24] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp48 [V53,T18] ( 2, 2 ) int -> x1 single-def
;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp51 [V56,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V56 tmp51 [V56,T19] ( 0, 0 ) int -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp54 [V59,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp54 [V59,T20] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp57 [V62,T20] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp57 [V62,T23] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp60 [V65,T25] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref
-; V68 cse0 [V68,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V69 cse1 [V69,T21] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V70 cse2 [V70,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V71 cse3 [V71,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V72 cse4 [V72,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V73 cse5 [V73,T04] ( 3, 3 ) long -> x1 "CSE - aggressive"
-; V74 cse6 [V74,T08] ( 2, 2 ) long -> x0 "CSE - aggressive"
+; V68 cse0 [V68,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V69 cse1 [V69,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V70 cse2 [V70,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V71 cse3 [V71,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V72 cse4 [V72,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V73 cse5 [V73,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V74 cse6 [V74,T09] ( 2, 2 ) long -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -134,21 +134,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -159,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 248766.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
@@ -33,8 +33,11 @@ G_M15390_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
+G_M15390_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ brk_unix #0
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 15, allocated bytes for code 60 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +48,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.crossgen2.linux.arm64.checked.mch
-32 (-12.70%) : 220578.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w11, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w11, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -97,23 +97,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
ldr x1, [x1]
blr x1
; gcrRegs -[x0 x21]
- ;; size=68 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w11, w19, #0xD1FFAB1E
- cmp w11, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w11, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w11, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_unix #0
+ ;; size=72 bbWeight=0 PerfScore 0.00
-; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -124,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 55 (0x00037) Actual length = 220 (0x0000dc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-11.48%) : 77015.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
; V01 arg1 [V01,T01] ( 4, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
; V02 loc0 [V02,T03] ( 4, 2 ) ref -> x0 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V03 loc1 [V03,T05] ( 3, 1.50) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,22 +41,10 @@ G_M26195_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
mov x21, x0
; gcrRegs +[x21]
- cbnz x21, G_M26195_IG04
+ cbz x21, G_M26195_IG05
;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0 x21]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x11]
- blr x1
- ; gcr arg pop 0
- cbnz x0, G_M26195_IG06
- b G_M26195_IG06
- ;; size=28 bbWeight=0.50 PerfScore 3.75
-G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x21]
+G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x21, #0x18]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -64,11 +52,11 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
ldr x11, [x0, #0x18]
; gcrRegs +[x11]
ldr x11, [x11, #0x20]
- cbnz x11, G_M26195_IG06
+ cbnz x11, G_M26195_IG05
ldr x22, [x0, #0x20]
; gcrRegs +[x22]
mov x0, x22
@@ -79,7 +67,7 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
mov x0, x22
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -96,14 +84,14 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr wzr, [x0]
ldr x2, [x11]
;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
br x2
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x21] +[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -113,7 +101,7 @@ G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
@@ -121,7 +109,7 @@ G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
; ============================================================
Unwind Info:
@@ -132,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-9.86%) : 49089.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 2.50) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-; V01 arg1 [V01,T00] ( 9, 6 ) int -> x19 single-def
+; V01 arg1 [V01,T00] ( 7, 6 ) int -> x19 single-def
; V02 arg2 [V02,T01] ( 7, 4.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V03 arg3 [V03,T02] ( 4, 3 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -41,27 +41,16 @@ G_M9442_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
; gcrRegs +[x21]
;; size=52 bbWeight=1 PerfScore 10.00
G_M9442_IG02: ; bbWeight=1, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x0]
- mov w11, #0xD1FFAB1E
- cmp w19, w11
- bgt G_M9442_IG04
- ;; size=12 bbWeight=1 PerfScore 2.00
-G_M9442_IG03: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- mov w0, #0xD1FFAB1E
- mov w11, #0xD1FFAB1E
- cmp w19, w0
- ccmp w19, w11, z, ne
- beq G_M9442_IG06
- b G_M9442_IG06
- ;; size=24 bbWeight=0.50 PerfScore 2.00
-G_M9442_IG04: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w11, #0xD1FFAB1E
mov w1, #0xD1FFAB1E
+ mov w2, #0xD1FFAB1E
cmp w19, w11
ccmp w19, w1, z, ne
- bne G_M9442_IG06
+ ccmp w19, w2, nzc, eq
+ ble G_M9442_IG05
+ ;; size=28 bbWeight=1 PerfScore 4.00
+G_M9442_IG03: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
ldr x0, [x0, #0x08]
ldr x0, [x0, #0x08]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -85,14 +74,14 @@ G_M9442_IG04: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0
ldr x2, [x11]
blr x2
; gcrRegs -[x0 x20-x21]
- ;; size=108 bbWeight=0.50 PerfScore 16.25
-G_M9442_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=88 bbWeight=0.50 PerfScore 14.75
+G_M9442_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x98]
ldp x19, x20, [sp, #0x88]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M9442_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M9442_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20-x21]
mov w1, #23
orr w1, w19, w1
@@ -111,14 +100,14 @@ G_M9442_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000
blr x2
; gcrRegs -[x0 x20-x21]
;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M9442_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M9442_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x98]
ldp x19, x20, [sp, #0x88]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 284, prolog size 40, PerfScore 42.75, instruction count 71, allocated bytes for code 284 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
+; Total bytes of code 256, prolog size 40, PerfScore 41.25, instruction count 64, allocated bytes for code 256 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
+ Function Length : 64 (0x00040) Actual length = 256 (0x000100)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 166267.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -47,7 +47,7 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M11729_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w0
adr x11, [@RWD00]
ldr w11, [x11, x0, LSL #2]
@@ -78,7 +78,7 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w23
adr x11, [@RWD44]
ldr w11, [x11, x0, LSL #2]
@@ -86,22 +86,10 @@ G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x11, x11, x1
br x11
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M11729_IG07: ; 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_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M11729_IG12
+ beq G_M11729_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -111,7 +99,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M11729_IG12
+ cbz w0, G_M11729_IG10
mov w2, w20
mov x0, x21
; gcrRegs +[x0]
@@ -122,12 +110,12 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M11729_IG06
+ cbz w20, G_M11729_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M11729_IG10
+ cbnz w0, G_M11729_IG08
ldr x23, [x19, #0x38]
; gcrRegs +[x23]
- cbz x23, G_M11729_IG09
+ cbz x23, G_M11729_IG07
mov x0, x23
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -135,7 +123,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M11729_IG09
+ cbz x0, G_M11729_IG07
mov x0, x23
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -144,9 +132,9 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0 x23]
; gcr arg pop 0
- b G_M11729_IG10
+ b G_M11729_IG08
;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -164,7 +152,7 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x3, [x19, #0x40]
; gcrRegs +[x3]
@@ -172,7 +160,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w3, [x3, #0x08]
; gcrRegs -[x3]
cmp w0, w3
- beq G_M11729_IG06
+ beq G_M11729_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov w3, w20
@@ -214,7 +202,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr wzr, [x0]
ldr x1, [x11]
;; size=140 bbWeight=0.50 PerfScore 32.00
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -222,7 +210,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -235,7 +223,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr wzr, [x0]
ldr x4, [x11]
;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -243,12 +231,12 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #9
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov w3, w20
@@ -263,7 +251,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M11729_IG16
+ cbnz w23, G_M11729_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -275,9 +263,19 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 10.50
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M11729_IG15: ; 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_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -343,20 +341,20 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
; Total bytes of code 808, prolog size 36, PerfScore 123.00, instruction count 202, allocated bytes for code 808 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+0 (0.00%) : 173264.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (FullOpts)
@@ -16,8 +16,8 @@
; V04 arg4 [V04,T04] ( 3, 2.50) int -> x22 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String[]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x19 class-hnd single-def "finalizable newobj spill" <System.String>
+; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x21 class-hnd single-def "finalizable newobj spill" <System.String>
; V09 tmp3 [V09,T06] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;
; Lcl frame size = 8
@@ -36,9 +36,47 @@ G_M21875_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=36 bbWeight=1 PerfScore 6.50
G_M21875_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M21875_IG05
+ cbnz w2, G_M21875_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov x1, x20
+ ; gcrRegs +[x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x1 x19-x20]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ ; gcrRegs -[x0]
+ blr x0
+ ; gcrRegs +[x0]
+ mov x19, x0
+ ; gcrRegs +[x19]
+ mov x1, x21
+ ; gcrRegs +[x1]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0-x1 x21]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
+G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0] +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -64,44 +102,6 @@ G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=64 bbWeight=0.50 PerfScore 7.00
-G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- mov x1, x20
- ; gcrRegs +[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x1 x19-x20]
- mov x19, x0
- ; gcrRegs +[x19]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M21875_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
+0 (0.00%) : 174252.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String,int,int,int):System.Exception (FullOpts)
@@ -15,8 +15,8 @@
; V03 arg3 [V03,T03] ( 3, 2.50) int -> x21 single-def
; V04 arg4 [V04,T04] ( 3, 2.50) int -> x22 single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T05] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V07 tmp2 [V07,T08] ( 2, 2 ) ref -> x19 class-hnd single-def "finalizable newobj spill" <System.String>
+; V06 tmp1 [V06,T05] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp2 [V07,T08] ( 2, 2 ) ref -> x20 class-hnd single-def "finalizable newobj spill" <System.String>
; V08 tmp3 [V08,T06] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V09 tmp4 [V09,T07] ( 3, 3 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
;
@@ -36,9 +36,47 @@ G_M23253_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=36 bbWeight=1 PerfScore 6.50
G_M23253_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M23253_IG05
+ cbnz w2, G_M23253_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov x1, x20
+ ; gcrRegs +[x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x1 x19-x20]
+ mov x20, x0
+ ; gcrRegs +[x20]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ ; gcrRegs -[x0]
+ blr x0
+ ; gcrRegs +[x0]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ mov x1, x20
+ ; gcrRegs +[x1]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0-x1 x20]
+ mov x0, x21
+ ; gcrRegs +[x0]
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
+G_M23253_IG04: ; 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_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x21] +[x19-x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -83,44 +121,6 @@ G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=112 bbWeight=0.50 PerfScore 13.00
-G_M23253_IG04: ; 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_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- mov x1, x20
- ; gcrRegs +[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x1 x19-x20]
- mov x19, x0
- ; gcrRegs +[x19]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M23253_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
libraries.pmi.linux.arm64.checked.mch
-32 (-13.33%) : 257941.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w0, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w0, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -93,23 +93,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
; gcrRegs -[x0 x21]
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w0, w19, #0xD1FFAB1E
- cmp w0, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w0, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w0, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_unix #0
+ ;; size=64 bbWeight=0 PerfScore 0.00
-; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -120,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ 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)
-12 (-12.00%) : 3108.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRangeint:int (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T06] ( 3, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T04] ( 4, 6.33) int -> x1 ld-addr-op single-def
-; V02 arg2 [V02,T05] ( 4, 6.33) int -> x2 ld-addr-op single-def
+; V02 arg2 [V02,T05] ( 3, 6 ) int -> x2 ld-addr-op single-def
; V03 arg3 [V03,T08] ( 3, 3 ) int -> x3 single-def
; V04 loc0 [V04,T00] ( 7, 19.67) int -> x3
; V05 loc1 [V05,T07] ( 2, 8 ) byref -> x4
@@ -18,7 +18,7 @@
;* V07 tmp1 [V07,T09] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V08 tmp2 [V08,T01] ( 3, 16.66) int -> x5 "Inlining Arg"
;* V09 tmp3 [V09,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V10 tmp4 [V10,T02] ( 3, 16.66) int -> x4 "Inlining Arg"
+; V10 tmp4 [V10,T02] ( 2, 16 ) int -> x4 "Inlining Arg"
; V11 cse0 [V11,T03] ( 3, 12 ) int -> x4 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -48,7 +48,7 @@ G_M34838_IG04: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
;; size=8 bbWeight=0.33 PerfScore 0.49
G_M34838_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
cmp w2, w4
- bge G_M34838_IG11
+ bge G_M34838_IG08
;; size=8 bbWeight=4 PerfScore 6.00
G_M34838_IG06: ; bbWeight=1.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x0]
@@ -71,16 +71,8 @@ G_M34838_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M34838_IG11: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- cmp w2, w4
- ble G_M34838_IG08
- ;; size=8 bbWeight=0.33 PerfScore 0.49
-G_M34838_IG12: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
- b G_M34838_IG08
- ;; size=4 bbWeight=0.04 PerfScore 0.04
-; Total bytes of code 100, prolog size 8, PerfScore 47.46, instruction count 25, allocated bytes for code 100 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 46.92, instruction count 22, allocated bytes for code 88 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -91,7 +83,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 22 (0x00016) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-11.54%) : 295540.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
@@ -18,9 +18,9 @@
; V07 tmp5 [V07,T05] ( 4, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
-; V10 tmp8 [V10,T00] ( 3, 2.41) ref -> x0 single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
+; V10 tmp8 [V10,T00] ( 2, 2 ) ref -> x0 single-def "field V00._buffer (fldOffset=0x0)" P-INDEP
; V11 tmp9 [V11,T02] ( 5, 2.07) ref -> x4 single-def "field V00._remoteEndPoint (fldOffset=0x8)" P-INDEP
-; V12 tmp10 [V12,T01] ( 3, 2.41) ref -> x2 single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
+; V12 tmp10 [V12,T01] ( 2, 2 ) ref -> x2 single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
; V13 tmp11 [V13,T03] ( 4, 1.99) ref -> x3 single-def "field V01._remoteEndPoint (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 0
@@ -34,37 +34,25 @@ G_M22145_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M22145_IG02: ; bbWeight=1, gcrefRegs=001D {x0 x2 x3 x4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0 x2-x3]
cmp x0, x2
- beq G_M22145_IG06
+ bne G_M22145_IG10
;; size=8 bbWeight=1 PerfScore 1.50
-G_M22145_IG03: ; bbWeight=0.41, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3-x4]
- cbz x0, G_M22145_IG13
- ;; size=4 bbWeight=0.41 PerfScore 0.41
-G_M22145_IG04: ; bbWeight=0.41, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- cbnz x2, G_M22145_IG13
- ;; size=4 bbWeight=0.41 PerfScore 0.41
-G_M22145_IG05: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x2]
- b G_M22145_IG13
- ;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M22145_IG06: ; bbWeight=0.50, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x3-x4]
+G_M22145_IG03: ; bbWeight=0.50, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0 x2]
cmp x4, x3
- beq G_M22145_IG12
+ beq G_M22145_IG09
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M22145_IG07: ; bbWeight=0.41, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
- cbz x4, G_M22145_IG09
+G_M22145_IG04: ; bbWeight=0.41, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+ cbz x4, G_M22145_IG06
;; size=4 bbWeight=0.41 PerfScore 0.41
-G_M22145_IG08: ; bbWeight=0.41, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
- cbnz x3, G_M22145_IG10
+G_M22145_IG05: ; bbWeight=0.41, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref, isz
+ cbnz x3, G_M22145_IG07
;; size=4 bbWeight=0.41 PerfScore 0.41
-G_M22145_IG09: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22145_IG06: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x3-x4]
mov w0, wzr
- b G_M22145_IG11
+ b G_M22145_IG08
;; size=8 bbWeight=0.32 PerfScore 0.49
-G_M22145_IG10: ; bbWeight=0.08, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref
+G_M22145_IG07: ; bbWeight=0.08, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}, byref
; gcrRegs +[x3-x4]
mov x0, x4
; gcrRegs +[x0]
@@ -76,22 +64,22 @@ G_M22145_IG10: ; bbWeight=0.08, gcrefRegs=0018 {x3 x4}, byrefRegs=0000 {}
blr x2
; gcrRegs -[x0-x1 x3-x4]
;; size=24 bbWeight=0.08 PerfScore 0.90
-G_M22145_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- b G_M22145_IG14
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M22145_IG12: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
+G_M22145_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
b G_M22145_IG11
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M22145_IG09: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, #1
+ b G_M22145_IG08
;; size=8 bbWeight=0.09 PerfScore 0.14
-G_M22145_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22145_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M22145_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22145_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 104, prolog size 8, PerfScore 10.48, instruction count 26, allocated bytes for code 104 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 9.35, instruction count 23, allocated bytes for code 92 (MethodHash=a75ea97e) for method System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -102,7 +90,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 115864.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertyAccessorSymbol:GetReturnType(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
@@ -67,7 +67,7 @@
; V56 tmp48 [V56,T12] ( 5, 2.50) ref -> x2
; V57 tmp49 [V57,T03] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V58 tmp50 [V58,T08] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;* V59 tmp51 [V59,T47] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V59 tmp51 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V60 tmp52 [V60,T33] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V61 tmp53 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticInfo>
;* V62 tmp54 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
@@ -113,7 +113,7 @@
;* V102 tmp94 [V102,T45] ( 0, 0 ) ref -> zero-ref single-def "V35.[000..008)"
;* V103 tmp95 [V103,T46] ( 0, 0 ) ref -> zero-ref single-def "V35.[008..016)"
;* V104 tmp96 [V104 ] ( 0, 0 ) int -> zero-ref single-def "V35.[016..020)"
-;* V105 tmp97 [V105,T48] ( 0, 0 ) int -> zero-ref single-def "V35.[020..024)"
+;* V105 tmp97 [V105,T47] ( 0, 0 ) int -> zero-ref single-def "V35.[020..024)"
;* V106 tmp98 [V106 ] ( 0, 0 ) ref -> zero-ref single-def "V23.[000..008)"
;* V107 tmp99 [V107 ] ( 0, 0 ) ref -> zero-ref single-def "V23.[008..016)"
;* V108 tmp100 [V108 ] ( 0, 0 ) int -> zero-ref single-def "V23.[016..020)"
@@ -129,8 +129,8 @@
;* V118 tmp110 [V118 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.Text.TextSpan>
; V119 tmp111 [V119,T22] ( 2, 2 ) ref -> x3 single-def "argument with side effect"
; V120 tmp112 [V120,T23] ( 2, 2 ) ref -> x21 single-def "argument with side effect"
-; V121 tmp113 [V121,T50] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-;* V122 cse0 [V122,T49] ( 0, 0 ) long -> zero-ref "CSE - moderate"
+; V121 tmp113 [V121,T49] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+;* V122 cse0 [V122,T48] ( 0, 0 ) long -> zero-ref "CSE - moderate"
; V123 cse1 [V123,T35] ( 3, 1.50) long -> x20 "CSE - moderate"
; V124 cse2 [V124,T30] ( 3, 1.50) ref -> x0 "CSE - moderate"
; V125 cse3 [V125,T31] ( 3, 1.50) ref -> x21 "CSE - moderate"
@@ -507,8 +507,8 @@ G_M60394_IG26: ; bbWeight=0.50, gcrefRegs=3D00000 {x20 x22 x23 x24 x25},
;; size=16 bbWeight=0.50 PerfScore 2.75
G_M60394_IG27: ; bbWeight=0.50, gcrefRegs=3500000 {x20 x22 x24 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23]
- cbz w0, G_M60394_IG10
- b G_M60394_IG12
+ cbnz w0, G_M60394_IG12
+ b G_M60394_IG10
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M60394_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22 x24-x25]
+0 (0.00%) : 158084.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -57,7 +57,7 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M57654_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w0
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -87,7 +87,7 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w23
adr x1, [@RWD44]
ldr w1, [x1, x0, LSL #2]
@@ -95,22 +95,10 @@ G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M57654_IG07: ; 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_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M57654_IG12
+ beq G_M57654_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -119,7 +107,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M57654_IG12
+ cbz w0, G_M57654_IG10
mov x0, x21
; gcrRegs +[x0]
mov w1, w22
@@ -131,12 +119,12 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M57654_IG06
+ cbz w20, G_M57654_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M57654_IG10
+ cbnz w0, G_M57654_IG08
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
- cbz x0, G_M57654_IG09
+ cbz x0, G_M57654_IG07
mov x1, x0
; gcrRegs +[x1]
ldr x1, [x1]
@@ -145,15 +133,15 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M57654_IG09
+ bne G_M57654_IG07
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x08]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M57654_IG10
+ b G_M57654_IG08
;; size=132 bbWeight=0.50 PerfScore 24.50
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -168,7 +156,7 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=28 bbWeight=0.50 PerfScore 2.25
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x1, [x19, #0x40]
; gcrRegs +[x1]
@@ -176,7 +164,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w1, [x1, #0x08]
; gcrRegs -[x1]
cmp w0, w1
- beq G_M57654_IG06
+ beq G_M57654_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov x1, x21
@@ -213,7 +201,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x20]
;; size=124 bbWeight=0.50 PerfScore 34.00
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -221,7 +209,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -233,7 +221,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x4, [x4, #0x90]
ldr x4, [x4, #0x30]
;; size=28 bbWeight=0.50 PerfScore 6.75
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -241,12 +229,12 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #10
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov x1, x21
@@ -260,7 +248,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M57654_IG16
+ cbnz w23, G_M57654_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -273,9 +261,19 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 11.75
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M57654_IG15: ; 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_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -340,20 +338,20 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
; Total bytes of code 760, prolog size 36, PerfScore 125.50, instruction count 190, allocated bytes for code 760 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+8 (+0.28%) : 132951.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
@@ -95,7 +95,7 @@
; V84 tmp67 [V84,T60] ( 5, 2.50) ref -> x2
; V85 tmp68 [V85,T33] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V86 tmp69 [V86,T53] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;* V87 tmp70 [V87,T117] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V87 tmp70 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V88 tmp71 [V88,T92] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V89 tmp72 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticInfo>
;* V90 tmp73 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
@@ -171,7 +171,7 @@
; V160 tmp143 [V160,T66] ( 3, 2 ) int -> x0
;* V161 tmp144 [V161 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V162 tmp145 [V162,T79] ( 2, 2 ) ubyte -> x14 "Inline return value spill temp"
-;* V163 tmp146 [V163,T118] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V163 tmp146 [V163,T117] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
; V164 tmp147 [V164,T102] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V165 tmp148 [V165 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V166 tmp149 [V166 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -199,7 +199,7 @@
;* V188 tmp171 [V188 ] ( 0, 0 ) ref -> zero-ref "field V20.array (fldOffset=0x0)" P-INDEP
;* V189 tmp172 [V189 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.array (fldOffset=0x0)" P-INDEP
;* V190 tmp173 [V190,T114] ( 0, 0 ) ref -> zero-ref single-def "field V25._array (fldOffset=0x0)" P-INDEP
-;* V191 tmp174 [V191,T119] ( 0, 0 ) int -> zero-ref single-def "field V25._index (fldOffset=0x8)" P-INDEP
+;* V191 tmp174 [V191,T118] ( 0, 0 ) int -> zero-ref single-def "field V25._index (fldOffset=0x8)" P-INDEP
;* V192 tmp175 [V192 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._nodeOrParent (fldOffset=0x0)" P-INDEP
;* V193 tmp176 [V193 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._token (fldOffset=0x8)" P-INDEP
;* V194 tmp177 [V194 ] ( 0, 0 ) int -> zero-ref single-def "field V55._position (fldOffset=0x10)" P-INDEP
@@ -243,8 +243,8 @@
; V232 tmp215 [V232,T93] ( 3, 1.50) int -> [fp+0x78] "V53.[020..024)"
;* V233 tmp216 [V233,T115] ( 0, 0 ) ref -> zero-ref single-def "V68.[000..008)"
;* V234 tmp217 [V234,T116] ( 0, 0 ) ref -> zero-ref single-def "V68.[008..016)"
-;* V235 tmp218 [V235,T120] ( 0, 0 ) int -> zero-ref single-def "V68.[016..020)"
-;* V236 tmp219 [V236,T121] ( 0, 0 ) int -> zero-ref single-def "V68.[020..024)"
+;* V235 tmp218 [V235,T119] ( 0, 0 ) int -> zero-ref single-def "V68.[016..020)"
+;* V236 tmp219 [V236,T120] ( 0, 0 ) int -> zero-ref single-def "V68.[020..024)"
;* V237 tmp220 [V237 ] ( 0, 0 ) ref -> zero-ref single-def "V56.[000..008)"
;* V238 tmp221 [V238 ] ( 0, 0 ) ref -> zero-ref single-def "V56.[008..016)"
;* V239 tmp222 [V239 ] ( 0, 0 ) int -> zero-ref single-def "V56.[016..020)"
@@ -261,7 +261,7 @@
; V250 tmp233 [V250,T76] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V251 tmp234 [V251,T57] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V252 tmp235 [V252,T77] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-;* V253 cse0 [V253,T122] ( 0, 0 ) long -> zero-ref "CSE - conservative"
+;* V253 cse0 [V253,T121] ( 0, 0 ) long -> zero-ref "CSE - conservative"
; V254 cse1 [V254,T58] ( 3, 3 ) long -> x25 "CSE - conservative"
; V255 cse2 [V255,T27] ( 3, 6 ) ref -> x1 "CSE - moderate"
; V256 cse3 [V256,T90] ( 3, 1.50) ref -> x6 "CSE - conservative"
@@ -328,7 +328,7 @@ G_M20504_IG03: ; bbWeight=0.50, gcrefRegs=3E80002 {x1 x19 x21 x22 x23 x24
; gcrRegs -[x1]
mov x28, x0
; gcrRegs +[x28]
- b G_M20504_IG31
+ b G_M20504_IG32
;; size=64 bbWeight=0.50 PerfScore 9.25
G_M20504_IG04: ; bbWeight=0.50, gcrefRegs=7F80000 {x19 x20 x21 x22 x23 x24 x25 x26}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0 x28] +[x20 x26]
@@ -568,10 +568,10 @@ G_M20504_IG18: ; bbWeight=0.50, gcrefRegs=17E80000 {x19 x21 x22 x23 x24 x
; gcrRegs -[x0]
ldr x0, [x28, #0x38]
; gcrRegs +[x0]
- cbz x0, G_M20504_IG44
+ cbz x0, G_M20504_IG45
ldr x14, [x0, #0x08]
; gcrRegs +[x14]
- cbnz x14, G_M20504_IG43
+ cbnz x14, G_M20504_IG44
add x14, x0, #8
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -580,7 +580,7 @@ G_M20504_IG18: ; bbWeight=0.50, gcrefRegs=17E80000 {x19 x21 x22 x23 x24 x
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15 x28]
; byrRegs -[x14]
- b G_M20504_IG44
+ b G_M20504_IG45
;; size=60 bbWeight=0.50 PerfScore 10.00
G_M20504_IG19: ; bbWeight=1.00, gcVars=00000000000000000000004000080004 {V14 V28 V29}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20 x28]
@@ -602,19 +602,16 @@ G_M20504_IG22: ; bbWeight=0.50, gcVars=00000002010000000000004004000000 {
; gcrRegs -[x26]
; byrRegs -[x0 x4]
; GC ptr vars -{V05 V28 V29 V30 V34 V36} +{V58 V88 V97 V214 V215}
- ldr x5, [fp, #0x30] // [V58 tmp41]
- ; gcrRegs +[x5]
- ldr x0, [x5, #0x10]
- ; gcrRegs +[x0]
- cbz x0, G_M20504_IG29
- mov x2, x5
+ cbnz w0, G_M20504_IG30
+ ldr x2, [fp, #0x30] // [V58 tmp41]
; gcrRegs +[x2]
ldp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
; gcrRegs +[x3 x26]
+ stp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
b G_M20504_IG24
- ;; size=24 bbWeight=0.50 PerfScore 5.25
+ ;; size=20 bbWeight=0.50 PerfScore 4.00
G_M20504_IG23: ; bbWeight=0.00, gcVars=00000000000000000000004000080024 {V14 V28 V29 V34}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x2-x3 x5]
+ ; gcrRegs -[x2-x3]
; GC ptr vars -{V58 V88 V97 V214 V215} +{V02 V05 V28 V29 V34}
sxtw x1, w7
movz x0, #0xD1FFAB1E
@@ -634,22 +631,51 @@ G_M20504_IG23: ; bbWeight=0.00, gcVars=00000000000000000000004000080024 {
; gcrRegs +[x4]
b G_M20504_IG16
;; size=40 bbWeight=0.00 PerfScore 0.01
-G_M20504_IG24: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x4] +[x0 x2-x3]
- ; GC ptr vars -{V28 V29} +{V58}
- cbz x26, G_M20504_IG28
+G_M20504_IG24: ; bbWeight=0.50, gcVars=00000002010000000000004004000000 {V14 V58 V214 V215}, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x4 x26]
+ ; GC ptr vars -{V28 V29} +{V58 V88 V97 V214 V215}
+ ldr x5, [fp, #0x30] // [V58 tmp41]
+ ; gcrRegs +[x5]
+ ldr x0, [x5, #0x10]
+ ; gcrRegs +[x0]
+ cbz x0, G_M20504_IG30
+ mov x2, x5
+ ; gcrRegs +[x2]
+ ldp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
+ ; gcrRegs +[x3 x26]
b G_M20504_IG26
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=24 bbWeight=0.50 PerfScore 5.25
G_M20504_IG25: ; bbWeight=0.36, gcVars=00000000000000000000004000080004 {V14 V28 V29}, gcrefRegs=17F80010 {x4 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x2-x3] +[x4]
- ; GC ptr vars -{V58} +{V02 V28 V29}
+ ; gcrRegs -[x0 x2-x3 x5] +[x4]
+ ; GC ptr vars -{V58 V88 V97 V214 V215} +{V02 V28 V29}
sxtw w7, w5
ldr w5, [fp, #0xC4] // [V30 tmp13]
b G_M20504_IG08
;; size=12 bbWeight=0.36 PerfScore 1.26
-G_M20504_IG26: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
+G_M20504_IG26: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x4] +[x0 x2-x3]
; GC ptr vars -{V02 V28 V29} +{V58}
+ cbz x26, G_M20504_IG29
+ b G_M20504_IG28
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M20504_IG27: ; bbWeight=0.00, gcVars=00000000000000000000004040080024 {V14 V28 V29 V34 V36}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0011 {x0 x4}, gcvars, byref
+ ; gcrRegs -[x0 x2-x3]
+ ; byrRegs +[x0 x4]
+ ; GC ptr vars -{V58} +{V02 V05 V28 V29 V30 V34 V36}
+ mov x1, x4
+ ; byrRegs +[x1]
+ movz x4, #0xD1FFAB1E // code for <unknown method>
+ ; byrRegs -[x4]
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ; byrRegs -[x0-x1]
+ b G_M20504_IG14
+ ;; size=28 bbWeight=0.00 PerfScore 0.00
+G_M20504_IG28: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x0 x2-x3]
+ ; GC ptr vars -{V02 V05 V28 V29 V30 V34 V36} +{V58}
str x3, [fp, #0x18] // [V215 tmp198]
; GC ptr vars +{V215}
mov x1, x26
@@ -664,26 +690,9 @@ G_M20504_IG26: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {
; gcrRegs +[x2]
ldr x3, [fp, #0x18] // [V215 tmp198]
; gcrRegs +[x3]
- b G_M20504_IG28
- ;; size=40 bbWeight=0.50 PerfScore 6.00
-G_M20504_IG27: ; bbWeight=0.00, gcVars=00000000000000000000004040080024 {V14 V28 V29 V34 V36}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0011 {x0 x4}, gcvars, byref
- ; gcrRegs -[x2-x3] +[x26]
- ; byrRegs +[x0 x4]
- ; GC ptr vars -{V58 V215} +{V02 V05 V28 V29 V30 V34 V36}
- mov x1, x4
- ; byrRegs +[x1]
- movz x4, #0xD1FFAB1E // code for <unknown method>
- ; byrRegs -[x4]
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; byrRegs -[x0-x1]
- b G_M20504_IG14
- ;; size=28 bbWeight=0.00 PerfScore 0.00
-G_M20504_IG28: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=13F8000C {x2 x3 x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x26] +[x2-x3]
- ; GC ptr vars -{V02 V05 V28 V29 V30 V34 V36} +{V58}
+ ;; size=36 bbWeight=0.50 PerfScore 5.50
+G_M20504_IG29: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=13F8000C {x2 x3 x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars -{V215}
mov x0, x2
; gcrRegs +[x0]
mov x1, x3
@@ -697,7 +706,7 @@ G_M20504_IG28: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {
blr x2
; gcrRegs -[x0-x1 x3]
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M20504_IG29: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
+G_M20504_IG30: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -720,7 +729,7 @@ G_M20504_IG29: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x
mov x28, x0
; gcrRegs +[x28]
;; size=64 bbWeight=0.50 PerfScore 9.50
-G_M20504_IG30: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
+G_M20504_IG31: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x20
; gcrRegs +[x0]
@@ -732,7 +741,7 @@ G_M20504_IG30: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x
blr x1
; gcrRegs -[x0 x20]
;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M20504_IG31: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG32: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x10]
; gcrRegs +[x20]
movz x0, #0xD1FFAB1E
@@ -882,13 +891,13 @@ G_M20504_IG31: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25
; gcrRegs -[x15 x24]
; byrRegs -[x14]
tst w0, #255
- beq G_M20504_IG33
+ beq G_M20504_IG34
;; size=388 bbWeight=1 PerfScore 92.50
-G_M20504_IG32: ; bbWeight=0.50, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref
+G_M20504_IG33: ; bbWeight=0.50, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref
mov w14, #1
strb w14, [x20, #0x11]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M20504_IG33: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG34: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
add x14, x20, #24
; byrRegs +[x14]
mov x15, x27
@@ -938,7 +947,7 @@ G_M20504_IG33: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27},
; gcrRegs -[x0]
cbnz w0, G_M20504_IG63
;; size=128 bbWeight=1 PerfScore 30.00
-G_M20504_IG34: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG35: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x26, #0x10]
sub w0, w0, #59
cmp w0, #1
@@ -949,19 +958,19 @@ G_M20504_IG34: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26},
ldr x24, [x23, #0x18]
; gcrRegs +[x24]
;; size=28 bbWeight=0.50 PerfScore 4.50
...
libraries_tests.run.linux.arm64.Release.mch
-20 (-20.83%) : 93021.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.11) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,15 +25,17 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs +[x0-x1]
ldr x14, [x0, #0x18]
; gcrRegs +[x14]
- cbnz x14, G_M46606_IG06
+ cbnz x14, G_M46606_IG05
add x14, x1, #52
; gcrRegs -[x14]
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M46606_IG03
- tbnz w2, #22, G_M46606_IG03
- tbz w2, #24, G_M46606_IG05
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG03
+ tbnz w14, #22, G_M46606_IG03
+ tbz w14, #24, G_M46606_IG03
add x14, x0, #24
+ ; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
@@ -50,24 +52,16 @@ G_M46606_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M46606_IG03
- tbnz w2, #17, G_M46606_IG03
- tbnz w2, #16, G_M46606_IG03
- tbz w2, #25, G_M46606_IG03
- b G_M46606_IG03
- ;; size=20 bbWeight=0.03 PerfScore 0.14
-G_M46606_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1] +[x0]
+G_M46606_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x1]
ldr x0, [x0, #0x18]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 8, PerfScore 17.64, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -78,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 177617.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4 ) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -29,11 +29,13 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
add x14, x1, #52
; gcrRegs -[x14]
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M46606_IG03
- tbnz w2, #22, G_M46606_IG03
- tbz w2, #24, G_M46606_IG07
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG03
+ tbnz w14, #22, G_M46606_IG03
+ tbz w14, #24, G_M46606_IG03
add x14, x0, #24
+ ; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
@@ -58,16 +60,8 @@ G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-G_M46606_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x1]
- tbnz w2, #23, G_M46606_IG03
- tbnz w2, #17, G_M46606_IG03
- tbnz w2, #16, G_M46606_IG03
- tbz w2, #25, G_M46606_IG03
- b G_M46606_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 8, PerfScore 17.50, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -78,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 58171.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 6, 4.71) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 3.71) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T03] ( 8, 2.39) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 4, 2.28) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T04] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V05 cse0 [V05,T02] ( 3, 2.43) ref -> x14 "CSE - aggressive"
;
@@ -41,11 +41,13 @@ G_M21386_IG05: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=000
; gcrRegs -[x14] +[x1]
add x14, x1, #52
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M21386_IG06
- tbnz w2, #22, G_M21386_IG06
- tbz w2, #24, G_M21386_IG08
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M21386_IG06
+ tbnz w14, #22, G_M21386_IG06
+ tbz w14, #24, G_M21386_IG06
add x14, x0, #24
+ ; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
@@ -62,16 +64,8 @@ G_M21386_IG07: ; bbWeight=0.57, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.57 PerfScore 1.14
-G_M21386_IG08: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M21386_IG06
- tbnz w2, #17, G_M21386_IG06
- tbnz w2, #16, G_M21386_IG06
- tbz w2, #25, G_M21386_IG06
- b G_M21386_IG06
- ;; size=20 bbWeight=0.03 PerfScore 0.13
-; Total bytes of code 96, prolog size 8, PerfScore 13.56, instruction count 24, allocated bytes for code 96 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 13.42, instruction count 19, allocated bytes for code 76 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+40 (+3.83%) : 679497.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArraySystem.Collections.Generic.KeyValuePair2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]:System.Collections.Immutable.ImmutableArray1[System.ValueTuple2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
@@ -11,12 +11,12 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V01 arg1 [V01,T24] ( 7, 3.03) ref -> x19 class-hnd single-def <System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V01 arg1 [V01,T21] ( 7, 11.06) ref -> x19 class-hnd single-def <System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
; V02 loc0 [V02,T20] ( 3, 100.06) ref -> x20 class-hnd exact <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V03 loc1 [V03,T19] ( 12, 106.04) ref -> [fp+0x188] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V03 loc1 [V03,T19] ( 14, 115.12) ref -> [fp+0x188] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
; V04 loc2 [V04 ] ( 10, 383.80) struct (24) [fp+0x170] do-not-enreg[XS] addr-exposed tier0-frame <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T30] ( 4, 0 ) struct (24) [fp+0x40] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
+; V06 tmp1 [V06,T27] ( 4, 0 ) struct (24) [fp+0x40] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
@@ -26,7 +26,7 @@
; V13 tmp8 [V13,T10] ( 5, 200.00) int -> x0 "guarded devirt return temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2+Enumerator[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2+Enumerator[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-;* V16 tmp11 [V16,T26] ( 0, 0 ) int -> zero-ref single-def "OSR entry state var"
+;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V17 tmp12 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
@@ -52,47 +52,45 @@
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V40 tmp35 [V40,T11] ( 2, 3.84) byref -> x14 "Inlining Arg"
; V41 tmp36 [V41,T12] ( 6, 191.90) struct (24) [fp+0x28] do-not-enreg[S] must-init "Inline return value spill temp" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-; V42 tmp37 [V42,T05] ( 4, 383.80) byref -> x23 "Inlining Arg"
+; V42 tmp37 [V42,T05] ( 4, 383.80) byref -> x21 "Inlining Arg"
;* V43 tmp38 [V43 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
;* V45 tmp40 [V45 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V47 tmp42 [V47 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V48 tmp43 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot>
-; V49 tmp44 [V49,T00] ( 16,1151.40) ref -> x27 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V50 tmp45 [V50,T08] ( 10, 287.85) int -> x28 "Inline stloc first use temp"
+; V49 tmp44 [V49,T00] ( 16,1151.40) ref -> x25 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V50 tmp45 [V50,T08] ( 10, 287.85) int -> x26 "Inline stloc first use temp"
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V52 tmp47 [V52,T28] ( 6, 0 ) int -> x1 "Inline return value spill temp"
-; V53 tmp48 [V53,T29] ( 6, 0 ) int -> x1 "Inlining Arg"
+; V52 tmp47 [V52,T25] ( 6, 0 ) int -> x1 "Inline return value spill temp"
+; V53 tmp48 [V53,T26] ( 6, 0 ) int -> x1 "Inlining Arg"
; V54 tmp49 [V54,T04] ( 4, 400.00) byref -> registers "Inlining Arg"
-;* V55 tmp50 [V55,T21] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V55 tmp50 [V55,T22] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp51 [V56 ] ( 0, 0 ) ref -> zero-ref "field V48.VariableState (fldOffset=0x0)" P-INDEP
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "field V48.SharedStateIndex (fldOffset=0x8)" P-INDEP
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "V32.[000..004)"
-; V59 tmp54 [V59,T17] ( 4, 191.90) int -> x24 "V45.[000..004)"
-; V60 tmp55 [V60,T16] ( 4, 191.90) ref -> x25 "V45.[008..016)"
-; V61 tmp56 [V61,T18] ( 4, 191.90) int -> x26 "V45.[016..020)"
+; V59 tmp54 [V59,T17] ( 4, 191.90) int -> x22 "V45.[000..004)"
+; V60 tmp55 [V60,T16] ( 4, 191.90) ref -> x23 "V45.[008..016)"
+; V61 tmp56 [V61,T18] ( 4, 191.90) int -> x24 "V45.[016..020)"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "V47.[000..004)"
;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref "V47.[008..016)"
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "V47.[016..020)"
-; V65 tmp60 [V65,T14] ( 5, 191.90) int -> x24 "V06.[000..004)"
-; V66 tmp61 [V66,T13] ( 5, 191.90) ref -> x25 "V06.[008..016)"
-; V67 tmp62 [V67,T15] ( 5, 191.90) int -> x26 "V06.[016..020)"
-; V68 tmp63 [V68,T01] ( 8, 767.60) byref -> x3 "Spilling address for field-by-field copy"
+; V65 tmp60 [V65,T14] ( 5, 191.90) int -> x22 "V06.[000..004)"
+; V66 tmp61 [V66,T13] ( 5, 191.90) ref -> x23 "V06.[008..016)"
+; V67 tmp62 [V67,T15] ( 5, 191.90) int -> x24 "V06.[016..020)"
+; V68 tmp63 [V68,T01] ( 8, 767.60) byref -> x1 "Spilling address for field-by-field copy"
;* V69 tmp64 [V69 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V70 tmp65 [V70 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V71 tmp66 [V71 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V73 tmp68 [V73 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-; V74 tmp69 [V74,T02] ( 6, 575.70) ref -> x1 "arr expr"
-; V75 tmp70 [V75,T03] ( 6, 575.70) int -> x2 "index expr"
-; V76 PSPSym [V76,T27] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; V74 tmp69 [V74,T02] ( 6, 575.70) ref -> x27 "arr expr"
+; V75 tmp70 [V75,T03] ( 6, 575.70) int -> x28 "index expr"
+; V76 PSPSym [V76,T24] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
; V77 cse0 [V77,T09] ( 3, 284.97) ref -> x14 "CSE - aggressive"
-; V78 cse1 [V78,T25] ( 3, 2.88) ref -> x14 "CSE - moderate"
-; V79 cse2 [V79,T07] ( 7, 296.91) byref -> x23 multi-def "CSE - aggressive"
+; V78 cse1 [V78,T23] ( 3, 2.88) ref -> x14 "CSE - moderate"
+; V79 cse2 [V79,T07] ( 7, 296.91) byref -> x21 multi-def "CSE - aggressive"
; V80 cse3 [V80,T06] ( 6, 201.92) byref -> registers multi-def "CSE - aggressive"
-; V81 cse4 [V81,T22] ( 8, 7.13) long -> x21 multi-def "CSE - moderate"
-; V82 cse5 [V82,T23] ( 8, 7.13) long -> x22 multi-def "CSE - moderate"
;
; Lcl frame size = 80
@@ -118,98 +116,94 @@ G_M55780_IG02: ; bbWeight=4.05, gcVars=0000000000080000 {V03}, gcrefRegs=
; GC ptr vars +{V03}
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x0]
- cbz x0, G_M55780_IG17
- ;; size=8 bbWeight=4.05 PerfScore 12.15
-G_M55780_IG03: ; bbWeight=0.03, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- cbz x19, G_M55780_IG17
+ cbz x0, G_M55780_IG16
+ cbz x19, G_M55780_IG16
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
- ; gcrRegs +[x0]
- ldr x21, [x0]
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- cmp x21, x22
- bne G_M55780_IG17
- ldr x0, [x19, #0x18]
+ ldr x0, [x0]
; gcrRegs -[x0]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ cmp x0, x1
+ bne G_M55780_IG16
+ ldr x0, [x19, #0x18]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager+Builder+<>c:<ToManagerAndFree>b__5_0(System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]):System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
- bne G_M55780_IG17
- b G_M55780_IG09
- ;; size=60 bbWeight=0.03 PerfScore 0.53
-G_M55780_IG04: ; bbWeight=94.99, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
+ bne G_M55780_IG16
+ b G_M55780_IG08
+ ;; size=68 bbWeight=4.05 PerfScore 76.95
+G_M55780_IG03: ; bbWeight=94.99, gcrefRegs=100000 {x20}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x19]
- ; byrRegs +[x23]
- ldr x14, [x23, #0x10]
+ ; byrRegs +[x21]
+ ldr x14, [x21, #0x10]
; gcrRegs +[x14]
- cbz x14, G_M55780_IG26
+ cbz x14, G_M55780_IG25
;; size=8 bbWeight=94.99 PerfScore 379.96
-G_M55780_IG05: ; bbWeight=94.99, nogc, extend
+G_M55780_IG04: ; bbWeight=94.99, nogc, extend
ldp x12, x15, [x14, #0x20]
stp x12, x15, [fp, #0x28]
ldr x12, [x14, #0x30]
str x12, [fp, #0x38]
;; size=16 bbWeight=94.99 PerfScore 854.92
-G_M55780_IG06: ; bbWeight=94.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, nogc
+G_M55780_IG05: ; bbWeight=94.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, nogc
; gcrRegs -[x14]
- ; byrRegs -[x23]
+ ; byrRegs -[x21]
ldp x12, x14, [fp, #0x28]
stp x12, x14, [fp, #0xD1FFAB1E]
ldr x12, [fp, #0x38]
str x12, [fp, #0xD1FFAB1E]
;; size=16 bbWeight=94.99 PerfScore 664.93
-G_M55780_IG07: ; bbWeight=94.99, isz, extend
- ldr w24, [fp, #0xD1FFAB1E] // [V04 loc2]
- ldr x25, [fp, #0xD1FFAB1E] // [V04 loc2+0x08]
+G_M55780_IG06: ; bbWeight=94.99, isz, extend
+ ldr w22, [fp, #0xD1FFAB1E] // [V04 loc2]
+ ldr x23, [fp, #0xD1FFAB1E] // [V04 loc2+0x08]
+ ; gcrRegs +[x23]
+ ldr w24, [fp, #0xD1FFAB1E] // [V04 loc2+0x10]
+ ldr x25, [x20, #0x08]
; gcrRegs +[x25]
- ldr w26, [fp, #0xD1FFAB1E] // [V04 loc2+0x10]
- ldr x27, [x20, #0x08]
- ; gcrRegs +[x27]
- ldr w14, [x27, #0x10]
- add w28, w14, #1
- ldr x14, [x27, #0x08]
+ ldr w14, [x25, #0x10]
+ add w26, w14, #1
+ ldr x14, [x25, #0x08]
; gcrRegs +[x14]
ldr w14, [x14, #0x08]
; gcrRegs -[x14]
- cmp w14, w28
- blt G_M55780_IG25
+ cmp w14, w26
+ blt G_M55780_IG24
;; size=40 bbWeight=94.99 PerfScore 1899.81
-G_M55780_IG08: ; bbWeight=94.99, gcrefRegs=A100000 {x20 x25 x27}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x27, #0x08]
- ; gcrRegs +[x1]
- ldr w2, [x27, #0x10]
- ldr w14, [x1, #0x08]
- cmp w2, w14
- bhs G_M55780_IG19
+G_M55780_IG07: ; bbWeight=94.99, gcrefRegs=2900000 {x20 x23 x25}, byrefRegs=0000 {}, byref, isz
+ ldr x27, [x25, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x25, #0x10]
+ ldr w14, [x27, #0x08]
+ cmp w28, w14
+ bhs G_M55780_IG18
mov w14, #24
mov x15, #16
- umaddl x14, w2, w14, x15
- add x3, x1, x14
- ; byrRegs +[x3]
- str w24, [x3]
- add x14, x3, #8
+ umaddl x14, w28, w14, x15
+ add x1, x27, x14
+ ; byrRegs +[x1]
+ str w22, [x1]
+ add x14, x1, #8
; byrRegs +[x14]
- mov x15, x25
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x1 x15 x25]
+ ; gcrRegs -[x15 x23 x27]
; byrRegs -[x14]
- str w26, [x3, #0x10]
- str w28, [x27, #0x10]
+ str w24, [x1, #0x10]
+ str w26, [x25, #0x10]
;; size=60 bbWeight=94.99 PerfScore 2089.79
-G_M55780_IG09: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x27]
- ; byrRegs -[x3]
+G_M55780_IG08: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x25]
+ ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x0]
add x19, x0, #8
; byrRegs +[x19]
- add x23, x19, #8
- ; byrRegs +[x23]
- mov x0, x23
+ add x21, x19, #8
+ ; byrRegs +[x21]
+ mov x0, x21
; gcrRegs -[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -219,16 +213,23 @@ G_M55780_IG09: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {
blr x1
; byrRegs -[x0 x19]
; gcr arg pop 0
- cbnz w0, G_M55780_IG04
+ cbnz w0, G_M55780_IG03
;; size=40 bbWeight=99.00 PerfScore 990.00
-G_M55780_IG10: ; bbWeight=4.11, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
...
+16 (+5.97%) : 200182.dasm - System.Collections.Generic.HashSet1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet1[int]):ubyte:this (Tier1-OSR)
@@ -6,7 +6,7 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 100.41
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 100.41
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -14,14 +14,14 @@
; V01 arg1 [V01,T05] ( 4,201.70) ref -> x19 class-hnd single-def <System.Collections.Generic.HashSet`1[int]>
; V02 loc0 [V02,T10] ( 4, 4 ) struct (24) [fp+0x60] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.HashSet`1+Enumerator[int]>
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
-;* V04 loc2 [V04,T12] ( 0, 0 ) ubyte -> zero-ref
+;* V04 loc2 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T11] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.HashSet`1+Enumerator[int]>
; V08 tmp3 [V08,T06] ( 3,200 ) ubyte -> x2 "Inline return value spill temp"
; V09 tmp4 [V09,T04] ( 4,246.15) int -> x22 "Inline stloc first use temp"
-; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x0 class-hnd exact "impAppendStmt" <<unknown class>>
-; V11 tmp6 [V11,T08] ( 3,123.08) byref -> x22 "Inline stloc first use temp"
+; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x1 class-hnd exact "impAppendStmt" <<unknown class>>
+; V11 tmp6 [V11,T08] ( 3,123.08) byref -> registers "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref "field V07._hashSet (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "field V07._version (fldOffset=0x8)" P-INDEP
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "field V07._index (fldOffset=0xc)" P-INDEP
@@ -30,15 +30,15 @@
; V17 tmp12 [V17,T09] ( 2,101 ) int -> x21 "V02.[008..012)"
; V18 tmp13 [V18,T00] ( 5,385.62) int -> registers "V02.[012..016)"
; V19 tmp14 [V19,T07] ( 3,199.85) int -> x1 "V02.[016..020)"
-; V20 cse0 [V20,T02] ( 3,361.54) int -> x23 hoist "CSE - aggressive"
+; V20 cse0 [V20,T02] ( 3,361.54) int -> x0 hoist "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M12432_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
ldr x19, [fp, #0x78]
; gcrRegs +[x19]
@@ -60,21 +60,21 @@ G_M12432_IG03: ; bbWeight=99.85, gcrefRegs=180000 {x19 x20}, byrefRegs=00
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- mov w22, w24
+ mov w22, w23
tbnz w0, #31, G_M12432_IG14
;; size=36 bbWeight=99.85 PerfScore 1048.43
G_M12432_IG04: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w0, [x20, #0x34]
cmp w21, w0
bne G_M12432_IG13
- ldr w23, [x20, #0x28]
+ ldr w0, [x20, #0x28]
;; size=16 bbWeight=100 PerfScore 750.00
G_M12432_IG05: ; bbWeight=161.54, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cmp w22, w23
+ cmp w22, w0
blo G_M12432_IG10
;; size=8 bbWeight=161.54 PerfScore 242.31
G_M12432_IG06: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- add w24, w23, #1
+ add w23, w0, #1
mov w1, wzr
mov w2, wzr
;; size=12 bbWeight=100 PerfScore 150.00
@@ -86,50 +86,49 @@ G_M12432_IG08: ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.14 PerfScore 0.07
G_M12432_IG09: ; bbWeight=0.14, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
- ;; size=24 bbWeight=0.14 PerfScore 0.77
+ ;; size=24 bbWeight=0.14 PerfScore 0.91
G_M12432_IG10: ; bbWeight=61.54, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19-x20]
- ldr x0, [x20, #0x10]
- ; gcrRegs +[x0]
- add w1, w22, #1
- sxtw w24, w1
- ldr w1, [x0, #0x08]
- cmp w22, w1
- bhs G_M12432_IG11
- mov w1, #12
- mov x2, #16
- umaddl x1, w22, w1, x2
- add x22, x0, x1
+ ldr x1, [x20, #0x10]
+ ; gcrRegs +[x1]
+ add w2, w22, #1
+ sxtw w23, w2
+ ldr w2, [x1, #0x08]
+ cmp w22, w2
+ bhs G_M12432_IG16
+ mov w2, #12
+ mov x3, #16
+ umaddl x2, w22, w2, x3
+ add x22, x1, x2
; byrRegs +[x22]
- ldr w0, [x22, #0x04]
- ; gcrRegs -[x0]
- cmn w0, #1
- bge G_M12432_IG12
- mov w22, w24
+ ldr w1, [x22, #0x04]
+ ; gcrRegs -[x1]
+ cmn w1, #1
+ blt G_M12432_IG12
+ ;; size=52 bbWeight=61.54 PerfScore 1200.00
+G_M12432_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
+ mov x0, x22
+ ; byrRegs +[x0]
+ mov w22, w23
; byrRegs -[x22]
- b G_M12432_IG05
- ;; size=60 bbWeight=61.54 PerfScore 1292.31
-G_M12432_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- bl CORINFO_HELP_RNGCHKFAIL
- ; gcr arg pop 0
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M12432_IG12: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
- ; gcrRegs +[x19-x20]
- ; byrRegs +[x22]
- ldr w1, [x22, #0x08]
+ ldr w1, [x0, #0x08]
mov w2, #1
+ mov w23, w22
b G_M12432_IG07
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG12: ; bbWeight=30.77, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
+ mov w22, w23
+ b G_M12432_IG05
+ ;; size=8 bbWeight=30.77 PerfScore 46.15
G_M12432_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
- ; byrRegs -[x22]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -142,26 +141,31 @@ G_M12432_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0 PerfScore 0.00
G_M12432_IG15: ; bbWeight=0, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ bl CORINFO_HELP_RNGCHKFAIL
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 268, prolog size 24, PerfScore 3595.38, instruction count 67, allocated bytes for code 268 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
+; Total bytes of code 284, prolog size 24, PerfScore 3549.37, instruction count 71, allocated bytes for code 284 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 268 (0x00010c)
+ Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -172,10 +176,13 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
05 alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
E4 end
+ E4 end
+ E4 end
+ E4 end
+32 (+8.16%) : 523394.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
@@ -9,19 +9,19 @@
; 1 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 3, 3 ) ref -> x20 class-hnd single-def <System.String>
-; V01 arg1 [V01,T01] ( 5, 5 ) int -> x19 single-def
-; V02 arg2 [V02,T05] ( 3, 3 ) int -> x21 single-def
+; V00 arg0 [V00,T04] ( 4, 3 ) ref -> x20 class-hnd single-def <System.String>
+; V01 arg1 [V01,T01] ( 6, 5 ) int -> x19 single-def
+; V02 arg2 [V02,T05] ( 4, 3 ) int -> x21 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T08] ( 5, 3 ) ref -> x22
; V05 tmp2 [V05,T09] ( 3, 2 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Exception>
-; V06 tmp3 [V06,T02] ( 4, 6 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.String[]>
+; V06 tmp3 [V06,T02] ( 5, 6 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.String[]>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String[]>
; V08 tmp5 [V08,T10] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp7 [V10,T00] ( 13, 26 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V12 tmp9 [V12,T03] ( 3, 6 ) int -> x19 "Inlining Arg"
+; V12 tmp9 [V12,T03] ( 3, 6 ) int -> x20 "Inlining Arg"
; V13 tmp10 [V13,T07] ( 2, 4 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <System.String>
; V14 tmp11 [V14,T11] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V15 cse0 [V15,T06] ( 4, 4 ) int -> x0 "CSE - aggressive"
@@ -49,11 +49,7 @@ G_M2230_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, by
; gcrRegs +[x0]
mov x22, x0
; gcrRegs +[x22]
- ;; size=28 bbWeight=1 PerfScore 7.00
-G_M2230_IG03: ; bbWeight=1, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
mov x0, x20
- ; gcrRegs +[x0]
mov w1, w19
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -64,19 +60,21 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}
mov x23, x0
; gcrRegs +[x23]
cbz w21, G_M2230_IG06
- movz x0, #0xD1FFAB1E
+ ;; size=64 bbWeight=1 PerfScore 15.00
+G_M2230_IG03: ; bbWeight=1, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x24, x0
; gcrRegs +[x24]
- add w19, w19, #1
+ add w20, w19, #1
mov x0, x22
mov x1, x23
; gcrRegs +[x1]
- mov w3, w19
+ mov w3, w20
mov w2, wzr
movz x4, #0xD1FFAB1E // code for <unknown method>
movk x4, #0xD1FFAB1E LSL #16
@@ -118,10 +116,10 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}
; gcrRegs -[x15 x23]
; byrRegs -[x14]
str xzr, [x24, #0x88]
- stp wzr, w19, [x24, #0x98]
+ stp wzr, w20, [x24, #0x98]
mov x0, x24
; gcrRegs +[x0]
- ;; size=188 bbWeight=1 PerfScore 35.50
+ ;; size=152 bbWeight=1 PerfScore 27.50
G_M2230_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x24]
ldp x23, x24, [sp, #0x30]
@@ -130,7 +128,7 @@ G_M2230_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-G_M2230_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+G_M2230_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0] +[x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -143,10 +141,20 @@ G_M2230_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000
; gcrRegs +[x0]
mov x22, x0
; gcrRegs +[x22]
- b G_M2230_IG03
- ;; size=40 bbWeight=0 PerfScore 0.00
+ mov x0, x20
+ mov w1, w19
+ movz x2, #0xD1FFAB1E // code for <unknown method>
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
+ ; gcrRegs -[x20]
+ mov x23, x0
+ ; gcrRegs +[x23]
+ cbnz w21, G_M2230_IG03
+ ;; size=72 bbWeight=0 PerfScore 0.00
G_M2230_IG06: ; bbWeight=0, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x20] +[x23]
+ ; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -177,7 +185,7 @@ G_M2230_IG06: ; bbWeight=0, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}
b G_M2230_IG04
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 392, prolog size 20, PerfScore 53.50, instruction count 98, allocated bytes for code 392 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
+; Total bytes of code 424, prolog size 20, PerfScore 53.50, instruction count 106, allocated bytes for code 424 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
; ============================================================
Unwind Info:
@@ -188,7 +196,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 98 (0x00062) Actual length = 392 (0x000188)
+ Function Length : 106 (0x0006a) Actual length = 424 (0x0001a8)
---- 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
-24 (-17.14%) : 42982.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xC0]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
-24 (-17.14%) : 5399.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xD1FFAB1E]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
-24 (-17.14%) : 48907.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xC0]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
+0 (0.00%) : 129864.dasm - System.IO.Tests.StreamReadExactly+<>cDisplayClass60+<b__5>d:MoveNext():this (FullOpts)
+0 (0.00%) : 171180.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String,int,int,int):System.Exception (FullOpts)
@@ -42,9 +42,55 @@ G_M23253_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=40 bbWeight=1 PerfScore 7.50
G_M23253_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M23253_IG05
+ cbnz w2, G_M23253_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ str x20, [fp, #0x18] // [V08 tmp3]
+ add x20, fp, #24 // [V08 tmp3]
+ ; gcrRegs -[x20]
+ ; byrRegs +[x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ mov x2, x20
+ ; byrRegs +[x2]
+ mov w3, #1
+ mov x1, x19
+ ; gcrRegs +[x1]
+ mov x0, xzr
+ ; gcrRegs -[x0]
+ movz x4, #0xD1FFAB1E // code for <unknown method>
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ; gcrRegs -[x1 x19] +[x0]
+ ; byrRegs -[x2 x20]
+ mov x1, x0
+ ; gcrRegs +[x1]
+ mov x0, x21
+ movz x2, #0xD1FFAB1E // code for <unknown method>
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
+ ; gcrRegs -[x0-x1]
+ mov x0, x21
+ ; gcrRegs +[x0]
+ ;; size=96 bbWeight=0.50 PerfScore 9.50
+G_M23253_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=20 bbWeight=0.50 PerfScore 2.50
+G_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x21] +[x19-x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -118,52 +164,6 @@ G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=184 bbWeight=0.50 PerfScore 16.25
-G_M23253_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x40]
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- str x20, [fp, #0x18] // [V08 tmp3]
- add x20, fp, #24 // [V08 tmp3]
- ; gcrRegs -[x20]
- ; byrRegs +[x20]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
- mov x2, x20
- ; byrRegs +[x2]
- mov w3, #1
- mov x1, x19
- ; gcrRegs +[x1]
- mov x0, xzr
- ; gcrRegs -[x0]
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x1 x19] +[x0]
- ; byrRegs -[x2 x20]
- mov x1, x0
- ; gcrRegs +[x1]
- mov x0, x21
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- mov x0, x21
- ; gcrRegs +[x0]
- ;; size=96 bbWeight=0.50 PerfScore 9.50
G_M23253_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x40]
ldp x21, x22, [sp, #0x30]
+0 (0.00%) : 176312.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -57,7 +57,7 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M11729_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w0
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -87,7 +87,7 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w23
adr x1, [@RWD44]
ldr w1, [x1, x0, LSL #2]
@@ -95,22 +95,10 @@ G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M11729_IG07: ; 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_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M11729_IG12
+ beq G_M11729_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -119,7 +107,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M11729_IG12
+ cbz w0, G_M11729_IG10
mov x0, x21
; gcrRegs +[x0]
mov w1, w22
@@ -131,12 +119,12 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M11729_IG06
+ cbz w20, G_M11729_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M11729_IG10
+ cbnz w0, G_M11729_IG08
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
- cbz x0, G_M11729_IG09
+ cbz x0, G_M11729_IG07
mov x1, x0
; gcrRegs +[x1]
ldr x1, [x1]
@@ -145,15 +133,15 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M11729_IG09
+ bne G_M11729_IG07
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x08]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M11729_IG10
+ b G_M11729_IG08
;; size=132 bbWeight=0.50 PerfScore 24.50
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -168,7 +156,7 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=28 bbWeight=0.50 PerfScore 2.25
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x1, [x19, #0x40]
; gcrRegs +[x1]
@@ -176,7 +164,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w1, [x1, #0x08]
; gcrRegs -[x1]
cmp w0, w1
- beq G_M11729_IG06
+ beq G_M11729_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov x1, x21
@@ -213,7 +201,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x20]
;; size=124 bbWeight=0.50 PerfScore 34.00
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -221,7 +209,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -233,7 +221,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x4, [x4, #0x90]
ldr x4, [x4, #0x20]
;; size=28 bbWeight=0.50 PerfScore 6.75
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -241,12 +229,12 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #9
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov x1, x21
@@ -260,7 +248,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M11729_IG16
+ cbnz w23, G_M11729_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -273,9 +261,19 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 11.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M11729_IG15: ; 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_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -339,20 +337,20 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
; Total bytes of code 756, prolog size 36, PerfScore 125.50, instruction count 189, allocated bytes for code 756 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
realworld.run.linux.arm64.checked.mch
-28 (-20.59%) : 10700.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 6, 4.50) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,29 +37,16 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M3270_IG04
+ cbz x0, G_M3270_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- cbnz x0, G_M3270_IG06
- b G_M3270_IG06
- ;; size=28 bbWeight=0.50 PerfScore 2.50
-G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x19]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M3270_IG06
+ cbz x0, G_M3270_IG05
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbnz x1, G_M3270_IG06
+ cbnz x1, G_M3270_IG05
ldr x0, [x0, #0x08]
ldr x1, [x19, #0x08]
movz x2, #0xD1FFAB1E // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -67,23 +54,23 @@ G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x19]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_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
-; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -94,7 +81,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ 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 (-8.93%) : 23091.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)
@@ -27,10 +27,10 @@
; V16 tmp12 [V16,T00] ( 5, 27 ) int -> x21 "field V01._index (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) ubyte -> zero-ref "V03.[004..005)"
;* V18 cse0 [V18,T11] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V19 cse1 [V19,T06] ( 2, 2 ) long -> x22 "CSE - aggressive"
-; V20 rat0 [V20,T07] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+; V19 cse1 [V19,T06] ( 1, 1 ) long -> x22 "CSE - aggressive"
+;* V20 rat0 [V20,T07] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V21 rat1 [V21,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V22 rat2 [V22,T05] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V22 rat2 [V22,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V23 rat3 [V23,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V24 rat4 [V24,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
@@ -49,7 +49,7 @@ G_M864_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
mov x19, x0
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,15 +62,10 @@ G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
; gcrRegs +[x20]
mov w21, w1
ldr x22, [x19]
- mov x0, x22
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x30]
- cbnz x0, G_M864_IG04
b G_M864_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 16.50
G_M864_IG03: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
add x8, fp, #24 // [V02 loc1]
@@ -118,7 +113,7 @@ G_M864_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +124,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-7.94%) : 23831.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
@@ -25,10 +25,10 @@
; V14 tmp8 [V14,T05] ( 3, 6 ) ref -> x0 "Field obj"
; V15 tmp9 [V15,T01] ( 2, 8 ) byref -> x2 "argument with side effect"
;* V16 cse0 [V16,T12] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V17 cse1 [V17,T08] ( 3, 3 ) long -> x24 "CSE - aggressive"
-; V18 rat0 [V18,T10] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V17 cse1 [V17,T08] ( 2, 2.50) long -> x24 "CSE - aggressive"
+;* V18 rat0 [V18,T10] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V19 rat1 [V19,T11] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V20 rat2 [V20,T09] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V20 rat2 [V20,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -62,7 +62,7 @@ G_M9562_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
; gcrRegs +[x21]
cbz x21, G_M9562_IG07
;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
+G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x0]
mov x0, x21
; gcrRegs +[x0]
@@ -75,15 +75,10 @@ G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
; gcrRegs +[x22]
mov w23, w1
ldr x24, [x19]
- mov x0, x24
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x30]
- cbnz x0, G_M9562_IG05
b G_M9562_IG05
- ;; size=60 bbWeight=0.50 PerfScore 10.75
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M9562_IG04: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+ ; gcrRegs -[x0]
mov x0, x22
; gcrRegs +[x0]
mov w1, w23
@@ -133,7 +128,7 @@ G_M9562_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
; ============================================================
Unwind Info:
@@ -144,7 +139,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 27697.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:LowerEvaluation(Microsoft.CodeAnalysis.CSharp.BoundDagEvaluation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
@@ -20,7 +20,7 @@
; V09 loc7 [V09,T44] ( 10, 5 ) ref -> x20 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
; V10 loc8 [V10,T45] ( 10, 5 ) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V12 loc10 [V12,T131] ( 3, 1.50) ref -> x28 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V12 loc10 [V12,T131] ( 3, 1.50) ref -> x23 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V13 loc11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V14 loc12 [V14,T85] ( 5, 2.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
;* V15 loc13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
@@ -50,8 +50,8 @@
; V39 loc37 [V39,T153] ( 2, 1 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V40 loc38 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V41 loc39 [V41,T135] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V42 loc40 [V42,T72] ( 6, 3 ) ref -> x27 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V43 loc41 [V43,T130] ( 4, 1.75) ref -> x28 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
+; V42 loc40 [V42,T72] ( 6, 3 ) ref -> x22 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V43 loc41 [V43,T130] ( 4, 1.75) ref -> x23 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
; V44 loc42 [V44,T154] ( 2, 1 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V45 loc43 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V46 loc44 [V46,T136] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
@@ -60,7 +60,7 @@
;* V49 tmp2 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V50 tmp3 [V50,T99] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V51 tmp4 [V51,T22] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V52 tmp5 [V52,T74] ( 3, 3 ) ref -> x27 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
+; V52 tmp5 [V52,T74] ( 3, 3 ) ref -> x26 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
; V53 tmp6 [V53,T50] ( 4, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
;* V54 tmp7 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagPropertyEvaluation>
; V55 tmp8 [V55,T100] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
@@ -97,15 +97,15 @@
;* V86 tmp39 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
;* V87 tmp40 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
;* V88 tmp41 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
-; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x22 class-hnd exact single-def "dup spill" <<unknown class>>
-; V90 tmp43 [V90,T107] ( 2, 2 ) ref -> x28 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
+; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x23 class-hnd exact single-def "dup spill" <<unknown class>>
+; V90 tmp43 [V90,T107] ( 2, 2 ) ref -> x21 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
; V91 tmp44 [V91,T91] ( 3, 2.25) ref -> x1 single-def "CASTCLASS eval op1"
; V92 tmp45 [V92,T151] ( 3, 1.25) long -> x2 "fgMakeTemp is creating a new local variable"
; V93 tmp46 [V93,T68] ( 5, 3.75) ref -> x21 class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V94 tmp47 [V94,T108] ( 2, 2 ) ref -> x22 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V95 tmp48 [V95,T29] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
;* V96 tmp49 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
-;* V97 tmp50 [V97,T198] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+;* V97 tmp50 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
; V98 tmp51 [V98 ] ( 3, 1.50) struct (24) [fp+0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
; V99 tmp52 [V99,T137] ( 3, 1.50) ref -> x26 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V100 tmp53 [V100,T52] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
@@ -122,11 +122,11 @@
;* V111 tmp64 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V112 tmp65 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V113 tmp66 [V113 ] ( 3, 1.50) struct (24) [fp+0xB8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-; V114 tmp67 [V114,T94] ( 4, 2 ) ref -> x23 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V114 tmp67 [V114,T94] ( 4, 2 ) ref -> x24 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V115 tmp68 [V115,T53] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V116 tmp69 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
; V117 tmp70 [V117,T87] ( 5, 2.50) ref -> x3 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
+; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
;* V119 tmp72 [V119 ] ( 0, 0 ) ref -> zero-ref
; V120 tmp73 [V120,T138] ( 3, 1.50) ref -> x21 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V121 tmp74 [V121,T31] ( 8, 8 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundAddressOfOperator>
@@ -420,7 +420,7 @@ G_M26377_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
;; size=60 bbWeight=1 PerfScore 21.00
G_M26377_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- b G_M26377_IG18
+ b G_M26377_IG10
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
add x0, x8, #0xD1FFAB1E
@@ -428,7 +428,7 @@ G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG05
mov x22, x20
; gcrRegs +[x22]
- b G_M26377_IG31
+ b G_M26377_IG23
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -437,7 +437,7 @@ G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG06
mov x23, x20
; gcrRegs +[x23]
- b G_M26377_IG37
+ b G_M26377_IG29
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23]
@@ -448,7 +448,7 @@ G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG07
mov x24, x20
; gcrRegs +[x24]
- b G_M26377_IG57
+ b G_M26377_IG49
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
@@ -457,7 +457,7 @@ G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG08
mov x25, x20
; gcrRegs +[x25]
- b G_M26377_IG70
+ b G_M26377_IG62
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
@@ -468,7 +468,7 @@ G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG09
mov x26, x20
; gcrRegs +[x26]
- b G_M26377_IG72
+ b G_M26377_IG64
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x26]
@@ -476,241 +476,10 @@ G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
cmp x1, x8
- bne G_M26377_IG86
- ldr x27, [x20, #0x30]
- ; gcrRegs +[x27]
- mov x28, x27
- ; gcrRegs +[x28]
- cbz x28, G_M26377_IG11
- ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M26377_IG10: ; bbWeight=0.25, gcrefRegs=18380000 {x19 x20 x21 x27 x28}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x28]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- cmp x0, x1
- beq G_M26377_IG82
- ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M26377_IG11: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x28]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ldr wzr, [x0]
- blr x1
- mov x22, x0
- ; gcrRegs +[x22]
- ldr x1, [x20, #0x38]
- ; gcrRegs +[x1]
- ldrsb wzr, [x22]
- mov x0, x22
- mov x2, x21
- ; gcrRegs +[x2]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x21]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ldr x28, [x20, #0x40]
- ; gcrRegs +[x28]
- mov x0, x19
- ; gcrRegs +[x0]
- mov x1, x20
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1]
- mov x2, x0
- ; gcrRegs +[x2]
- mov x0, x22
- mov x1, x28
- ; gcrRegs +[x1]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x28]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- mov x0, x22
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter+PlaceholderReplacer:Replace(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.BoundEarlyValuePlaceholderBase,Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x27, x0
- ; gcrRegs +[x27]
- mov x0, x22
- movz x1, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Clear():this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ; gcrRegs -[x0]
- ldr x0, [x22, #0x48]
- ; gcrRegs +[x0]
- cbz x0, G_M26377_IG12
- ldr x14, [x0, #0x08]
- ; gcrRegs +[x14]
- cbnz x14, G_M26377_IG83
- add x14, x0, #8
- ; gcrRegs -[x14]
- ; byrRegs +[x14]
- mov x15, x22
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x0 x15 x22]
- ; byrRegs -[x14]
- ;; size=296 bbWeight=0.50 PerfScore 40.25
-G_M26377_IG12: ; bbWeight=0.50, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter:Visit(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- ldr wzr, [x0]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x1, x0
- ; gcrRegs +[x1]
...
+0 (0.00%) : 21502.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -24,19 +24,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35943_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov w1, #0xD1FFAB1E
cmp w0, w1
- beq G_M35943_IG05
+ bne G_M35943_IG05
;; size=12 bbWeight=1 PerfScore 2.00
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, xzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x20
- ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -57,13 +47,21 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
mov x0, x20
; gcrRegs +[x0]
;; size=60 bbWeight=0.50 PerfScore 8.50
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
+ ret lr
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x20]
+ mov x0, xzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x20]
bl CORINFO_HELP_OVERFLOW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
+0 (0.00%) : 3680.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption1[System.String]]:this (FullOpts)
@@ -22,11 +22,12 @@
; V11 tmp5 [V11,T00] ( 6, 10 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]>
-;* V14 tmp8 [V14,T09] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
-;* V15 tmp9 [V15,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
-; V16 cse0 [V16,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
-;* V17 cse1 [V17,T11] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V18 cse2 [V18,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
+;* V14 tmp8 [V14,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
+;* V15 tmp9 [V15,T11] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
+; V16 tmp10 [V16,T09] ( 2, 1 ) ref -> x2 single-def "Field obj"
+; V17 cse0 [V17,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
+;* V18 cse1 [V18,T12] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V19 cse2 [V19,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -102,7 +103,7 @@ G_M10872_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbz x2, G_M10872_IG05
;; size=160 bbWeight=1 PerfScore 38.50
G_M10872_IG03: ; bbWeight=0.50, gcrefRegs=500005 {x0 x2 x20 x22}, byrefRegs=0000 {}, byref
- ldr xzr, [x2, #0x10]
+ ldrsb wzr, [x2]
ldr x2, [x0, #0x08]
mov x0, x20
mov x1, x22
smoke_tests.nativeaot.linux.arm64.checked.mch
-36 (-7.14%) : 8871.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -13,7 +13,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> x21 single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> x22 single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> x23
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> x23
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> x0
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> x0
@@ -24,19 +24,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> x0 "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> x0 "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> x1 "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> x1 "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> x2 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> x0 single-def "arr expr"
@@ -207,22 +207,7 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w0, w1
- bls G_M29651_IG14
- b G_M29651_IG14
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG15
- b G_M29651_IG15
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG16
- b G_M29651_IG16
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x2]
@@ -230,7 +215,7 @@ G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_unix #0
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -239,7 +224,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -249,7 +234,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Cfi Info:
-24 (-6.25%) : 8618.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
@@ -16,7 +16,7 @@
; V06 loc1 [V06,T17] ( 5, 8.50) long -> registers
; V07 loc2 [V07,T15] ( 7, 11 ) long -> registers
; V08 loc3 [V08,T18] ( 6, 6 ) int -> x6
-; V09 loc4 [V09,T00] ( 18,102.50) int -> x7
+; V09 loc4 [V09,T00] ( 16,102.50) int -> x7
; V10 loc5 [V10,T20] ( 3, 6 ) int -> x11
; V11 loc6 [V11,T04] ( 7, 26 ) int -> x13
; V12 loc7 [V12,T12] ( 6, 12 ) long -> x2
@@ -25,10 +25,10 @@
; V15 tmp2 [V15,T13] ( 3, 12 ) long -> x3 "impSpillLclRefs"
; V16 tmp3 [V16,T14] ( 3, 12 ) long -> x13 "impSpillLclRefs"
;* V17 tmp4 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V18 tmp5 [V18,T10] ( 4, 16 ) int -> x9 "Inlining Arg"
+; V18 tmp5 [V18,T10] ( 3, 16 ) int -> x9 "Inlining Arg"
;* V19 tmp6 [V19,T24] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V21 tmp8 [V21,T01] ( 4, 64 ) int -> x14 "Inlining Arg"
+; V21 tmp8 [V21,T01] ( 3, 64 ) int -> x14 "Inlining Arg"
;* V22 tmp9 [V22,T11] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V23 tmp10 [V23,T05] ( 3, 24 ) ref -> x9 "arr expr"
;* V24 tmp11 [V24,T03] ( 0, 0 ) ref -> zero-ref "arr expr"
@@ -162,17 +162,7 @@ G_M50170_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w9
- bls G_M50170_IG21
- b G_M50170_IG21
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w14
- bls G_M50170_IG22
- b G_M50170_IG22
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w9
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -183,7 +173,7 @@ G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w14
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -195,7 +185,7 @@ G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 384, prolog size 8, PerfScore 285.50, instruction count 96, allocated bytes for code 384 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 360, prolog size 8, PerfScore 285.50, instruction count 90, allocated bytes for code 360 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
; ============================================================
Cfi Info:
-24 (-5.31%) : 8619.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
@@ -15,7 +15,7 @@
; V05 loc1 [V05,T11] ( 8, 10 ) long -> registers
; V06 loc2 [V06,T15] ( 5, 5.50) int -> x6
; V07 loc3 [V07,T14] ( 6, 6 ) int -> x1
-; V08 loc4 [V08,T00] ( 20,106.50) int -> x7
+; V08 loc4 [V08,T00] ( 18,106.50) int -> x7
; V09 loc5 [V09,T13] ( 5, 7 ) int -> x2
; V10 loc6 [V10,T16] ( 4, 5 ) int -> x8
; V11 loc7 [V11,T06] ( 6, 21 ) short -> x9
@@ -26,10 +26,10 @@
;* V16 tmp4 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V17 tmp5 [V17 ] ( 0, 0 ) long -> zero-ref "impSpillLclRefs"
;* V18 tmp6 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp7 [V19,T07] ( 4, 16 ) int -> x10 "Inlining Arg"
+; V19 tmp7 [V19,T07] ( 3, 16 ) int -> x10 "Inlining Arg"
;* V20 tmp8 [V20,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V21 tmp9 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V22 tmp10 [V22,T02] ( 4, 64 ) int -> x10 "Inlining Arg"
+; V22 tmp10 [V22,T02] ( 3, 64 ) int -> x10 "Inlining Arg"
;* V23 tmp11 [V23,T08] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V24 tmp12 [V24,T05] ( 3, 24 ) ref -> x10 "arr expr"
; V25 tmp13 [V25,T01] ( 3, 96 ) ref -> x10 "arr expr"
@@ -184,17 +184,7 @@ G_M62864_IG19: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M62864_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w10
- bls G_M62864_IG22
- b G_M62864_IG22
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62864_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w10
- bls G_M62864_IG23
- b G_M62864_IG23
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M62864_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w10
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -205,7 +195,7 @@ G_M62864_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M62864_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w10
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -217,7 +207,7 @@ G_M62864_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 452, prolog size 8, PerfScore 398.50, instruction count 113, allocated bytes for code 452 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
+; Total bytes of code 428, prolog size 8, PerfScore 398.50, instruction count 107, allocated bytes for code 428 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
; ============================================================
Cfi Info:
-12 (-0.44%) : 5311.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T20] ( 5, 16.50) int -> x25
; V10 loc9 [V10,T26] ( 4, 12.50) ref -> x27 class-hnd <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T02] ( 18, 83.08) int -> [fp+0x7C]
+; V12 loc11 [V12,T02] ( 17, 83.08) int -> [fp+0x7C]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [fp+0x18] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T18] ( 30, 20.31) int -> x25
@@ -82,7 +82,7 @@
; V72 tmp47 [V72,T53] ( 3, 3.59) int -> x1 "Inlining Arg"
;* V73 tmp48 [V73,T77] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T27] ( 4, 10.56) int -> x1 "Inlining Arg"
+; V75 tmp50 [V75,T27] ( 3, 10.56) int -> x1 "Inlining Arg"
;* V76 tmp51 [V76,T56] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -423,7 +423,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=9B80001 {x0 x19 x20 x21 x23 x24
ldr w1, [x0, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG107
+ bhs G_M50704_IG106
ldr x0, [x0, #0x08]
ldr w1, [x0, #0x08]
cmp w5, w1
@@ -467,7 +467,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=9B80000 {x19 x20 x21 x23 x24 x2
ldr w1, [x23, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG106
+ bhs G_M50704_IG107
ldr x0, [x23, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -542,7 +542,7 @@ G_M50704_IG41: ; bbWeight=4, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byr
;; size=12 bbWeight=4 PerfScore 8.00
G_M50704_IG42: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
- cbz x21, G_M50704_IG109
+ cbz x21, G_M50704_IG108
mov w1, w22
adrp x0, [HIGH RELOC #0xD1FFAB1E] // System.Object[]
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -706,7 +706,7 @@ G_M50704_IG60: ; bbWeight=0.44, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG61: ; bbWeight=0.22, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG109
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -743,7 +743,7 @@ G_M50704_IG63: ; bbWeight=1.31, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG64: ; bbWeight=0.65, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -804,7 +804,7 @@ G_M50704_IG69: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG109
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -843,7 +843,7 @@ G_M50704_IG73: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -1313,11 +1313,16 @@ G_M50704_IG105: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50704_IG106: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w5, w1
- bls G_M50704_IG108
- b G_M50704_IG108
- ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50704_IG106: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w5
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w5
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1328,17 +1333,7 @@ G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG108: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w5
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_unix #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG109: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M50704_IG108: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -1368,6 +1363,16 @@ G_M50704_IG109: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=60 bbWeight=0 PerfScore 0.00
+G_M50704_IG109: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w25
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w25
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1378,17 +1383,7 @@ G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w25
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_unix #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG111: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16}
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
@@ -1397,10 +1392,10 @@ G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
ldr x0, [fp, #0x10] // [V16 loc15]
; gcrRegs +[x0]
- cbz x0, G_M50704_IG114
+ cbz x0, G_M50704_IG113
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -1409,7 +1404,7 @@ G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
; gcrRegs -[x0]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M50704_IG113: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
@@ -1419,7 +1414,7 @@ G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2732, prolog size 48, PerfScore 1905.16, instruction count 683, allocated bytes for code 2732 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2720, prolog size 48, PerfScore 1905.16, instruction count 680, allocated bytes for code 2720 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Cfi Info:
@@ -1457,4 +1452,4 @@ Cfi Info:
CodeOffset: 0x18 Op: RelOffset DwarfReg:0x1c Offset:0x58
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG82..G_M50704_IG103) handled by [G_M50704_IG112..END) (fault)
+EH#0: try [G_M50704_IG82..G_M50704_IG103) handled by [G_M50704_IG111..END) (fault)
-12 (-0.44%) : 18962.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T20] ( 5, 16.50) int -> x25
; V10 loc9 [V10,T26] ( 4, 12.50) ref -> x27 class-hnd <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T02] ( 18, 83.08) int -> [fp+0x7C]
+; V12 loc11 [V12,T02] ( 17, 83.08) int -> [fp+0x7C]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [fp+0x18] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T18] ( 30, 20.31) int -> x25
@@ -82,7 +82,7 @@
; V72 tmp47 [V72,T53] ( 3, 3.59) int -> x1 "Inlining Arg"
;* V73 tmp48 [V73,T77] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T27] ( 4, 10.56) int -> x1 "Inlining Arg"
+; V75 tmp50 [V75,T27] ( 3, 10.56) int -> x1 "Inlining Arg"
;* V76 tmp51 [V76,T56] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -425,7 +425,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=9B80001 {x0 x19 x20 x21 x23 x24
ldr w1, [x0, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x0, [x0, #0x08]
ldr w1, [x0, #0x08]
cmp w5, w1
@@ -469,7 +469,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=9B80000 {x19 x20 x21 x23 x24 x2
ldr w1, [x23, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG111
ldr x0, [x23, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -544,7 +544,7 @@ G_M50704_IG41: ; bbWeight=4, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byr
;; size=12 bbWeight=4 PerfScore 8.00
G_M50704_IG42: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
- cbz x21, G_M50704_IG113
+ cbz x21, G_M50704_IG112
mov w1, w22
adrp x0, [HIGH RELOC #0xD1FFAB1E] // System.Object[]
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -708,7 +708,7 @@ G_M50704_IG60: ; bbWeight=0.44, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG61: ; bbWeight=0.22, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG114
+ bhs G_M50704_IG113
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -745,7 +745,7 @@ G_M50704_IG63: ; bbWeight=1.31, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG64: ; bbWeight=0.65, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG115
+ bhs G_M50704_IG114
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -806,7 +806,7 @@ G_M50704_IG69: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG114
+ bhs G_M50704_IG113
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -845,7 +845,7 @@ G_M50704_IG73: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG115
+ bhs G_M50704_IG114
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -1337,11 +1337,16 @@ G_M50704_IG109: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w5, w1
- bls G_M50704_IG112
- b G_M50704_IG112
- ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w5
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w5
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1352,17 +1357,7 @@ G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w5
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_unix #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M50704_IG112: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -1392,6 +1387,16 @@ G_M50704_IG113: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=60 bbWeight=0 PerfScore 0.00
+G_M50704_IG113: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w25
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w25
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1402,17 +1407,7 @@ G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG115: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w25
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_unix #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG115: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16}
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
@@ -1421,10 +1416,10 @@ G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
ldr x0, [fp, #0x10] // [V16 loc15]
; gcrRegs +[x0]
- cbz x0, G_M50704_IG118
+ cbz x0, G_M50704_IG117
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -1433,7 +1428,7 @@ G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
; gcrRegs -[x0]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M50704_IG117: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
@@ -1443,7 +1438,7 @@ G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2740, prolog size 48, PerfScore 1905.16, instruction count 685, allocated bytes for code 2740 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2728, prolog size 48, PerfScore 1905.16, instruction count 682, allocated bytes for code 2728 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Cfi Info:
@@ -1481,4 +1476,4 @@ Cfi Info:
CodeOffset: 0x18 Op: RelOffset DwarfReg:0x1c Offset:0x58
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG82..G_M50704_IG107) handled by [G_M50704_IG116..END) (fault)
+EH#0: try [G_M50704_IG82..G_M50704_IG107) handled by [G_M50704_IG115..END) (fault)
-4 (-0.18%) : 429.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
@@ -14,7 +14,7 @@
; V04 arg4 [V04,T36] ( 4, 4 ) int -> x23 single-def
; V05 arg5 [V05,T44] ( 4, 3 ) ref -> x24 class-hnd exact single-def <System.Text.DecoderNLS>
; V06 loc0 [V06,T63] ( 4, 2.50) ref -> x24 class-hnd exact single-def <<unknown class>>
-; V07 loc1 [V07,T11] ( 10, 16.50) int -> [fp+0x3C]
+; V07 loc1 [V07,T11] ( 9, 16 ) int -> [fp+0x3C]
; V08 loc2 [V08,T07] ( 21, 33.50) ushort -> x26
; V09 loc3 [V09,T04] ( 43, 49.25) ref -> x27 class-hnd <System.Text.DecoderFallbackBuffer>
; V10 loc4 [V10 ] ( 15, 21 ) long -> [fp+0x30] do-not-enreg[X] addr-exposed ld-addr-op
@@ -910,7 +910,7 @@ G_M8858_IG66: ; bbWeight=0.50, gcrefRegs=9600000 {x21 x22 x24 x27}, byref
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=92 bbWeight=0.50 PerfScore 11.25
-G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref, isz
+G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref
str xzr, [x27, #0x18]
mov x0, x27
; gcrRegs +[x0]
@@ -929,9 +929,8 @@ G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs
bl System.Text.Encoding:ThrowCharsOverflow(System.Text.DecoderNLS,ubyte):this
; gcrRegs -[x0-x1 x21 x24]
; gcr arg pop 0
- tbnz w25, #31, G_M8858_IG74
b G_M8858_IG74
- ;; size=52 bbWeight=0.50 PerfScore 7.75
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
G_M8858_IG68: ; bbWeight=0.25, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref
; gcrRegs +[x21 x24]
b G_M8858_IG67
@@ -1076,7 +1075,7 @@ G_M8858_IG80: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, g
brk_unix #0
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2264, prolog size 52, PerfScore 821.00, instruction count 566, allocated bytes for code 2264 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
+; Total bytes of code 2260, prolog size 52, PerfScore 820.50, instruction count 565, allocated bytes for code 2260 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (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 |
25 |
25 |
0 |
0 |
-444 |
+0 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
258 |
188 |
3 |
67 |
-4,184 |
+24 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
11 |
9 |
0 |
2 |
-168 |
+0 |
| coreclr_tests.run.linux.arm64.checked.mch |
459 |
257 |
5 |
197 |
-6,164 |
+52 |
| libraries.crossgen2.linux.arm64.checked.mch |
56 |
50 |
0 |
6 |
-1,660 |
+0 |
| libraries.pmi.linux.arm64.checked.mch |
205 |
191 |
1 |
13 |
-3,568 |
+8 |
| libraries_tests.run.linux.arm64.Release.mch |
1,238 |
1,014 |
27 |
197 |
-21,924 |
+292 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
255 |
236 |
0 |
19 |
-3,844 |
+0 |
| realworld.run.linux.arm64.checked.mch |
58 |
55 |
0 |
3 |
-1,340 |
+0 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
9 |
9 |
0 |
0 |
-236 |
+0 |
|
2,574 |
2,034 |
36 |
504 |
-43,532 |
+376 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.linux.arm64.checked.mch |
33,710 |
2,779 |
30,931 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
152,900 |
61,290 |
91,610 |
4 (0.00%) |
4 (0.00%) |
| benchmarks.run_tiered.linux.arm64.checked.mch |
63,813 |
48,019 |
15,794 |
1 (0.00%) |
1 (0.00%) |
| coreclr_tests.run.linux.arm64.checked.mch |
625,273 |
382,318 |
242,955 |
3 (0.00%) |
3 (0.00%) |
| libraries.crossgen2.linux.arm64.checked.mch |
234,496 |
15 |
234,481 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.linux.arm64.checked.mch |
295,745 |
6 |
295,739 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.linux.arm64.Release.mch |
744,166 |
490,908 |
253,258 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
304,865 |
21,599 |
283,266 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.linux.arm64.checked.mch |
33,309 |
151 |
33,158 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
19,033 |
7 |
19,026 |
0 (0.00%) |
0 (0.00%) |
|
2,507,310 |
1,007,092 |
1,500,218 |
8 (0.00%) |
8 (0.00%) |
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: 15557828 (overridden on cmd)
Total bytes of diff: 15557384 (overridden on cmd)
Total bytes of delta: -444 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 10213.dasm (-0.24 % of base)
-28 : 30022.dasm (-2.36 % of base)
-28 : 8498.dasm (-7.61 % of base)
-28 : 30025.dasm (-4.02 % of base)
-28 : 8466.dasm (-7.61 % of base)
-24 : 26373.dasm (-12.50 % of base)
-24 : 15530.dasm (-3.92 % of base)
-24 : 16065.dasm (-0.66 % of base)
-24 : 21289.dasm (-0.36 % of base)
-20 : 28817.dasm (-5.26 % of base)
-20 : 9661.dasm (-3.29 % of base)
-16 : 12945.dasm (-2.60 % of base)
-16 : 12991.dasm (-0.98 % of base)
-16 : 20730.dasm (-4.00 % of base)
-12 : 16079.dasm (-0.60 % of base)
-12 : 10577.dasm (-2.24 % of base)
-12 : 15946.dasm (-7.14 % of base)
-12 : 21369.dasm (-0.80 % of base)
-12 : 8153.dasm (-3.57 % of base)
-12 : 8639.dasm (-0.64 % of base)
25 total files with Code Size differences (25 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 10213.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-7.61 % of base) : 8498.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-2.36 % of base) : 30022.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 8466.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-4.02 % of base) : 30025.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-0.36 % of base) : 21289.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-12.50 % of base) : 26373.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-3.92 % of base) : 15530.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-0.66 % of base) : 16065.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-20 (-3.29 % of base) : 9661.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-20 (-5.26 % of base) : 28817.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-4.00 % of base) : 20730.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-2.60 % of base) : 12945.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-16 (-0.98 % of base) : 12991.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-12 (-0.80 % of base) : 21369.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-12 (-7.14 % of base) : 15946.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-12 (-0.60 % of base) : 16079.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
-12 (-2.10 % of base) : 10081.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-12 (-0.64 % of base) : 8639.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (FullOpts)
-12 (-3.57 % of base) : 8153.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
Top method improvements (percentages):
-24 (-12.50 % of base) : 26373.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-28 (-7.61 % of base) : 8498.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 8466.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-12 (-7.14 % of base) : 15946.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-20 (-5.26 % of base) : 28817.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-28 (-4.02 % of base) : 30025.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-16 (-4.00 % of base) : 20730.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-24 (-3.92 % of base) : 15530.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-12 (-3.57 % of base) : 8153.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.29 % of base) : 9661.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-16 (-2.60 % of base) : 12945.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-28 (-2.36 % of base) : 30022.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-12 (-2.24 % of base) : 10577.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
-12 (-2.10 % of base) : 10081.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-16 (-0.98 % of base) : 12991.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.97 % of base) : 10865.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.88 % of base) : 16135.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
-12 (-0.80 % of base) : 21369.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-8 (-0.74 % of base) : 7196.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-24 (-0.66 % of base) : 16065.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
25 total methods with Code Size differences (25 improved, 0 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: 80090028 (overridden on cmd)
Total bytes of diff: 80085868 (overridden on cmd)
Total bytes of delta: -4160 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 124282.dasm (7.27 % of base)
4 : 101372.dasm (0.22 % of base)
4 : 104250.dasm (0.22 % of base)
Top file improvements (bytes):
-48 : 152818.dasm (-8.82 % of base)
-48 : 40472.dasm (-5.13 % of base)
-44 : 51652.dasm (-8.21 % of base)
-32 : 112237.dasm (-1.81 % of base)
-32 : 140873.dasm (-1.81 % of base)
-32 : 146381.dasm (-1.81 % of base)
-32 : 31874.dasm (-1.81 % of base)
-32 : 35713.dasm (-0.24 % of base)
-32 : 87989.dasm (-1.81 % of base)
-32 : 111849.dasm (-1.81 % of base)
-32 : 126601.dasm (-1.80 % of base)
-32 : 147201.dasm (-1.81 % of base)
-32 : 101494.dasm (-1.80 % of base)
-32 : 103725.dasm (-1.81 % of base)
-32 : 106298.dasm (-1.81 % of base)
-32 : 130125.dasm (-1.81 % of base)
-32 : 26605.dasm (-1.81 % of base)
-32 : 54746.dasm (-1.83 % of base)
-32 : 58366.dasm (-1.81 % of base)
-32 : 59022.dasm (-1.81 % of base)
49 total files with Code Size differences (46 improved, 3 regressed), 37 unchanged.
Top method regressions (bytes):
16 (7.27 % of base) : 124282.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 104250.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 101372.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (bytes):
-48 (-8.82 % of base) : 152818.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-48 (-5.13 % of base) : 40472.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-44 (-8.21 % of base) : 51652.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-32 (-0.24 % of base) : 35713.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-32 (-1.81 % of base) : 112237.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 140873.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 146381.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 31874.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 87989.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 111849.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 126601.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 147201.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 101494.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 103725.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 106298.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 130125.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 26605.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.83 % of base) : 54746.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 58366.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 59022.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
Top method regressions (percentages):
16 (7.27 % of base) : 124282.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 104250.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 101372.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (percentages):
-24 (-14.63 % of base) : 145586.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-14.63 % of base) : 142426.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 142399.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 145571.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-8 (-10.00 % of base) : 86791.dasm - System.Reflection.PortableExecutable.ManagedTextSection:get_SizeOfImportTable():int:this (Tier1)
-48 (-8.82 % of base) : 152818.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-44 (-8.21 % of base) : 51652.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-24 (-7.69 % of base) : 113634.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 116266.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 126021.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 137330.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 148802.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 54967.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 69567.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 70474.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 89341.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 92899.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 103381.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 15364.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 33826.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
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: 24601124 (overridden on cmd)
Total bytes of diff: 24600956 (overridden on cmd)
Total bytes of delta: -168 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 22932.dasm (-0.24 % of base)
-28 : 29986.dasm (-7.61 % of base)
-28 : 29857.dasm (-7.61 % of base)
-24 : 44796.dasm (-0.36 % of base)
-12 : 51415.dasm (-2.78 % of base)
-12 : 13422.dasm (-0.64 % of base)
-12 : 48113.dasm (-1.24 % of base)
-12 : 53807.dasm (-1.87 % of base)
-8 : 48007.dasm (-0.20 % of base)
9 total files with Code Size differences (9 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 22932.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-7.61 % of base) : 29857.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-7.61 % of base) : 29986.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-0.36 % of base) : 44796.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
-12 (-1.24 % of base) : 48113.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-12 (-2.78 % of base) : 51415.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-12 (-1.87 % of base) : 53807.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-12 (-0.64 % of base) : 13422.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
-8 (-0.20 % of base) : 48007.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
Top method improvements (percentages):
-28 (-7.61 % of base) : 29857.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-7.61 % of base) : 29986.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-12 (-2.78 % of base) : 51415.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-12 (-1.87 % of base) : 53807.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-12 (-1.24 % of base) : 48113.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-12 (-0.64 % of base) : 13422.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
-24 (-0.36 % of base) : 44796.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
-32 (-0.24 % of base) : 22932.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-8 (-0.20 % of base) : 48007.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
9 total methods with Code Size differences (9 improved, 0 regressed).
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: 508733084 (overridden on cmd)
Total bytes of diff: 508726972 (overridden on cmd)
Total bytes of delta: -6112 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
12 : 15906.dasm (6.00 % of base)
12 : 16323.dasm (6.00 % of base)
12 : 16247.dasm (6.25 % of base)
12 : 15830.dasm (6.25 % of base)
4 : 248766.dasm (7.14 % of base)
Top file improvements (bytes):
-1024 : 334729.dasm (-47.15 % of base)
-292 : 255348.dasm (-2.86 % of base)
-84 : 622185.dasm (-1.38 % of base)
-84 : 621456.dasm (-1.38 % of base)
-68 : 615633.dasm (-2.34 % of base)
-52 : 239576.dasm (-30.95 % of base)
-48 : 316603.dasm (-1.54 % of base)
-44 : 242759.dasm (-55.00 % of base)
-40 : 197950.dasm (-0.48 % of base)
-40 : 239154.dasm (-1.17 % of base)
-40 : 244113.dasm (-1.17 % of base)
-36 : 236227.dasm (-28.12 % of base)
-36 : 314645.dasm (-5.70 % of base)
-36 : 254701.dasm (-25.71 % of base)
-32 : 17616.dasm (-12.70 % of base)
-32 : 17690.dasm (-12.70 % of base)
-28 : 16358.dasm (-14.00 % of base)
-28 : 17200.dasm (-11.11 % of base)
-28 : 17274.dasm (-11.11 % of base)
-28 : 17312.dasm (-10.94 % of base)
40 total files with Code Size differences (35 improved, 5 regressed), 35 unchanged.
Top method regressions (bytes):
12 (6.25 % of base) : 16247.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 15830.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 15906.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 16323.dasm - testout1:Sub_Funclet_183():int (FullOpts)
4 (7.14 % of base) : 248766.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-1024 (-47.15 % of base) : 334729.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-292 (-2.86 % of base) : 255348.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
-84 (-1.38 % of base) : 622185.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-84 (-1.38 % of base) : 621456.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-68 (-2.34 % of base) : 615633.dasm - ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2[ILCompiler.DependencyAnalysisFramework.NoLogStrategy`1[System.__Canon],System.__Canon]:ProcessMarkStack():this (Tier1)
-52 (-30.95 % of base) : 239576.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-48 (-1.54 % of base) : 316603.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<TEST_MultipleConnectPortsSuspend>d__2:MoveNext():this (FullOpts)
-44 (-55.00 % of base) : 242759.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-40 (-0.48 % of base) : 197950.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-1.17 % of base) : 239154.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-40 (-1.17 % of base) : 244113.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-36 (-5.70 % of base) : 314645.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-36 (-25.71 % of base) : 254701.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-36 (-28.12 % of base) : 236227.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-32 (-12.70 % of base) : 17616.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 17690.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-43.75 % of base) : 236186.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-43.75 % of base) : 242707.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-11.11 % of base) : 17200.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-28 (-11.11 % of base) : 17274.dasm - testout1:Sub_Funclet_181():int (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 248766.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
12 (6.25 % of base) : 16247.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 15830.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 15906.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 16323.dasm - testout1:Sub_Funclet_183():int (FullOpts)
Top method improvements (percentages):
-44 (-55.00 % of base) : 242759.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-1024 (-47.15 % of base) : 334729.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-28 (-43.75 % of base) : 236186.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-43.75 % of base) : 242707.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-52 (-30.95 % of base) : 239576.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-36 (-28.12 % of base) : 236227.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-36 (-25.71 % of base) : 254701.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-20 (-20.00 % of base) : 20019.dasm - filter1:f4() (FullOpts)
-28 (-14.00 % of base) : 16358.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-28 (-14.00 % of base) : 15941.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-32 (-12.70 % of base) : 17616.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 17690.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-20 (-12.50 % of base) : 236184.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-20 (-12.50 % of base) : 242706.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-11.11 % of base) : 17200.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-28 (-11.11 % of base) : 17274.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-10.94 % of base) : 17312.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-28 (-10.94 % of base) : 17728.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-20 (-10.87 % of base) : 240737.dasm - BoxTest_enum_il.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
-24 (-10.00 % of base) : 238832.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
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: 55844164 (overridden on cmd)
Total bytes of diff: 55842504 (overridden on cmd)
Total bytes of delta: -1660 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-660 : 170313.dasm (-88.24 % of base)
-144 : 46348.dasm (-18.46 % of base)
-112 : 41766.dasm (-5.27 % of base)
-56 : 177457.dasm (-0.21 % of base)
-36 : 140796.dasm (-2.17 % of base)
-36 : 75727.dasm (-8.18 % of base)
-32 : 220578.dasm (-12.70 % of base)
-28 : 48221.dasm (-1.29 % of base)
-28 : 49089.dasm (-9.86 % of base)
-28 : 77015.dasm (-11.48 % of base)
-24 : 155645.dasm (-2.08 % of base)
-24 : 178239.dasm (-2.09 % of base)
-24 : 211368.dasm (-1.20 % of base)
-24 : 211529.dasm (-3.53 % of base)
-24 : 47156.dasm (-0.53 % of base)
-20 : 141928.dasm (-3.14 % of base)
-20 : 220415.dasm (-8.62 % of base)
-20 : 55600.dasm (-3.65 % of base)
-20 : 81302.dasm (-6.58 % of base)
-16 : 94940.dasm (-4.00 % of base)
48 total files with Code Size differences (48 improved, 0 regressed), 6 unchanged.
Top method improvements (bytes):
-660 (-88.24 % of base) : 170313.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-144 (-18.46 % of base) : 46348.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-112 (-5.27 % of base) : 41766.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.21 % of base) : 177457.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-36 (-8.18 % of base) : 75727.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-2.17 % of base) : 140796.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-32 (-12.70 % of base) : 220578.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 77015.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-28 (-9.86 % of base) : 49089.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-1.29 % of base) : 48221.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-0.53 % of base) : 47156.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-2.09 % of base) : 178239.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-24 (-3.53 % of base) : 211529.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-1.20 % of base) : 211368.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-24 (-2.08 % of base) : 155645.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-20 (-3.65 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-20 (-6.58 % of base) : 81302.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-20 (-3.14 % of base) : 141928.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
-20 (-8.62 % of base) : 220415.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-16 (-4.04 % of base) : 72449.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
Top method improvements (percentages):
-660 (-88.24 % of base) : 170313.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-144 (-18.46 % of base) : 46348.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-32 (-12.70 % of base) : 220578.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 77015.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-28 (-9.86 % of base) : 49089.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-20 (-8.62 % of base) : 220415.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-8.18 % of base) : 75727.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.02 % of base) : 220504.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-6.58 % of base) : 81302.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-16 (-5.48 % of base) : 141729.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
-112 (-5.27 % of base) : 41766.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-12 (-5.17 % of base) : 178427.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
-12 (-4.35 % of base) : 233162.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
-16 (-4.04 % of base) : 72449.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-4.00 % of base) : 94940.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-12 (-3.95 % of base) : 219364.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.65 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-8 (-3.64 % of base) : 220559.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
-24 (-3.53 % of base) : 211529.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-16 (-3.51 % of base) : 210027.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (FullOpts)
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: 76294956 (overridden on cmd)
Total bytes of diff: 76291396 (overridden on cmd)
Total bytes of delta: -3560 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 132951.dasm (0.28 % of base)
Top file improvements (bytes):
-660 : 168772.dasm (-87.30 % of base)
-108 : 77025.dasm (-2.29 % of base)
-72 : 46540.dasm (-4.46 % of base)
-64 : 18152.dasm (-4.10 % of base)
-64 : 217243.dasm (-4.10 % of base)
-56 : 211526.dasm (-0.19 % of base)
-40 : 115605.dasm (-0.40 % of base)
-40 : 180384.dasm (-2.33 % of base)
-36 : 174767.dasm (-5.70 % of base)
-36 : 174773.dasm (-3.70 % of base)
-36 : 80553.dasm (-7.89 % of base)
-32 : 10126.dasm (-4.82 % of base)
-32 : 115784.dasm (-0.66 % of base)
-32 : 17718.dasm (-0.90 % of base)
-32 : 10124.dasm (-4.82 % of base)
-32 : 231369.dasm (-6.90 % of base)
-32 : 257941.dasm (-13.33 % of base)
-32 : 10125.dasm (-4.82 % of base)
-28 : 49319.dasm (-5.56 % of base)
-24 : 231370.dasm (-5.66 % of base)
47 total files with Code Size differences (46 improved, 1 regressed), 13 unchanged.
Top method regressions (bytes):
8 (0.28 % of base) : 132951.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
Top method improvements (bytes):
-660 (-87.30 % of base) : 168772.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-108 (-2.29 % of base) : 77025.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.46 % of base) : 46540.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-4.10 % of base) : 18152.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-64 (-4.10 % of base) : 217243.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-56 (-0.19 % of base) : 211526.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-40 (-0.40 % of base) : 115605.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
-40 (-2.33 % of base) : 180384.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-5.70 % of base) : 174767.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-36 (-3.70 % of base) : 174773.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:Scavenge():int:this (FullOpts)
-36 (-7.89 % of base) : 80553.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-0.90 % of base) : 17718.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-32 (-0.66 % of base) : 115784.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:AddGroupClassMembersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
-32 (-6.90 % of base) : 231369.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-32 (-13.33 % of base) : 257941.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-4.82 % of base) : 10126.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-4.82 % of base) : 10125.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-4.82 % of base) : 10124.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-28 (-5.56 % of base) : 49319.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-0.34 % of base) : 47325.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
Top method regressions (percentages):
8 (0.28 % of base) : 132951.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
Top method improvements (percentages):
-660 (-87.30 % of base) : 168772.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-32 (-13.33 % of base) : 257941.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-12.00 % of base) : 3108.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-11.54 % of base) : 295540.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-4 (-11.11 % of base) : 260039.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
-12 (-11.11 % of base) : 295539.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
-12 (-11.11 % of base) : 3096.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-9.68 % of base) : 295541.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-20 (-9.09 % of base) : 257960.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-8.11 % of base) : 295538.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 80553.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.41 % of base) : 257937.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-6.90 % of base) : 231369.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-20 (-6.41 % of base) : 223186.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-6.41 % of base) : 24813.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-5.88 % of base) : 110760.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-36 (-5.70 % of base) : 174767.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-24 (-5.66 % of base) : 231370.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-28 (-5.56 % of base) : 49319.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-16 (-5.48 % of base) : 199403.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (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: 395684632 (overridden on cmd)
Total bytes of diff: 395663000 (overridden on cmd)
Total bytes of delta: -21632 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
40 : 679497.dasm (3.83 % of base)
32 : 523394.dasm (8.16 % of base)
24 : 199283.dasm (1.15 % of base)
20 : 688151.dasm (1.18 % of base)
16 : 200182.dasm (5.97 % of base)
16 : 284503.dasm (0.90 % of base)
16 : 646839.dasm (0.55 % of base)
12 : 310708.dasm (1.69 % of base)
12 : 682730.dasm (1.05 % of base)
8 : 219861.dasm (1.79 % of base)
8 : 310695.dasm (0.83 % of base)
8 : 329089.dasm (0.11 % of base)
8 : 375342.dasm (0.85 % of base)
8 : 553999.dasm (0.80 % of base)
8 : 579268.dasm (0.83 % of base)
8 : 197785.dasm (0.55 % of base)
8 : 197854.dasm (0.36 % of base)
4 : 229524.dasm (0.20 % of base)
4 : 506548.dasm (0.60 % of base)
4 : 521660.dasm (0.39 % of base)
Top file improvements (bytes):
-168 : 25806.dasm (-2.49 % of base)
-168 : 75419.dasm (-2.48 % of base)
-140 : 17298.dasm (-1.40 % of base)
-116 : 60492.dasm (-0.58 % of base)
-116 : 39590.dasm (-1.68 % of base)
-108 : 480741.dasm (-0.57 % of base)
-100 : 480739.dasm (-0.55 % of base)
-96 : 480742.dasm (-0.51 % of base)
-96 : 480740.dasm (-0.52 % of base)
-96 : 76745.dasm (-0.76 % of base)
-92 : 376004.dasm (-1.09 % of base)
-92 : 75049.dasm (-0.93 % of base)
-88 : 361316.dasm (-1.08 % of base)
-84 : 271015.dasm (-1.38 % of base)
-84 : 622019.dasm (-2.89 % of base)
-80 : 71030.dasm (-0.53 % of base)
-80 : 630244.dasm (-1.92 % of base)
-76 : 706723.dasm (-0.46 % of base)
-72 : 296353.dasm (-4.53 % of base)
-72 : 692073.dasm (-3.06 % of base)
65 total files with Code Size differences (43 improved, 22 regressed), 20 unchanged.
Top method regressions (bytes):
40 (3.83 % of base) : 679497.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArray[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]](System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]],System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
32 (8.16 % of base) : 523394.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
24 (1.15 % of base) : 199283.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
20 (1.18 % of base) : 688151.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
16 (5.97 % of base) : 200182.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
16 (0.90 % of base) : 284503.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
16 (0.55 % of base) : 646839.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.SimpleTestStruct]:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this (Tier1)
12 (1.05 % of base) : 682730.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
12 (1.69 % of base) : 310708.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
8 (1.79 % of base) : 219861.dasm - Microsoft.DotNet.XUnitExtensions.SkipOnTargetFrameworkDiscoverer:GetTraits(Xunit.Abstractions.IAttributeInfo):System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.String]]:this (Tier1)
8 (0.55 % of base) : 197785.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
8 (0.36 % of base) : 197854.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
8 (0.83 % of base) : 310695.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
8 (0.11 % of base) : 329089.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<ReadWrite_Success>d__29:MoveNext():this (Tier1-OSR)
8 (0.85 % of base) : 375342.dasm - System.Net.SocketAddress:.ctor(System.Net.IPAddress):this (Tier1)
8 (0.83 % of base) : 579268.dasm - System.Net.SocketAddress:.ctor(System.Net.IPAddress):this (Tier1)
8 (0.80 % of base) : 553999.dasm - System.Security.Cryptography.LiteHashProvider:ProcessStream[System.Security.Cryptography.LiteHash](System.Security.Cryptography.LiteHash,System.IO.Stream,System.Span`1[ubyte]):int (Tier1)
4 (1.18 % of base) : 687441.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
4 (0.20 % of base) : 229524.dasm - System.Collections.Tests.ICollection_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[int,int]]:ICollection_Generic_Contains_DefaultValueOnCollectionNotContainingDefaultValue(int):this (Tier1)
4 (0.60 % of base) : 506548.dasm - System.Numerics.BigInteger:op_Implicit(System.Int128):System.Numerics.BigInteger (Tier1)
Top method improvements (bytes):
-168 (-2.49 % of base) : 25806.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-168 (-2.48 % of base) : 75419.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-140 (-1.40 % of base) : 17298.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-116 (-0.58 % of base) : 60492.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-116 (-1.68 % of base) : 39590.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-108 (-0.57 % of base) : 480741.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier1)
-100 (-0.55 % of base) : 480739.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier1)
-96 (-0.76 % of base) : 76745.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-96 (-0.52 % of base) : 480740.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (Tier1)
-96 (-0.51 % of base) : 480742.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier1)
-92 (-0.93 % of base) : 75049.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-92 (-1.09 % of base) : 376004.dasm - System.Net.Tests.HttpListenerRequestTests+<Cookies_GetProperty_ReturnsExpected>d__36:MoveNext():this (Tier1)
-88 (-1.08 % of base) : 361316.dasm - System.SpanTests.SpanTests:TestMatchMany_Char() (Tier1-OSR)
-84 (-1.38 % of base) : 271015.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-84 (-2.89 % of base) : 622019.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,System.__Canon]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
-80 (-0.53 % of base) : 71030.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-80 (-1.92 % of base) : 630244.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,int]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
-76 (-0.46 % of base) : 706723.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-72 (-3.06 % of base) : 692073.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-72 (-4.53 % of base) : 296353.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (Tier0-FullOpts)
Top method regressions (percentages):
32 (8.16 % of base) : 523394.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
16 (5.97 % of base) : 200182.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
40 (3.83 % of base) : 679497.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArray[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]](System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]],System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
4 (2.08 % of base) : 521665.dasm - System.Xml.EncodingStreamWrapper:FillBuffer(int):this (Tier1)
8 (1.79 % of base) : 219861.dasm - Microsoft.DotNet.XUnitExtensions.SkipOnTargetFrameworkDiscoverer:GetTraits(Xunit.Abstractions.IAttributeInfo):System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.String]]:this (Tier1)
12 (1.69 % of base) : 310708.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
20 (1.18 % of base) : 688151.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
4 (1.18 % of base) : 687441.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
24 (1.15 % of base) : 199283.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
12 (1.05 % of base) : 682730.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
16 (0.90 % of base) : 284503.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
8 (0.85 % of base) : 375342.dasm - System.Net.SocketAddress:.ctor(System.Net.IPAddress):this (Tier1)
8 (0.83 % of base) : 310695.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
8 (0.83 % of base) : 579268.dasm - System.Net.SocketAddress:.ctor(System.Net.IPAddress):this (Tier1)
8 (0.80 % of base) : 553999.dasm - System.Security.Cryptography.LiteHashProvider:ProcessStream[System.Security.Cryptography.LiteHash](System.Security.Cryptography.LiteHash,System.IO.Stream,System.Span`1[ubyte]):int (Tier1)
4 (0.60 % of base) : 506548.dasm - System.Numerics.BigInteger:op_Implicit(System.Int128):System.Numerics.BigInteger (Tier1)
16 (0.55 % of base) : 646839.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Text.Json.Serialization.Tests.SimpleTestStruct]:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this (Tier1)
8 (0.55 % of base) : 197785.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
4 (0.39 % of base) : 521660.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (Tier1)
8 (0.36 % of base) : 197854.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
Top method improvements (percentages):
-68 (-43.59 % of base) : 640257.dasm - System.Text.Json.JsonSerializerOptions:ConfigureForJsonSerializer():this (Tier1)
-20 (-20.83 % of base) : 706784.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 63979.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 93021.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 177617.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 58171.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
-12 (-20.00 % of base) : 375343.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-12 (-20.00 % of base) : 473722.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-12 (-20.00 % of base) : 575301.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-28 (-17.07 % of base) : 681571.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-24 (-16.67 % of base) : 687186.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
-24 (-14.63 % of base) : 670970.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-12 (-14.29 % of base) : 372178.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[double](double,double,System.String) (Tier1)
-20 (-13.89 % of base) : 223695.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-12.50 % of base) : 694962.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`2[uint,ushort],System.__Canon]:CopyToPairs(System.Collections.Generic.KeyValuePair`2[System.ValueTuple`2[uint,ushort],System.__Canon][],int):this (Tier1)
-20 (-12.50 % of base) : 670933.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-12.00 % of base) : 103497.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 45855.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 82071.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 220653.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
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: 165003540 (overridden on cmd)
Total bytes of diff: 164999696 (overridden on cmd)
Total bytes of delta: -3844 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-108 : 19358.dasm (-2.39 % of base)
-72 : 115886.dasm (-4.57 % of base)
-56 : 59123.dasm (-0.19 % of base)
-48 : 212636.dasm (-1.63 % of base)
-48 : 213059.dasm (-1.63 % of base)
-48 : 212761.dasm (-1.66 % of base)
-48 : 212906.dasm (-1.66 % of base)
-40 : 42727.dasm (-0.48 % of base)
-40 : 48622.dasm (-0.48 % of base)
-40 : 4967.dasm (-0.48 % of base)
-40 : 91812.dasm (-2.42 % of base)
-36 : 76883.dasm (-10.59 % of base)
-36 : 56614.dasm (-7.89 % of base)
-32 : 188167.dasm (-5.26 % of base)
-32 : 20021.dasm (-2.55 % of base)
-32 : 13910.dasm (-7.92 % of base)
-32 : 188174.dasm (-5.26 % of base)
-32 : 12196.dasm (-1.77 % of base)
-32 : 148932.dasm (-13.33 % of base)
-32 : 5575.dasm (-0.97 % of base)
49 total files with Code Size differences (49 improved, 0 regressed), 19 unchanged.
Top method improvements (bytes):
-108 (-2.39 % of base) : 19358.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 115886.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.19 % of base) : 59123.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-48 (-1.63 % of base) : 213059.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeNumberTest() (FullOpts)
-48 (-1.63 % of base) : 212636.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeTest() (FullOpts)
-48 (-1.66 % of base) : 212761.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
-48 (-1.66 % of base) : 212906.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
-40 (-0.48 % of base) : 42727.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-0.48 % of base) : 48622.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-0.48 % of base) : 4967.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-2.42 % of base) : 91812.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-7.89 % of base) : 56614.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-10.59 % of base) : 76883.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-32 (-7.92 % of base) : 13910.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-32 (-1.77 % of base) : 12196.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-32 (-2.55 % of base) : 20021.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsCustom(byref,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-32 (-0.97 % of base) : 5575.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-32 (-13.33 % of base) : 148932.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-5.26 % of base) : 188174.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-5.26 % of base) : 188167.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-24 (-17.14 % of base) : 42982.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 48907.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 5399.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-32 (-13.33 % of base) : 148932.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-10.59 % of base) : 76883.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-20 (-9.09 % of base) : 148857.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-8.77 % of base) : 10417.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 15543.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-32 (-7.92 % of base) : 13910.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-36 (-7.89 % of base) : 56614.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-28 (-7.61 % of base) : 20793.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 20778.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-16 (-7.41 % of base) : 148862.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-7.35 % of base) : 267392.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-20 (-7.14 % of base) : 51916.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.94 % of base) : 44528.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.76 % of base) : 14763.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.41 % of base) : 12823.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
-28 (-5.56 % of base) : 23852.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-20 (-5.49 % of base) : 51913.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:TryGetFirstTwoWorseResults(byref,byref):int: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: 15903772 (overridden on cmd)
Total bytes of diff: 15902432 (overridden on cmd)
Total bytes of delta: -1340 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-224 : 5080.dasm (-37.09 % of base)
-108 : 22696.dasm (-2.28 % of base)
-72 : 5795.dasm (-4.57 % of base)
-64 : 9179.dasm (-3.06 % of base)
-48 : 12089.dasm (-3.23 % of base)
-36 : 27168.dasm (-7.89 % of base)
-32 : 22721.dasm (-2.03 % of base)
-32 : 7857.dasm (-5.76 % of base)
-32 : 1916.dasm (-3.36 % of base)
-28 : 10700.dasm (-20.59 % of base)
-28 : 25096.dasm (-5.56 % of base)
-28 : 10658.dasm (-2.19 % of base)
-28 : 15098.dasm (-7.61 % of base)
-28 : 10703.dasm (-3.68 % of base)
-28 : 15080.dasm (-7.61 % of base)
-24 : 19405.dasm (-0.36 % of base)
-24 : 1410.dasm (-2.88 % of base)
-24 : 22411.dasm (-1.50 % of base)
-24 : 22538.dasm (-1.97 % of base)
-24 : 25364.dasm (-1.12 % of base)
48 total files with Code Size differences (48 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-224 (-37.09 % of base) : 5080.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-108 (-2.28 % of base) : 22696.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 5795.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-3.06 % of base) : 9179.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-48 (-3.23 % of base) : 12089.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 27168.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-3.36 % of base) : 1916.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-32 (-5.76 % of base) : 7857.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-32 (-2.03 % of base) : 22721.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-28 (-2.19 % of base) : 10658.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
-28 (-20.59 % of base) : 10700.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-28 (-3.68 % of base) : 10703.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-28 (-5.56 % of base) : 25096.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-7.61 % of base) : 15098.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 15080.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-2.88 % of base) : 1410.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-24 (-1.50 % of base) : 22411.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-24 (-0.36 % of base) : 19405.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-1.12 % of base) : 25364.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-1.97 % of base) : 22538.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
Top method improvements (percentages):
-224 (-37.09 % of base) : 5080.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-28 (-20.59 % of base) : 10700.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-20 (-8.93 % of base) : 23091.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 23831.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-36 (-7.89 % of base) : 27168.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-28 (-7.61 % of base) : 15098.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 15080.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-20 (-7.35 % of base) : 24329.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-32 (-5.76 % of base) : 7857.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-28 (-5.56 % of base) : 25096.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-12 (-4.84 % of base) : 28443.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-72 (-4.57 % of base) : 5795.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-16 (-4.00 % of base) : 20422.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-8 (-3.92 % of base) : 21783.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
-20 (-3.79 % of base) : 27104.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-28 (-3.68 % of base) : 10703.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-8 (-3.64 % of base) : 22213.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
-12 (-3.57 % of base) : 14848.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-32 (-3.36 % of base) : 1916.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-48 (-3.23 % of base) : 12089.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte: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: 2946836 (overridden on cmd)
Total bytes of diff: 2946600 (overridden on cmd)
Total bytes of delta: -236 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-96 : 7885.dasm (-4.47 % of base)
-36 : 8871.dasm (-7.14 % of base)
-24 : 8618.dasm (-6.25 % of base)
-24 : 8619.dasm (-5.31 % of base)
-16 : 4139.dasm (-1.06 % of base)
-12 : 18962.dasm (-0.44 % of base)
-12 : 5311.dasm (-0.44 % of base)
-12 : 5845.dasm (-0.77 % of base)
-4 : 429.dasm (-0.18 % of base)
9 total files with Code Size differences (9 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-96 (-4.47 % of base) : 7885.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-36 (-7.14 % of base) : 8871.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-24 (-5.31 % of base) : 8619.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-24 (-6.25 % of base) : 8618.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-16 (-1.06 % of base) : 4139.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
-12 (-0.44 % of base) : 18962.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.44 % of base) : 5311.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.77 % of base) : 5845.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-4 (-0.18 % of base) : 429.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
Top method improvements (percentages):
-36 (-7.14 % of base) : 8871.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-24 (-6.25 % of base) : 8618.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-24 (-5.31 % of base) : 8619.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-96 (-4.47 % of base) : 7885.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-16 (-1.06 % of base) : 4139.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
-12 (-0.77 % of base) : 5845.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-12 (-0.44 % of base) : 5311.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.44 % of base) : 18962.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-4 (-0.18 % of base) : 429.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
9 total methods with Code Size differences (9 improved, 0 regressed).
linux x64
Diffs are based on 2,517,901 contexts (991,070 MinOpts, 1,526,831 FullOpts).
MISSED contexts: 8 (0.00%)
Overall (-50,401 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.x64.checked.mch |
14,336,870 |
-452 |
| benchmarks.run_pgo.linux.x64.checked.mch |
71,576,886 |
-5,152 |
| benchmarks.run_tiered.linux.x64.checked.mch |
21,435,874 |
-261 |
| coreclr_tests.run.linux.x64.checked.mch |
403,711,765 |
-6,251 |
| libraries.crossgen2.linux.x64.checked.mch |
38,727,287 |
-1,610 |
| libraries.pmi.linux.x64.checked.mch |
60,419,954 |
-3,269 |
| libraries_tests.run.linux.x64.Release.mch |
337,103,194 |
-28,438 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
132,558,776 |
-3,717 |
| realworld.run.linux.x64.checked.mch |
13,175,161 |
-1,056 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
4,234,681 |
-195 |
FullOpts (-50,401 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.x64.checked.mch |
14,037,567 |
-452 |
| benchmarks.run_pgo.linux.x64.checked.mch |
47,776,897 |
-5,152 |
| benchmarks.run_tiered.linux.x64.checked.mch |
3,695,094 |
-261 |
| coreclr_tests.run.linux.x64.checked.mch |
123,957,063 |
-6,251 |
| libraries.crossgen2.linux.x64.checked.mch |
38,726,089 |
-1,610 |
| libraries.pmi.linux.x64.checked.mch |
60,307,097 |
-3,269 |
| libraries_tests.run.linux.x64.Release.mch |
153,343,501 |
-28,438 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
121,941,008 |
-3,717 |
| realworld.run.linux.x64.checked.mch |
12,789,277 |
-1,056 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
4,233,732 |
-195 |
Example diffs
benchmarks.run.linux.x64.checked.mch
-31 (-23.31%) : 27291.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> rbx this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T04] ( 3, 4 ) ref -> r15 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,11 +23,11 @@
; V12 tmp7 [V12,T06] ( 2, 3 ) ref -> r14 "field V03._originalStack (fldOffset=0x0)" P-INDEP
; V13 tmp8 [V13,T00] ( 8, 27 ) ref -> r13 "field V03._remainingStack (fldOffset=0x8)" P-INDEP
;* V14 cse0 [V14,T07] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V15 rat0 [V15,T03] ( 2, 4 ) long -> rdi "Spilling to split statement for tree"
+;* V15 rat0 [V15,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V16 rat1 [V16,T05] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V17 rat2 [V17,T02] ( 2, 4 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V17 rat2 [V17,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
@@ -35,12 +35,10 @@ G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push r14
push r13
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x28], rdi
+ lea rbp, [rsp+0x20]
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=24 bbWeight=1 PerfScore 7.00
+ ;; size=16 bbWeight=1 PerfScore 5.75
G_M64146_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
xor r15, r15
; gcrRegs +[r15]
@@ -53,14 +51,8 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[r14]
mov r13, rdx
; gcrRegs +[r13]
- mov rdi, qword ptr [rbx]
- mov rdi, qword ptr [rdi+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x20]
- test rdi, rdi
- jne SHORT G_M64146_IG04
jmp SHORT G_M64146_IG04
- ;; size=45 bbWeight=1 PerfScore 20.00
+ ;; size=26 bbWeight=1 PerfScore 10.75
G_M64146_IG03: ; bbWeight=2, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rdx r15]
mov rdi, r13
@@ -102,16 +94,15 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcrRegs +[rax]
;; size=3 bbWeight=1 PerfScore 0.25
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=9 bbWeight=1 PerfScore 3.50
-; Total bytes of code 133, prolog size 21, PerfScore 99.50, instruction count 44, allocated bytes for code 133 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 102, prolog size 13, PerfScore 88.75, instruction count 35, allocated bytes for code 102 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -119,12 +110,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 5
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: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
-24 (-8.42%) : 1561.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -40,9 +40,9 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 6.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rbx+0x60], 0
- jne G_M23091_IG08
+ jne G_M23091_IG07
test rcx, rcx
- je G_M23091_IG09
+ je G_M23091_IG08
lea rdi, bword ptr [rcx+0xAC]
; byrRegs +[rdi]
mov esi, 1
@@ -50,7 +50,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
lock
cmpxchg dword ptr [rdi], esi
test eax, eax
- jne G_M23091_IG10
+ jne G_M23091_IG09
mov dword ptr [rcx+0x94], 4
lea rdi, bword ptr [rcx+0x60]
mov rsi, rbx
@@ -61,19 +61,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0xBA], 0
- jne SHORT G_M23091_IG04
+ je SHORT G_M23091_IG04
;; size=80 bbWeight=1 PerfScore 33.25
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M23091_IG05
- jmp SHORT G_M23091_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -88,7 +79,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; byrRegs -[rdi]
nop
;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
mov rsi, gword ptr [rbx+0x08]
@@ -102,20 +93,20 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=1 PerfScore 6.75
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -124,7 +115,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 0x1D12
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -137,7 +128,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
; GC ptr vars +{V00 V01}
mov rdi, rcx
@@ -149,7 +140,7 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push r15
@@ -159,7 +150,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
; GC ptr vars -{V00 V01}
@@ -171,7 +162,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 285, prolog size 30, PerfScore 57.88, instruction count 77, allocated bytes for code 285 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 261, prolog size 30, PerfScore 53.75, instruction count 72, allocated bytes for code 261 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -204,4 +195,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-24 (-8.42%) : 1543.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -40,9 +40,9 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 6.50
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rbx+0x60], 0
- jne G_M29540_IG08
+ jne G_M29540_IG07
test rcx, rcx
- je G_M29540_IG09
+ je G_M29540_IG08
lea rdi, bword ptr [rcx+0xAC]
; byrRegs +[rdi]
mov esi, 1
@@ -50,7 +50,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
lock
cmpxchg dword ptr [rdi], esi
test eax, eax
- jne G_M29540_IG10
+ jne G_M29540_IG09
mov dword ptr [rcx+0x94], 7
lea rdi, bword ptr [rcx+0x60]
mov rsi, rbx
@@ -61,19 +61,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0xBA], 0
- jne SHORT G_M29540_IG04
+ je SHORT G_M29540_IG04
;; size=80 bbWeight=1 PerfScore 33.25
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M29540_IG05
- jmp SHORT G_M29540_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -88,7 +79,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; byrRegs -[rdi]
nop
;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
mov rsi, gword ptr [rbx+0x08]
@@ -102,20 +93,20 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=1 PerfScore 6.75
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -124,7 +115,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 0x1D12
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -137,7 +128,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
; GC ptr vars +{V00 V01}
mov rdi, rcx
@@ -149,7 +140,7 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push r15
@@ -159,7 +150,7 @@ G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
; GC ptr vars -{V00 V01}
@@ -171,7 +162,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 285, prolog size 30, PerfScore 57.88, instruction count 77, allocated bytes for code 285 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 261, prolog size 30, PerfScore 53.75, instruction count 72, allocated bytes for code 261 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -204,4 +195,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
-8 (-0.62%) : 2349.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (FullOpts)
@@ -14,8 +14,8 @@
; V03 loc1 [V03,T24] ( 4, 13 ) ref -> r15 class-hnd exact single-def <Microsoft.Win32.SafeHandles.SafeX509StoreCtxHandle>
;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 8) zero-ref <Interop+Crypto+X509VerifyStatusCode>
; V05 loc3 [V05,T15] ( 7, 19 ) ref -> [rbp-0x68] do-not-enreg[Z] class-hnd exact EH-live <Microsoft.Win32.SafeHandles.SafeX509Handle>
-; V06 loc4 [V06,T28] ( 3, 12 ) long -> rdi
-; V07 loc5 [V07 ] ( 11, 40 ) struct (16) [rbp-0x38] do-not-enreg[SBR] multireg-ret must-init ld-addr-op <System.ArraySegment`1[ubyte]>
+; V06 loc4 [V06,T27] ( 3, 12 ) long -> rdi
+; V07 loc5 [V07 ] ( 10, 40 ) struct (16) [rbp-0x38] do-not-enreg[SBR] multireg-ret must-init ld-addr-op <System.ArraySegment`1[ubyte]>
;* V08 loc6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Security.Cryptography.X509Certificates.X509Certificate2>
; V09 loc7 [V09,T29] ( 7, 11 ) ref -> [rbp-0x70] class-hnd exact EH-live spill-single-def <<unknown class>>
; V10 loc8 [V10,T18] ( 8, 15 ) int -> rbx
@@ -44,12 +44,12 @@
; V33 tmp15 [V33 ] ( 5, 40 ) struct (16) [rbp-0x48] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
;* V34 tmp16 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V35 tmp17 [V35,T07] ( 6, 24 ) ref -> r13 class-hnd "Inline return value spill temp" <System.Security.Cryptography.X509Certificates.X509Certificate2>
-; V36 tmp18 [V36,T26] ( 3, 12 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
+; V36 tmp18 [V36,T25] ( 3, 12 ) ref -> rax class-hnd exact "Inline stloc first use temp" <System.String>
;* V37 tmp19 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.TimeSpan>
;* V38 tmp20 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V39 tmp21 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
; V40 tmp22 [V40,T00] ( 7, 56 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V41 tmp23 [V41,T27] ( 3, 12 ) ref -> rdx class-hnd "Inline stloc first use temp" <<unknown class>>
+; V41 tmp23 [V41,T26] ( 3, 12 ) ref -> rdx class-hnd "Inline stloc first use temp" <<unknown class>>
; V42 tmp24 [V42,T19] ( 4, 16 ) int -> rsi "Inline stloc first use temp"
;* V43 tmp25 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V44 tmp26 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <Interop+Crypto+X509VerifyStatusCode>
@@ -91,7 +91,7 @@
;* V80 tmp62 [V80 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V81 tmp63 [V81,T10] ( 6, 23 ) int -> [rbp-0x4C] do-not-enreg[Z] EH-live "field V04.<Code>k__BackingField (fldOffset=0x0)" P-INDEP
; V82 tmp64 [V82,T11] ( 5, 20 ) ref -> [rbp-0x38] do-not-enreg[] "field V07._array (fldOffset=0x0)" P-DEP
-; V83 tmp65 [V83,T25] ( 4, 12 ) int -> [rbp-0x30] do-not-enreg[] "field V07._offset (fldOffset=0x8)" P-DEP
+; V83 tmp65 [V83,T28] ( 3, 12 ) int -> [rbp-0x30] do-not-enreg[] "field V07._offset (fldOffset=0x8)" P-DEP
; V84 tmp66 [V84,T20] ( 4, 16 ) int -> [rbp-0x2C] do-not-enreg[] "field V07._count (fldOffset=0xc)" P-DEP
; V85 tmp67 [V85,T16] ( 4, 18 ) byref -> r15 "field V11._reference (fldOffset=0x0)" P-INDEP
; V86 tmp68 [V86,T17] ( 4, 18 ) int -> r13 "field V11._length (fldOffset=0x8)" P-INDEP
@@ -176,7 +176,7 @@ G_M34496_IG02: ; bbWeight=1, gcVars=0000000000800020 {V00 V01}, gcrefRegs
mov r15, gword ptr [rdi+0x20]
; gcrRegs +[r15]
mov dword ptr [rbp-0x4C], 2
- jmp G_M34496_IG15
+ jmp G_M34496_IG14
;; size=18 bbWeight=1 PerfScore 5.25
G_M34496_IG03: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
@@ -195,7 +195,7 @@ G_M34496_IG04: ; bbWeight=4, gcVars=0000000000808020 {V00 V01 V05}, gcref
mov rdi, qword ptr [rdi+0x10]
; gcrRegs -[rdi]
cmp rdi, rbx
- je G_M34496_IG16
+ je G_M34496_IG15
mov rbx, rdi
mov rdi, gword ptr [rbp-0x68]
; gcrRegs +[rdi]
@@ -216,9 +216,9 @@ G_M34496_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
movzx rdi, byte ptr [r15+0x9D]
test edi, edi
- je G_M34496_IG16
+ je G_M34496_IG15
test edi, edi
- je G_M34496_IG16
+ je G_M34496_IG15
mov rdi, gword ptr [rbp-0x68]
; gcrRegs +[rdi]
call [<unknown method>]
@@ -232,12 +232,12 @@ G_M34496_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String):this]
; gcrRegs -[rax rdx rdi r15]
; gcr arg pop 0
- jmp G_M34496_IG16
+ jmp G_M34496_IG15
;; size=69 bbWeight=1 PerfScore 16.50
G_M34496_IG06: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
cmp gword ptr [rbp-0x38], 0
- je G_M34496_IG11
+ je G_M34496_IG10
mov edi, dword ptr [rbp-0x30]
mov esi, dword ptr [rbp-0x2C]
add rdi, rsi
@@ -266,7 +266,7 @@ G_M34496_IG06: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs -[rdx rdi] +[rax]
; gcr arg pop 0
test rax, rax
- jne G_M34496_IG12
+ jne G_M34496_IG11
xor r13, r13
; gcrRegs +[r13]
;; size=100 bbWeight=4 PerfScore 101.00
@@ -282,7 +282,7 @@ G_M34496_IG07: ; bbWeight=4, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
; gcrRegs -[rsi rdi]
; gcr arg pop 0
test r13, r13
- je G_M34496_IG16
+ je G_M34496_IG15
mov rax, bword ptr [rbp-0x60]
; byrRegs +[rax]
cmp gword ptr [rax], 0
@@ -338,7 +338,7 @@ G_M34496_IG08: ; bbWeight=4, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
; gcrRegs +[rdx]
mov esi, dword ptr [rdi+0x10]
cmp dword ptr [rdx+0x08], esi
- jbe SHORT G_M34496_IG13
+ jbe SHORT G_M34496_IG12
lea ecx, [rsi+0x01]
mov dword ptr [rdi+0x10], ecx
movsxd rsi, esi
@@ -361,7 +361,7 @@ G_M34496_IG09: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
mov dword ptr [rbp-0x4C], eax
- jmp SHORT G_M34496_IG14
+ jmp SHORT G_M34496_IG13
;; size=23 bbWeight=4 PerfScore 38.00
G_M34496_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
@@ -369,12 +369,7 @@ G_M34496_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M34496_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp dword ptr [rbp-0x30], 0
- jne SHORT G_M34496_IG10
- jmp SHORT G_M34496_IG10
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M34496_IG12: ; bbWeight=4, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref
+G_M34496_IG11: ; bbWeight=4, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rax r15]
mov rdi, rax
; gcrRegs +[rdi]
@@ -386,7 +381,7 @@ G_M34496_IG12: ; bbWeight=4, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {},
; gcrRegs +[r13]
jmp G_M34496_IG07
;; size=20 bbWeight=4 PerfScore 23.00
-G_M34496_IG13: ; bbWeight=4, gcrefRegs=A080 {rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M34496_IG12: ; bbWeight=4, gcrefRegs=A080 {rdi r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rdi]
mov rsi, r13
; gcrRegs +[rsi]
@@ -395,7 +390,7 @@ G_M34496_IG13: ; bbWeight=4, gcrefRegs=A080 {rdi r13 r15}, byrefRegs=0000
; gcr arg pop 0
jmp SHORT G_M34496_IG09
;; size=11 bbWeight=4 PerfScore 21.00
-G_M34496_IG14: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M34496_IG13: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbp-0x68]
; gcrRegs +[rdi]
; GC ptr vars -{V05}
@@ -403,36 +398,36 @@ G_M34496_IG14: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi]
; gcr arg pop 0
;; size=10 bbWeight=4 PerfScore 16.00
-G_M34496_IG15: ; bbWeight=8, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M34496_IG14: ; bbWeight=8, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x4C], 2
je G_M34496_IG03
cmp dword ptr [rbp-0x4C], 20
- jne SHORT G_M34496_IG18
+ jne SHORT G_M34496_IG17
jmp G_M34496_IG03
;; size=21 bbWeight=8 PerfScore 64.00
-G_M34496_IG16: ; bbWeight=1, gcVars=0000000000808020 {V00 V01 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34496_IG15: ; bbWeight=1, gcVars=0000000000808020 {V00 V01 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r15]
; GC ptr vars +{V05 V15}
mov rdi, qword ptr [rbp-0x90]
- call G_M34496_IG42
+ call G_M34496_IG41
;; size=12 bbWeight=1 PerfScore 2.00
-G_M34496_IG17: ; bbWeight=1, nogc, extend
+G_M34496_IG16: ; bbWeight=1, nogc, extend
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M34496_IG18: ; bbWeight=1, gcVars=0000000000800020 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M34496_IG17: ; bbWeight=1, gcVars=0000000000800020 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V05 V15}
test byte ptr [(reloc)], 1 ; global ptr
- je G_M34496_IG41
+ je G_M34496_IG40
;; size=13 bbWeight=1 PerfScore 4.00
-G_M34496_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M34496_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov edi, dword ptr [rdi]
cmp dword ptr [rbp-0x4C], edi
- jne G_M34496_IG38
+ jne G_M34496_IG37
mov rax, bword ptr [rbp-0x60]
; byrRegs +[rax]
cmp gword ptr [rax], 0
- je G_M34496_IG38
+ je G_M34496_IG37
mov rdi, gword ptr [rbp-0x58]
; gcrRegs +[rdi]
mov rdi, gword ptr [rdi+0x20]
@@ -444,7 +439,7 @@ G_M34496_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x70], rax
; GC ptr vars +{V09}
;; size=53 bbWeight=1 PerfScore 17.25
-G_M34496_IG20: ; bbWeight=1, gcVars=0000000020000020 {V01 V09}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M34496_IG19: ; bbWeight=1, gcVars=0000000020000020 {V01 V09}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
mov rdi, rax
; gcrRegs +[rdi]
call [<unknown method>]
@@ -457,11 +452,11 @@ G_M34496_IG20: ; bbWeight=1, gcVars=0000000020000020 {V01 V09}, gcrefRegs
xor r14, r14
; gcrRegs +[r14]
cmp ebx, 10
- jg SHORT G_M34496_IG22
+ jg SHORT G_M34496_IG21
cmp ebx, 10
- ja G_M34496_IG33
+ ja G_M34496_IG32
test ebx, ebx
- jge SHORT G_M34496_IG21
+ jge SHORT G_M34496_IG20
mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
@@ -471,15 +466,15 @@ G_M34496_IG20: ; bbWeight=1, gcVars=0000000020000020 {V01 V09}, gcrefRegs
; byrRegs +[r15]
; gcr arg pop 0
;; size=69 bbWeight=1 PerfScore 14.75
-G_M34496_IG21: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8000 {r15}, byref, isz
+G_M34496_IG20: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=8000 {r15}, byref, isz
mov r13d, ebx
- jmp SHORT G_M34496_IG24
+ jmp SHORT G_M34496_IG23
;; size=5 bbWeight=1 PerfScore 2.25
-G_M34496_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M34496_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[r15]
imul r13d, ebx, 8
- jo G_M34496_IG34
+ jo G_M34496_IG33
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
@@ -490,14 +485,14 @@ G_M34496_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov r14, rax
; gcrRegs +[r14]
test r14, r14
- jne G_M34496_IG35
+ jne G_M34496_IG34
test r13d, r13d
- jne G_M34496_IG33
+ jne G_M34496_IG32
xor r15, r15
; byrRegs +[r15]
...
-34 (-0.28%) : 14177.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T166] ( 2, 8 ) int -> rdx "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T167] ( 2, 8 ) int -> rdx "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T168] ( 2, 8 ) int -> rdx "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T348] ( 3, 1.50) long -> rdx single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T348] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T349] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -108,7 +108,7 @@
;* V97 tmp84 [V97 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V98 tmp85 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V99 tmp86 [V99 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V100 tmp87 [V100,T120] ( 3, 10 ) long -> rcx "Inline stloc first use temp"
+; V100 tmp87 [V100,T120] ( 2, 8 ) long -> rcx "Inline stloc first use temp"
;* V101 tmp88 [V101,T127] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V102 tmp89 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -522,7 +522,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov r12, qword ptr [r13+0x60]
call [r12+0x10]<unknown method>
; gcrRegs -[rbx rsi rdi]
- jmp G_M11467_IG271
+ jmp G_M11467_IG269
;; size=33 bbWeight=0.50 PerfScore 5.75
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14-r15]
@@ -571,12 +571,12 @@ G_M11467_IG05: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
; gcrRegs +[rax]
mov edi, dword ptr [rax+0x08]
test edi, edi
- jl G_M11467_IG274
+ jl G_M11467_IG272
mov dword ptr [rbp-0x2C], edi
test edi, edi
jle G_M11467_IG46
cmp dword ptr [rax+0x08], 0
- jbe G_M11467_IG273
+ jbe G_M11467_IG271
movzx rdx, byte ptr [rax+0x10]
mov r8d, edx
mov dword ptr [rbp-0x64], r8d
@@ -737,7 +737,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov eax, edi
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -752,7 +752,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
lea edx, [rdi+0x01]
; gcrRegs -[rdx]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edx, [rdi+0x01]
movzx rdx, word ptr [rax+2*rdx+0x10]
mov word ptr [r14+0x14], dx
@@ -764,7 +764,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs +[rax]
lea edx, [rdi+0x02]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add edi, 2
mov edx, edi
movzx rdx, word ptr [rax+2*rdx+0x10]
@@ -778,7 +778,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov r8, rdx
; gcrRegs +[r8]
cmp r9d, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov edx, r9d
; gcrRegs -[rdx]
movzx rdx, word ptr [r8+2*rdx+0x10]
@@ -791,7 +791,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs +[r8]
lea edx, [r9+0x01]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edx, [r9+0x01]
movzx rdx, word ptr [r8+2*rdx+0x10]
mov word ptr [r14+0x1A], dx
@@ -805,7 +805,7 @@ G_M11467_IG23: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs +[rdx]
lea edi, [r9+0x02]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add r9d, 2
mov edi, r9d
movzx rdx, word ptr [rdx+2*rdi+0x10]
@@ -814,7 +814,7 @@ G_M11467_IG23: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov rdx, r8
; gcrRegs +[rdx]
cmp esi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov edi, esi
movzx rdx, word ptr [rdx+2*rdi+0x10]
; gcrRegs -[rdx]
@@ -823,7 +823,7 @@ G_M11467_IG23: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs +[rdx]
lea edi, [rsi+0x01]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edi, [rsi+0x01]
movzx rdx, word ptr [rdx+2*rdi+0x10]
; gcrRegs -[rdx]
@@ -832,7 +832,7 @@ G_M11467_IG23: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs +[rdx]
lea edi, [rsi+0x02]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add esi, 2
mov edi, esi
movzx rdx, word ptr [rdx+2*rdi+0x10]
@@ -860,7 +860,7 @@ G_M11467_IG25: ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov rdx, gword ptr [rbp-0x110]
; gcrRegs +[rdx]
cmp eax, dword ptr [rdx+0x08]
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov dword ptr [rbp-0x30], eax
mov esi, eax
movzx r8, byte ptr [rdx+rsi+0x10]
@@ -1039,7 +1039,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov r8, gword ptr [rdx]
; gcrRegs +[r8]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov edx, edi
movzx rdx, word ptr [r8+2*rdx+0x10]
mov word ptr [r14+0x12], dx
@@ -1051,7 +1051,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[r8]
lea edx, [rdi+0x01]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edx, [rdi+0x01]
movzx rdx, word ptr [r8+2*rdx+0x10]
mov word ptr [r14+0x14], dx
@@ -1063,7 +1063,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[r8]
lea edx, [rdi+0x02]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add edi, 2
mov edx, edi
movzx rdx, word ptr [r8+2*rdx+0x10]
@@ -1075,7 +1075,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov r8, gword ptr [rdx]
; gcrRegs +[r8]
cmp ecx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov edx, ecx
movzx rdx, word ptr [r8+2*rdx+0x10]
mov word ptr [r14+0x18], dx
@@ -1087,7 +1087,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[r8]
lea edx, [rcx+0x01]
cmp edx, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edx, [rcx+0x01]
movzx rdx, word ptr [r8+2*rdx+0x10]
mov word ptr [r14+0x1A], dx
@@ -1101,7 +1101,7 @@ G_M11467_IG44: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[rdx]
lea edi, [rcx+0x02]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add ecx, 2
mov edi, ecx
movzx rdx, word ptr [rdx+2*rdi+0x10]
@@ -1110,7 +1110,7 @@ G_M11467_IG44: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov rdx, r8
; gcrRegs +[rdx]
cmp esi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
mov edi, esi
movzx rdx, word ptr [rdx+2*rdi+0x10]
; gcrRegs -[rdx]
@@ -1119,7 +1119,7 @@ G_M11467_IG44: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[rdx]
lea edi, [rsi+0x01]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
lea edi, [rsi+0x01]
movzx rdx, word ptr [rdx+2*rdi+0x10]
; gcrRegs -[rdx]
@@ -1128,7 +1128,7 @@ G_M11467_IG44: ; bbWeight=2, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
; gcrRegs +[rdx]
lea edi, [rsi+0x02]
cmp edi, 0xBB8
- jae G_M11467_IG273
+ jae G_M11467_IG271
add esi, 2
mov edi, esi
movzx rdx, word ptr [rdx+2*rdi+0x10]
@@ -1183,7 +1183,7 @@ G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; GC ptr vars -{V07}
call [r12+0x10]<unknown method>
; gcrRegs -[rax rsi rdi]
- jmp G_M11467_IG99
+ jmp G_M11467_IG97
;; size=63 bbWeight=0.50 PerfScore 8.62
G_M11467_IG48: ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000 {V07}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V07}
@@ -1198,40 +1198,34 @@ G_M11467_IG48: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
; gcrRegs +[rax]
mov edi, dword ptr [rax+0x08]
test edi, edi
- jl G_M11467_IG274
+ jl G_M11467_IG272
mov dword ptr [rbp-0x30], edi
test edi, edi
- jle G_M11467_IG98
+ jle G_M11467_IG96
cmp dword ptr [rax+0x08], 0
- jbe G_M11467_IG273
+ jbe G_M11467_IG271
mov rdi, qword ptr [rax+0x10]
mov rdx, 0xD1FFAB1E
and rdx, rdi
- je SHORT G_M11467_IG49
- mov rsi, 0xD1FFAB1E
- cmp rdx, rsi
- je SHORT G_M11467_IG50
- jmp SHORT G_M11467_IG50
- ;; size=96 bbWeight=0.50 PerfScore 11.50
-G_M11467_IG49: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+ jne SHORT G_M11467_IG49
mov rdx, 0xD1FFAB1E
and rdi, rdx
mov rdx, 0xD1FFAB1E
...
-8 (-0.22%) : 17053.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
@@ -30,15 +30,15 @@
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V21 tmp2 [V21 ] ( 8, 16 ) struct (16) [rbp-0xA0] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T35] ( 3, 6 ) ref -> rax class-hnd single-def "impAppendStmt" <<unknown class>>
+; V22 tmp3 [V22,T34] ( 3, 6 ) ref -> rax class-hnd single-def "impAppendStmt" <<unknown class>>
;* V23 tmp4 [V23 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-; V24 tmp5 [V24,T43] ( 3, 6 ) int -> r14 "impAppendStmt"
+; V24 tmp5 [V24,T42] ( 3, 6 ) int -> r14 "impAppendStmt"
;* V25 tmp6 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp9 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V29 tmp10 [V29 ] ( 5, 10 ) struct (16) [rbp-0xB0] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V30 tmp11 [V30,T36] ( 3, 6 ) ref -> r8 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp11 [V30,T35] ( 3, 6 ) ref -> r8 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -48,7 +48,7 @@
; V37 tmp18 [V37,T127] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 tmp21 [V40,T37] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V40 tmp21 [V40,T36] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V41 tmp22 [V41 ] ( 0, 0 ) ref -> zero-ref
; V42 tmp23 [V42,T95] ( 2, 2 ) ref -> rsi single-def
;* V43 tmp24 [V43,T116] ( 0, 0 ) int -> zero-ref
@@ -66,14 +66,14 @@
;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V58 tmp39 [V58,T38] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V58 tmp39 [V58,T37] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V59 tmp40 [V59,T67] ( 2, 4 ) int -> rax "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V61 tmp42 [V61,T04] ( 12, 12 ) int -> r15 "Inline return value spill temp"
-; V62 tmp43 [V62,T44] ( 3, 6 ) int -> r15 "Inlining Arg"
-; V63 tmp44 [V63,T45] ( 3, 6 ) int -> rsi "Inlining Arg"
+; V62 tmp43 [V62,T43] ( 3, 6 ) int -> r15 "Inlining Arg"
+; V63 tmp44 [V63,T44] ( 3, 6 ) int -> rsi "Inlining Arg"
; V64 tmp45 [V64,T10] ( 4, 8 ) ref -> rsi class-hnd single-def "Inlining Arg" <ubyte[]>
-; V65 tmp46 [V65,T32] ( 4, 6 ) int -> rcx "Inlining Arg"
+; V65 tmp46 [V65,T45] ( 3, 6 ) int -> rax "Inlining Arg"
;* V66 tmp47 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V67 tmp48 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V68 tmp49 [V68,T26] ( 6, 6 ) byref -> [rbp-0xD0] "Inline stloc first use temp"
@@ -196,8 +196,8 @@
; V185 tmp166 [V185,T74] ( 2, 4 ) long -> rdx "Inlining Arg"
; V186 tmp167 [V186,T05] ( 6, 12 ) ref -> rdi class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V187 tmp168 [V187,T07] ( 5, 10 ) byref -> r15 single-def "Inlining Arg"
-; V188 tmp169 [V188,T39] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V189 tmp170 [V189,T40] ( 3, 6 ) byref -> rdi single-def "Inlining Arg"
+; V188 tmp169 [V188,T38] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V189 tmp170 [V189,T39] ( 3, 6 ) byref -> rdi single-def "Inlining Arg"
; V190 tmp171 [V190 ] ( 6, 6 ) ref -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V191 tmp172 [V191 ] ( 6, 6 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V192 tmp173 [V192 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -210,8 +210,8 @@
; V199 tmp180 [V199,T58] ( 4, 4 ) short -> [rbp-0x74] do-not-enreg[] "field V14._token (fldOffset=0xc)" P-DEP
; V200 tmp181 [V200,T106] ( 2, 2 ) ubyte -> [rbp-0x72] do-not-enreg[] "field V14._continueOnCapturedContext (fldOffset=0xe)" P-DEP
; V201 tmp182 [V201,T31] ( 4, 6 ) ref -> [rbp-0xA0] do-not-enreg[] "field V21._object (fldOffset=0x0)" P-DEP
-; V202 tmp183 [V202,T33] ( 4, 6 ) int -> [rbp-0x98] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
-; V203 tmp184 [V203,T34] ( 4, 6 ) int -> [rbp-0x94] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
+; V202 tmp183 [V202,T32] ( 4, 6 ) int -> [rbp-0x98] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
+; V203 tmp184 [V203,T33] ( 4, 6 ) int -> [rbp-0x94] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
;* V204 tmp185 [V204 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp186 [V205 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
; V206 tmp187 [V206,T50] ( 3, 5 ) ref -> [rbp-0xB0] do-not-enreg[] "field V29._object (fldOffset=0x0)" P-DEP
@@ -266,15 +266,15 @@
;* V255 tmp236 [V255 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
;* V256 tmp237 [V256 ] ( 0, 0 ) byref -> zero-ref single-def "field V182._reference (fldOffset=0x0)" P-INDEP
;* V257 tmp238 [V257 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-; V258 tmp239 [V258,T41] ( 3, 6 ) ref -> rax single-def "argument with side effect"
+; V258 tmp239 [V258,T40] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V259 tmp240 [V259,T63] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V260 tmp241 [V260,T64] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V261 tmp242 [V261,T42] ( 3, 6 ) ref -> rax single-def "argument with side effect"
+; V261 tmp242 [V261,T41] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V262 tmp243 [V262,T65] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V263 tmp244 [V263,T66] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V264 PSPSym [V264,T126] ( 1, 1 ) long -> [rbp-0x100] do-not-enreg[V] "PSPSym"
; V265 cse0 [V265,T91] ( 3, 3 ) int -> rsi "CSE - conservative"
-; V266 cse1 [V266,T92] ( 3, 3 ) int -> rcx "CSE - conservative"
+; V266 cse1 [V266,T92] ( 3, 3 ) int -> rax "CSE - conservative"
; V267 cse2 [V267,T93] ( 3, 3 ) int -> r14 "CSE - conservative"
; V268 cse3 [V268,T94] ( 3, 3 ) int -> rax "CSE - conservative"
; V269 cse4 [V269,T03] ( 12, 12 ) ref -> rsi multi-def "CSE - aggressive"
@@ -393,7 +393,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
call [<unknown method>]
; gcrRegs -[rax rsi]
; gcr arg pop 0
- jmp G_M33324_IG92
+ jmp G_M33324_IG91
;; size=59 bbWeight=1 PerfScore 16.00
G_M33324_IG07: ; bbWeight=1, gcVars=00000000000000000000000000000003 {V00 V02}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, nogc
; gcrRegs +[rbx]
@@ -446,8 +446,8 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; byrRegs +[rdi]
mov dword ptr [rdi+0x14], esi
mov esi, dword ptr [rbx+0x34]
- mov ecx, dword ptr [rbx+0x30]
- sub esi, ecx
+ mov eax, dword ptr [rbx+0x30]
+ sub esi, eax
test esi, esi
jle G_M33324_IG18
mov r15d, dword ptr [rdi+0x34]
@@ -458,14 +458,13 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, gword ptr [rbx+0x20]
; gcrRegs +[rsi]
test rsi, rsi
- je G_M33324_IG75
- mov eax, ecx
+ je G_M33324_IG74
+ mov ecx, eax
mov edx, r15d
- add rax, rdx
+ add rcx, rdx
mov edx, dword ptr [rsi+0x08]
- cmp rax, rdx
+ cmp rcx, rdx
ja G_M33324_IG74
- mov eax, ecx
lea r14, bword ptr [rsi+rax+0x10]
; byrRegs +[r14]
mov r13d, r15d
@@ -510,7 +509,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
jmp SHORT G_M33324_IG13
- ;; size=189 bbWeight=1 PerfScore 44.25
+ ;; size=187 bbWeight=1 PerfScore 44.00
G_M33324_IG12: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=5000 {r12 r14}, byref
; gcrRegs +[rdx]
; byrRegs -[rcx rsi]
@@ -570,7 +569,7 @@ G_M33324_IG14: ; bbWeight=1, gcVars=00000000000000000000000004000003 {V00
; gcr arg pop 0
mov r12d, dword ptr [rbp-0xB4]
cmp r13d, r12d
- ja G_M33324_IG76
+ ja G_M33324_IG75
mov edx, r13d
mov rdi, bword ptr [rbp-0xD0]
; byrRegs +[rdi]
@@ -588,7 +587,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi},
cmp r15d, dword ptr [rdi+0x34]
jne SHORT G_M33324_IG16
mov dword ptr [rbp-0x30], r15d
- jmp G_M33324_IG80
+ jmp G_M33324_IG79
;; size=15 bbWeight=1 PerfScore 7.00
G_M33324_IG16: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref
test r15d, r15d
@@ -597,7 +596,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi},
; byrRegs +[rsi]
mov r14d, dword ptr [rsi+0x0C]
cmp r15d, r14d
- ja G_M33324_IG77
+ ja G_M33324_IG76
mov r13, gword ptr [rsi]
; gcrRegs +[r13]
mov r12d, r15d
@@ -887,7 +886,7 @@ G_M33324_IG28: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
; gcrRegs -[r13]
add r14d, dword ptr [r15+0x14]
mov dword ptr [rbp-0x30], r14d
- jmp G_M33324_IG86
+ jmp G_M33324_IG85
;; size=13 bbWeight=1 PerfScore 6.00
G_M33324_IG29: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs +[r13]
@@ -949,7 +948,7 @@ G_M33324_IG33: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call [<unknown method>]
; gcrRegs -[rax rsi]
; gcr arg pop 0
- jmp G_M33324_IG82
+ jmp G_M33324_IG81
;; size=68 bbWeight=1 PerfScore 15.50
G_M33324_IG34: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[r15]
@@ -1034,7 +1033,7 @@ G_M33324_IG41: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
call [<unknown method>]
; gcrRegs -[rax rsi]
; gcr arg pop 0
- jmp G_M33324_IG84
+ jmp G_M33324_IG83
;; size=61 bbWeight=1 PerfScore 14.50
G_M33324_IG42: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[r15]
@@ -1262,7 +1261,7 @@ G_M33324_IG58: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call [<unknown method>]
; gcrRegs -[rax rsi]
; gcr arg pop 0
- jmp G_M33324_IG88
+ jmp G_M33324_IG87
;; size=74 bbWeight=1 PerfScore 15.50
G_M33324_IG59: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[r15]
@@ -1499,7 +1498,7 @@ G_M33324_IG73: ; bbWeight=1, gcVars=00000000000000000000000020000003 {V00
; gcr arg pop 0
mov edi, dword ptr [rbp-0xB8]
cmp r13d, edi
- ja SHORT G_M33324_IG76
+ ja SHORT G_M33324_IG75
mov edx, r13d
mov rdi, bword ptr [rbp-0xE0]
; byrRegs +[rdi]
@@ -1509,7 +1508,7 @@ G_M33324_IG73: ; bbWeight=1, gcVars=00000000000000000000000020000003 {V00
call [<unknown method>]
; byrRegs -[rsi rdi r12]
; gcr arg pop 0
- jmp SHORT G_M33324_IG78
+ jmp SHORT G_M33324_IG77
;; size=51 bbWeight=1 PerfScore 13.75
G_M33324_IG74: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; byrRegs -[r15]
@@ -1517,33 +1516,26 @@ G_M33324_IG74: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M33324_IG75: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
- ; byrRegs +[rdi]
- test ecx, ecx
- jne SHORT G_M33324_IG74
- jmp SHORT G_M33324_IG74
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M33324_IG76: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; byrRegs -[rdi]
+G_M33324_IG75: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M33324_IG76: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, 33
call [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
+G_M33324_IG77: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
; byrRegs +[r15]
add dword ptr [rbx+0x30], r14d
add r14d, dword ptr [r15+0x14]
mov dword ptr [rbp-0x30], r14d
;; size=12 bbWeight=1 PerfScore 7.00
-G_M33324_IG79: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
+G_M33324_IG78: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
...
benchmarks.run_pgo.linux.x64.checked.mch
-35 (-24.65%) : 153541.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7 ) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 6.25) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> registers single-def
; V02 loc0 [V02,T03] ( 4, 3.50) int -> rdi
; V03 loc1 [V03,T05] ( 3, 2.75) ref -> rcx class-hnd exact single-def <<unknown class>>
@@ -20,22 +20,20 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
; V10 cse0 [V10,T06] ( 3, 2.25) byref -> r15 "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 3 ) long -> rax "Spilling to split statement for tree"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V13 rat2 [V13,T02] ( 2, 3 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M60687_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x18], rdi
+ lea rbp, [rsp+0x10]
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=20 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.75
G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs +[rsi]
mov edi, dword ptr [rbx+0x10]
@@ -43,7 +41,7 @@ G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
cmp dword ptr [rcx+0x08], edi
- jbe SHORT G_M60687_IG05
+ jbe SHORT G_M60687_IG04
;; size=14 bbWeight=1 PerfScore 8.25
G_M60687_IG03: ; bbWeight=0.75, gcrefRegs=000A {rcx rbx}, byrefRegs=0040 {rsi}, byref, isz
inc dword ptr [rbx+0x14]
@@ -59,33 +57,23 @@ G_M60687_IG03: ; bbWeight=0.75, gcrefRegs=000A {rcx rbx}, byrefRegs=0040
; gcrRegs -[rcx]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x20]
- test rax, rax
- jne SHORT G_M60687_IG07
- ;; size=57 bbWeight=0.75 PerfScore 13.88
-G_M60687_IG04: ; bbWeight=0.15, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
- ; byrRegs -[rsi rdi]
- jmp SHORT G_M60687_IG07
- ;; size=2 bbWeight=0.15 PerfScore 0.30
-G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
- ; byrRegs -[r15] +[rsi]
+ jmp SHORT G_M60687_IG06
+ ;; size=40 bbWeight=0.75 PerfScore 8.44
+G_M60687_IG04: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+ ; byrRegs -[rdi r15]
xor eax, eax
mov qword ptr [rsi], rax
mov qword ptr [rsi+0x08], rax
mov qword ptr [rsi+0x10], rax
;; size=13 bbWeight=0.25 PerfScore 0.81
-G_M60687_IG06: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rsi]
- add rsp, 16
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.25 PerfScore 0.69
-G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
+G_M60687_IG06: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
; byrRegs +[r15]
xor eax, eax
mov qword ptr [r15], rax
@@ -93,15 +81,14 @@ G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=000
mov qword ptr [r15+0x10], rax
mov eax, 1
;; size=18 bbWeight=0.75 PerfScore 2.62
-G_M60687_IG08: ; bbWeight=0.75, epilog, nogc, extend
- add rsp, 16
+G_M60687_IG07: ; bbWeight=0.75, epilog, nogc, extend
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.75 PerfScore 2.06
+ ;; size=5 bbWeight=0.75 PerfScore 1.88
-; Total bytes of code 142, prolog size 17, PerfScore 33.61, instruction count 48, allocated bytes for code 142 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 107, prolog size 9, PerfScore 26.38, instruction count 38, allocated bytes for code 107 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -109,12 +96,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x08
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- 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)
-35 (-24.65%) : 157432.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.62) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 6.71) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T02] ( 4, 3 ) byref -> registers single-def
; V02 loc0 [V02,T04] ( 4, 3.81) int -> rdi
; V03 loc1 [V03,T05] ( 3, 2.90) ref -> rcx class-hnd exact single-def <<unknown class>>
@@ -20,22 +20,20 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
; V10 cse0 [V10,T06] ( 3, 2.71) byref -> r15 "CSE - aggressive"
-; V11 rat0 [V11,T03] ( 2, 3.62) long -> rax "Spilling to split statement for tree"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V13 rat2 [V13,T01] ( 2, 3.62) long -> rax "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M60687_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x18], rdi
+ lea rbp, [rsp+0x10]
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=20 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.75
G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs +[rsi]
mov edi, dword ptr [rbx+0x10]
@@ -43,7 +41,7 @@ G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
cmp dword ptr [rcx+0x08], edi
- jbe SHORT G_M60687_IG05
+ jbe SHORT G_M60687_IG04
;; size=14 bbWeight=1 PerfScore 8.25
G_M60687_IG03: ; bbWeight=0.90, gcrefRegs=000A {rcx rbx}, byrefRegs=0040 {rsi}, byref, isz
inc dword ptr [rbx+0x14]
@@ -59,33 +57,23 @@ G_M60687_IG03: ; bbWeight=0.90, gcrefRegs=000A {rcx rbx}, byrefRegs=0040
; gcrRegs -[rcx]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x20]
- test rax, rax
- jne SHORT G_M60687_IG07
- ;; size=57 bbWeight=0.90 PerfScore 16.73
-G_M60687_IG04: ; bbWeight=0.18, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref, isz
- ; byrRegs -[rsi rdi]
- jmp SHORT G_M60687_IG07
- ;; size=2 bbWeight=0.18 PerfScore 0.36
-G_M60687_IG05: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
- ; byrRegs -[r15] +[rsi]
+ jmp SHORT G_M60687_IG06
+ ;; size=40 bbWeight=0.90 PerfScore 10.17
+G_M60687_IG04: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+ ; byrRegs -[rdi r15]
xor eax, eax
mov qword ptr [rsi], rax
mov qword ptr [rsi+0x08], rax
mov qword ptr [rsi+0x10], rax
;; size=13 bbWeight=0.10 PerfScore 0.31
-G_M60687_IG06: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M60687_IG05: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rsi]
- add rsp, 16
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.10 PerfScore 0.26
-G_M60687_IG07: ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
+ ;; size=5 bbWeight=0.10 PerfScore 0.24
+G_M60687_IG06: ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, gcvars, byref
; byrRegs +[r15]
xor eax, eax
mov qword ptr [r15], rax
@@ -93,15 +81,14 @@ G_M60687_IG07: ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=000
mov qword ptr [r15+0x10], rax
mov eax, 1
;; size=18 bbWeight=0.90 PerfScore 3.16
-G_M60687_IG08: ; bbWeight=0.90, epilog, nogc, extend
- add rsp, 16
+G_M60687_IG07: ; bbWeight=0.90, epilog, nogc, extend
pop rbx
pop r15
pop rbp
ret
- ;; size=9 bbWeight=0.90 PerfScore 2.49
+ ;; size=5 bbWeight=0.90 PerfScore 2.26
-; Total bytes of code 142, prolog size 17, PerfScore 36.57, instruction count 48, allocated bytes for code 142 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 107, prolog size 9, PerfScore 28.15, instruction count 38, allocated bytes for code 107 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -109,12 +96,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x08
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- 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)
-23 (-14.74%) : 157443.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,17 +9,17 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.67) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
-; V01 arg1 [V01,T03] ( 4, 3 ) byref -> [rbp-0x30] single-def
+; V00 this [V00,T00] ( 7, 6.76) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V01 arg1 [V01,T03] ( 4, 3 ) byref -> [rbp-0x28] single-def
; V02 loc0 [V02,T01] ( 6, 5.67) int -> r15
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> r14 class-hnd single-def <<unknown class>>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> r13 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.67) long -> rax "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.67) long -> rax "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -31,10 +31,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 16
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x28], rdi
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=24 bbWeight=1 PerfScore 7.00
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs +[rsi]
mov r15d, dword ptr [rbx+0x10]
@@ -43,10 +42,10 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi},
; gcrRegs +[r14]
mov r13d, dword ptr [r14+0x08]
cmp r13d, r15d
- jbe SHORT G_M49890_IG05
+ jbe SHORT G_M49890_IG04
;; size=20 bbWeight=1 PerfScore 7.50
G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref, isz
- mov bword ptr [rbp-0x30], rsi
+ mov bword ptr [rbp-0x28], rsi
; GC ptr vars +{V01}
inc dword ptr [rbx+0x14]
mov dword ptr [rbx+0x10], r15d
@@ -54,30 +53,22 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=4008 {rbx r14}, byrefRegs=0040
mov rsi, gword ptr [r14+8*rdi+0x10]
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, bword ptr [rbp-0x30]
+ mov rdi, bword ptr [rbp-0x28]
; byrRegs +[rdi]
; GC ptr vars -{V01}
call CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[rsi]
; byrRegs -[rdi]
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x18]
- test rax, rax
- jne SHORT G_M49890_IG07
- ;; size=47 bbWeight=0.92 PerfScore 16.99
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M49890_IG07
- ;; size=2 bbWeight=0.18 PerfScore 0.37
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+ jmp SHORT G_M49890_IG06
+ ;; size=30 bbWeight=0.92 PerfScore 10.33
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[r14]
; byrRegs +[rsi]
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rsi], rax
;; size=5 bbWeight=0.08 PerfScore 0.10
-G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rax]
; byrRegs -[rsi]
add rsp, 16
@@ -88,19 +79,19 @@ G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
pop rbp
ret
;; size=13 bbWeight=0.08 PerfScore 0.31
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r14]
movsxd rax, r15d
mov ecx, r13d
cmp rax, rcx
- jae SHORT G_M49890_IG09
+ jae SHORT G_M49890_IG08
movsxd rax, r15d
xor rcx, rcx
; gcrRegs +[rcx]
mov gword ptr [r14+8*rax+0x10], rcx
mov eax, 1
;; size=26 bbWeight=0.92 PerfScore 3.21
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -109,13 +100,13 @@ G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
pop rbp
ret
;; size=13 bbWeight=0.92 PerfScore 3.44
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx r14]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 21, PerfScore 38.92, instruction count 55, allocated bytes for code 156 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 133, prolog size 17, PerfScore 30.90, instruction count 48, allocated bytes for code 133 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
+3 (+0.06%) : 159091.dasm - System.Collections.Generic.ArraySortHelper1[System.Collections.BigStruct]:IntroSort(System.Span1[System.Collections.BigStruct],int,System.Comparison`1[System.Collections.BigStruct]) (Tier1)
@@ -154,7 +154,7 @@
;* V142 tmp136 [V142 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
; V143 tmp137 [V143,T51] ( 4, 3.96) byref -> rdi "field V107._reference (fldOffset=0x0)" P-INDEP
; V144 tmp138 [V144,T52] ( 4, 3.96) int -> rsi "field V107._length (fldOffset=0x8)" P-INDEP
-; V145 tmp139 [V145,T16] ( 7, 75.66) int -> rax "V25.[012..016)"
+; V145 tmp139 [V145,T16] ( 7, 75.66) int -> registers "V25.[012..016)"
;* V146 tmp140 [V146 ] ( 0, 0 ) int -> zero-ref "V27.[012..016)"
; V147 tmp141 [V147,T10] ( 12, 92.62) int -> [rbp-0x270] "V39.[012..016)"
; V148 tmp142 [V148,T14] ( 7, 83.35) int -> registers "V48.[012..016)"
@@ -172,7 +172,7 @@
; V160 tmp154 [V160,T60] ( 7, 2.31) int -> rdx "V67.[012..016)"
; V161 tmp155 [V161,T61] ( 7, 2.31) int -> registers "V78.[012..016)"
; V162 tmp156 [V162,T28] ( 6, 53.44) byref -> rdi "Spilling address for field-by-field copy"
-; V163 tmp157 [V163,T04] ( 6,192.64) byref -> registers "Spilling address for field-by-field copy"
+; V163 tmp157 [V163,T04] ( 6,192.64) byref -> rdi "Spilling address for field-by-field copy"
; V164 tmp158 [V164,T29] ( 6, 53.44) byref -> rdi "Spilling address for field-by-field copy"
;* V165 tmp159 [V165 ] ( 0, 0 ) byref -> zero-ref "Spilling address for field-by-field copy"
; V166 tmp160 [V166,T44] ( 5, 3.93) byref -> registers "Spilling address for field-by-field copy"
@@ -672,7 +672,8 @@ G_M18117_IG66: ; bbWeight=8.82, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
lea edi, [r15+0x01]
cmp edi, r13d
jae G_M18117_IG150
- lea edi, [r15+0x01]
+ inc r15d
+ mov edi, r15d
shl rdi, 5
add rdi, rbx
; byrRegs +[rdi]
@@ -684,7 +685,7 @@ G_M18117_IG66: ; bbWeight=8.82, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
; byrRegs -[rdi]
cmp r12d, edi
jl SHORT G_M18117_IG65
- ;; size=49 bbWeight=8.82 PerfScore 105.81
+ ;; size=51 bbWeight=8.82 PerfScore 105.81
G_M18117_IG67: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rbx]
jmp G_M18117_IG103
@@ -1127,10 +1128,11 @@ G_M18117_IG110: ; bbWeight=0.00, gcrefRegs=8000 {r15}, byrefRegs=0288 {rb
G_M18117_IG111: ; bbWeight=0.09, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs -[rdi r9]
; GC ptr vars -{V88 V182}
- lea esi, [rdi+0x01]
- cmp esi, r13d
+ lea edi, [rax+0x01]
+ cmp edi, r13d
jae G_M18117_IG150
- inc edi
+ inc eax
+ mov edi, eax
shl rdi, 5
add rdi, rbx
; byrRegs +[rdi]
@@ -1142,7 +1144,7 @@ G_M18117_IG111: ; bbWeight=0.09, gcVars=00000000000000000000000000000000
; byrRegs -[rdi]
cmp r12d, edi
jl G_M18117_IG126
- ;; size=50 bbWeight=0.09 PerfScore 1.05
+ ;; size=52 bbWeight=0.09 PerfScore 1.07
G_M18117_IG112: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
; byrRegs -[rbx]
@@ -1151,21 +1153,21 @@ G_M18117_IG112: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
G_M18117_IG113: ; bbWeight=0.25, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
; gcrRegs +[r15]
; byrRegs +[rbx]
- lea esi, [rdi+0x01]
- cmp esi, r13d
- jae G_M18117_IG150
- lea esi, [rdi+0x01]
- shl rsi, 5
+ lea edi, [rax+0x01]
cmp edi, r13d
jae G_M18117_IG150
- mov edx, edi
- shl rdx, 5
- vmovdqu ymm0, ymmword ptr [rbx+rdx]
- vmovdqu ymmword ptr [rbx+rsi], ymm0
- dec edi
+ lea edi, [rax+0x01]
+ shl rdi, 5
+ cmp eax, r13d
+ jae G_M18117_IG150
+ mov esi, eax
+ shl rsi, 5
+ vmovdqu ymm0, ymmword ptr [rbx+rsi]
+ vmovdqu ymmword ptr [rbx+rdi], ymm0
+ dec eax
;; size=46 bbWeight=0.25 PerfScore 3.04
G_M18117_IG114: ; bbWeight=0.34, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
- test edi, edi
+ test eax, eax
jl SHORT G_M18117_IG111
;; size=4 bbWeight=0.34 PerfScore 0.43
G_M18117_IG115: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
@@ -1180,23 +1182,23 @@ G_M18117_IG116: ; bbWeight=0.00, gcVars=00000000010000000000000000000000
G_M18117_IG117: ; bbWeight=0.32, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
; byrRegs -[rdi r9]
; GC ptr vars -{V88 V182}
- cmp edi, r13d
+ cmp eax, r13d
jae G_M18117_IG150
- mov r8d, edi
- shl r8, 5
- add r8, rbx
- ; byrRegs +[r8]
- mov eax, dword ptr [r8+0x0C]
- vmovups ymm0, ymmword ptr [r8]
+ mov edi, eax
+ shl rdi, 5
+ add rdi, rbx
+ ; byrRegs +[rdi]
+ mov r8d, dword ptr [rdi+0x0C]
+ vmovups ymm0, ymmword ptr [rdi]
vmovups ymmword ptr [rbp-0x70], ymm0
- mov rsi, 0xD1FFAB1E ; function address
- cmp qword ptr [r15+0x18], rsi
+ mov rdi, 0xD1FFAB1E ; function address
+ ; byrRegs -[rdi]
+ cmp qword ptr [r15+0x18], rdi
jne G_M18117_IG147
- cmp r14d, eax
+ cmp r14d, r8d
jge SHORT G_M18117_IG124
- ;; size=58 bbWeight=0.32 PerfScore 5.11
+ ;; size=56 bbWeight=0.32 PerfScore 5.11
G_M18117_IG118: ; bbWeight=0.21, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- ; byrRegs -[r8]
mov r8d, -1
;; size=6 bbWeight=0.21 PerfScore 0.05
G_M18117_IG119: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
@@ -1224,7 +1226,7 @@ G_M18117_IG123: ; bbWeight=0.12, gcrefRegs=8000 {r15}, byrefRegs=0009 {ra
G_M18117_IG124: ; bbWeight=0.12, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs -[rax]
; GC ptr vars -{V84 V180 V183}
- cmp r14d, eax
+ cmp r14d, r8d
jle G_M18117_IG141
;; size=9 bbWeight=0.12 PerfScore 0.14
G_M18117_IG125: ; bbWeight=0.12, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
@@ -1242,11 +1244,11 @@ G_M18117_IG126: ; bbWeight=0.09, gcrefRegs=8000 {r15}, byrefRegs=0008 {rb
mov r14d, dword ptr [rdi+0x0C]
vmovups ymm0, ymmword ptr [rdi]
vmovups ymmword ptr [rbp-0x48], ymm0
- mov edi, r12d
- ; byrRegs -[rdi]
+ mov eax, r12d
jmp G_M18117_IG114
;; size=47 bbWeight=0.09 PerfScore 1.18
G_M18117_IG127: ; bbWeight=0.02, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
+ ; byrRegs -[rdi]
mov rdi, rbx
; byrRegs +[rdi]
mov esi, r13d
@@ -1511,9 +1513,9 @@ G_M18117_IG146: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
G_M18117_IG147: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs -[rdi]
; GC ptr vars -{V108}
- mov dword ptr [rbp-0x4C], edi
+ mov dword ptr [rbp-0x4C], eax
mov dword ptr [rbp-0x3C], r14d
- mov dword ptr [rbp-0x64], eax
+ mov dword ptr [rbp-0x64], r8d
vmovdqu xmm0, xmmword ptr [rbp-0x48]
vmovdqu xmmword ptr [rsp], xmm0
vmovdqu xmm0, xmmword ptr [rbp-0x38]
@@ -1528,9 +1530,9 @@ G_M18117_IG147: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
; gcrRegs -[rdi]
; gcr arg pop 0
mov r8d, eax
- mov edi, dword ptr [rbp-0x4C]
+ mov eax, dword ptr [rbp-0x4C]
jmp G_M18117_IG107
- ;; size=72 bbWeight=0 PerfScore 0.00
+ ;; size=73 bbWeight=0 PerfScore 0.00
G_M18117_IG148: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
cmp r12d, r13d
ja SHORT G_M18117_IG149
@@ -1959,7 +1961,7 @@ G_M18117_IG170: ; bbWeight=0, gcVars=00000000050000000000000000000000 {V1
jmp G_M18117_IG85
;; size=136 bbWeight=0 PerfScore 0.00
-; Total bytes of code 4747, prolog size 40, PerfScore 2304.99, instruction count 1002, allocated bytes for code 4747 (MethodHash=832fb93a) for method System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:IntroSort(System.Span`1[System.Collections.BigStruct],int,System.Comparison`1[System.Collections.BigStruct]) (Tier1)
+; Total bytes of code 4750, prolog size 40, PerfScore 2305.01, instruction count 1004, allocated bytes for code 4750 (MethodHash=832fb93a) for method System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:IntroSort(System.Span`1[System.Collections.BigStruct],int,System.Comparison`1[System.Collections.BigStruct]) (Tier1)
; ============================================================
Unwind Info:
+7 (+0.20%) : 109215.dasm - System.Collections.Generic.ArraySortHelper1[System.Collections.IntStruct]:IntroSort(System.Span1[System.Collections.IntStruct],int,System.Comparison`1[System.Collections.IntStruct]) (Tier1)
@@ -195,7 +195,7 @@
; V183 cse15 [V183,T75] ( 7, 0.05) byref -> [rbp-0xB0] spill-single-def "CSE - conservative"
; V184 cse16 [V184,T15] ( 3, 72.27) int -> rdx "CSE - moderate"
; V185 cse17 [V185,T25] ( 4, 35.46) int -> rdi "CSE - moderate"
-; V186 cse18 [V186,T27] ( 3, 26.60) int -> rsi "CSE - moderate"
+; V186 cse18 [V186,T27] ( 3, 26.60) int -> r12 "CSE - moderate"
; V187 cse19 [V187,T76] ( 3, 0.03) long -> rdi "CSE - conservative"
;* V188 rat0 [V188,T52] ( 0, 0 ) ref -> zero-ref "delegate invoke call"
;
@@ -411,12 +411,12 @@ G_M3130_IG31: ; bbWeight=34.89, gcrefRegs=8000 {r15}, byrefRegs=0809 {rax
test ecx, ecx
jl SHORT G_M3130_IG33
;; size=4 bbWeight=34.89 PerfScore 43.61
-G_M3130_IG32: ; bbWeight=14.22, gcrefRegs=8000 {r15}, byrefRegs=0809 {rax rbx r11}, byref, isz
+G_M3130_IG32: ; bbWeight=14.22, gcrefRegs=8000 {r15}, byrefRegs=0809 {rax rbx r11}, byref
mov ecx, edx
mov edx, r9d
mov r9d, ecx
- jmp SHORT G_M3130_IG48
- ;; size=10 bbWeight=14.22 PerfScore 39.10
+ jmp G_M3130_IG48
+ ;; size=13 bbWeight=14.22 PerfScore 39.10
G_M3130_IG33: ; bbWeight=17.45, gcrefRegs=8000 {r15}, byrefRegs=0809 {rax rbx r11}, byref, isz
mov r9d, edx
jmp SHORT G_M3130_IG29
@@ -435,17 +435,17 @@ G_M3130_IG36: ; bbWeight=24.09, gcVars=00000000000000000000000000000000 {
; gcrRegs -[r15]
; byrRegs -[r8-r9 r11] +[rsi]
; GC ptr vars -{V41 V174 V182}
- lea edx, [r15+0x01]
+ lea edx, [r12+0x01]
cmp edx, r13d
jae G_M3130_IG157
mov eax, edx
mov esi, dword ptr [rsi]
; byrRegs -[rsi]
mov dword ptr [rbx+4*rax], esi
- dec r15d
- ;; size=23 bbWeight=24.09 PerfScore 126.47
+ dec r12d
+ ;; size=24 bbWeight=24.09 PerfScore 126.47
G_M3130_IG37: ; bbWeight=32.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
- test r15d, r15d
+ test r12d, r12d
jl G_M3130_IG68
;; size=9 bbWeight=32.87 PerfScore 41.08
G_M3130_IG38: ; bbWeight=30.96, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
@@ -462,9 +462,9 @@ G_M3130_IG40: ; bbWeight=30.96, gcVars=00000000000000000000000000000000 {
; gcrRegs -[r15]
; byrRegs -[r8-r9 r11]
; GC ptr vars -{V41 V174 V182}
- cmp r15d, r13d
+ cmp r12d, r13d
jae G_M3130_IG157
- mov esi, r15d
+ mov esi, r12d
lea rsi, bword ptr [rbx+4*rsi]
; byrRegs +[rsi]
mov edx, dword ptr [rsi]
@@ -629,19 +629,19 @@ G_M3130_IG67: ; bbWeight=8.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, b
jae G_M3130_IG157
mov esi, edi
mov r14d, dword ptr [rbx+4*rsi]
- mov r15d, r12d
jmp G_M3130_IG37
- ;; size=28 bbWeight=8.87 PerfScore 55.41
+ ;; size=25 bbWeight=8.87 PerfScore 53.20
G_M3130_IG68: ; bbWeight=8.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
- lea esi, [r15+0x01]
- cmp esi, r13d
+ inc r12d
+ cmp r12d, r13d
jae G_M3130_IG157
+ mov esi, r12d
mov dword ptr [rbx+4*rsi], r14d
mov r12d, edi
lea edi, [r13-0x01]
cmp r12d, edi
jl SHORT G_M3130_IG67
- ;; size=29 bbWeight=8.87 PerfScore 42.11
+ ;; size=31 bbWeight=8.87 PerfScore 42.11
G_M3130_IG69: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rbx]
jmp G_M3130_IG110
@@ -1011,15 +1011,15 @@ G_M3130_IG113: ; bbWeight=0.09, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx
; gcr arg pop 0
jmp SHORT G_M3130_IG110
;; size=74 bbWeight=0.09 PerfScore 1.28
-G_M3130_IG114: ; bbWeight=0.32, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, gcvars, byref, isz
+G_M3130_IG114: ; bbWeight=0.32, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, gcvars, byref, isz
; gcrRegs +[r15]
- ; byrRegs +[rax rbx]
+ ; byrRegs +[rbx r8]
; GC ptr vars +{V171}
- test esi, esi
+ test edi, edi
jl SHORT G_M3130_IG120
;; size=4 bbWeight=0.32 PerfScore 0.39
G_M3130_IG115: ; bbWeight=0.09, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
- ; byrRegs -[rax]
+ ; byrRegs -[r8]
; GC ptr vars -{V171}
jmp SHORT G_M3130_IG118
;; size=2 bbWeight=0.09 PerfScore 0.18
@@ -1036,37 +1036,38 @@ G_M3130_IG117: ; bbWeight=0.00, gcrefRegs=8000 {r15}, byrefRegs=02C8 {rbx
G_M3130_IG118: ; bbWeight=0.09, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs -[rsi rdi r9]
; GC ptr vars -{V179 V183}
- lea esi, [rdi+0x01]
- cmp esi, r13d
+ lea edi, [rax+0x01]
+ cmp edi, r13d
jae G_M3130_IG157
- inc edi
+ inc eax
+ mov edi, eax
mov dword ptr [rbx+4*rdi], r14d
inc r12d
lea edi, [r13-0x01]
cmp r12d, edi
jl G_M3130_IG133
- ;; size=34 bbWeight=0.09 PerfScore 0.45
+ ;; size=36 bbWeight=0.09 PerfScore 0.47
G_M3130_IG119: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
; byrRegs -[rbx]
jmp G_M3130_IG110
;; size=5 bbWeight=0.87 PerfScore 1.74
-G_M3130_IG120: ; bbWeight=0.25, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, gcvars, byref
+G_M3130_IG120: ; bbWeight=0.25, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, gcvars, byref
; gcrRegs +[r15]
- ; byrRegs +[rax rbx]
+ ; byrRegs +[rbx r8]
; GC ptr vars +{V171}
- lea esi, [rdi+0x01]
- cmp esi, r13d
+ lea edi, [rax+0x01]
+ cmp edi, r13d
jae G_M3130_IG157
- lea esi, [rdi+0x01]
- mov edx, dword ptr [rax]
- mov dword ptr [rbx+4*rsi], edx
- dec edi
- ;; size=22 bbWeight=0.25 PerfScore 1.35
+ lea edi, [rax+0x01]
+ mov esi, dword ptr [r8]
+ mov dword ptr [rbx+4*rdi], esi
+ dec eax
+ ;; size=23 bbWeight=0.25 PerfScore 1.35
G_M3130_IG121: ; bbWeight=0.34, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
- ; byrRegs -[rax]
+ ; byrRegs -[r8]
; GC ptr vars -{V171}
- test edi, edi
+ test eax, eax
jl SHORT G_M3130_IG118
;; size=4 bbWeight=0.34 PerfScore 0.42
G_M3130_IG122: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
@@ -1081,28 +1082,28 @@ G_M3130_IG123: ; bbWeight=0.00, gcVars=00000000000009000000000000000000 {
G_M3130_IG124: ; bbWeight=0.32, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
; byrRegs -[rsi rdi r9]
; GC ptr vars -{V179 V183}
- cmp edi, r13d
+ cmp eax, r13d
jae G_M3130_IG157
- mov eax, edi
- lea rax, bword ptr [rbx+4*rax]
- ; byrRegs +[rax]
- mov bword ptr [rbp-0x68], rax
+ mov edi, eax
+ lea r8, bword ptr [rbx+4*rdi]
+ ; byrRegs +[r8]
+ mov bword ptr [rbp-0x68], r8
; GC ptr vars +{V171}
- mov edx, dword ptr [rax]
- mov rsi, 0xD1FFAB1E ; function address
- cmp qword ptr [r15+0x18], rsi
+ mov edx, dword ptr [r8]
+ mov rdi, 0xD1FFAB1E ; function address
+ cmp qword ptr [r15+0x18], rdi
jne G_M3130_IG154
cmp r14d, edx
jge SHORT G_M3130_IG131
- ;; size=46 bbWeight=0.32 PerfScore 3.32
-G_M3130_IG125: ; bbWeight=0.20, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, gcvars, byref
- mov esi, -1
+ ;; size=47 bbWeight=0.32 PerfScore 3.32
+G_M3130_IG125: ; bbWeight=0.20, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, gcvars, byref
+ mov edi, -1
;; size=5 bbWeight=0.20 PerfScore 0.05
-G_M3130_IG126: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, byref
+G_M3130_IG126: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, byref
jmp G_M3130_IG114
;; size=5 bbWeight=0.32 PerfScore 0.63
G_M3130_IG127: ; bbWeight=0.13, gcVars=00000000000002080000000000000000 {V172 V177}, gcrefRegs=8000 {r15}, byrefRegs=0488 {rbx rdi r10}, gcvars, byref
- ; byrRegs -[rax] +[rdi r10]
+ ; byrRegs -[r8] +[rdi r10]
; GC ptr vars -{V171} +{V73 V172 V177}
cmp r8d, r11d
jle G_M3130_IG146
@@ -1120,25 +1121,25 @@ G_M3130_IG130: ; bbWeight=0.12, gcrefRegs=8000 {r15}, byrefRegs=0088 {rbx
mov r11d, 1
jmp G_M3130_IG102
;; size=11 bbWeight=0.12 PerfScore 0.26
-G_M3130_IG131: ; bbWeight=0.12, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, gcvars, byref
- ; byrRegs -[rdi] +[rax]
+G_M3130_IG131: ; bbWeight=0.12, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, gcvars, byref
+ ; byrRegs -[rdi] +[r8]
; GC ptr vars -{V73 V172 V177} +{V171}
cmp r14d, edx
jle G_M3130_IG148
;; size=9 bbWeight=0.12 PerfScore 0.14
-G_M3130_IG132: ; bbWeight=0.12, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, byref, isz
- mov esi, 1
+G_M3130_IG132: ; bbWeight=0.12, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, byref, isz
+ mov edi, 1
jmp SHORT G_M3130_IG126
;; size=7 bbWeight=0.12 PerfScore 0.26
G_M3130_IG133: ; bbWeight=0.09, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
- ; byrRegs -[rax]
+ ; byrRegs -[r8]
; GC ptr vars -{V171}
lea edi, [r12+0x01]
cmp edi, r13d
jae G_M3130_IG157
lea edi, [r12+0x01]
mov r14d, dword ptr [rbx+4*rdi]
- mov edi, r12d
+ mov eax, r12d
jmp G_M3130_IG121
;; size=31 bbWeight=0.09 PerfScore 0.58
G_M3130_IG134: ; bbWeight=0.02, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
@@ -1260,14 +1261,14 @@ G_M3130_IG147: ; bbWeight=0.00, gcrefRegs=8000 {r15}, byrefRegs=0088 {rbx
xor r11d, r11d
jmp G_M3130_IG102
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M3130_IG148: ; bbWeight=0.00, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0009 {rax rbx}, gcvars, byref
- ; byrRegs -[rdi] +[rax]
+G_M3130_IG148: ; bbWeight=0.00, gcVars=00000000000000800000000000000000 {V171}, gcrefRegs=8000 {r15}, byrefRegs=0108 {rbx r8}, gcvars, byref
+ ; byrRegs -[rdi] +[r8]
; GC ptr vars -{V73 V172 V177} +{V171}
- xor esi, esi
+ xor edi, edi
jmp G_M3130_IG126
;; size=7 bbWeight=0.00 PerfScore 0.00
G_M3130_IG149: ; bbWeight=0.00, gcVars=00000000000005000000000000000000 {V179 V180}, gcrefRegs=8000 {r15}, byrefRegs=0688 {rbx rdi r9 r10}, gcvars, byref
- ; byrRegs -[rax] +[rdi r9-r10]
+ ; byrRegs -[r8] +[rdi r9-r10]
; GC ptr vars -{V171} +{V179 V180}
xor r8d, r8d
...
+43 (+27.74%) : 17387.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -6,109 +6,115 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 98.53
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 98.53
; 1 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 2.58) ref -> rdx class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T08] ( 3, 12.87) int -> rax
-; V03 loc2 [V03,T10] ( 3, 3.87) int -> rcx
-; V04 loc3 [V04,T09] ( 4, 4 ) struct (24) [rbp+0x28] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 2.58) ref -> rbx class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T06] ( 3, 12.87) int -> rax
+; V03 loc2 [V03,T08] ( 3, 3.87) int -> rcx
+; V04 loc3 [V04,T07] ( 4, 4 ) struct (24) [rbp+0x28] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T07] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> r11 "Inline return value spill temp"
+; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> rdi "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 2.58) int -> r8 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T02] ( 6,210.41) ref -> rdi "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 3,198.71) ref -> r10 "V04.[008..016)"
-; V17 tmp11 [V17,T01] ( 8,498.45) int -> rsi "V04.[016..020)"
-; V18 tmp12 [V18,T06] ( 3,102.29) int -> r8 "V04.[020..024)"
-; V19 tmp13 [V19,T00] ( 3,592.32) ref -> r10 "arr expr"
-; V20 cse0 [V20,T05] ( 2,108.12) int -> r9 hoist "CSE - aggressive"
+; V14 tmp8 [V14,T10] ( 2, 2.58) int -> r13 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T02] ( 6,302.29) ref -> r15 "V04.[000..008)"
+; V16 tmp10 [V16,T04] ( 3,198.71) ref -> rdx "V04.[008..016)"
+; V17 tmp11 [V17,T01] ( 8,498.45) int -> r14 "V04.[016..020)"
+; V18 tmp12 [V18,T05] ( 3,102.29) int -> r13 "V04.[020..024)"
+; V19 tmp13 [V19,T00] ( 3,592.32) ref -> rdx "arr expr"
;
; Lcl frame size = 0
G_M51974_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
push rax
- mov rbp, rsp
- mov rdx, gword ptr [rbp+0x48]
- ; gcrRegs +[rdx]
+ sub rsp, 32
+ mov qword ptr [rsp+0x98], r15
+ mov qword ptr [rsp+0x90], r14
+ mov qword ptr [rsp+0x88], r13
+ mov qword ptr [rsp+0x80], rbx
+ lea rbp, [rsp+0x20]
+ mov rbx, gword ptr [rbp+0x48]
+ ; gcrRegs +[rbx]
mov eax, dword ptr [rbp+0x44]
mov ecx, dword ptr [rbp+0x40]
- ;; size=18 bbWeight=1 PerfScore 9.25
-G_M51974_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp+0x28]
- ; gcrRegs +[rdi]
- mov esi, dword ptr [rbp+0x38]
- mov r8d, dword ptr [rbp+0x3C]
- jmp SHORT G_M51974_IG04
- ;; size=13 bbWeight=1 PerfScore 5.00
-G_M51974_IG03: ; bbWeight=1.29, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi]
- mov r8d, dword ptr [rdx+0x14]
- mov rdi, rdx
- ; gcrRegs +[rdi]
- xor esi, esi
- ;; size=9 bbWeight=1.29 PerfScore 3.22
-G_M51974_IG04: ; bbWeight=8.12, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- mov r9d, dword ptr [rdi+0x14]
- jmp SHORT G_M51974_IG06
- ;; size=6 bbWeight=8.12 PerfScore 32.48
-G_M51974_IG05: ; bbWeight=98.71, gcrefRegs=0484 {rdx rdi r10}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r10]
- cmp dword ptr [r10+0x1C], 0
- je SHORT G_M51974_IG10
- ;; size=7 bbWeight=98.71 PerfScore 394.84
-G_M51974_IG06: ; bbWeight=100, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r10]
- cmp r8d, r9d
- jne SHORT G_M51974_IG15
- cmp esi, dword ptr [rdi+0x10]
- jae SHORT G_M51974_IG11
- ;; size=10 bbWeight=100 PerfScore 525.00
-G_M51974_IG07: ; bbWeight=98.72, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- mov r10, gword ptr [rdi+0x08]
- ; gcrRegs +[r10]
- cmp esi, dword ptr [r10+0x08]
+ ;; size=56 bbWeight=1 PerfScore 13.75
+G_M51974_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ mov r15, gword ptr [rbp+0x28]
+ ; gcrRegs +[r15]
+ mov r14d, dword ptr [rbp+0x38]
+ mov r13d, dword ptr [rbp+0x3C]
+ jmp SHORT G_M51974_IG05
+ ;; size=14 bbWeight=1 PerfScore 5.00
+G_M51974_IG03: ; bbWeight=1.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r15]
+ mov r13d, dword ptr [rbx+0x14]
+ mov r15, rbx
+ ; gcrRegs +[r15]
+ xor r14d, r14d
+ jmp SHORT G_M51974_IG05
+ ;; size=12 bbWeight=1.29 PerfScore 5.80
+G_M51974_IG04: ; bbWeight=98.71, gcrefRegs=800C {rdx rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rdx]
+ cmp dword ptr [rdx+0x1C], 0
+ je SHORT G_M51974_IG09
+ ;; size=6 bbWeight=98.71 PerfScore 394.84
+G_M51974_IG05: ; bbWeight=100, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdx]
+ cmp r13d, dword ptr [r15+0x14]
+ jne SHORT G_M51974_IG11
+ cmp r14d, dword ptr [r15+0x10]
+ jae SHORT G_M51974_IG10
+ ;; size=12 bbWeight=100 PerfScore 800.00
+G_M51974_IG06: ; bbWeight=98.72, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ mov rdx, gword ptr [r15+0x08]
+ ; gcrRegs +[rdx]
+ cmp r14d, dword ptr [rdx+0x08]
jae SHORT G_M51974_IG12
- mov r11d, esi
- mov r10, gword ptr [r10+8*r11+0x10]
- inc esi
- mov r11d, 1
+ mov edi, r14d
+ mov rdx, gword ptr [rdx+8*rdi+0x10]
+ inc r14d
+ mov edi, 1
;; size=26 bbWeight=98.72 PerfScore 863.80
-G_M51974_IG08: ; bbWeight=100, gcrefRegs=0484 {rdx rdi r10}, byrefRegs=0000 {}, byref, isz
- test r11d, r11d
- jne SHORT G_M51974_IG05
- ;; size=5 bbWeight=100 PerfScore 125.00
-G_M51974_IG09: ; bbWeight=1.29, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi r10]
+G_M51974_IG07: ; bbWeight=100, gcrefRegs=800C {rdx rbx r15}, byrefRegs=0000 {}, byref, isz
+ test edi, edi
+ jne SHORT G_M51974_IG04
+ ;; size=4 bbWeight=100 PerfScore 125.00
+G_M51974_IG08: ; bbWeight=1.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdx r15]
inc ecx
cmp ecx, 0xD1FFAB1E
jge SHORT G_M51974_IG13
jmp SHORT G_M51974_IG03
;; size=12 bbWeight=1.29 PerfScore 4.51
-G_M51974_IG10: ; bbWeight=6.43, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdi]
+G_M51974_IG09: ; bbWeight=6.43, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r15]
inc eax
- jmp SHORT G_M51974_IG06
+ jmp SHORT G_M51974_IG05
;; size=4 bbWeight=6.43 PerfScore 14.48
-G_M51974_IG11: ; bbWeight=1.28, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- mov esi, dword ptr [rdi+0x10]
- inc esi
- xor r10, r10
- ; gcrRegs +[r10]
- xor r11d, r11d
- jmp SHORT G_M51974_IG08
+G_M51974_IG10: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ mov r14d, dword ptr [r15+0x10]
+ inc r14d
+ xor rdx, rdx
+ ; gcrRegs +[rdx]
+ xor edi, edi
+ jmp SHORT G_M51974_IG07
;; size=13 bbWeight=1.28 PerfScore 6.08
+G_M51974_IG11: ; bbWeight=1.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rdx rbx r15]
+ call [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
+ ; gcr arg pop 0
+ int3
+ ;; size=7 bbWeight=1.28 PerfScore 4.16
G_M51974_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx rdi r10]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
@@ -119,16 +125,15 @@ G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=11 bbWeight=0 PerfScore 0.00
G_M51974_IG14: ; bbWeight=0, epilog, nogc, extend
add rsp, 128
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
-G_M51974_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
- ; gcr arg pop 0
- int3
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 155, prolog size 18, PerfScore 1983.66, instruction count 50, allocated bytes for code 155 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 198, prolog size 56, PerfScore 2237.42, instruction count 58, allocated bytes for code 198 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -136,11 +141,20 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x29
+ CountOfUnwindCodes: 12
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
+ CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ Scaled Small Offset: 16 * 8 = 128 = 0x00080
+ CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13)
+ Scaled Small Offset: 17 * 8 = 136 = 0x00088
+ CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r14 (14)
+ Scaled Small Offset: 18 * 8 = 144 = 0x00090
+ CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r15 (15)
+ Scaled Small Offset: 19 * 8 = 152 = 0x00098
+ CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 14 * 8 + 8 = 120 = 0x78
CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
benchmarks.run_tiered.linux.x64.checked.mch
-36 (-8.51%) : 54293.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
@@ -10,20 +10,20 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T21] ( 2, 4 ) ref -> r13 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T17] ( 3, 17 ) int -> r14
-; V03 loc2 [V03,T15] ( 3, 24 ) int -> r15
-; V04 loc3 [V04,T07] ( 9, 66 ) ref -> rbx class-hnd exact <System.Collections.Generic.List`1[Product]>
-; V05 loc4 [V05,T23] ( 4, 1.03) struct (24) [rbp+0x50] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T20] ( 2, 4 ) ref -> r13 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T16] ( 3, 17 ) int -> r14
+; V03 loc2 [V03,T14] ( 3, 24 ) int -> r15
+; V04 loc3 [V04,T06] ( 9, 66 ) ref -> rbx class-hnd exact <System.Collections.Generic.List`1[Product]>
+; V05 loc4 [V05,T22] ( 4, 1.03) struct (24) [rbp+0x50] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
-; V07 loc6 [V07,T24] ( 1, 1 ) struct (24) [rbp+0x30] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V07 loc6 [V07,T23] ( 1, 1 ) struct (24) [rbp+0x30] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V08 loc7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T19] ( 3, 12 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
-; V11 tmp2 [V11,T05] ( 3, 72.01) int -> r12 "OSR entry state var"
+; V10 tmp1 [V10,T18] ( 3, 12 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[Product]>
+;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V13 tmp4 [V13,T14] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp5 [V14,T11] ( 4, 32 ) int -> r8 "Inline stloc first use temp"
+; V13 tmp4 [V13,T13] ( 3, 24 ) ref -> rdi class-hnd "Inline stloc first use temp" <<unknown class>>
+; V14 tmp5 [V14,T10] ( 4, 32 ) int -> rcx "Inline stloc first use temp"
; V15 tmp6 [V15,T03] ( 3, 80 ) ubyte -> rdi "Inline return value spill temp"
;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
@@ -32,36 +32,36 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref "field V12._list (fldOffset=0x0)" P-INDEP
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref "field V12._current (fldOffset=0x8)" P-INDEP
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "field V12._index (fldOffset=0x10)" P-INDEP
-; V23 tmp14 [V23,T22] ( 2, 4 ) int -> rcx "field V12._version (fldOffset=0x14)" P-INDEP
+; V23 tmp14 [V23,T21] ( 2, 4 ) int -> rax "field V12._version (fldOffset=0x14)" P-INDEP
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref "field V17._list (fldOffset=0x0)" P-INDEP
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref "field V17._current (fldOffset=0x8)" P-INDEP
;* V26 tmp17 [V26 ] ( 0, 0 ) int -> zero-ref "field V17._index (fldOffset=0x10)" P-INDEP
-;* V27 tmp18 [V27,T18] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
-; V28 tmp19 [V28,T02] ( 5, 82.01) ref -> [rbp-0x38] "V05.[000..008)"
-; V29 tmp20 [V29,T10] ( 5, 40 ) ref -> rdx "V05.[008..016)"
-; V30 tmp21 [V30,T08] ( 8, 50.01) int -> [rbp-0x2C] "V05.[016..020)"
-; V31 tmp22 [V31,T06] ( 3, 66.01) int -> [rbp-0x30] "V05.[020..024)"
+;* V27 tmp18 [V27,T17] ( 0, 0 ) int -> zero-ref "field V17._version (fldOffset=0x14)" P-INDEP
+; V28 tmp19 [V28,T02] ( 5, 82.01) ref -> r12 "V05.[000..008)"
+; V29 tmp20 [V29,T09] ( 5, 40 ) ref -> rdx "V05.[008..016)"
+; V30 tmp21 [V30,T07] ( 8, 50.01) int -> [rbp-0x2C] "V05.[016..020)"
+; V31 tmp22 [V31,T05] ( 3, 66.01) int -> [rbp-0x30] "V05.[020..024)"
; V32 tmp23 [V32,T01] ( 4, 88 ) ref -> rbx "V07.[000..008)"
;* V33 tmp24 [V33 ] ( 0, 0 ) ref -> zero-ref "V07.[008..016)"
; V34 tmp25 [V34,T00] ( 6,104 ) int -> rdi "V07.[016..020)"
-;* V35 tmp26 [V35,T20] ( 0, 0 ) int -> zero-ref "V07.[020..024)"
-; V36 tmp27 [V36,T09] ( 3, 48 ) ref -> rdi "arr expr"
-; V37 tmp28 [V37,T13] ( 2, 32 ) ref -> rax "arr expr"
-; V38 cse0 [V38,T12] ( 2, 16 ) int -> rdi multi-def "CSE - aggressive"
-; V39 cse1 [V39,T16] ( 3, 24 ) int -> rdi "CSE - moderate"
+;* V35 tmp26 [V35,T19] ( 0, 0 ) int -> zero-ref "V07.[020..024)"
+; V36 tmp27 [V36,T08] ( 3, 48 ) ref -> rdi "arr expr"
+; V37 tmp28 [V37,T12] ( 2, 32 ) ref -> rax "arr expr"
+; V38 cse0 [V38,T11] ( 2, 16 ) int -> rdi multi-def "CSE - aggressive"
+; V39 cse1 [V39,T15] ( 3, 24 ) int -> rdi "CSE - moderate"
;
-; Lcl frame size = 24
+; Lcl frame size = 8
G_M25128_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
push rax
- sub rsp, 64
- mov qword ptr [rsp+0xE8], r15
- mov qword ptr [rsp+0xE0], r14
- mov qword ptr [rsp+0xD8], r13
- mov qword ptr [rsp+0xD0], r12
- mov qword ptr [rsp+0xC8], rbx
- lea rbp, [rsp+0x40]
+ sub rsp, 48
+ mov qword ptr [rsp+0xD8], r15
+ mov qword ptr [rsp+0xD0], r14
+ mov qword ptr [rsp+0xC8], r13
+ mov qword ptr [rsp+0xC0], r12
+ mov qword ptr [rsp+0xB8], rbx
+ lea rbp, [rsp+0x30]
mov r13, gword ptr [rbp+0x78]
; gcrRegs +[r13]
mov r14d, dword ptr [rbp+0x74]
@@ -69,16 +69,15 @@ G_M25128_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov rbx, gword ptr [rbp+0x68]
; gcrRegs +[rbx]
;; size=70 bbWeight=0.01 PerfScore 0.17
-G_M25128_IG02: ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
- xor r12d, r12d
- mov rax, gword ptr [rbp+0x50]
- ; gcrRegs +[rax]
+G_M25128_IG02: ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+ mov r12, gword ptr [rbp+0x50]
+ ; gcrRegs +[r12]
mov esi, dword ptr [rbp+0x60]
- mov ecx, dword ptr [rbp+0x64]
- jmp SHORT G_M25128_IG04
+ mov eax, dword ptr [rbp+0x64]
+ jmp G_M25128_IG06
;; size=15 bbWeight=0.01 PerfScore 0.05
-G_M25128_IG03: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rbx]
+G_M25128_IG03: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbx r12]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Product]
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -87,154 +86,132 @@ G_M25128_IG03: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
mov rax, 0xD1FFAB1E
mov gword ptr [rbx+0x08], rax
- mov ecx, dword ptr [r13+0x14]
- mov rax, r13
+ mov eax, dword ptr [r13+0x14]
+ ; gcrRegs -[rax]
+ mov r12, r13
+ ; gcrRegs +[r12]
xor esi, esi
- ;; size=41 bbWeight=2 PerfScore 10.50
-G_M25128_IG04: ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref, isz
- test r12d, r12d
- je SHORT G_M25128_IG07
- jmp SHORT G_M25128_IG07
- ;; size=7 bbWeight=8 PerfScore 26.00
-G_M25128_IG05: ; bbWeight=8, gcVars=0000000000000004 {V28}, gcrefRegs=200C {rdx rbx r13}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rdx]
- ; GC ptr vars +{V02 V28}
+ jmp SHORT G_M25128_IG06
+ ;; size=43 bbWeight=2 PerfScore 14.50
+G_M25128_IG04: ; bbWeight=8, gcrefRegs=300C {rdx rbx r12 r13}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rdx]
cmp dword ptr [rdx+0x1C], 0
- mov rax, gword ptr [rbp-0x38]
- ; gcrRegs +[rax]
- mov ecx, dword ptr [rbp-0x30]
- jne SHORT G_M25128_IG07
+ mov eax, dword ptr [rbp-0x30]
+ jne SHORT G_M25128_IG06
mov edi, dword ptr [rbx+0x14]
inc edi
mov dword ptr [rbx+0x14], edi
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
- mov r8d, dword ptr [rbx+0x10]
- cmp dword ptr [rdi+0x08], r8d
- jbe SHORT G_M25128_IG06
- mov gword ptr [rbp-0x38], rax
- mov dword ptr [rbp-0x30], ecx
+ mov ecx, dword ptr [rbx+0x10]
+ cmp dword ptr [rdi+0x08], ecx
+ jbe SHORT G_M25128_IG05
+ mov dword ptr [rbp-0x30], eax
mov dword ptr [rbp-0x2C], esi
- lea r9d, [r8+0x01]
- mov dword ptr [rbx+0x10], r9d
- movsxd rsi, r8d
+ lea r8d, [rcx+0x01]
+ mov dword ptr [rbx+0x10], r8d
+ movsxd rsi, ecx
call CORINFO_HELP_ARRADDR_ST
- ; gcrRegs -[rax rdx rdi]
+ ; gcrRegs -[rdx rdi]
; gcr arg pop 0
- mov rax, gword ptr [rbp-0x38]
- ; gcrRegs +[rax]
- mov ecx, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x30]
mov esi, dword ptr [rbp-0x2C]
- jmp SHORT G_M25128_IG07
- ;; size=73 bbWeight=8 PerfScore 224.00
-G_M25128_IG06: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=200D {rax rdx rbx r13}, byrefRegs=0000 {}, gcvars, byref
+ jmp SHORT G_M25128_IG06
+ ;; size=59 bbWeight=8 PerfScore 200.00
+G_M25128_IG05: ; bbWeight=8, gcrefRegs=300C {rdx rbx r12 r13}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx]
- ; GC ptr vars -{V02 V28}
- mov gword ptr [rbp-0x38], rax
- ; GC ptr vars +{V28}
- mov dword ptr [rbp-0x30], ecx
+ mov dword ptr [rbp-0x30], eax
mov dword ptr [rbp-0x2C], esi
mov rdi, rbx
; gcrRegs +[rdi]
mov rsi, rdx
; gcrRegs +[rsi]
call [<unknown method>]
- ; gcrRegs -[rax rdx rsi rdi]
+ ; gcrRegs -[rdx rsi rdi]
; gcr arg pop 0
- mov rax, gword ptr [rbp-0x38]
- ; gcrRegs +[rax]
- mov ecx, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x30]
mov esi, dword ptr [rbp-0x2C]
- ;; size=32 bbWeight=8 PerfScore 76.00
-G_M25128_IG07: ; bbWeight=64, gcVars=0000000000000000 {}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V28}
- mov r12d, 1
- mov dword ptr [rbp-0x30], ecx
- cmp ecx, dword ptr [rax+0x14]
- jne G_M25128_IG21
- ;; size=18 bbWeight=64 PerfScore 336.00
-G_M25128_IG08: ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rax+0x10]
+ ;; size=24 bbWeight=8 PerfScore 60.00
+G_M25128_IG06: ; bbWeight=64, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref
+ mov dword ptr [rbp-0x30], eax
+ cmp eax, dword ptr [r12+0x14]
+ jne G_M25128_IG20
+ ;; size=14 bbWeight=64 PerfScore 320.00
+G_M25128_IG07: ; bbWeight=8, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz
+ mov edi, dword ptr [r12+0x10]
cmp esi, edi
- jae SHORT G_M25128_IG09
- mov gword ptr [rbp-0x38], rax
- ; GC ptr vars +{V28}
- mov rdi, gword ptr [rax+0x08]
+ jae SHORT G_M25128_IG08
+ mov rdi, gword ptr [r12+0x08]
; gcrRegs +[rdi]
cmp esi, dword ptr [rdi+0x08]
- jae G_M25128_IG20
+ jae G_M25128_IG19
mov edx, esi
mov rdx, gword ptr [rdi+8*rdx+0x10]
; gcrRegs +[rdx]
inc esi
mov edi, 1
; gcrRegs -[rdi]
- jmp SHORT G_M25128_IG10
- ;; size=40 bbWeight=8 PerfScore 120.00
-G_M25128_IG09: ; bbWeight=8, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M25128_IG09
+ ;; size=39 bbWeight=8 PerfScore 112.00
+G_M25128_IG08: ; bbWeight=8, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
- ; GC ptr vars -{V28}
lea esi, [rdi+0x01]
mov dword ptr [rbp-0x2C], esi
xor rdx, rdx
; gcrRegs +[rdx]
xor edi, edi
- mov gword ptr [rbp-0x38], rax
- ; GC ptr vars +{V28}
mov esi, dword ptr [rbp-0x2C]
- ;; size=17 bbWeight=8 PerfScore 32.00
...
-24 (-8.42%) : 33314.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -40,9 +40,9 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 6.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rbx+0x60], 0
- jne G_M23091_IG08
+ jne G_M23091_IG07
test rcx, rcx
- je G_M23091_IG09
+ je G_M23091_IG08
lea rdi, bword ptr [rcx+0xAC]
; byrRegs +[rdi]
mov esi, 1
@@ -50,7 +50,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
lock
cmpxchg dword ptr [rdi], esi
test eax, eax
- jne G_M23091_IG10
+ jne G_M23091_IG09
mov dword ptr [rcx+0x94], 4
lea rdi, bword ptr [rcx+0x60]
mov rsi, rbx
@@ -61,19 +61,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0xBA], 0
- jne SHORT G_M23091_IG04
+ je SHORT G_M23091_IG04
;; size=80 bbWeight=1 PerfScore 33.25
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M23091_IG05
- jmp SHORT G_M23091_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -88,7 +79,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; byrRegs -[rdi]
nop
;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
mov rsi, gword ptr [rbx+0x08]
@@ -102,20 +93,20 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=1 PerfScore 6.75
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -124,7 +115,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 0x1D12
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -137,7 +128,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
; GC ptr vars +{V00 V01}
mov rdi, rcx
@@ -149,7 +140,7 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push r15
@@ -159,7 +150,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
; GC ptr vars -{V00 V01}
@@ -171,7 +162,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 285, prolog size 30, PerfScore 57.88, instruction count 77, allocated bytes for code 285 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 261, prolog size 30, PerfScore 53.75, instruction count 72, allocated bytes for code 261 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -204,4 +195,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-24 (-8.42%) : 33436.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -40,9 +40,9 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 6.50
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rbx+0x60], 0
- jne G_M29540_IG08
+ jne G_M29540_IG07
test rcx, rcx
- je G_M29540_IG09
+ je G_M29540_IG08
lea rdi, bword ptr [rcx+0xAC]
; byrRegs +[rdi]
mov esi, 1
@@ -50,7 +50,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
lock
cmpxchg dword ptr [rdi], esi
test eax, eax
- jne G_M29540_IG10
+ jne G_M29540_IG09
mov dword ptr [rcx+0x94], 7
lea rdi, bword ptr [rcx+0x60]
mov rsi, rbx
@@ -61,19 +61,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=800
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0xBA], 0
- jne SHORT G_M29540_IG04
+ je SHORT G_M29540_IG04
;; size=80 bbWeight=1 PerfScore 33.25
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M29540_IG05
- jmp SHORT G_M29540_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -88,7 +79,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; byrRegs -[rdi]
nop
;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp-0x18]
; gcrRegs +[rcx]
mov rsi, gword ptr [rbx+0x08]
@@ -102,20 +93,20 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=1 PerfScore 6.75
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -124,7 +115,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 0x1D12
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -137,7 +128,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
; GC ptr vars +{V00 V01}
mov rdi, rcx
@@ -149,7 +140,7 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push r15
@@ -159,7 +150,7 @@ G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x20]
;; size=19 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
; GC ptr vars -{V00 V01}
@@ -171,7 +162,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 285, prolog size 30, PerfScore 57.88, instruction count 77, allocated bytes for code 285 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 261, prolog size 30, PerfScore 53.75, instruction count 72, allocated bytes for code 261 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -204,4 +195,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
+7 (+1.84%) : 52774.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T08] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
+; V01 loc0 [V01,T09] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
; V02 loc1 [V02,T01] ( 3, 33 ) int -> rbx
; V03 loc2 [V03,T02] ( 3, 24 ) int -> r15
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
@@ -20,13 +20,14 @@
; V08 tmp1 [V08,T05] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
; V10 tmp3 [V10,T04] ( 4, 8 ) ref -> rdx
-; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r12 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V13 tmp6 [V13,T06] ( 2, 8 ) ref -> rsi class-hnd exact "Inlining Arg" <<unknown class>>
; V14 tmp7 [V14,T07] ( 2, 8 ) ref -> rdi "argument with side effect"
-; V15 PSPSym [V15,T09] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V15 PSPSym [V15,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V16 cse0 [V16,T08] ( 3, 6 ) long -> r13 "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M64534_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
@@ -35,22 +36,23 @@ G_M64534_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov qword ptr [rsp+0xC8], r15
mov qword ptr [rsp+0xC0], r14
mov qword ptr [rsp+0xB8], r13
- mov qword ptr [rsp+0xB0], rbx
+ mov qword ptr [rsp+0xB0], r12
+ mov qword ptr [rsp+0xA8], rbx
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov r14, gword ptr [rbp+0x68]
; gcrRegs +[r14]
mov ebx, dword ptr [rbp+0x64]
mov r15d, dword ptr [rbp+0x60]
- ;; size=61 bbWeight=0.01 PerfScore 0.15
+ ;; size=69 bbWeight=0.01 PerfScore 0.16
G_M64534_IG02: ; bbWeight=0.01, gcVars=0000000000000001 {V05}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V05}
jmp G_M64534_IG05
;; size=5 bbWeight=0.01 PerfScore 0.02
G_M64534_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V05}
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rdx, gword ptr [rdi]
+ mov r13, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov rdx, gword ptr [r13]
; gcrRegs +[rdx]
test rdx, rdx
jne SHORT G_M64534_IG04
@@ -58,28 +60,28 @@ G_M64534_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {
call CORINFO_HELP_NEWSFAST
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- mov r13, rax
- ; gcrRegs +[r13]
+ mov r12, rax
+ ; gcrRegs +[r12]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
- lea rdi, bword ptr [r13+0x08]
+ lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for <unknown method>
- mov qword ptr [r13+0x18], rdi
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rsi, r13
+ mov qword ptr [r12+0x18], rdi
+ mov rdi, r13
+ mov rsi, r12
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
- mov rdx, r13
+ mov rdx, r12
; gcrRegs +[rdx]
- ;; size=93 bbWeight=2 PerfScore 23.50
+ ;; size=89 bbWeight=2 PerfScore 23.50
G_M64534_IG04: ; bbWeight=2, gcrefRegs=4004 {rdx r14}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r13]
+ ; gcrRegs -[r12]
mov rsi, r14
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
@@ -142,26 +144,28 @@ G_M64534_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sete al
;; size=11 bbWeight=1 PerfScore 1.50
G_M64534_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 176
+ add rsp, 168
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=16 bbWeight=1 PerfScore 3.75
+ ;; size=18 bbWeight=1 PerfScore 4.25
G_M64534_IG10: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V05}
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M64534_IG11: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp+0x50], 0
je SHORT G_M64534_IG12
@@ -177,16 +181,17 @@ G_M64534_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M64534_IG13: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 380, prolog size 61, PerfScore 294.92, instruction count 89, allocated bytes for code 380 (MethodHash=d57103e9) for method LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
+; Total bytes of code 387, prolog size 69, PerfScore 295.43, instruction count 93, allocated bytes for code 387 (MethodHash=d57103e9) for method LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -194,12 +199,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x29
- CountOfUnwindCodes: 13
+ SizeOfProlog : 0x31
+ CountOfUnwindCodes: 15
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ Scaled Small Offset: 21 * 8 = 168 = 0x000A8
+ CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r12 (12)
Scaled Small Offset: 22 * 8 = 176 = 0x000B0
CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13)
Scaled Small Offset: 23 * 8 = 184 = 0x000B8
@@ -217,13 +224,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0B
+ 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: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ 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)
+7 (+1.84%) : 55015.dasm - LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T08] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
+; V01 loc0 [V01,T09] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
; V02 loc1 [V02,T01] ( 3, 33 ) int -> rbx
; V03 loc2 [V03,T02] ( 3, 24 ) int -> r15
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
@@ -20,13 +20,14 @@
; V08 tmp1 [V08,T05] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
; V10 tmp3 [V10,T04] ( 4, 8 ) ref -> rdx
-; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r12 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V13 tmp6 [V13,T06] ( 2, 8 ) ref -> rsi class-hnd exact "Inlining Arg" <<unknown class>>
; V14 tmp7 [V14,T07] ( 2, 8 ) ref -> rdi "argument with side effect"
-; V15 PSPSym [V15,T09] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V15 PSPSym [V15,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V16 cse0 [V16,T08] ( 3, 6 ) long -> r13 "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M11746_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
@@ -35,22 +36,23 @@ G_M11746_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov qword ptr [rsp+0xC8], r15
mov qword ptr [rsp+0xC0], r14
mov qword ptr [rsp+0xB8], r13
- mov qword ptr [rsp+0xB0], rbx
+ mov qword ptr [rsp+0xB0], r12
+ mov qword ptr [rsp+0xA8], rbx
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov r14, gword ptr [rbp+0x68]
; gcrRegs +[r14]
mov ebx, dword ptr [rbp+0x64]
mov r15d, dword ptr [rbp+0x60]
- ;; size=61 bbWeight=0.01 PerfScore 0.15
+ ;; size=69 bbWeight=0.01 PerfScore 0.16
G_M11746_IG02: ; bbWeight=0.01, gcVars=0000000000000001 {V05}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V05}
jmp G_M11746_IG05
;; size=5 bbWeight=0.01 PerfScore 0.02
G_M11746_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V05}
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rdx, gword ptr [rdi]
+ mov r13, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov rdx, gword ptr [r13]
; gcrRegs +[rdx]
test rdx, rdx
jne SHORT G_M11746_IG04
@@ -58,28 +60,28 @@ G_M11746_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {
call CORINFO_HELP_NEWSFAST
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- mov r13, rax
- ; gcrRegs +[r13]
+ mov r12, rax
+ ; gcrRegs +[r12]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
- lea rdi, bword ptr [r13+0x08]
+ lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for <unknown method>
- mov qword ptr [r13+0x18], rdi
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rsi, r13
+ mov qword ptr [r12+0x18], rdi
+ mov rdi, r13
+ mov rsi, r12
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
- mov rdx, r13
+ mov rdx, r12
; gcrRegs +[rdx]
- ;; size=93 bbWeight=2 PerfScore 23.50
+ ;; size=89 bbWeight=2 PerfScore 23.50
G_M11746_IG04: ; bbWeight=2, gcrefRegs=4004 {rdx r14}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r13]
+ ; gcrRegs -[r12]
mov rsi, r14
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
@@ -142,26 +144,28 @@ G_M11746_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sete al
;; size=11 bbWeight=1 PerfScore 1.50
G_M11746_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 176
+ add rsp, 168
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=16 bbWeight=1 PerfScore 3.75
+ ;; size=18 bbWeight=1 PerfScore 4.25
G_M11746_IG10: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V05}
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M11746_IG11: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp+0x50], 0
je SHORT G_M11746_IG12
@@ -177,16 +181,17 @@ G_M11746_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M11746_IG13: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 380, prolog size 61, PerfScore 294.92, instruction count 89, allocated bytes for code 380 (MethodHash=865bd21d) for method LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
+; Total bytes of code 387, prolog size 69, PerfScore 295.43, instruction count 93, allocated bytes for code 387 (MethodHash=865bd21d) for method LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -194,12 +199,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x29
- CountOfUnwindCodes: 13
+ SizeOfProlog : 0x31
+ CountOfUnwindCodes: 15
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ Scaled Small Offset: 21 * 8 = 168 = 0x000A8
+ CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r12 (12)
Scaled Small Offset: 22 * 8 = 176 = 0x000B0
CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13)
Scaled Small Offset: 23 * 8 = 184 = 0x000B8
@@ -217,13 +224,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0B
+ 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: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ 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)
+7 (+1.84%) : 56536.dasm - LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T08] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
+; V01 loc0 [V01,T09] ( 1, 2 ) ref -> r14 class-hnd <System.Collections.Generic.List`1[Product]>
; V02 loc1 [V02,T01] ( 3, 33 ) int -> rbx
; V03 loc2 [V03,T02] ( 3, 24 ) int -> r15
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
@@ -20,13 +20,14 @@
; V08 tmp1 [V08,T05] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
; V10 tmp3 [V10,T04] ( 4, 8 ) ref -> rdx
-; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V11 tmp4 [V11,T03] ( 5, 20 ) ref -> r12 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V13 tmp6 [V13,T06] ( 2, 8 ) ref -> rsi class-hnd exact "Inlining Arg" <<unknown class>>
; V14 tmp7 [V14,T07] ( 2, 8 ) ref -> rdi "argument with side effect"
-; V15 PSPSym [V15,T09] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V15 PSPSym [V15,T10] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V16 cse0 [V16,T08] ( 3, 6 ) long -> r13 "CSE - aggressive"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M24727_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
@@ -35,22 +36,23 @@ G_M24727_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov qword ptr [rsp+0xC8], r15
mov qword ptr [rsp+0xC0], r14
mov qword ptr [rsp+0xB8], r13
- mov qword ptr [rsp+0xB0], rbx
+ mov qword ptr [rsp+0xB0], r12
+ mov qword ptr [rsp+0xA8], rbx
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov r14, gword ptr [rbp+0x68]
; gcrRegs +[r14]
mov ebx, dword ptr [rbp+0x64]
mov r15d, dword ptr [rbp+0x60]
- ;; size=61 bbWeight=0.01 PerfScore 0.15
+ ;; size=69 bbWeight=0.01 PerfScore 0.16
G_M24727_IG02: ; bbWeight=0.01, gcVars=0000000000000001 {V05}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V05}
jmp G_M24727_IG05
;; size=5 bbWeight=0.01 PerfScore 0.02
G_M24727_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V05}
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rdx, gword ptr [rdi]
+ mov r13, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov rdx, gword ptr [r13]
; gcrRegs +[rdx]
test rdx, rdx
jne SHORT G_M24727_IG04
@@ -58,28 +60,28 @@ G_M24727_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=4000 {
call CORINFO_HELP_NEWSFAST
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- mov r13, rax
- ; gcrRegs +[r13]
+ mov r12, rax
+ ; gcrRegs +[r12]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
- lea rdi, bword ptr [r13+0x08]
+ lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for <unknown method>
- mov qword ptr [r13+0x18], rdi
- mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rsi, r13
+ mov qword ptr [r12+0x18], rdi
+ mov rdi, r13
+ mov rsi, r12
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
- mov rdx, r13
+ mov rdx, r12
; gcrRegs +[rdx]
- ;; size=93 bbWeight=2 PerfScore 23.50
+ ;; size=89 bbWeight=2 PerfScore 23.50
G_M24727_IG04: ; bbWeight=2, gcrefRegs=4004 {rdx r14}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r13]
+ ; gcrRegs -[r12]
mov rsi, r14
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
@@ -142,26 +144,28 @@ G_M24727_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sete al
;; size=11 bbWeight=1 PerfScore 1.50
G_M24727_IG09: ; bbWeight=1, epilog, nogc, extend
- add rsp, 176
+ add rsp, 168
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=16 bbWeight=1 PerfScore 3.75
+ ;; size=18 bbWeight=1 PerfScore 4.25
G_M24727_IG10: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V05}
push rbp
push r15
push r14
push r13
+ push r12
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M24727_IG11: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp+0x50], 0
je SHORT G_M24727_IG12
@@ -177,16 +181,17 @@ G_M24727_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M24727_IG13: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 16
+ add rsp, 8
pop rbx
+ pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 380, prolog size 61, PerfScore 294.92, instruction count 89, allocated bytes for code 380 (MethodHash=51429f68) for method LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
+; Total bytes of code 387, prolog size 69, PerfScore 295.43, instruction count 93, allocated bytes for code 387 (MethodHash=51429f68) for method LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -194,12 +199,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x29
- CountOfUnwindCodes: 13
+ SizeOfProlog : 0x31
+ CountOfUnwindCodes: 15
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ Scaled Small Offset: 21 * 8 = 168 = 0x000A8
+ CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r12 (12)
Scaled Small Offset: 22 * 8 = 176 = 0x000B0
CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: r13 (13)
Scaled Small Offset: 23 * 8 = 184 = 0x000B8
@@ -217,13 +224,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x0B
+ 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: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
+ 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)
coreclr_tests.run.linux.x64.checked.mch
-37 (-69.81%) : 532942.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -2,51 +2,33 @@
; 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; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 6, 4.50) float -> mm0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 4 ) float -> mm0 "Single return block return value"
-; V03 cse0 [V03,T02] ( 5, 3.50) float -> mm1 "CSE - aggressive"
+; V02 tmp1 [V02,T00] ( 2, 4 ) float -> mm0 "Single return block return value"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53791_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
+ push rax
vzeroupper
- mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 2.00
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm0, xmm1
- jbe SHORT G_M53791_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53791_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M53791_IG05
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vucomiss xmm1, xmm0
- ja SHORT G_M53791_IG03
- vucomiss xmm0, xmm1
- jp SHORT G_M53791_IG03
- jne SHORT G_M53791_IG03
- vucomiss xmm1, xmm0
- jbe SHORT G_M53791_IG03
- jmp SHORT G_M53791_IG03
- ;; size=22 bbWeight=0.50 PerfScore 6.00
-G_M53791_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop rbp
+ ; gcr arg pop 0
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-RWD00 dd 41200000h ; 10
+ ;; size=5 bbWeight=1 PerfScore 1.25
-
-; Total bytes of code 53, prolog size 7, PerfScore 20.75, instruction count 18, allocated bytes for code 53 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -59,4 +41,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
-29 (-64.44%) : 526531.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
@@ -2,47 +2,35 @@
; 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; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 5, 4 ) float -> mm0 single-def
+; V00 loc0 [V00,T00] ( 2, 2 ) float -> mm0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T01] ( 4, 3 ) float -> mm1 "CSE - aggressive"
+;* V04 cse0 [V04,T01] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
+ push rax
vzeroupper
- mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 2.00
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm1, xmm0
- jbe SHORT G_M53663_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop rbp
+ ; gcr arg pop 0
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vucomiss xmm0, xmm1
- jp SHORT G_M53663_IG03
- jne SHORT G_M53663_IG03
- vucomiss xmm0, xmm1
- jbe SHORT G_M53663_IG03
- jmp SHORT G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 4.50
-RWD00 dd 41200000h ; 10
+ ;; size=5 bbWeight=1 PerfScore 1.25
-
-; Total bytes of code 45, prolog size 7, PerfScore 17.25, instruction count 15, allocated bytes for code 45 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -55,4 +43,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
-23 (-58.97%) : 532890.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
@@ -2,43 +2,32 @@
; 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; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> mm0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 2.50) float -> mm1 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
+ push rax
vzeroupper
- mov rbp, rsp
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 2.00
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm1, xmm0
- jbe SHORT G_M53663_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop rbp
+ ; gcr arg pop 0
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vucomiss xmm0, xmm1
- jp SHORT G_M53663_IG03
- jne SHORT G_M53663_IG03
- jmp SHORT G_M53663_IG03
- ;; size=10 bbWeight=0.50 PerfScore 3.00
-RWD00 dd 41200000h ; 10
+ ;; size=5 bbWeight=1 PerfScore 1.25
-
-; Total bytes of code 39, prolog size 7, PerfScore 15.75, instruction count 13, allocated bytes for code 39 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 16, prolog size 4, PerfScore 6.50, instruction count 6, allocated bytes for code 16 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -51,4 +40,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
+7 (+4.05%) : 413336.dasm - testout1:Sub_Funclet_183():int (FullOpts)
@@ -18,49 +18,49 @@
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref single-def
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 tmp6 [V10,T10] ( 2, 2 ) int -> rcx single-def
+; V10 tmp6 [V10,T11] ( 2, 2 ) int -> rdx single-def
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref
-; V13 tmp9 [V13,T11] ( 2, 2 ) int -> rcx single-def
+; V13 tmp9 [V13,T12] ( 2, 2 ) int -> rdx single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref
-; V16 tmp12 [V16,T12] ( 2, 2 ) int -> rcx single-def
+; V16 tmp12 [V16,T13] ( 2, 2 ) int -> rdx single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref
-; V19 tmp15 [V19,T13] ( 2, 2 ) int -> rcx single-def
+;* V19 tmp15 [V19,T14] ( 0, 0 ) int -> zero-ref single-def
;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref
;* V21 tmp17 [V21 ] ( 0, 0 ) int -> zero-ref
-; V22 tmp18 [V22,T14] ( 2, 2 ) int -> rcx single-def
+;* V22 tmp18 [V22,T15] ( 0, 0 ) int -> zero-ref single-def
;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref
-;* V25 tmp21 [V25,T15] ( 0, 0 ) int -> zero-ref single-def
+;* V25 tmp21 [V25 ] ( 0, 0 ) int -> zero-ref
;* V26 tmp22 [V26 ] ( 0, 0 ) int -> zero-ref
;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp24 [V28,T24] ( 0, 0 ) int -> zero-ref single-def
;* V29 tmp25 [V29 ] ( 0, 0 ) int -> zero-ref
;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref
-;* V31 tmp27 [V31,T16] ( 0, 0 ) int -> zero-ref single-def
+; V31 tmp27 [V31,T16] ( 2, 2 ) int -> rdx single-def
;* V32 tmp28 [V32 ] ( 0, 0 ) int -> zero-ref
;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref
-;* V34 tmp30 [V34,T17] ( 0, 0 ) int -> zero-ref single-def
+; V34 tmp30 [V34,T17] ( 2, 2 ) int -> rcx single-def
;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref
;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref
-;* V37 tmp33 [V37,T18] ( 0, 0 ) int -> zero-ref single-def
+; V37 tmp33 [V37,T18] ( 2, 2 ) int -> rcx single-def
;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref
-;* V40 tmp36 [V40,T25] ( 0, 0 ) int -> zero-ref single-def
+; V40 tmp36 [V40,T19] ( 2, 2 ) int -> rcx single-def
;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref
-; V43 tmp39 [V43,T19] ( 2, 2 ) int -> rcx single-def
+; V43 tmp39 [V43,T20] ( 2, 2 ) int -> rax single-def
;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref
;* V45 tmp41 [V45 ] ( 0, 0 ) int -> zero-ref
-; V46 tmp42 [V46,T20] ( 2, 2 ) int -> rcx single-def
+; V46 tmp42 [V46,T21] ( 2, 2 ) int -> rax single-def
;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref
;* V48 tmp44 [V48 ] ( 0, 0 ) int -> zero-ref
-;* V49 tmp45 [V49,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V49 tmp45 [V49,T25] ( 0, 0 ) int -> zero-ref single-def
;* V50 tmp46 [V50 ] ( 0, 0 ) int -> zero-ref
;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref
-;* V52 tmp48 [V52,T26] ( 0, 0 ) int -> zero-ref single-def
+;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref
;* V53 tmp49 [V53 ] ( 0, 0 ) int -> zero-ref
;* V54 tmp50 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp51 [V55,T22] ( 0, 0 ) int -> zero-ref single-def
@@ -69,19 +69,20 @@
;* V58 tmp54 [V58,T23] ( 0, 0 ) int -> zero-ref single-def
;* V59 tmp55 [V59 ] ( 0, 0 ) int -> zero-ref
;* V60 tmp56 [V60 ] ( 0, 0 ) int -> zero-ref
-;* V61 tmp57 [V61,T27] ( 0, 0 ) int -> zero-ref single-def
+;* V61 tmp57 [V61,T26] ( 0, 0 ) int -> zero-ref single-def
;* V62 tmp58 [V62 ] ( 0, 0 ) int -> zero-ref
;* V63 tmp59 [V63 ] ( 0, 0 ) int -> zero-ref
-;* V64 tmp60 [V64,T28] ( 0, 0 ) int -> zero-ref single-def
+;* V64 tmp60 [V64,T27] ( 0, 0 ) int -> zero-ref single-def
;* V65 tmp61 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp62 [V66 ] ( 0, 0 ) int -> zero-ref
-; V67 cse0 [V67,T06] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V68 cse1 [V68,T03] ( 2, 2 ) int -> rcx "CSE - aggressive"
+; V67 cse0 [V67,T05] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V68 cse1 [V68,T06] ( 2, 2 ) int -> rax "CSE - aggressive"
; V69 cse2 [V69,T07] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V70 cse3 [V70,T04] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V71 cse4 [V71,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V72 cse5 [V72,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
-; V73 cse6 [V73,T09] ( 2, 2 ) long -> rdi "CSE - aggressive"
+; V70 cse3 [V70,T03] ( 3, 3 ) int -> rdi "CSE - aggressive"
+; V71 cse4 [V71,T04] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V72 cse5 [V72,T08] ( 3, 3 ) int -> rax "CSE - aggressive"
+; V73 cse6 [V73,T09] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V74 cse7 [V74,T10] ( 2, 2 ) long -> rdi "CSE - aggressive"
;
; Lcl frame size = 8
@@ -115,16 +116,20 @@ G_M39164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- add ecx, -5
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov edi, dword ptr [rax+0x14]
+ add edx, edi
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=158 bbWeight=1 PerfScore 22.75
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, edi
+ add eax, ecx
+ add eax, 3
+ add eax, -5
+ ;; size=165 bbWeight=1 PerfScore 22.50
G_M39164_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -132,7 +137,7 @@ G_M39164_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 173, prolog size 8, PerfScore 28.50, instruction count 37, allocated bytes for code 173 (MethodHash=17766703) for method testout1:Sub_Funclet_183():int (FullOpts)
+; Total bytes of code 180, prolog size 8, PerfScore 28.25, instruction count 41, allocated bytes for code 180 (MethodHash=17766703) for method testout1:Sub_Funclet_183():int (FullOpts)
; ============================================================
Unwind Info:
+7 (+4.19%) : 412843.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -15,14 +15,14 @@
;* V04 loc4 [V04 ] ( 0, 0 ) ubyte -> zero-ref
; V05 loc5 [V05,T01] ( 4, 4 ) ref -> rbx class-hnd exact single-def <testout1>
;* V06 loc6 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V07 loc7 [V07,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def <<unknown class>>
+; V07 loc7 [V07,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def <<unknown class>>
; V08 loc8 [V08,T00] ( 5, 5 ) ref -> rax class-hnd exact single-def <<unknown class>>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <testout1>
;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref single-def
+;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref single-def
@@ -31,60 +31,60 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-;* V23 tmp14 [V23,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V23 tmp14 [V23,T20] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp17 [V26,T08] ( 2, 2 ) int -> rcx single-def
+; V26 tmp17 [V26,T09] ( 2, 2 ) int -> rdx single-def
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp20 [V29,T09] ( 2, 2 ) int -> rcx single-def
+; V29 tmp20 [V29,T10] ( 2, 2 ) int -> rdx single-def
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp23 [V32,T10] ( 2, 2 ) int -> rcx single-def
+; V32 tmp23 [V32,T11] ( 2, 2 ) int -> rdx single-def
;* V33 tmp24 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp26 [V35,T11] ( 2, 2 ) int -> rcx single-def
+;* V35 tmp26 [V35,T12] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref
-; V38 tmp29 [V38,T12] ( 2, 2 ) int -> rcx single-def
+;* V38 tmp29 [V38,T13] ( 0, 0 ) int -> zero-ref single-def
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp32 [V41,T13] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp35 [V44,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V44 tmp35 [V44,T21] ( 0, 0 ) int -> zero-ref single-def
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp38 [V47,T14] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp38 [V47,T14] ( 2, 2 ) int -> rdx single-def
;* V48 tmp39 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp41 [V50,T15] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp41 [V50,T15] ( 2, 2 ) int -> rcx single-def
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp44 [V53,T16] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp44 [V53,T16] ( 2, 2 ) int -> rcx single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp47 [V56,T23] ( 0, 0 ) int -> zero-ref single-def
+; V56 tmp47 [V56,T17] ( 2, 2 ) int -> rcx single-def
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp50 [V59,T17] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp50 [V59,T18] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp53 [V62,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp53 [V62,T19] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp56 [V65,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp56 [V65,T22] ( 0, 0 ) int -> zero-ref single-def
;* V66 tmp57 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp58 [V67 ] ( 0, 0 ) int -> zero-ref
-;* V68 tmp59 [V68,T24] ( 0, 0 ) int -> zero-ref single-def
+;* V68 tmp59 [V68 ] ( 0, 0 ) int -> zero-ref
;* V69 tmp60 [V69 ] ( 0, 0 ) int -> zero-ref
;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 cse0 [V71,T04] ( 2, 2 ) int -> rcx "CSE - aggressive"
-;* V72 cse1 [V72,T20] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V73 cse2 [V73,T02] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V74 cse3 [V74,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V75 cse4 [V75,T06] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V76 cse5 [V76,T07] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V71 cse0 [V71,T03] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V72 cse1 [V72,T04] ( 2, 2 ) int -> rax "CSE - aggressive"
+; V73 cse2 [V73,T05] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V74 cse3 [V74,T06] ( 3, 3 ) int -> rdi "CSE - aggressive"
+; V75 cse4 [V75,T07] ( 3, 3 ) int -> rax "CSE - aggressive"
+; V76 cse5 [V76,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
;
; Lcl frame size = 8
@@ -118,14 +118,18 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov edi, dword ptr [rax+0x14]
+ add edx, edi
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=152 bbWeight=1 PerfScore 22.25
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, edi
+ add eax, ecx
+ ;; size=159 bbWeight=1 PerfScore 22.00
G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -133,7 +137,7 @@ G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 167, prolog size 8, PerfScore 28.00, instruction count 35, allocated bytes for code 167 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 174, prolog size 8, PerfScore 27.75, instruction count 39, allocated bytes for code 174 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
+7 (+4.19%) : 413260.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref
-;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref single-def
+;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref single-def
@@ -28,61 +28,61 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref
-;* V20 tmp15 [V20,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V20 tmp15 [V20,T21] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp18 [V23,T09] ( 2, 2 ) int -> rcx single-def
+; V23 tmp18 [V23,T10] ( 2, 2 ) int -> rdx single-def
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp21 [V26,T10] ( 2, 2 ) int -> rcx single-def
+; V26 tmp21 [V26,T11] ( 2, 2 ) int -> rdx single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp24 [V29,T11] ( 2, 2 ) int -> rcx single-def
+; V29 tmp24 [V29,T12] ( 2, 2 ) int -> rdx single-def
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp27 [V32,T12] ( 2, 2 ) int -> rcx single-def
+;* V32 tmp27 [V32,T13] ( 0, 0 ) int -> zero-ref single-def
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp30 [V35,T13] ( 2, 2 ) int -> rcx single-def
+;* V35 tmp30 [V35,T14] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref
-;* V38 tmp33 [V38,T14] ( 0, 0 ) int -> zero-ref single-def
+;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp36 [V41,T23] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp36 [V41,T22] ( 0, 0 ) int -> zero-ref single-def
;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp39 [V44,T15] ( 0, 0 ) int -> zero-ref single-def
+; V44 tmp39 [V44,T15] ( 2, 2 ) int -> rdx single-def
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp42 [V47,T16] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp42 [V47,T16] ( 2, 2 ) int -> rcx single-def
;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp45 [V50,T17] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp45 [V50,T17] ( 2, 2 ) int -> rcx single-def
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp48 [V53,T24] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp48 [V53,T18] ( 2, 2 ) int -> rcx single-def
;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp51 [V56,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V56 tmp51 [V56,T19] ( 0, 0 ) int -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp54 [V59,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp54 [V59,T20] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp57 [V62,T20] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp57 [V62,T23] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp60 [V65,T25] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref
-; V68 cse0 [V68,T04] ( 2, 2 ) int -> rcx "CSE - aggressive"
-;* V69 cse1 [V69,T21] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V70 cse2 [V70,T03] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V71 cse3 [V71,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V72 cse4 [V72,T06] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V73 cse5 [V73,T07] ( 2, 2 ) long -> rcx "CSE - aggressive"
-; V74 cse6 [V74,T08] ( 2, 2 ) long -> rdi "CSE - aggressive"
+; V68 cse0 [V68,T03] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V69 cse1 [V69,T04] ( 2, 2 ) int -> rax "CSE - aggressive"
+; V70 cse2 [V70,T05] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V71 cse3 [V71,T06] ( 3, 3 ) int -> rdi "CSE - aggressive"
+; V72 cse4 [V72,T07] ( 3, 3 ) int -> rax "CSE - aggressive"
+; V73 cse5 [V73,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V74 cse6 [V74,T09] ( 2, 2 ) long -> rdi "CSE - aggressive"
;
; Lcl frame size = 8
@@ -116,14 +116,18 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov edi, dword ptr [rax+0x14]
+ add edx, edi
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=152 bbWeight=1 PerfScore 22.25
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, edi
+ add eax, ecx
+ ;; size=159 bbWeight=1 PerfScore 22.00
G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -131,7 +135,7 @@ G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=7 bbWeight=1 PerfScore 2.25
-; Total bytes of code 167, prolog size 8, PerfScore 28.00, instruction count 35, allocated bytes for code 167 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 174, prolog size 8, PerfScore 27.75, instruction count 39, allocated bytes for code 174 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
libraries.crossgen2.linux.x64.checked.mch
-30 (-18.87%) : 229726.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r15 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -30,9 +30,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=17 bbWeight=1 PerfScore 6.00
G_M20631_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebx, 452
- jg SHORT G_M20631_IG07
+ jg SHORT G_M20631_IG04
cmp ebx, 250
- jne SHORT G_M20631_IG06
+ jne SHORT G_M20631_IG04
;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
@@ -81,23 +81,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs +[rdi]
call [CORINFO_HELP_THROW]
; gcrRegs -[rdi r14]
- ;; size=37 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r15]
- lea eax, [rbx-0x1C3]
- cmp eax, 1
- jbe SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- cmp ebx, 552
- je SHORT G_M20631_IG04
- cmp ebx, 554
- je SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=18 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 159, prolog size 12, PerfScore 11.75, instruction count 47, allocated bytes for code 159 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 129, prolog size 12, PerfScore 11.75, instruction count 39, allocated bytes for code 129 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
-20 (-14.18%) : 229563.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 7, 3 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 5, 3 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r15 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -30,7 +30,7 @@ G_M8758_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=17 bbWeight=1 PerfScore 6.00
G_M8758_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebx, 250
- jne SHORT G_M8758_IG06
+ jne SHORT G_M8758_IG04
;; size=8 bbWeight=1 PerfScore 1.25
G_M8758_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
@@ -79,18 +79,10 @@ G_M8758_IG05: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byre
; gcrRegs +[rdi]
call [CORINFO_HELP_THROW]
; gcrRegs -[rdi r14]
- ;; size=37 bbWeight=0 PerfScore 0.00
-G_M8758_IG06: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r15]
- lea eax, [rbx-0x1C3]
- cmp eax, 1
- jbe SHORT G_M8758_IG04
- cmp ebx, 552
- je SHORT G_M8758_IG04
- jmp SHORT G_M8758_IG04
- ;; size=21 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 141, prolog size 12, PerfScore 10.50, instruction count 42, allocated bytes for code 141 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 121, prolog size 12, PerfScore 10.50, instruction count 37, allocated bytes for code 121 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
-17 (-12.32%) : 229652.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 7, 3 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 5, 3 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r15 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -30,7 +30,7 @@ G_M40495_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=17 bbWeight=1 PerfScore 6.00
G_M40495_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebx, 354
- jne SHORT G_M40495_IG06
+ jne SHORT G_M40495_IG04
;; size=8 bbWeight=1 PerfScore 1.25
G_M40495_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
@@ -79,17 +79,10 @@ G_M40495_IG05: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs +[rdi]
call [CORINFO_HELP_THROW]
; gcrRegs -[rdi r14]
- ;; size=37 bbWeight=0 PerfScore 0.00
-G_M40495_IG06: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r15]
- cmp ebx, 451
- je SHORT G_M40495_IG04
- cmp ebx, 554
- je SHORT G_M40495_IG04
- jmp SHORT G_M40495_IG04
- ;; size=18 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 138, prolog size 12, PerfScore 10.50, instruction count 41, allocated bytes for code 138 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 121, prolog size 12, PerfScore 10.50, instruction count 37, allocated bytes for code 121 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 197368.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (FullOpts)
@@ -40,9 +40,41 @@ G_M21875_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=28 bbWeight=1 PerfScore 8.50
G_M21875_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
test edx, edx
- je SHORT G_M21875_IG05
+ jne SHORT G_M21875_IG05
;; size=4 bbWeight=1 PerfScore 1.25
G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov rsi, r15
+ ; gcrRegs +[rsi]
+ call [<unknown method>]
+ ; gcrRegs -[rbx rsi rdi r15] +[rax]
+ mov rbx, rax
+ ; gcrRegs +[rbx]
+ call [CORINFO_HELP_READYTORUN_NEW]
+ mov r15, rax
+ ; gcrRegs +[r15]
+ mov rdi, r15
+ ; gcrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ call [<unknown method>]
+ ; gcrRegs -[rax rbx rsi rdi]
+ mov rax, r15
+ ; gcrRegs +[rax]
+ ;; size=39 bbWeight=0.50 PerfScore 5.38
+G_M21875_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax] +[rbx]
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
mov r12, rax
@@ -64,38 +96,6 @@ G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov rax, r12
; gcrRegs +[rax]
;; size=41 bbWeight=0.50 PerfScore 4.62
-G_M21875_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r12] +[rbx r15]
- mov rdi, rbx
- ; gcrRegs +[rdi]
- mov rsi, r15
- ; gcrRegs +[rsi]
- call [<unknown method>]
- ; gcrRegs -[rbx rsi rdi r15] +[rax]
- mov rbx, rax
- ; gcrRegs +[rbx]
- call [CORINFO_HELP_READYTORUN_NEW]
- mov r15, rax
- ; gcrRegs +[r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [<unknown method>]
- ; gcrRegs -[rax rbx rsi rdi]
- mov rax, r15
- ; gcrRegs +[rax]
- ;; size=39 bbWeight=0.50 PerfScore 5.38
G_M21875_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
+12 (+2.15%) : 190382.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -47,16 +47,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea r11, [reloc @RWD00]
mov r11d, dword ptr [r11+4*rdi]
lea rax, G_M57654_IG02
add r11, rax
jmp r11
- ;; size=32 bbWeight=1 PerfScore 9.00
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -75,35 +75,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov edi, eax
lea r11, [reloc @RWD44]
mov r11d, dword ptr [r11+4*rdi]
lea rax, G_M57654_IG02
add r11, rax
jmp r11
- ;; size=33 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=37 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
@@ -112,7 +97,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -121,20 +106,20 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov r12, gword ptr [rbx+0x38]
; gcrRegs +[r12]
test r12, r12
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rdi, r12
; gcrRegs +[rdi]
call [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rdi, r12
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
@@ -142,9 +127,9 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
call [r11]<unknown method>
; gcrRegs -[rax rdi r12]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=100 bbWeight=0.50 PerfScore 19.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 19.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -156,13 +141,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=19 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rcx, gword ptr [rbx+0x40]
; gcrRegs +[rcx]
mov rcx, gword ptr [rcx+0x28]
cmp edi, dword ptr [rcx+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov ecx, r15d
@@ -198,6 +183,27 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
lea r11, [(reloc)] ; function address
cmp dword ptr [rdi], edi
;; size=99 bbWeight=0.50 PerfScore 22.75
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [r11]<unknown method>
+ ;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi] +[r14]
+ mov rdi, gword ptr [rbx+0x08]
+ ; gcrRegs +[rdi]
+ mov ecx, r15d
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ mov edx, r13d
+ lea r11, [(reloc)] ; function address
+ cmp dword ptr [rdi], edi
+ ;; size=22 bbWeight=0.50 PerfScore 3.12
G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -209,31 +215,10 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [r11]<unknown method>
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[r14]
- mov rdi, gword ptr [rbx+0x08]
- ; gcrRegs +[rdi]
- mov ecx, r15d
- mov rsi, r14
- ; gcrRegs +[rsi]
- mov edx, r13d
- lea r11, [(reloc)] ; function address
- cmp dword ptr [rdi], edi
- ;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- tail.jmp [r11]<unknown method>
- ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov ecx, r15d
@@ -247,7 +232,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -255,9 +240,22 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=49 bbWeight=0.50 PerfScore 7.50
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -308,23 +306,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
...
+12 (+2.15%) : 190380.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -47,16 +47,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea r11, [reloc @RWD00]
mov r11d, dword ptr [r11+4*rdi]
lea rax, G_M11729_IG02
add r11, rax
jmp r11
- ;; size=32 bbWeight=1 PerfScore 9.00
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -75,35 +75,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov edi, eax
lea r11, [reloc @RWD44]
mov r11d, dword ptr [r11+4*rdi]
lea rax, G_M11729_IG02
add r11, rax
jmp r11
- ;; size=33 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=37 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
@@ -112,7 +97,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -121,20 +106,20 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov r12, gword ptr [rbx+0x38]
; gcrRegs +[r12]
test r12, r12
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rdi, r12
; gcrRegs +[rdi]
call [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rdi, r12
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
@@ -142,9 +127,9 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
call [r11]<unknown method>
; gcrRegs -[rax rdi r12]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=100 bbWeight=0.50 PerfScore 19.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 19.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -156,13 +141,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=19 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rcx, gword ptr [rbx+0x40]
; gcrRegs +[rcx]
mov rcx, gword ptr [rcx+0x28]
cmp edi, dword ptr [rcx+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov ecx, r15d
@@ -198,6 +183,27 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
lea r11, [(reloc)] ; function address
cmp dword ptr [rdi], edi
;; size=99 bbWeight=0.50 PerfScore 22.75
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [r11]<unknown method>
+ ;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi] +[r14]
+ mov rdi, gword ptr [rbx+0x08]
+ ; gcrRegs +[rdi]
+ mov ecx, r15d
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ mov edx, r13d
+ lea r11, [(reloc)] ; function address
+ cmp dword ptr [rdi], edi
+ ;; size=22 bbWeight=0.50 PerfScore 3.12
G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -209,31 +215,10 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [r11]<unknown method>
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[r14]
- mov rdi, gword ptr [rbx+0x08]
- ; gcrRegs +[rdi]
- mov ecx, r15d
- mov rsi, r14
- ; gcrRegs +[rsi]
- mov edx, r13d
- lea r11, [(reloc)] ; function address
- cmp dword ptr [rdi], edi
- ;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- tail.jmp [r11]<unknown method>
- ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov ecx, r15d
@@ -247,7 +232,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -255,9 +240,22 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=49 bbWeight=0.50 PerfScore 7.50
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -308,23 +306,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 557, prolog size 28, PerfScore 97.12, instruction count 167, allocated bytes for code 557 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 569, prolog size 28, PerfScore 97.12, instruction count 167, allocated bytes for code 569 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
...
libraries.pmi.linux.x64.checked.mch
-41 (-22.04%) : 265944.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r15 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -29,10 +29,10 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=17 bbWeight=1 PerfScore 6.00
G_M20631_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebx, 452
- jg G_M20631_IG07
+ jg SHORT G_M20631_IG04
cmp ebx, 250
- jne SHORT G_M20631_IG06
- ;; size=20 bbWeight=1 PerfScore 2.50
+ jne SHORT G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -82,23 +82,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
; gcrRegs +[rdi]
call CORINFO_HELP_THROW
; gcrRegs -[rdi r14]
- ;; size=45 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r15]
- lea edi, [rbx-0x1C3]
- cmp edi, 1
- jbe SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- cmp ebx, 552
- je SHORT G_M20631_IG04
- cmp ebx, 554
- je G_M20631_IG04
- jmp G_M20631_IG04
- ;; size=25 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=46 bbWeight=0 PerfScore 0.00
-; Total bytes of code 186, prolog size 12, PerfScore 11.75, instruction count 49, allocated bytes for code 186 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 145, prolog size 12, PerfScore 11.75, instruction count 41, allocated bytes for code 145 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
-4 (-20.00%) : 264214.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):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; 2 single block inlinees; 0 inlinees without PGO data
@@ -13,12 +13,11 @@
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M40773_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
+ push rax
+ ;; size=1 bbWeight=1 PerfScore 1.00
G_M40773_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
test sil, sil
@@ -26,17 +25,16 @@ G_M40773_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=1 PerfScore 1.25
G_M40773_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rdi]
- pop rbp
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M40773_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdi]
- cmp gword ptr [rdi+0x10], 0
- je SHORT G_M40773_IG03
+ mov eax, dword ptr [rdi+0x10]
jmp SHORT G_M40773_IG03
- ;; size=9 bbWeight=0.50 PerfScore 3.00
+ ;; size=5 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 20, prolog size 4, PerfScore 7.00, instruction count 9, allocated bytes for code 20 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 16, prolog size 1, PerfScore 5.50, instruction count 7, allocated bytes for code 16 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -49,4 +47,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
-12 (-16.44%) : 295375.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
@@ -12,12 +12,12 @@
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Net.Sockets.UdpReceiveResult>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V04 tmp2 [V04,T01] ( 3, 4.81) ref -> rax class-hnd single-def "Inlining Arg" <<unknown class>>
+; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> rax class-hnd single-def "Inlining Arg" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <<unknown class>>
; V06 tmp4 [V06,T05] ( 3, 0.92) ubyte -> rax "Inline return value spill temp"
; V07 tmp5 [V07,T04] ( 5, 3.14) ref -> rdi class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Net.IPEndPoint>
-; V09 tmp7 [V09,T02] ( 3, 2.41) ref -> rsi single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
+; V09 tmp7 [V09,T02] ( 2, 2 ) ref -> rsi single-def "field V01._buffer (fldOffset=0x0)" P-INDEP
; V10 tmp8 [V10,T03] ( 4, 1.99) ref -> rdx single-def "field V01._remoteEndPoint (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 0
@@ -32,73 +32,57 @@ G_M58887_IG02: ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0080 {rd
mov rax, gword ptr [rdi]
; gcrRegs +[rax]
cmp rax, rsi
- je SHORT G_M58887_IG06
+ jne SHORT G_M58887_IG11
;; size=8 bbWeight=1 PerfScore 3.25
-G_M58887_IG03: ; bbWeight=0.41, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdx]
- ; byrRegs -[rdi]
- test rax, rax
- je SHORT G_M58887_IG14
- ;; size=5 bbWeight=0.41 PerfScore 0.51
-G_M58887_IG04: ; bbWeight=0.41, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax]
- test rsi, rsi
- jne SHORT G_M58887_IG14
- ;; size=5 bbWeight=0.41 PerfScore 0.51
-G_M58887_IG05: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- jmp SHORT G_M58887_IG14
- ;; size=2 bbWeight=0.32 PerfScore 0.65
-G_M58887_IG06: ; bbWeight=0.50, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz
- ; gcrRegs +[rdx]
- ; byrRegs +[rdi]
+G_M58887_IG03: ; bbWeight=0.50, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz
+ ; gcrRegs -[rax rsi]
mov rdi, gword ptr [rdi+0x08]
; gcrRegs +[rdi]
; byrRegs -[rdi]
cmp rdi, rdx
- je SHORT G_M58887_IG12
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M58887_IG07: ; bbWeight=0.41, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- test rdi, rdi
je SHORT G_M58887_IG09
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M58887_IG04: ; bbWeight=0.41, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+ test rdi, rdi
+ je SHORT G_M58887_IG06
;; size=5 bbWeight=0.41 PerfScore 0.51
-G_M58887_IG08: ; bbWeight=0.41, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+G_M58887_IG05: ; bbWeight=0.41, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
test rdx, rdx
- jne SHORT G_M58887_IG10
+ jne SHORT G_M58887_IG07
;; size=5 bbWeight=0.41 PerfScore 0.51
-G_M58887_IG09: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M58887_IG06: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx rdi]
xor eax, eax
- jmp SHORT G_M58887_IG13
+ jmp SHORT G_M58887_IG10
;; size=4 bbWeight=0.32 PerfScore 0.73
-G_M58887_IG10: ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
+G_M58887_IG07: ; bbWeight=0.08, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rdi]
mov rsi, rdx
; gcrRegs +[rsi]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
;; size=10 bbWeight=0.08 PerfScore 0.35
-G_M58887_IG11: ; bbWeight=0.08, epilog, nogc, extend
+G_M58887_IG08: ; bbWeight=0.08, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
;; size=5 bbWeight=0.08 PerfScore 0.20
-G_M58887_IG12: ; bbWeight=0.09, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M58887_IG09: ; bbWeight=0.09, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdx rsi rdi]
mov eax, 1
;; size=5 bbWeight=0.09 PerfScore 0.02
-G_M58887_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M58887_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M58887_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M58887_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M58887_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M58887_IG12: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-; Total bytes of code 73, prolog size 4, PerfScore 11.73, instruction count 30, allocated bytes for code 73 (MethodHash=e2d519f8) for method System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
+; Total bytes of code 61, prolog size 4, PerfScore 10.07, instruction count 25, allocated bytes for code 61 (MethodHash=e2d519f8) for method System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.12%) : 136682.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -56,16 +56,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=29 bbWeight=1 PerfScore 6.75
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M11729_IG02
add rax, rcx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -84,34 +84,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov edi, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M11729_IG02
add rax, rcx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 16
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rax, qword ptr [rdi]
@@ -120,7 +106,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -129,27 +115,27 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rax, rdi
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rcx, 0xD1FFAB1E ; System.Xml.Base64Decoder
cmp rax, rcx
- jne SHORT G_M11729_IG09
+ jne SHORT G_M11729_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rdi]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=100 bbWeight=0.50 PerfScore 18.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 18.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Xml.Base64Decoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -162,13 +148,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rsi, gword ptr [rbx+0x40]
; gcrRegs +[rsi]
mov rsi, gword ptr [rsi+0x28]
cmp edi, dword ptr [rsi+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov rsi, r14
@@ -202,7 +188,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
;; size=92 bbWeight=0.50 PerfScore 23.50
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -211,7 +197,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi] +[r14]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -222,7 +208,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -231,11 +217,11 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rsi, r14
@@ -249,7 +235,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -257,9 +243,21 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0.50 PerfScore 7.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 16
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -312,23 +310,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 566, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 566 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 578, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 578 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.12%) : 136684.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -56,16 +56,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=29 bbWeight=1 PerfScore 6.75
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M57654_IG02
add rax, rcx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -84,34 +84,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov edi, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M57654_IG02
add rax, rcx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 16
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rax, qword ptr [rdi]
@@ -120,7 +106,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -129,27 +115,27 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rax, rdi
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rcx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
cmp rax, rcx
- jne SHORT G_M57654_IG09
+ jne SHORT G_M57654_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rdi]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=100 bbWeight=0.50 PerfScore 18.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 18.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Xml.BinHexDecoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -162,13 +148,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rsi, gword ptr [rbx+0x40]
; gcrRegs +[rsi]
mov rsi, gword ptr [rsi+0x28]
cmp edi, dword ptr [rsi+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov rsi, r14
@@ -202,7 +188,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
;; size=92 bbWeight=0.50 PerfScore 23.50
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -211,7 +197,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi] +[r14]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -222,7 +208,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -231,11 +217,11 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x30]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rsi, r14
@@ -249,7 +235,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -257,9 +243,21 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0.50 PerfScore 7.75
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 16
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -312,23 +310,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
-; Total bytes of code 566, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 566 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 578, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 578 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+1 (+5.56%) : 54210.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
@@ -14,7 +14,7 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V04 tmp2 [V04 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V06 tmp4 [V06,T01] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -25,13 +25,13 @@ G_M32950_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
mov rax, qword ptr [rdi+0x58]
movsx rax, word ptr [rax+0x0C]
mov rax, qword ptr [rdi+0x50]
- movzx rax, byte ptr [rax+0x04]
- ;; size=17 bbWeight=1 PerfScore 10.00
+ movsx rax, word ptr [rax+0x04]
+ ;; size=18 bbWeight=1 PerfScore 12.00
G_M32950_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 18, prolog size 0, PerfScore 11.00, instruction count 5, allocated bytes for code 18 (MethodHash=f47e7f49) for method Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 13.00, instruction count 5, allocated bytes for code 19 (MethodHash=f47e7f49) for method Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.linux.x64.Release.mch
-47 (-35.07%) : 56988.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 6, 4.70) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 3.70) ref -> r15 class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T03] ( 8, 2.38) int -> r14 "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 4, 2.26) int -> rdi "Inline stloc first use temp"
;* V04 tmp2 [V04,T04] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V05 cse0 [V05,T02] ( 3, 2.43) ref -> rax "CSE - aggressive"
;
@@ -21,14 +21,13 @@
G_M21386_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
- push r14
push rbx
- lea rbp, [rsp+0x18]
+ lea rbp, [rsp+0x10]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
- ;; size=17 bbWeight=1 PerfScore 5.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M21386_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbx+0x18]
; gcrRegs +[rax]
@@ -38,20 +37,19 @@ G_M21386_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
G_M21386_IG03: ; bbWeight=0.43, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx r15]
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=0.43 PerfScore 1.30
+ ;; size=5 bbWeight=0.43 PerfScore 1.09
G_M21386_IG04: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rbx r15]
- mov r14d, dword ptr [r15+0x34]
- test r14d, 0xD1FFAB1E
+ mov edi, dword ptr [r15+0x34]
+ test edi, 0xD1FFAB1E
jne SHORT G_M21386_IG06
- test r14d, 0xD1FFAB1E
+ test edi, 0xD1FFAB1E
jne SHORT G_M21386_IG06
- test r14d, 0xD1FFAB1E
- je SHORT G_M21386_IG08
+ test edi, 0xD1FFAB1E
+ je SHORT G_M21386_IG06
lea rdi, bword ptr [rbx+0x18]
; byrRegs +[rdi]
mov rsi, r15
@@ -62,7 +60,7 @@ G_M21386_IG04: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=800
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx+0x08], rax
- ;; size=49 bbWeight=0.57 PerfScore 4.95
+ ;; size=46 bbWeight=0.57 PerfScore 4.95
G_M21386_IG05: ; bbWeight=0.57, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov gword ptr [rbx+0x10], rax
@@ -74,25 +72,12 @@ G_M21386_IG06: ; bbWeight=0.57, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
;; size=3 bbWeight=0.57 PerfScore 0.14
G_M21386_IG07: ; bbWeight=0.57, epilog, nogc, extend
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=0.57 PerfScore 1.70
-G_M21386_IG08: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- test r14d, 0xD1FFAB1E
- jne SHORT G_M21386_IG06
- test r14d, 0x20000
- jne SHORT G_M21386_IG06
- test r14d, 0x10000
- jne SHORT G_M21386_IG06
- test r14d, 0xD1FFAB1E
- je SHORT G_M21386_IG06
- jmp SHORT G_M21386_IG06
- ;; size=38 bbWeight=0.03 PerfScore 0.22
+ ;; size=5 bbWeight=0.57 PerfScore 1.41
-; Total bytes of code 134, prolog size 11, PerfScore 17.12, instruction count 43, allocated bytes for code 134 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 87, prolog size 9, PerfScore 15.40, instruction count 31, allocated bytes for code 87 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
; ============================================================
Unwind Info:
@@ -100,12 +85,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ 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)
-47 (-34.56%) : 64794.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,35 +12,34 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.22) int -> r14 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4.00) int -> rdi "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
- push r14
push rbx
- lea rbp, [rsp+0x18]
+ lea rbp, [rsp+0x10]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
- ;; size=17 bbWeight=1 PerfScore 5.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M46606_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- jne SHORT G_M46606_IG09
+ jne SHORT G_M46606_IG08
;; size=7 bbWeight=1 PerfScore 4.00
G_M46606_IG03: ; bbWeight=1.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- mov r14d, dword ptr [r15+0x34]
- test r14d, 0xD1FFAB1E
+ mov edi, dword ptr [r15+0x34]
+ test edi, 0xD1FFAB1E
jne SHORT G_M46606_IG06
- test r14d, 0xD1FFAB1E
+ test edi, 0xD1FFAB1E
jne SHORT G_M46606_IG06
- test r14d, 0xD1FFAB1E
- je SHORT G_M46606_IG08
- ;; size=31 bbWeight=1.00 PerfScore 5.75
+ test edi, 0xD1FFAB1E
+ je SHORT G_M46606_IG06
+ ;; size=28 bbWeight=1.00 PerfScore 5.75
G_M46606_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
lea rdi, bword ptr [rbx+0x18]
; byrRegs +[rdi]
@@ -64,37 +63,23 @@ G_M46606_IG06: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
;; size=3 bbWeight=1 PerfScore 0.25
G_M46606_IG07: ; bbWeight=1, epilog, nogc, extend
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 3.00
-G_M46606_IG08: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- test r14d, 0xD1FFAB1E
- jne SHORT G_M46606_IG06
- test r14d, 0x20000
- jne SHORT G_M46606_IG06
- test r14d, 0x10000
- jne SHORT G_M46606_IG06
- test r14d, 0xD1FFAB1E
- je SHORT G_M46606_IG06
- jmp SHORT G_M46606_IG06
- ;; size=38 bbWeight=0.05 PerfScore 0.38
-G_M46606_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r15] +[rbx]
+ ;; size=5 bbWeight=1 PerfScore 2.50
+G_M46606_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax r15] +[rbx]
mov rax, gword ptr [rbx+0x18]
; gcrRegs +[rax]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG10: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG09: ; bbWeight=0, epilog, nogc, extend
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 11, PerfScore 22.38, instruction count 43, allocated bytes for code 136 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 89, prolog size 9, PerfScore 20.50, instruction count 31, allocated bytes for code 89 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -102,12 +87,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ 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)
-47 (-34.56%) : 90559.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,32 +12,31 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.12) int -> r14 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> rdi "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
- push r14
push rbx
- lea rbp, [rsp+0x18]
+ lea rbp, [rsp+0x10]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
- ;; size=17 bbWeight=1 PerfScore 5.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M46606_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- jne SHORT G_M46606_IG07
- mov r14d, dword ptr [r15+0x34]
- test r14d, 0xD1FFAB1E
+ jne SHORT G_M46606_IG06
+ mov edi, dword ptr [r15+0x34]
+ test edi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test r14d, 0xD1FFAB1E
+ test edi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test r14d, 0xD1FFAB1E
- je SHORT G_M46606_IG06
+ test edi, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
lea rdi, bword ptr [rbx+0x18]
; byrRegs +[rdi]
mov rsi, r15
@@ -48,7 +47,7 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx+0x08], rax
- ;; size=56 bbWeight=1 PerfScore 12.75
+ ;; size=53 bbWeight=1 PerfScore 12.75
G_M46606_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov gword ptr [rbx+0x10], rax
@@ -60,37 +59,23 @@ G_M46606_IG04: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr
;; size=3 bbWeight=1 PerfScore 0.25
G_M46606_IG05: ; bbWeight=1, epilog, nogc, extend
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 3.00
-G_M46606_IG06: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- test r14d, 0xD1FFAB1E
- jne SHORT G_M46606_IG04
- test r14d, 0x20000
- jne SHORT G_M46606_IG04
- test r14d, 0x10000
- jne SHORT G_M46606_IG04
- test r14d, 0xD1FFAB1E
- je SHORT G_M46606_IG04
- jmp SHORT G_M46606_IG04
- ;; size=38 bbWeight=0.03 PerfScore 0.21
-G_M46606_IG07: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r15] +[rbx]
+ ;; size=5 bbWeight=1 PerfScore 2.50
+G_M46606_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax r15] +[rbx]
mov rax, gword ptr [rbx+0x18]
; gcrRegs +[rax]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG08: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 11, PerfScore 22.21, instruction count 43, allocated bytes for code 136 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 89, prolog size 9, PerfScore 20.50, instruction count 31, allocated bytes for code 89 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -98,12 +83,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 4
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+ 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)
+17 (+5.69%) : 706311.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
@@ -44,14 +44,14 @@ G_M40875_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=21 bbWeight=1 PerfScore 8.00
G_M40875_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
test ebx, ebx
- je G_M40875_IG12
+ je G_M40875_IG10
lea r14d, [rbx-0x01]
sar r14d, 6
xor edi, edi
test ebx, ebx
cmovle r14d, edi
test r14d, r14d
- jne G_M40875_IG14
+ jne G_M40875_IG12
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
;; size=43 bbWeight=1 PerfScore 4.50
@@ -60,21 +60,34 @@ G_M40875_IG03: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15},
mov r12, -1
xor edi, edi
test r13d, r13d
- jg SHORT G_M40875_IG07
+ jg SHORT G_M40875_IG05
;; size=21 bbWeight=1 PerfScore 2.25
G_M40875_IG04: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
mov edi, ebx
and edi, 63
- jle SHORT G_M40875_IG10
+ jle G_M40875_IG14
mov rax, -1
shlx rdi, rax, rdi
mov rax, rdi
not rax
test r13d, r13d
- jge SHORT G_M40875_IG09
+ jge G_M40875_IG13
mov r12, rax
- ;; size=36 bbWeight=1 PerfScore 4.25
-G_M40875_IG05: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref
+ jmp SHORT G_M40875_IG07
+ ;; size=46 bbWeight=1 PerfScore 6.25
+G_M40875_IG05: ; bbWeight=0.03, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
+ cmp edi, dword ptr [rsi+0x08]
+ jae SHORT G_M40875_IG09
+ mov eax, edi
+ mov qword ptr [rsi+8*rax+0x10], -1
+ inc edi
+ cmp edi, r13d
+ jl SHORT G_M40875_IG05
+ ;; size=23 bbWeight=0.03 PerfScore 0.22
+G_M40875_IG06: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
+ jmp SHORT G_M40875_IG04
+ ;; size=2 bbWeight=1 PerfScore 2.00
+G_M40875_IG07: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref
mov rdi, r15
; byrRegs +[rdi]
call CORINFO_HELP_CHECKED_ASSIGN_REF
@@ -85,7 +98,7 @@ G_M40875_IG05: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15},
mov rax, r15
; byrRegs +[rax]
;; size=19 bbWeight=1 PerfScore 3.50
-G_M40875_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M40875_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
@@ -95,43 +108,12 @@ G_M40875_IG06: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M40875_IG07: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, gcvars, byref, isz
- ; gcrRegs +[rsi]
- ; byrRegs -[rax]
- cmp edi, dword ptr [rsi+0x08]
- jae SHORT G_M40875_IG11
- mov eax, edi
- mov qword ptr [rsi+8*rax+0x10], -1
- inc edi
- cmp edi, r13d
- jl SHORT G_M40875_IG07
- ;; size=23 bbWeight=0.03 PerfScore 0.22
-G_M40875_IG08: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
- jmp SHORT G_M40875_IG04
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M40875_IG09: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
- cmp r13d, dword ptr [rsi+0x08]
- jae SHORT G_M40875_IG11
- mov ecx, r13d
- mov qword ptr [rsi+8*rcx+0x10], rax
- jmp SHORT G_M40875_IG05
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M40875_IG10: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
- test r14d, r14d
- jle SHORT G_M40875_IG05
- cmp r13d, dword ptr [rsi+0x08]
- jae SHORT G_M40875_IG11
- mov eax, r13d
- mov qword ptr [rsi+8*rax+0x10], -1
- jmp SHORT G_M40875_IG05
- ;; size=25 bbWeight=0 PerfScore 0.00
-G_M40875_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi]
- ; byrRegs -[r15]
+G_M40875_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; byrRegs -[rax r15]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M40875_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+G_M40875_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
; byrRegs +[r15]
mov rdi, 0xD1FFAB1E ; box for <unknown class>:<unknown field>
mov rsi, gword ptr [rdi]
@@ -147,7 +129,7 @@ G_M40875_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byr
mov rax, r15
; byrRegs +[rax]
;; size=32 bbWeight=0 PerfScore 0.00
-G_M40875_IG13: ; bbWeight=0, epilog, nogc, extend
+G_M40875_IG11: ; bbWeight=0, epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
@@ -157,7 +139,7 @@ G_M40875_IG13: ; bbWeight=0, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M40875_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref
+G_M40875_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref
; byrRegs -[rax rsi rdi]
movsxd rsi, r14d
mov rdi, 0xD1FFAB1E ; ulong[]
@@ -168,8 +150,25 @@ G_M40875_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs +[rsi]
jmp G_M40875_IG03
;; size=26 bbWeight=0 PerfScore 0.00
+G_M40875_IG13: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
+ ; gcrRegs -[rax]
+ cmp r13d, dword ptr [rsi+0x08]
+ jae SHORT G_M40875_IG09
+ mov ecx, r13d
+ mov qword ptr [rsi+8*rcx+0x10], rax
+ jmp SHORT G_M40875_IG07
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M40875_IG14: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
+ test r14d, r14d
+ jle G_M40875_IG07
+ cmp r13d, dword ptr [rsi+0x08]
+ jae SHORT G_M40875_IG09
+ mov eax, r13d
+ mov qword ptr [rsi+8*rax+0x10], -1
+ jmp G_M40875_IG07
+ ;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 299, prolog size 21, PerfScore 28.97, instruction count 90, allocated bytes for code 299 (MethodHash=4a676054) for method Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
+; Total bytes of code 316, prolog size 21, PerfScore 30.97, instruction count 91, allocated bytes for code 316 (MethodHash=4a676054) for method Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
; ============================================================
Unwind Info:
+18 (+6.45%) : 471663.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
@@ -9,17 +9,17 @@
; 1 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
-; V01 arg1 [V01,T01] ( 5, 5 ) int -> rbx single-def
-; V02 arg2 [V02,T05] ( 3, 3 ) int -> r14 single-def
+; V00 arg0 [V00,T04] ( 4, 3 ) ref -> r15 class-hnd single-def <System.String>
+; V01 arg1 [V01,T01] ( 6, 5 ) int -> rbx single-def
+; V02 arg2 [V02,T05] ( 4, 3 ) int -> r14 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T07] ( 5, 3 ) ref -> r13
; V05 tmp2 [V05,T08] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Exception>
-; V06 tmp3 [V06,T02] ( 4, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String[]>
+; V06 tmp3 [V06,T02] ( 5, 6 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String[]>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String[]>
; V08 tmp5 [V08,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V10 tmp7 [V10,T00] ( 11, 22 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
+; V10 tmp7 [V10,T00] ( 11, 22 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V12 tmp9 [V12,T03] ( 3, 6 ) int -> rbx "Inlining Arg"
; V13 tmp10 [V13,T06] ( 2, 4 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
@@ -48,22 +48,23 @@ G_M2230_IG02: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byre
; gcrRegs +[rax]
mov r13, rax
; gcrRegs +[r13]
- ;; size=17 bbWeight=1 PerfScore 4.50
-G_M2230_IG03: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov rdi, r15
; gcrRegs +[rdi]
mov esi, ebx
call [<unknown method>]
- ; gcrRegs -[rdi r15] +[rax]
+ ; gcrRegs -[rdi r15]
mov r12, rax
; gcrRegs +[r12]
test r14d, r14d
je G_M2230_IG07
+ ;; size=40 bbWeight=1 PerfScore 9.50
+G_M2230_IG03: ; bbWeight=1, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
- mov r15, rax
- ; gcrRegs +[r15]
+ ; gcrRegs +[rax]
+ mov r14, rax
+ ; gcrRegs +[r14]
inc ebx
mov rdi, r13
; gcrRegs +[rdi]
@@ -74,8 +75,8 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
call [<unknown method>]
; gcrRegs -[rsi rdi]
mov rdi, 0xD1FFAB1E
- mov qword ptr [r15+0x70], rdi
- lea rdi, bword ptr [r15+0x10]
+ mov qword ptr [r14+0x70], rdi
+ lea rdi, bword ptr [r14+0x10]
; byrRegs +[rdi]
mov rsi, rax
; gcrRegs +[rsi]
@@ -84,9 +85,9 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
; byrRegs -[rdi]
xor rdi, rdi
; gcrRegs +[rdi]
- mov gword ptr [r15+0x20], rdi
- mov dword ptr [r15+0x74], 0xD1FFAB1E
- lea rdi, bword ptr [r15+0x78]
+ mov gword ptr [r14+0x20], rdi
+ mov dword ptr [r14+0x74], 0xD1FFAB1E
+ lea rdi, bword ptr [r14+0x78]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r13
@@ -94,7 +95,7 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r13]
; byrRegs -[rdi]
- lea rdi, bword ptr [r15+0x80]
+ lea rdi, bword ptr [r14+0x80]
; byrRegs +[rdi]
mov rsi, r12
; gcrRegs +[rsi]
@@ -103,17 +104,17 @@ G_M2230_IG03: ; bbWeight=1, gcrefRegs=A000 {r13 r15}, byrefRegs=0000 {},
; byrRegs -[rdi]
xor rax, rax
; gcrRegs +[rax]
- mov gword ptr [r15+0x88], rax
- ;; size=135 bbWeight=1 PerfScore 20.75
-G_M2230_IG04: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ mov gword ptr [r14+0x88], rax
+ ;; size=112 bbWeight=1 PerfScore 15.75
+G_M2230_IG04: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov dword ptr [r15+0x98], eax
- mov dword ptr [r15+0x9C], ebx
- mov rax, r15
+ mov dword ptr [r14+0x98], eax
+ mov dword ptr [r14+0x9C], ebx
+ mov rax, r14
; gcrRegs +[rax]
;; size=17 bbWeight=1 PerfScore 2.25
G_M2230_IG05: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r15]
+ ; gcrRegs -[r14]
add rsp, 8
pop rbx
pop r12
@@ -131,10 +132,18 @@ G_M2230_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r
; gcrRegs -[rdi] +[rax]
mov r13, rax
; gcrRegs +[r13]
- jmp G_M2230_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
+ mov rdi, r15
+ ; gcrRegs +[rdi]
+ mov esi, ebx
+ call [<unknown method>]
+ ; gcrRegs -[rdi r15]
+ mov r12, rax
+ ; gcrRegs +[r12]
+ test r14d, r14d
+ jne G_M2230_IG03
+ ;; size=42 bbWeight=0 PerfScore 0.00
G_M2230_IG07: ; bbWeight=0, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax r15] +[r12]
+ ; gcrRegs -[rax]
mov rdi, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -157,7 +166,7 @@ G_M2230_IG07: ; bbWeight=0, gcrefRegs=3000 {r12 r13}, byrefRegs=0000 {},
jmp SHORT G_M2230_IG05
;; size=47 bbWeight=0 PerfScore 0.00
-; Total bytes of code 279, prolog size 16, PerfScore 40.00, instruction count 72, allocated bytes for code 279 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
+; Total bytes of code 297, prolog size 16, PerfScore 40.00, instruction count 77, allocated bytes for code 297 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
; ============================================================
Unwind Info:
+10 (+7.87%) : 537209.dasm - System.Xml.XmlBufferReader:ReadRawByteslong:long:this (Tier1)
@@ -8,13 +8,13 @@
; 4 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 10, 7.01) ref -> rbx this class-hnd single-def <System.Xml.XmlBufferReader>
+; V00 this [V00,T00] ( 11, 7.01) ref -> rbx this class-hnd single-def <System.Xml.XmlBufferReader>
;* V01 loc0 [V01 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[ubyte]>
-; V02 loc1 [V02,T02] ( 5, 3.01) int -> r15 ld-addr-op
+; V02 loc1 [V02,T02] ( 4, 3.01) int -> r15 ld-addr-op
; V03 loc2 [V03,T05] ( 2, 2 ) long -> rax
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-; V06 tmp2 [V06,T01] ( 4, 4 ) ref -> rdi class-hnd single-def "Inline return value spill temp" <ubyte[]>
+; V06 tmp2 [V06,T01] ( 6, 4 ) ref -> r14 class-hnd single-def "Inline return value spill temp" <ubyte[]>
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V09 tmp5 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
@@ -27,7 +27,7 @@
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "field V01._length (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-; V19 tmp15 [V19,T04] ( 2, 2 ) byref -> r15 single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+; V19 tmp15 [V19,T04] ( 2, 2 ) byref -> r14 single-def "field V08._reference (fldOffset=0x0)" P-INDEP
;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP
;* V21 tmp17 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
@@ -37,51 +37,57 @@
;* V26 tmp22 [V26 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V27 tmp23 [V27 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V28 tmp24 [V28 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
-; V29 cse0 [V29,T03] ( 3, 3 ) long -> rcx "CSE - aggressive"
+; V29 cse0 [V29,T03] ( 3, 3 ) long -> rax "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M65134_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
push rbx
- lea rbp, [rsp+0x10]
+ push rax
+ lea rbp, [rsp+0x20]
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=12 bbWeight=1 PerfScore 3.75
+ ;; size=15 bbWeight=1 PerfScore 5.75
G_M65134_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r15d, dword ptr [rbx+0x50]
mov edi, dword ptr [rbx+0x4C]
add edi, -8
cmp r15d, edi
- jg SHORT G_M65134_IG05
+ jg SHORT G_M65134_IG06
;; size=15 bbWeight=1 PerfScore 5.50
G_M65134_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbx+0x20]
- ; gcrRegs +[rdi]
- test rdi, rdi
+ mov r14, gword ptr [rbx+0x20]
+ ; gcrRegs +[r14]
+ test r14, r14
je SHORT G_M65134_IG08
- mov eax, dword ptr [rdi+0x08]
- mov ecx, r15d
- lea rdx, [rcx+0x08]
- cmp rax, rdx
- jb SHORT G_M65134_IG07
- lea r15, bword ptr [rdi+rcx+0x10]
- ; byrRegs +[r15]
+ ;; size=9 bbWeight=1 PerfScore 3.25
+G_M65134_IG04: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+ mov edi, dword ptr [r14+0x08]
+ mov eax, r15d
+ lea rcx, [rax+0x08]
+ cmp rdi, rcx
+ jb SHORT G_M65134_IG08
+ lea r14, bword ptr [r14+rax+0x10]
+ ; gcrRegs -[r14]
+ ; byrRegs +[r14]
mov edi, 1
- ; gcrRegs -[rdi]
call [<unknown method>]
- mov rax, qword ptr [r15]
+ mov rax, qword ptr [r14]
add dword ptr [rbx+0x50], 8
- ;; size=47 bbWeight=1 PerfScore 16.50
-G_M65134_IG04: ; bbWeight=1, epilog, nogc, extend
+ ;; size=39 bbWeight=1 PerfScore 13.25
+G_M65134_IG05: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
pop rbx
+ pop r14
pop r15
pop rbp
ret
- ;; size=5 bbWeight=1 PerfScore 2.50
-G_M65134_IG05: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; byrRegs -[r15]
+ ;; size=11 bbWeight=1 PerfScore 3.25
+G_M65134_IG06: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; byrRegs -[r14]
mov r15d, dword ptr [rbx+0x50]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -91,25 +97,23 @@ G_M65134_IG05: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=000
test eax, eax
jne SHORT G_M65134_IG03
;; size=22 bbWeight=0.01 PerfScore 0.05
-G_M65134_IG06: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M65134_IG07: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
call [System.Xml.XmlExceptionHelper:ThrowUnexpectedEndOfFile(System.Xml.XmlDictionaryReader)]
; gcrRegs -[rdi]
- jmp SHORT G_M65134_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M65134_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
+ mov r14, gword ptr [rbx+0x20]
+ ; gcrRegs +[r14]
+ test r14, r14
+ jne SHORT G_M65134_IG04
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M65134_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx r14]
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M65134_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test r15d, r15d
- jne SHORT G_M65134_IG07
- jmp SHORT G_M65134_IG07
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 127, prolog size 9, PerfScore 28.30, instruction count 41, allocated bytes for code 127 (MethodHash=0c3a0191) for method System.Xml.XmlBufferReader:ReadRawBytes[long]():long:this (Tier1)
+; Total bytes of code 137, prolog size 12, PerfScore 31.05, instruction count 44, allocated bytes for code 137 (MethodHash=0c3a0191) for method System.Xml.XmlBufferReader:ReadRawBytes[long]():long:this (Tier1)
; ============================================================
Unwind Info:
@@ -117,11 +121,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)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
-26 (-26.00%) : 5450.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> rcx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> rdx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -31,10 +31,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
push rax
lea rbp, [rsp+0x10]
- mov qword ptr [rbp-0x10], rdi
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi]
mov rdi, gword ptr [rbx+0x20]
@@ -44,55 +43,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rsi rdi]
; byrRegs +[rax]
test rax, rax
- je SHORT G_M43979_IG05
+ je SHORT G_M43979_IG04
;; size=18 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
mov ecx, dword ptr [rax]
mov rdx, gword ptr [rbx+0x80]
; gcrRegs +[rdx]
- mov rax, qword ptr [rbx]
- ; byrRegs -[rax]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x108]
- test rax, rax
- jne SHORT G_M43979_IG07
- ;; size=31 bbWeight=0.50 PerfScore 6.62
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M43979_IG07
- ;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M43979_IG06
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
+ ; byrRegs -[rax]
xor rax, rax
; gcrRegs +[rax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M43979_IG09
+ jae SHORT G_M43979_IG08
mov eax, ecx
mov rax, gword ptr [rdx+8*rax+0x10]
; gcrRegs +[rax]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
-26 (-26.00%) : 48962.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> rcx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> rdx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -31,10 +31,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
push rax
lea rbp, [rsp+0x10]
- mov qword ptr [rbp-0x10], rdi
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi]
mov rdi, gword ptr [rbx+0x20]
@@ -44,55 +43,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rsi rdi]
; byrRegs +[rax]
test rax, rax
- je SHORT G_M43979_IG05
+ je SHORT G_M43979_IG04
;; size=18 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
mov ecx, dword ptr [rax]
mov rdx, gword ptr [rbx+0x80]
; gcrRegs +[rdx]
- mov rax, qword ptr [rbx]
- ; byrRegs -[rax]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xC0]
- test rax, rax
- jne SHORT G_M43979_IG07
- ;; size=31 bbWeight=0.50 PerfScore 6.62
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M43979_IG07
- ;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M43979_IG06
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
+ ; byrRegs -[rax]
xor rax, rax
; gcrRegs +[rax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M43979_IG09
+ jae SHORT G_M43979_IG08
mov eax, ecx
mov rax, gword ptr [rdx+8*rax+0x10]
; gcrRegs +[rax]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
-26 (-26.00%) : 43271.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> rcx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> rdx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -31,10 +31,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
push rax
lea rbp, [rsp+0x10]
- mov qword ptr [rbp-0x10], rdi
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.75
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi]
mov rdi, gword ptr [rbx+0x20]
@@ -44,55 +43,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rsi rdi]
; byrRegs +[rax]
test rax, rax
- je SHORT G_M43979_IG05
+ je SHORT G_M43979_IG04
;; size=18 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
mov ecx, dword ptr [rax]
mov rdx, gword ptr [rbx+0x80]
; gcrRegs +[rdx]
- mov rax, qword ptr [rbx]
- ; byrRegs -[rax]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xC0]
- test rax, rax
- jne SHORT G_M43979_IG07
- ;; size=31 bbWeight=0.50 PerfScore 6.62
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M43979_IG07
- ;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M43979_IG06
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
+ ; byrRegs -[rax]
xor rax, rax
; gcrRegs +[rax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M43979_IG09
+ jae SHORT G_M43979_IG08
mov eax, ecx
mov rax, gword ptr [rdx+8*rax+0x10]
; gcrRegs +[rax]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 12, PerfScore 26.32, instruction count 35, allocated bytes for code 100 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 21.50, instruction count 28, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
+10 (+0.98%) : 101730.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
@@ -10,21 +10,21 @@
;
; V00 arg0 [V00,T03] ( 4, 4 ) struct (24) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Drawing.Color>
; V01 loc0 [V01,T00] ( 29, 15.50) ref -> r8 class-hnd <System.String>
-; V02 loc1 [V02,T21] ( 3, 1.50) int -> rcx
+; V02 loc1 [V02,T19] ( 3, 1.50) int -> rcx
; V03 loc2 [V03 ] ( 17, 8.00) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (24) zero-ref "impAppendStmt" <System.Drawing.Color>
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (24) zero-ref "spilled call-like call argument" <System.Drawing.Color>
-;* V07 tmp3 [V07,T31] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp3 [V07,T29] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
; V09 tmp5 [V09,T08] ( 3, 3 ) int -> rsi "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V11 tmp7 [V11,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V11 tmp7 [V11,T30] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Drawing.Color>
-; V13 tmp9 [V13,T22] ( 2, 1 ) ubyte -> r8 "Inline return value spill temp"
+; V13 tmp9 [V13,T20] ( 2, 1 ) ubyte -> r8 "Inline return value spill temp"
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V16 tmp12 [V16,T26] ( 2, 1 ) ubyte -> r8 "Inline return value spill temp"
+; V16 tmp12 [V16,T24] ( 2, 1 ) ubyte -> r8 "Inline return value spill temp"
;* V17 tmp13 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V19 tmp15 [V19 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
@@ -36,32 +36,32 @@
; V25 tmp21 [V25,T12] ( 4, 2 ) ref -> r8 class-hnd "Inline return value spill temp" <System.String>
;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp24 [V28,T25] ( 2, 1 ) ref -> r8 class-hnd single-def "Inline return value spill temp" <System.String>
+; V28 tmp24 [V28,T23] ( 2, 1 ) ref -> r8 class-hnd single-def "Inline return value spill temp" <System.String>
;* V29 tmp25 [V29 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V30 tmp26 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-; V32 tmp28 [V32,T17] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V32 tmp28 [V32,T15] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
-; V34 tmp30 [V34,T01] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
+; V34 tmp30 [V34,T02] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V36 tmp32 [V36,T33] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp32 [V36,T31] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V38 tmp34 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V39 tmp35 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V40 tmp36 [V40,T04] ( 4, 4.00) int -> rdi "Inlining Arg"
;* V41 tmp37 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V42 tmp38 [V42,T09] ( 3, 3.00) int -> r12 "Inlining Arg"
-; V43 tmp39 [V43,T19] ( 2, 2.00) byref -> r13 single-def "Inlining Arg"
+; V43 tmp39 [V43,T17] ( 2, 2.00) byref -> r13 single-def "Inlining Arg"
;* V44 tmp40 [V44 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V45 tmp41 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp42 [V46,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V46 tmp42 [V46,T28] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V47 tmp43 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V48 tmp44 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V49 tmp45 [V49,T20] ( 2, 1.99) byref -> rdi single-def "Inlining Arg"
+; V49 tmp45 [V49,T18] ( 2, 1.99) byref -> rdi single-def "Inlining Arg"
;* V50 tmp46 [V50 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V51 tmp47 [V51,T27] ( 2, 1 ) long -> rsi "Inline return value spill temp"
-; V52 tmp48 [V52,T28] ( 2, 1 ) long -> rsi "Inline return value spill temp"
-; V53 tmp49 [V53,T29] ( 2, 1 ) long -> rsi "Inline return value spill temp"
+; V51 tmp47 [V51,T25] ( 2, 1 ) long -> rsi "Inline return value spill temp"
+; V52 tmp48 [V52,T26] ( 2, 1 ) long -> rsi "Inline return value spill temp"
+; V53 tmp49 [V53,T27] ( 2, 1 ) long -> rsi "Inline return value spill temp"
;* V54 tmp50 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "field V05.name (fldOffset=0x0)" P-INDEP
;* V55 tmp51 [V55 ] ( 0, 0 ) long -> zero-ref "field V05.value (fldOffset=0x8)" P-INDEP
;* V56 tmp52 [V56 ] ( 0, 0 ) short -> zero-ref "field V05.knownColor (fldOffset=0x10)" P-INDEP
@@ -78,26 +78,24 @@
;* V67 tmp63 [V67 ] ( 0, 0 ) long -> zero-ref "field V12.value (fldOffset=0x8)" P-INDEP
;* V68 tmp64 [V68 ] ( 0, 0 ) short -> zero-ref "field V12.knownColor (fldOffset=0x10)" P-INDEP
;* V69 tmp65 [V69 ] ( 0, 0 ) short -> zero-ref "field V12.state (fldOffset=0x12)" P-INDEP
-; V70 tmp66 [V70,T23] ( 3, 1.00) byref -> r12 "field V38._reference (fldOffset=0x0)" P-INDEP
-; V71 tmp67 [V71,T24] ( 3, 1.00) int -> rax "field V38._length (fldOffset=0x8)" P-INDEP
+; V70 tmp66 [V70,T21] ( 3, 1.00) byref -> r12 "field V38._reference (fldOffset=0x0)" P-INDEP
+; V71 tmp67 [V71,T22] ( 3, 1.00) int -> rax "field V38._length (fldOffset=0x8)" P-INDEP
;* V72 tmp68 [V72 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
;* V73 tmp69 [V73 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V74 tmp70 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V75 tmp71 [V75 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V76 tmp72 [V76 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
;* V77 tmp73 [V77 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
-; V78 tmp74 [V78,T16] ( 3, 2 ) ref -> rax single-def "V00.[000..008)"
+; V78 tmp74 [V78,T14] ( 3, 2 ) ref -> rax single-def "V00.[000..008)"
; V79 tmp75 [V79,T05] ( 6, 3.50) long -> rbx "V00.[008..016)"
; V80 tmp76 [V80,T06] ( 6, 3.50) short -> rcx "V00.[016..018)"
-; V81 tmp77 [V81,T02] ( 7, 4.50) short -> r15 "V00.[018..020)"
+; V81 tmp77 [V81,T01] ( 9, 5.50) short -> r15 "V00.[018..020)"
;* V82 tmp78 [V82 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V83 tmp79 [V83,T18] ( 2, 2 ) ref -> rdi single-def "arr expr"
-; V84 cse0 [V84,T14] ( 4, 2 ) int -> rdi "CSE - moderate"
+; V83 tmp79 [V83,T16] ( 2, 2 ) ref -> rdi single-def "arr expr"
+; V84 cse0 [V84,T13] ( 4, 2 ) int -> rdi "CSE - moderate"
; V85 cse1 [V85,T07] ( 4, 3.00) ref -> r14 "CSE - moderate"
-; V86 cse2 [V86,T15] ( 4, 2 ) int -> r15 "CSE - moderate"
-; V87 cse3 [V87,T13] ( 4, 2 ) ref -> r14 "CSE - moderate"
-; V88 rat0 [V88,T10] ( 3, 3 ) int -> r13 "ReplaceWithLclVar is creating a new local variable"
-; V89 rat1 [V89,T11] ( 3, 3 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
+; V86 rat0 [V86,T10] ( 3, 3 ) int -> r13 "ReplaceWithLclVar is creating a new local variable"
+; V87 rat1 [V87,T11] ( 3, 3 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 40
@@ -390,45 +388,42 @@ G_M19421_IG35: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
;; size=26 bbWeight=0.50 PerfScore 2.74
G_M19421_IG36: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[r13]
- and r15d, 2
xor esi, esi
- test r15d, r15d
+ test r15b, 2
cmovne rsi, rbx
sar rsi, 16
movzx rsi, sil
lea rdi, [rbp-0x50]
- mov r14, 0xD1FFAB1E
- ; gcrRegs +[r14]
- mov rdx, r14
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rdx]
xor esi, esi
- test r15d, r15d
+ test r15b, 2
cmovne rsi, rbx
sar rsi, 8
movzx rsi, sil
lea rdi, [rbp-0x50]
- mov rdx, r14
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rdx]
xor esi, esi
- test r15d, r15d
+ test r15b, 2
cmovne rsi, rbx
movzx rsi, sil
lea rdi, [rbp-0x50]
- mov rdx, r14
+ mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
call [<unknown method>]
- ; gcrRegs -[rdx r14]
+ ; gcrRegs -[rdx]
lea rdi, [rbp-0x50]
call [System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this]
; gcrRegs +[rax]
mov r8, rax
; gcrRegs +[r8]
jmp G_M19421_IG03
- ;; size=118 bbWeight=0.50 PerfScore 10.75
+ ;; size=128 bbWeight=0.50 PerfScore 10.50
G_M19421_IG37: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8]
test rbx, rbx
@@ -542,7 +537,7 @@ RWD104 dd G_M19421_IG08 - G_M19421_IG02
dd G_M19421_IG17 - G_M19421_IG02
-; Total bytes of code 1019, prolog size 35, PerfScore 105.83, instruction count 216, allocated bytes for code 1019 (MethodHash=f078b422) for method System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
+; Total bytes of code 1029, prolog size 35, PerfScore 105.58, instruction count 214, allocated bytes for code 1029 (MethodHash=f078b422) for method System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.12%) : 176801.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -56,16 +56,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=29 bbWeight=1 PerfScore 6.75
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M11729_IG02
add rax, rcx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -84,34 +84,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov edi, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M11729_IG02
add rax, rcx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 16
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rax, qword ptr [rdi]
@@ -120,7 +106,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -129,27 +115,27 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rax, rdi
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rcx, 0xD1FFAB1E ; System.Xml.Base64Decoder
cmp rax, rcx
- jne SHORT G_M11729_IG09
+ jne SHORT G_M11729_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rdi]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=100 bbWeight=0.50 PerfScore 18.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 18.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Xml.Base64Decoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -162,13 +148,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rsi, gword ptr [rbx+0x40]
; gcrRegs +[rsi]
mov rsi, gword ptr [rsi+0x28]
cmp edi, dword ptr [rsi+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov rsi, r14
@@ -202,7 +188,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
;; size=92 bbWeight=0.50 PerfScore 23.50
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -211,7 +197,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi] +[r14]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -222,7 +208,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -231,11 +217,11 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rsi, r14
@@ -249,7 +235,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -257,9 +243,21 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0.50 PerfScore 7.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 16
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -312,23 +310,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 566, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 566 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 578, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 578 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.12%) : 176803.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -56,16 +56,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r13d, edx
mov r15d, ecx
;; size=29 bbWeight=1 PerfScore 6.75
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x54]
cmp edi, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M57654_IG02
add rax, rcx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -84,34 +84,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov edi, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rdi]
lea rcx, G_M57654_IG02
add rax, rcx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx r14]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 16
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx r14]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rax, qword ptr [rdi]
@@ -120,7 +106,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rdi, r14
; gcrRegs +[rdi]
mov esi, r13d
@@ -129,27 +115,27 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
; gcrRegs -[rdi]
; gcr arg pop 0
test r15d, r15d
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rax, rdi
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rcx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
cmp rax, rcx
- jne SHORT G_M57654_IG09
+ jne SHORT G_M57654_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rdi]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=100 bbWeight=0.50 PerfScore 18.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=104 bbWeight=0.50 PerfScore 18.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; System.Xml.BinHexDecoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -162,13 +148,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x60]
mov rsi, gword ptr [rbx+0x40]
; gcrRegs +[rsi]
mov rsi, gword ptr [rsi+0x28]
cmp edi, dword ptr [rsi+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rdi, gword ptr [rbx+0x38]
; gcrRegs +[rdi]
mov rsi, r14
@@ -202,7 +188,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
;; size=92 bbWeight=0.50 PerfScore 23.50
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -211,7 +197,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x20]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi] +[r14]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -222,7 +208,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=400
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r13
@@ -231,11 +217,11 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x30]<unknown method>
;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi rdi]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rsi, r14
@@ -249,7 +235,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcr arg pop 0
mov r14d, eax
test r14d, r14d
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rdi, rbx
; gcrRegs +[rdi]
@@ -257,9 +243,21 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0.50 PerfScore 7.75
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 16
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -312,23 +310,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
-; Total bytes of code 566, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 566 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 578, prolog size 29, PerfScore 93.00, instruction count 164, allocated bytes for code 578 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.linux.x64.checked.mch
-25 (-24.04%) : 11174.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> rbx this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 6, 4.50) ref -> rbx this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> rdi class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,51 +37,39 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M3270_IG04
+ je SHORT G_M3270_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rbx rsi] +[rax]
- ; gcr arg pop 0
- test rax, rax
- jne SHORT G_M3270_IG06
- jmp SHORT G_M3270_IG06
- ;; size=25 bbWeight=0.50 PerfScore 2.38
-G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax] +[rbx]
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M3270_IG06
+ je SHORT G_M3270_IG05
cmp gword ptr [rbx+0x20], 0
- jne SHORT G_M3270_IG06
+ jne SHORT G_M3270_IG05
mov rdi, gword ptr [rdi+0x08]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
;; size=24 bbWeight=0.50 PerfScore 5.62
-G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
tail.jmp [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 1.62
-G_M3270_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rsi rdi]
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 104, prolog size 11, PerfScore 17.38, instruction count 32, allocated bytes for code 104 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 79, prolog size 11, PerfScore 15.00, instruction count 26, allocated bytes for code 79 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-19 (-11.11%) : 24242.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
@@ -25,10 +25,10 @@
; V14 tmp8 [V14,T05] ( 3, 6 ) ref -> rax "Field obj"
; V15 tmp9 [V15,T01] ( 2, 8 ) byref -> rdx "argument with side effect"
;* V16 cse0 [V16,T12] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V17 cse1 [V17,T08] ( 3, 3 ) long -> [rbp-0x38] spill-single-def "CSE - moderate"
-; V18 rat0 [V18,T10] ( 2, 2 ) long -> rdi "Spilling to split statement for tree"
+; V17 cse1 [V17,T08] ( 2, 2.50) long -> [rbp-0x38] spill-single-def "CSE - moderate"
+;* V18 rat0 [V18,T10] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V19 rat1 [V19,T11] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V20 rat2 [V20,T09] ( 2, 2 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V20 rat2 [V20,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 24
@@ -73,14 +73,8 @@ G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=8000 {
mov rax, qword ptr [rbx]
; gcrRegs -[rax]
mov qword ptr [rbp-0x38], rax
- mov rdi, rax
- mov rdi, qword ptr [rdi+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x38]
- test rdi, rdi
- jne SHORT G_M9562_IG05
jmp SHORT G_M9562_IG05
- ;; size=43 bbWeight=0.50 PerfScore 8.12
+ ;; size=24 bbWeight=0.50 PerfScore 4.38
G_M9562_IG04: ; bbWeight=2, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=8000 {r15}, byref
mov rdi, r13
; gcrRegs +[rdi]
@@ -130,7 +124,7 @@ G_M9562_IG08: ; bbWeight=1, epilog, nogc, extend
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 171, prolog size 23, PerfScore 84.25, instruction count 56, allocated bytes for code 171 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 152, prolog size 23, PerfScore 80.50, instruction count 50, allocated bytes for code 152 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
; ============================================================
Unwind Info:
-37 (-10.82%) : 26795.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 6, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+; V00 this [V00,T01] ( 6, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T00] ( 6, 5 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
-; V02 arg2 [V02,T03] ( 6, 4 ) ubyte -> r15 single-def
+; V02 arg2 [V02,T02] ( 6, 4 ) ubyte -> r15 single-def
; V03 loc0 [V03,T06] ( 4, 2 ) ref -> rdi class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V04 loc1 [V04 ] ( 0, 0 ) byte -> zero-ref
-; V05 loc2 [V05,T01] ( 10, 6 ) int -> rdi single-def
+; V05 loc2 [V05,T03] ( 7, 4.50) int -> rdi single-def
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -45,48 +45,37 @@ G_M22690_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
;; size=23 bbWeight=1 PerfScore 5.75
G_M22690_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp edi, 0x1115
- je SHORT G_M22690_IG06
+ je SHORT G_M22690_IG05
cmp edi, 0x1116
- je SHORT G_M22690_IG07
+ je SHORT G_M22690_IG06
add edi, -0x1214
cmp edi, 1
- jbe SHORT G_M22690_IG06
- jmp G_M22690_IG17
+ jbe SHORT G_M22690_IG05
+ jmp G_M22690_IG16
;; size=32 bbWeight=0.50 PerfScore 3.00
G_M22690_IG04: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp edi, 0x1D14
- jg SHORT G_M22690_IG05
+ jg G_M22690_IG16
cmp edi, 0x1216
- je SHORT G_M22690_IG07
- cmp edi, 0x1D14
- je G_M22690_IG17
- jmp G_M22690_IG17
- ;; size=33 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rsi]
- cmp edi, 0x1E14
- je G_M22690_IG17
- cmp edi, 0x1F14
- je G_M22690_IG17
- jmp G_M22690_IG17
- ;; size=29 bbWeight=0.50 PerfScore 2.25
-G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rsi]
+ je SHORT G_M22690_IG06
+ jmp G_M22690_IG16
+ ;; size=25 bbWeight=0.50 PerfScore 2.25
+G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rsi+0x20]
mov rdi, gword ptr [rsi+0x18]
; gcrRegs +[rdi]
- jmp SHORT G_M22690_IG08
+ jmp SHORT G_M22690_IG07
;; size=10 bbWeight=0.50 PerfScore 3.00
-G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, gword ptr [rsi+0x28]
; gcrRegs +[rdi]
mov rdi, gword ptr [rdi+0x18]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
test rdi, rdi
- je G_M22690_IG17
+ je G_M22690_IG16
call [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:GetEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]
; gcrRegs -[rdi] +[rax]
mov rdi, rax
@@ -98,7 +87,7 @@ G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rdi]
add eax, -9
cmp eax, 3
- ja G_M22690_IG17
+ ja G_M22690_IG16
mov edi, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdi]
@@ -106,7 +95,7 @@ G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
add rcx, rsi
jmp rcx
;; size=67 bbWeight=0.50 PerfScore 9.50
-G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
movzx rcx, r15b
@@ -114,13 +103,13 @@ G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov edx, 12
cmp dword ptr [rdi], edi
;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG10: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG09: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
pop rbp
tail.jmp [<unknown method>]
;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi]
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
@@ -129,13 +118,13 @@ G_M22690_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 2
cmp dword ptr [rdi], edi
;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG12: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
pop rbp
tail.jmp [<unknown method>]
;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi]
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
@@ -144,13 +133,13 @@ G_M22690_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 5
cmp dword ptr [rdi], edi
;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
pop rbp
tail.jmp [<unknown method>]
;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi]
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
@@ -159,26 +148,26 @@ G_M22690_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 13
cmp dword ptr [rdi], edi
;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M22690_IG16: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG15: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
pop rbp
tail.jmp [<unknown method>]
;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M22690_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22690_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx rdi]
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-RWD00 dd G_M22690_IG11 - G_M22690_IG02
- dd G_M22690_IG09 - G_M22690_IG02
- dd G_M22690_IG13 - G_M22690_IG02
- dd G_M22690_IG15 - G_M22690_IG02
+RWD00 dd G_M22690_IG10 - G_M22690_IG02
+ dd G_M22690_IG08 - G_M22690_IG02
+ dd G_M22690_IG12 - G_M22690_IG02
+ dd G_M22690_IG14 - G_M22690_IG02
-; Total bytes of code 342, prolog size 9, PerfScore 52.12, instruction count 93, allocated bytes for code 342 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 305, prolog size 9, PerfScore 49.25, instruction count 86, allocated bytes for code 305 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
-8 (-0.15%) : 9067.dasm - FSharp.Compiler.ConstraintSolver:ResolveOverloading(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,FSharp.Compiler.ConstraintSolver+OptionalTrace,System.String,int,Microsoft.FSharp.Core.FSharpOption1[FSharp.Compiler.TypedTree+TraitConstraintInfo],FSharp.Compiler.MethodCalls+CallerArgs1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Collections.FSharpList1[FSharp.Compiler.MethodCalls+CalledMeth1[FSharp.Compiler.TypedTree+Expr]],ubyte,Microsoft.FSharp.Core.FSharpOption1[FSharp.Compiler.ConstraintSolver+OverallTy]):System.Tuple2[Microsoft.FSharp.Core.FSharpOption1[FSharp.Compiler.MethodCalls+CalledMeth1[FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit]] (FullOpts)
@@ -370,12 +370,12 @@ G_M45942_IG11: ; bbWeight=0.50, gcrefRegs=B00A {rcx rbx r12 r13 r15}, byr
je SHORT G_M45942_IG12
mov rdx, gword ptr [rbp+0x20]
; gcrRegs +[rdx]
- cmp gword ptr [rdx+0x10], 0
- jne G_M45942_IG22
+ mov edi, dword ptr [rdx+0x10]
+ ; gcrRegs -[rdi]
jmp G_M45942_IG22
- ;; size=42 bbWeight=0.50 PerfScore 7.62
+ ;; size=34 bbWeight=0.50 PerfScore 6.62
G_M45942_IG12: ; bbWeight=0.50, gcVars=00000000000000180210080000000000 {V01 V10 V15 V17 V18}, gcrefRegs=300A {rcx rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdx rdi r15]
+ ; gcrRegs -[rdx r15]
; GC ptr vars -{V11 V13}
mov r15, gword ptr [rcx+0x08]
; gcrRegs +[r15]
@@ -2377,7 +2377,7 @@ RWD32 dq 0049005F0070006Fh, 0069006C0070006Dh
RWD48 dq 006C0070006D0049h, 0074006900630069h
-; Total bytes of code 5280, prolog size 64, PerfScore 987.51, instruction count 1074, allocated bytes for code 5280 (MethodHash=444a4c89) for method FSharp.Compiler.ConstraintSolver:ResolveOverloading(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,FSharp.Compiler.ConstraintSolver+OptionalTrace,System.String,int,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TraitConstraintInfo],FSharp.Compiler.MethodCalls+CallerArgs`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodCalls+CalledMeth`1[FSharp.Compiler.TypedTree+Expr]],ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.ConstraintSolver+OverallTy]):System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.MethodCalls+CalledMeth`1[FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit]] (FullOpts)
+; Total bytes of code 5272, prolog size 64, PerfScore 986.51, instruction count 1073, allocated bytes for code 5272 (MethodHash=444a4c89) for method FSharp.Compiler.ConstraintSolver:ResolveOverloading(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,FSharp.Compiler.ConstraintSolver+OptionalTrace,System.String,int,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TraitConstraintInfo],FSharp.Compiler.MethodCalls+CallerArgs`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodCalls+CalledMeth`1[FSharp.Compiler.TypedTree+Expr]],ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.ConstraintSolver+OverallTy]):System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.MethodCalls+CalledMeth`1[FSharp.Compiler.TypedTree+Expr]],FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit]] (FullOpts)
; ============================================================
Unwind Info:
-5 (-0.06%) : 19362.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
@@ -3115,10 +3115,8 @@ G_M12170_IG126: ; bbWeight=2, gcrefRegs=4806 {rcx rdx r11 r14}, byrefRegs
call [r11]<unknown method>
; gcrRegs -[rdi]
; gcr arg pop 0
- cmp eax, 5
- jne SHORT G_M12170_IG130
jmp SHORT G_M12170_IG130
- ;; size=112 bbWeight=2 PerfScore 81.00
+ ;; size=107 bbWeight=2 PerfScore 78.50
G_M12170_IG127: ; bbWeight=2, gcrefRegs=4000 {r14}, byrefRegs=8000 {r15}, byref, isz
mov rbx, gword ptr [rbp-0x38]
; gcrRegs +[rbx]
@@ -3822,7 +3820,7 @@ RWD00 dq 0070006100720057h, 0045006E006F004Eh, 0070006500630078h, 006E006F0069
RWD32 dq 006300780045006Eh, 0069007400700065h, 00680054006E006Fh, 00730077006F0072h
-; Total bytes of code 7798, prolog size 60, PerfScore 1060.08, instruction count 1841, allocated bytes for code 7798 (MethodHash=068ad075) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
+; Total bytes of code 7793, prolog size 60, PerfScore 1057.58, instruction count 1839, allocated bytes for code 7793 (MethodHash=068ad075) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 21612.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -24,21 +24,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 3.75
G_M35943_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, 0x1509
- je SHORT G_M35943_IG05
+ jne SHORT G_M35943_IG05
;; size=8 bbWeight=1 PerfScore 1.25
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- xor rax, rax
- ; gcrRegs +[rax]
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- pop rbx
- pop r15
- pop rbp
- ret
- ;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rbx]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -58,6 +46,17 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, r15
; gcrRegs +[rax]
;; size=44 bbWeight=0.50 PerfScore 5.75
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop rbx
+ pop r15
+ pop rbp
+ ret
+ ;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax r15]
+ xor rax, rax
+ ; gcrRegs +[rax]
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
@@ -65,7 +64,7 @@ G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r15]
+ ; gcrRegs -[rax]
call CORINFO_HELP_OVERFLOW
int3
;; size=6 bbWeight=0 PerfScore 0.00
smoke_tests.nativeaot.linux.x64.checked.mch
-20 (-4.73%) : 4002.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -13,7 +13,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> r14 single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> r13 single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> r12
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> r12
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> rdi
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> rdi
@@ -24,19 +24,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> rdi "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> rdi "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> rsi "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> rsi "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> rsi "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> rsi "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> rsi "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> rsi "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> rdi single-def "arr expr"
@@ -201,29 +201,14 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
int3
;; size=17 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edi, esi
- jbe SHORT G_M29651_IG14
- jmp SHORT G_M29651_IG14
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r12d, esi
- jbe SHORT G_M29651_IG15
- jmp SHORT G_M29651_IG15
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r12d, esi
- jbe SHORT G_M29651_IG16
- jmp SHORT G_M29651_IG16
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rdx, gword ptr [(reloc)]
; gcrRegs +[rdx]
call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
; gcrRegs -[rdx]
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, r12d
lea rdx, gword ptr [(reloc)]
; gcrRegs +[rdx]
@@ -231,7 +216,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, r12d
lea rdx, gword ptr [(reloc)]
; gcrRegs +[rdx]
@@ -240,7 +225,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 423, prolog size 16, PerfScore 227.62, instruction count 124, allocated bytes for code 423 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 403, prolog size 16, PerfScore 227.62, instruction count 115, allocated bytes for code 403 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Cfi Info:
-13 (-3.58%) : 5100.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
@@ -16,7 +16,7 @@
; V06 loc1 [V06,T16] ( 5, 8.50) long -> registers
; V07 loc2 [V07,T14] ( 7, 11 ) long -> registers
; V08 loc3 [V08,T17] ( 6, 6 ) int -> r10
-; V09 loc4 [V09,T00] ( 18,102.50) int -> rcx
+; V09 loc4 [V09,T00] ( 16,102.50) int -> rcx
; V10 loc5 [V10,T19] ( 3, 6 ) int -> r15
; V11 loc6 [V11,T04] ( 7, 26 ) int -> r13
; V12 loc7 [V12,T11] ( 6, 12 ) long -> rax
@@ -25,10 +25,10 @@
; V15 tmp2 [V15,T12] ( 3, 12 ) long -> rdx "impSpillLclRefs"
; V16 tmp3 [V16,T13] ( 3, 12 ) long -> rdx "impSpillLclRefs"
;* V17 tmp4 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V18 tmp5 [V18,T09] ( 4, 16 ) int -> rbx "Inlining Arg"
+; V18 tmp5 [V18,T09] ( 3, 16 ) int -> rbx "Inlining Arg"
;* V19 tmp6 [V19,T23] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V21 tmp8 [V21,T01] ( 4, 64 ) int -> r12 "Inlining Arg"
+; V21 tmp8 [V21,T01] ( 3, 64 ) int -> r12 "Inlining Arg"
;* V22 tmp9 [V22,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V23 tmp10 [V23,T05] ( 3, 24 ) ref -> r15 "arr expr"
; V24 tmp11 [V24,T02] ( 2, 64 ) ref -> r12 "arr expr"
@@ -191,17 +191,7 @@ G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, ebx
- jbe SHORT G_M50170_IG22
- jmp SHORT G_M50170_IG22
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, r12d
- jbe SHORT G_M50170_IG23
- jmp SHORT G_M50170_IG23
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, ecx
mov esi, ebx
lea rdx, gword ptr [(reloc)]
@@ -211,7 +201,7 @@ G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=17 bbWeight=0 PerfScore 0.00
-G_M50170_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, ecx
mov esi, r12d
lea rdx, gword ptr [(reloc)]
@@ -222,7 +212,7 @@ G_M50170_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 363, prolog size 19, PerfScore 269.62, instruction count 121, allocated bytes for code 363 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 350, prolog size 19, PerfScore 269.62, instruction count 115, allocated bytes for code 350 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
; ============================================================
Cfi Info:
-10 (-2.62%) : 5096.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
@@ -15,7 +15,7 @@
; V05 loc1 [V05,T11] ( 8, 10 ) long -> registers
; V06 loc2 [V06,T15] ( 5, 5.50) int -> r9
; V07 loc3 [V07,T14] ( 6, 6 ) int -> rsi
-; V08 loc4 [V08,T00] ( 20,106.50) int -> r10
+; V08 loc4 [V08,T00] ( 18,106.50) int -> r10
; V09 loc5 [V09,T13] ( 5, 7 ) int -> rdx
; V10 loc6 [V10,T16] ( 4, 5 ) int -> r11
; V11 loc7 [V11,T06] ( 6, 21 ) short -> rbx
@@ -26,10 +26,10 @@
;* V16 tmp4 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V17 tmp5 [V17 ] ( 0, 0 ) long -> zero-ref "impSpillLclRefs"
;* V18 tmp6 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp7 [V19,T07] ( 4, 16 ) int -> r15 "Inlining Arg"
+; V19 tmp7 [V19,T07] ( 3, 16 ) int -> r15 "Inlining Arg"
;* V20 tmp8 [V20,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V21 tmp9 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V22 tmp10 [V22,T02] ( 4, 64 ) int -> r15 "Inlining Arg"
+; V22 tmp10 [V22,T02] ( 3, 64 ) int -> r15 "Inlining Arg"
;* V23 tmp11 [V23,T08] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V24 tmp12 [V24,T05] ( 3, 24 ) ref -> r15 "arr expr"
; V25 tmp13 [V25,T01] ( 3, 96 ) ref -> r15 "arr expr"
@@ -136,7 +136,7 @@ G_M62864_IG12: ; bbWeight=16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, by
jge SHORT G_M62864_IG13
mov r15d, r11d
cmp r10d, r15d
- jae SHORT G_M62864_IG21
+ jae G_M62864_IG21
mov r15, gword ptr [rdi+0x08]
; gcrRegs +[r15]
cmp r10d, dword ptr [r15+0x08]
@@ -144,7 +144,7 @@ G_M62864_IG12: ; bbWeight=16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, by
mov r14d, r10d
cmp byte ptr [r15+r14+0x10], 0
jne SHORT G_M62864_IG11
- ;; size=34 bbWeight=16 PerfScore 208.00
+ ;; size=38 bbWeight=16 PerfScore 208.00
G_M62864_IG13: ; bbWeight=2, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15]
mov r11d, r10d
@@ -194,17 +194,7 @@ G_M62864_IG19: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M62864_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r10d, r15d
- jbe SHORT G_M62864_IG22
- jmp SHORT G_M62864_IG22
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M62864_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r10d, r15d
- jbe SHORT G_M62864_IG23
- jmp SHORT G_M62864_IG23
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M62864_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, r10d
mov esi, r15d
lea rdx, gword ptr [(reloc)]
@@ -214,7 +204,7 @@ G_M62864_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=19 bbWeight=0 PerfScore 0.00
-G_M62864_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M62864_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, r10d
mov esi, r15d
lea rdx, gword ptr [(reloc)]
@@ -225,7 +215,7 @@ G_M62864_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=19 bbWeight=0 PerfScore 0.00
-; Total bytes of code 382, prolog size 12, PerfScore 339.00, instruction count 125, allocated bytes for code 382 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
+; Total bytes of code 372, prolog size 12, PerfScore 339.00, instruction count 119, allocated bytes for code 372 (MethodHash=62ff0a6f) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
; ============================================================
Cfi Info:
-10 (-0.35%) : 22542.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
@@ -14,7 +14,7 @@
; V04 arg4 [V04,T36] ( 4, 4 ) int -> r12 single-def
; V05 arg5 [V05,T43] ( 4, 3 ) ref -> [rbp-0x58] class-hnd exact single-def <System.Text.DecoderNLS>
; V06 loc0 [V06,T62] ( 4, 2.50) ref -> [rbp-0x60] class-hnd exact spill-single-def <<unknown class>>
-; V07 loc1 [V07,T11] ( 10, 16.50) int -> [rbp-0x2C]
+; V07 loc1 [V07,T11] ( 9, 16 ) int -> [rbp-0x2C]
; V08 loc2 [V08,T07] ( 21, 33.50) ushort -> [rbp-0x30]
; V09 loc3 [V09,T03] ( 59, 53.50) ref -> [rbp-0x68] class-hnd <System.Text.DecoderFallbackBuffer>
; V10 loc4 [V10 ] ( 15, 21 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
@@ -1088,6 +1088,7 @@ G_M8858_IG75: ; bbWeight=0.50, gcrefRegs=6001 {rax r13 r14}, byrefRegs=00
; gcr arg pop 0
mov r15, qword ptr [rbp-0x38]
test eax, eax
+ mov edi, dword ptr [rbp-0x2C]
jne SHORT G_M8858_IG79
mov r12, qword ptr [rbp-0x40]
add r12, 2
@@ -1106,7 +1107,7 @@ G_M8858_IG75: ; bbWeight=0.50, gcrefRegs=6001 {rax r13 r14}, byrefRegs=00
call <unknown method>
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=86 bbWeight=0.50 PerfScore 9.38
+ ;; size=89 bbWeight=0.50 PerfScore 9.88
G_M8858_IG76: ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
xor edi, edi
mov r12, gword ptr [rbp-0x68]
@@ -1132,9 +1133,8 @@ G_M8858_IG78: ; bbWeight=0.25, gcVars=00000000000000004000000000000008 {V
G_M8858_IG79: ; bbWeight=0.25, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp-0x60]
; gcrRegs +[rax]
- mov edi, dword ptr [rbp-0x2C]
jmp SHORT G_M8858_IG82
- ;; size=9 bbWeight=0.25 PerfScore 1.00
+ ;; size=6 bbWeight=0.25 PerfScore 0.75
G_M8858_IG80: ; bbWeight=0.25, gcVars=00000000000000004000000000000000 {V06}, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax] +[r12]
; GC ptr vars -{V03 V09}
@@ -1157,10 +1157,8 @@ G_M8858_IG81: ; bbWeight=0.50, gcrefRegs=5000 {r12 r14}, byrefRegs=0000 {
call System.Text.Encoding:ThrowCharsOverflow(System.Text.DecoderNLS,ubyte):this
; gcrRegs -[rsi rdi r14]
; gcr arg pop 0
- cmp dword ptr [rbp-0x2C], 0
- jl G_M8858_IG93
jmp G_M8858_IG93
- ;; size=36 bbWeight=0.50 PerfScore 5.25
+ ;; size=26 bbWeight=0.50 PerfScore 3.75
G_M8858_IG82: ; bbWeight=0.50, gcVars=00000000000000004000000000000008 {V06 V09}, gcrefRegs=4001 {rax r14}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r12] +[rax r14]
; GC ptr vars +{V03 V06 V09 V62}
@@ -1365,7 +1363,7 @@ G_M8858_IG99: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, g
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2882, prolog size 44, PerfScore 832.94, instruction count 722, allocated bytes for code 2882 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
+; Total bytes of code 2872, prolog size 44, PerfScore 831.69, instruction count 720, allocated bytes for code 2872 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
; ============================================================
Cfi Info:
-6 (-0.24%) : 1775.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T17] ( 5, 16.50) int -> [rbp-0x2C]
; V10 loc9 [V10,T23] ( 4, 12.50) ref -> [rbp-0xA0] class-hnd spill-single-def <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T02] ( 18, 83.02) int -> [rbp-0x30]
+; V12 loc11 [V12,T02] ( 17, 83.02) int -> [rbp-0x30]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T15] ( 30, 20.30) int -> [rbp-0x34]
@@ -82,7 +82,7 @@
; V72 tmp47 [V72,T49] ( 3, 3.48) int -> rsi "Inlining Arg"
;* V73 tmp48 [V73,T73] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T24] ( 4, 10.56) int -> rsi "Inlining Arg"
+; V75 tmp50 [V75,T24] ( 3, 10.56) int -> rsi "Inlining Arg"
;* V76 tmp51 [V76,T53] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -413,7 +413,7 @@ G_M50704_IG31: ; bbWeight=0.87, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byr
mov esi, dword ptr [rdi+0x10]
mov edx, dword ptr [rbp-0x30]
cmp edx, esi
- jae G_M50704_IG108
+ jae G_M50704_IG107
mov rdi, gword ptr [rdi+0x08]
cmp edx, dword ptr [rdi+0x08]
jae G_M50704_IG106
@@ -455,7 +455,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
mov esi, dword ptr [r12+0x10]
mov edx, dword ptr [rbp-0x30]
cmp edx, esi
- jae G_M50704_IG107
+ jae G_M50704_IG108
mov rdi, gword ptr [r12+0x08]
; gcrRegs +[rdi]
cmp edx, dword ptr [rdi+0x08]
@@ -532,7 +532,7 @@ G_M50704_IG42: ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {
; gcrRegs -[rax rsi]
; GC ptr vars -{V08}
test r14, r14
- je G_M50704_IG110
+ je G_M50704_IG109
mov esi, r13d
lea rdi, [(reloc)] ; System.Object[]
call CORINFO_HELP_NEWARR_1_VC
@@ -702,7 +702,7 @@ G_M50704_IG61: ; bbWeight=0.44, gcVars=00000000000000000000004000000000 {
G_M50704_IG62: ; bbWeight=0.22, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rdi+0x10]
cmp ecx, esi
- jae G_M50704_IG111
+ jae G_M50704_IG110
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
@@ -743,7 +743,7 @@ G_M50704_IG64: ; bbWeight=1.33, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
G_M50704_IG65: ; bbWeight=0.65, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [r12+0x10]
cmp ecx, esi
- jae G_M50704_IG112
+ jae G_M50704_IG111
mov r8, gword ptr [r12+0x08]
; gcrRegs +[r8]
cmp ecx, dword ptr [r8+0x08]
@@ -811,7 +811,7 @@ G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byr
G_M50704_IG71: ; bbWeight=0.00, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rdi+0x10]
cmp ecx, esi
- jae G_M50704_IG111
+ jae G_M50704_IG110
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
@@ -855,7 +855,7 @@ G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
G_M50704_IG75: ; bbWeight=0.01, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [r12+0x10]
cmp ecx, esi
- jae G_M50704_IG112
+ jae G_M50704_IG111
mov r8, gword ptr [r12+0x08]
; gcrRegs +[r8]
cmp ecx, dword ptr [r8+0x08]
@@ -1334,11 +1334,15 @@ G_M50704_IG106: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, esi
- jbe SHORT G_M50704_IG109
- jmp SHORT G_M50704_IG109
- ;; size=6 bbWeight=0 PerfScore 0.00
+G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov edi, edx
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[rdx]
+ ; gcr arg pop 0
+ int3
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M50704_IG108: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, edx
lea rdx, gword ptr [(reloc)]
@@ -1348,16 +1352,7 @@ G_M50704_IG108: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG109: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, edx
- lea rdx, gword ptr [(reloc)]
- ; gcrRegs +[rdx]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[rdx]
- ; gcr arg pop 0
- int3
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG110: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M50704_IG109: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
lea rdi, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -1387,6 +1382,15 @@ G_M50704_IG110: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, by
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0 PerfScore 0.00
+G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov edi, ecx
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[rdx]
+ ; gcr arg pop 0
+ int3
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, ecx
lea rdx, gword ptr [(reloc)]
@@ -1396,16 +1400,7 @@ G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, ecx
- lea rdx, gword ptr [(reloc)]
- ; gcrRegs +[rdx]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[rdx]
- ; gcr arg pop 0
- int3
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V22}
push rbp
push r15
@@ -1415,9 +1410,9 @@ G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V1
push rbx
push rax
;; size=11 bbWeight=0 PerfScore 0.00
-G_M50704_IG114: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp-0xB0], 0
- je SHORT G_M50704_IG115
+ je SHORT G_M50704_IG114
mov rdi, gword ptr [rbp-0xB0]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
@@ -1426,10 +1421,10 @@ G_M50704_IG114: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V1
; gcrRegs -[rdi]
; gcr arg pop 0
;; size=27 bbWeight=0 PerfScore 0.00
-G_M50704_IG115: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M50704_IG116: ; bbWeight=0, funclet epilog, nogc, extend
+G_M50704_IG115: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
@@ -1440,7 +1435,7 @@ G_M50704_IG116: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2530, prolog size 57, PerfScore 1682.12, instruction count 653, allocated bytes for code 2530 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2524, prolog size 57, PerfScore 1682.12, instruction count 650, allocated bytes for code 2524 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Cfi Info:
@@ -1477,4 +1472,4 @@ Cfi Info:
CodeOffset: 0x0B Op: AdjustCfaOffset Offset:0x8
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG83..G_M50704_IG104) handled by [G_M50704_IG113..END) (fault)
+EH#0: try [G_M50704_IG83..G_M50704_IG104) handled by [G_M50704_IG112..END) (fault)
-6 (-0.24%) : 12784.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T17] ( 5, 16.50) int -> [rbp-0x2C]
; V10 loc9 [V10,T23] ( 4, 12.50) ref -> [rbp-0xA0] class-hnd spill-single-def <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T02] ( 18, 83.08) int -> [rbp-0x30]
+; V12 loc11 [V12,T02] ( 17, 83.08) int -> [rbp-0x30]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T15] ( 30, 20.31) int -> [rbp-0x34]
@@ -82,7 +82,7 @@
; V72 tmp47 [V72,T49] ( 3, 3.59) int -> rsi "Inlining Arg"
;* V73 tmp48 [V73,T73] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T24] ( 4, 10.56) int -> rsi "Inlining Arg"
+; V75 tmp50 [V75,T24] ( 3, 10.56) int -> rsi "Inlining Arg"
;* V76 tmp51 [V76,T52] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -417,7 +417,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byr
mov esi, dword ptr [rdi+0x10]
mov edx, dword ptr [rbp-0x30]
cmp edx, esi
- jae G_M50704_IG112
+ jae G_M50704_IG111
mov rdi, gword ptr [rdi+0x08]
cmp edx, dword ptr [rdi+0x08]
jae G_M50704_IG110
@@ -459,7 +459,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
mov esi, dword ptr [r12+0x10]
mov edx, dword ptr [rbp-0x30]
cmp edx, esi
- jae G_M50704_IG111
+ jae G_M50704_IG112
mov rdi, gword ptr [r12+0x08]
; gcrRegs +[rdi]
cmp edx, dword ptr [rdi+0x08]
@@ -536,7 +536,7 @@ G_M50704_IG42: ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {
; gcrRegs -[rax rsi]
; GC ptr vars -{V08}
test r14, r14
- je G_M50704_IG114
+ je G_M50704_IG113
mov esi, r13d
lea rdi, [(reloc)] ; System.Object[]
call CORINFO_HELP_NEWARR_1_VC
@@ -706,7 +706,7 @@ G_M50704_IG61: ; bbWeight=0.44, gcVars=00000000000000000000004000000000 {
G_M50704_IG62: ; bbWeight=0.22, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rdi+0x10]
cmp ecx, esi
- jae G_M50704_IG115
+ jae G_M50704_IG114
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
@@ -747,7 +747,7 @@ G_M50704_IG64: ; bbWeight=1.31, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
G_M50704_IG65: ; bbWeight=0.65, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [r12+0x10]
cmp ecx, esi
- jae G_M50704_IG116
+ jae G_M50704_IG115
mov r8, gword ptr [r12+0x08]
; gcrRegs +[r8]
cmp ecx, dword ptr [r8+0x08]
@@ -815,7 +815,7 @@ G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byr
G_M50704_IG71: ; bbWeight=0.00, gcrefRegs=D088 {rbx rdi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rdi+0x10]
cmp ecx, esi
- jae G_M50704_IG115
+ jae G_M50704_IG114
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
@@ -859,7 +859,7 @@ G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRe
G_M50704_IG75: ; bbWeight=0.01, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [r12+0x10]
cmp ecx, esi
- jae G_M50704_IG116
+ jae G_M50704_IG115
mov r8, gword ptr [r12+0x08]
; gcrRegs +[r8]
cmp ecx, dword ptr [r8+0x08]
@@ -1374,11 +1374,15 @@ G_M50704_IG110: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp edx, esi
- jbe SHORT G_M50704_IG113
- jmp SHORT G_M50704_IG113
- ;; size=6 bbWeight=0 PerfScore 0.00
+G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov edi, edx
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[rdx]
+ ; gcr arg pop 0
+ int3
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M50704_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, edx
lea rdx, gword ptr [(reloc)]
@@ -1388,16 +1392,7 @@ G_M50704_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, edx
- lea rdx, gword ptr [(reloc)]
- ; gcrRegs +[rdx]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[rdx]
- ; gcr arg pop 0
- int3
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG114: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M50704_IG113: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
lea rdi, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -1427,6 +1422,15 @@ G_M50704_IG114: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, by
; gcrRegs -[rbx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0 PerfScore 0.00
+G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov edi, ecx
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[rdx]
+ ; gcr arg pop 0
+ int3
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M50704_IG115: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, ecx
lea rdx, gword ptr [(reloc)]
@@ -1436,16 +1440,7 @@ G_M50704_IG115: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG116: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, ecx
- lea rdx, gword ptr [(reloc)]
- ; gcrRegs +[rdx]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[rdx]
- ; gcr arg pop 0
- int3
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V22}
push rbp
push r15
@@ -1455,9 +1450,9 @@ G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V1
push rbx
push rax
;; size=11 bbWeight=0 PerfScore 0.00
-G_M50704_IG118: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp-0xB0], 0
- je SHORT G_M50704_IG119
+ je SHORT G_M50704_IG118
mov rdi, gword ptr [rbp-0xB0]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
@@ -1466,10 +1461,10 @@ G_M50704_IG118: ; bbWeight=0, gcVars=00000000000000000000000000400000 {V1
; gcrRegs -[rdi]
; gcr arg pop 0
;; size=27 bbWeight=0 PerfScore 0.00
-G_M50704_IG119: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M50704_IG120: ; bbWeight=0, funclet epilog, nogc, extend
+G_M50704_IG119: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
@@ -1480,7 +1475,7 @@ G_M50704_IG120: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2545, prolog size 57, PerfScore 1685.29, instruction count 663, allocated bytes for code 2545 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2539, prolog size 57, PerfScore 1685.29, instruction count 660, allocated bytes for code 2539 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Cfi Info:
@@ -1517,4 +1512,4 @@ Cfi Info:
CodeOffset: 0x0B Op: AdjustCfaOffset Offset:0x8
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG83..G_M50704_IG108) handled by [G_M50704_IG117..END) (fault)
+EH#0: try [G_M50704_IG83..G_M50704_IG108) handled by [G_M50704_IG116..END) (fault)
Details
#### Improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|26|
26|
0|
0|
-452|
+0|
|benchmarks.run_pgo.linux.x64.checked.mch|254|
164|
3|
87|
-5,205|
+53|
|benchmarks.run_tiered.linux.x64.checked.mch|15|
11|
4|
0|
-289|
+28|
|coreclr_tests.run.linux.x64.checked.mch|449|
250|
14|
185|
-6,322|
+71|
|libraries.crossgen2.linux.x64.checked.mch|56|
50|
2|
4|
-1,634|
+24|
|libraries.pmi.linux.x64.checked.mch|205|
193|
6|
6|
-3,355|
+86|
|libraries_tests.run.linux.x64.Release.mch|1,284|
1,111|
31|
142|
-29,030|
+592|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|250|
237|
6|
7|
-3,759|
+42|
|realworld.run.linux.x64.checked.mch|58|
57|
0|
1|
-1,056|
+0|
|smoke_tests.nativeaot.linux.x64.checked.mch|12|
12|
0|
0|
-195|
+0|
||2,609|
2,111|
66|
432|
-51,297|
+896|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|36,217|3,549|32,668|0 (0.00%)|0 (0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|160,323|63,207|97,116|4 (0.00%)|4 (0.00%)|
|benchmarks.run_tiered.linux.x64.checked.mch|65,385|50,236|15,149|1 (0.00%)|1 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|599,010|355,942|243,068|3 (0.00%)|3 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|234,329|15|234,314|0 (0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|296,931|6|296,925|0 (0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|759,766|496,184|263,582|0 (0.00%)|0 (0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|305,443|21,912|283,531|0 (0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|33,083|9|33,074|0 (0.00%)|0 (0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|27,414|10|27,404|0 (0.00%)|0 (0.00%)|
||2,517,901|991,070|1,526,831|8 (0.00%)|8 (0.00%)|
---
#### 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: 14336870 (overridden on cmd)
Total bytes of diff: 14336418 (overridden on cmd)
Total bytes of delta: -452 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file improvements (bytes):
-51 : 21808.dasm (-0.88 % of base)
-34 : 14177.dasm (-0.28 % of base)
-31 : 27291.dasm (-23.31 % of base)
-24 : 1561.dasm (-8.42 % of base)
-24 : 1543.dasm (-8.42 % of base)
-24 : 29974.dasm (-2.80 % of base)
-24 : 29977.dasm (-4.43 % of base)
-23 : 17057.dasm (-0.73 % of base)
-23 : 7886.dasm (-3.81 % of base)
-20 : 8095.dasm (-1.46 % of base)
-19 : 29182.dasm (-6.33 % of base)
-16 : 15516.dasm (-3.69 % of base)
-16 : 13642.dasm (-3.08 % of base)
-15 : 7012.dasm (-3.19 % of base)
-13 : 17071.dasm (-0.79 % of base)
-11 : 12399.dasm (-3.09 % of base)
-11 : 5821.dasm (-4.55 % of base)
-10 : 21888.dasm (-0.68 % of base)
-10 : 8492.dasm (-1.20 % of base)
-8 : 10564.dasm (-2.12 % of base)
26 total files with Code Size differences (26 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-51 (-0.88 % of base) : 21808.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-34 (-0.28 % of base) : 14177.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-31 (-23.31 % of base) : 27291.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-8.42 % of base) : 1561.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-2.80 % of base) : 29974.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 1543.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-4.43 % of base) : 29977.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-23 (-3.81 % of base) : 7886.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-23 (-0.73 % of base) : 17057.dasm - System.Formats.Tar.TarHeader+d__52:MoveNext():this (FullOpts)
-20 (-1.46 % of base) : 8095.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-19 (-6.33 % of base) : 29182.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-3.08 % of base) : 13642.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-16 (-3.69 % of base) : 15516.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-15 (-3.19 % of base) : 7012.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-13 (-0.79 % of base) : 17071.dasm - System.Formats.Tar.TarReader+d__8:MoveNext():this (FullOpts)
-11 (-3.09 % of base) : 12399.dasm - BenchmarkDotNet.Portability.Cpu.HardwareIntrinsics+<g__GetCurrentProcessInstructionSets|2_0>d:MoveNext():ubyte:this (FullOpts)
-11 (-4.55 % of base) : 5821.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-10 (-0.68 % of base) : 21888.dasm - Microsoft.CodeAnalysis.CSharp.Binder:g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-10 (-1.20 % of base) : 8492.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-8 (-0.22 % of base) : 17053.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
Top method improvements (percentages):
-31 (-23.31 % of base) : 27291.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-8.42 % of base) : 1561.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 1543.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-19 (-6.33 % of base) : 29182.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-7 (-5.74 % of base) : 16879.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-11 (-4.55 % of base) : 5821.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-24 (-4.43 % of base) : 29977.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-23 (-3.81 % of base) : 7886.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-16 (-3.69 % of base) : 15516.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-15 (-3.19 % of base) : 7012.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-11 (-3.09 % of base) : 12399.dasm - BenchmarkDotNet.Portability.Cpu.HardwareIntrinsics+<g__GetCurrentProcessInstructionSets|2_0>d:MoveNext():ubyte:this (FullOpts)
-16 (-3.08 % of base) : 13642.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-7 (-2.99 % of base) : 21242.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-24 (-2.80 % of base) : 29974.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-8 (-2.12 % of base) : 10564.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
-20 (-1.46 % of base) : 8095.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-1.38 % of base) : 16642.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-10 (-1.20 % of base) : 8492.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-7 (-1.12 % of base) : 16892.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
-51 (-0.88 % of base) : 21808.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
26 total methods with Code Size differences (26 improved, 0 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: 71576886 (overridden on cmd)
Total bytes of diff: 71571734 (overridden on cmd)
Total bytes of delta: -5152 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
43 : 17387.dasm (27.74 % of base)
7 : 109215.dasm (0.20 % of base)
3 : 159091.dasm (0.06 % of base)
Top file improvements (bytes):
-71 : 151604.dasm (-3.75 % of base)
-67 : 109579.dasm (-3.56 % of base)
-67 : 133471.dasm (-3.56 % of base)
-67 : 141074.dasm (-3.56 % of base)
-67 : 45003.dasm (-3.56 % of base)
-67 : 64414.dasm (-3.56 % of base)
-67 : 112306.dasm (-3.56 % of base)
-67 : 115086.dasm (-3.56 % of base)
-67 : 128538.dasm (-3.56 % of base)
-67 : 133170.dasm (-3.56 % of base)
-67 : 159434.dasm (-3.56 % of base)
-67 : 26939.dasm (-3.56 % of base)
-67 : 51367.dasm (-3.56 % of base)
-67 : 61923.dasm (-3.56 % of base)
-67 : 68513.dasm (-3.56 % of base)
-67 : 123507.dasm (-3.56 % of base)
-67 : 30995.dasm (-3.56 % of base)
-67 : 40023.dasm (-3.56 % of base)
-67 : 79841.dasm (-3.56 % of base)
-67 : 83854.dasm (-3.56 % of base)
54 total files with Code Size differences (51 improved, 3 regressed), 32 unchanged.
Top method regressions (bytes):
43 (27.74 % of base) : 17387.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
7 (0.20 % of base) : 109215.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.IntStruct]:IntroSort(System.Span`1[System.Collections.IntStruct],int,System.Comparison`1[System.Collections.IntStruct]) (Tier1)
3 (0.06 % of base) : 159091.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:IntroSort(System.Span`1[System.Collections.BigStruct],int,System.Comparison`1[System.Collections.BigStruct]) (Tier1)
Top method improvements (bytes):
-71 (-3.75 % of base) : 151604.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 109579.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 133471.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 141074.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 45003.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 64414.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 112306.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 115086.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 128538.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 133170.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 159434.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 26939.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 51367.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 61923.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 68513.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 123507.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 30995.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 40023.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 79841.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.56 % of base) : 83854.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
Top method regressions (percentages):
43 (27.74 % of base) : 17387.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
7 (0.20 % of base) : 109215.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.IntStruct]:IntroSort(System.Span`1[System.Collections.IntStruct],int,System.Comparison`1[System.Collections.IntStruct]) (Tier1)
3 (0.06 % of base) : 159091.dasm - System.Collections.Generic.ArraySortHelper`1[System.Collections.BigStruct]:IntroSort(System.Span`1[System.Collections.BigStruct],int,System.Comparison`1[System.Collections.BigStruct]) (Tier1)
Top method improvements (percentages):
-35 (-24.65 % of base) : 153541.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-35 (-24.65 % of base) : 157432.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-23 (-14.74 % of base) : 153564.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-23 (-14.74 % of base) : 157443.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-8 (-12.90 % of base) : 98128.dasm - System.Reflection.PortableExecutable.ManagedTextSection:get_SizeOfImportTable():int:this (Tier1)
-27 (-9.38 % of base) : 61302.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-27 (-9.38 % of base) : 61390.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-41 (-9.05 % of base) : 8686.dasm - BenchmarksGame.KNucleotide_9+<>c__DisplayClass13_0:b__4(System.Threading.Tasks.Task`1[System.Collections.Generic.Dictionary`2[long,BenchmarksGame.Wrapper]][]):System.String:this (Tier1-OSR)
-38 (-8.84 % of base) : 113892.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-23 (-8.30 % of base) : 150556.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.30 % of base) : 73263.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.30 % of base) : 79256.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.27 % of base) : 34409.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.27 % of base) : 69682.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.27 % of base) : 60863.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.27 % of base) : 106348.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.27 % of base) : 110352.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.10 % of base) : 71909.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-8.07 % of base) : 115826.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-23 (-7.99 % of base) : 105077.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
```
--------------------------------------------------------------------------------
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: 21435874 (overridden on cmd)
Total bytes of diff: 21435613 (overridden on cmd)
Total bytes of delta: -261 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
7 : 55015.dasm (1.84 % of base)
7 : 52449.dasm (1.84 % of base)
7 : 52774.dasm (1.84 % of base)
7 : 56536.dasm (1.84 % of base)
Top file improvements (bytes):
-62 : 53068.dasm (-7.11 % of base)
-51 : 52167.dasm (-0.88 % of base)
-36 : 59046.dasm (-5.76 % of base)
-36 : 54293.dasm (-8.51 % of base)
-34 : 30969.dasm (-0.28 % of base)
-24 : 33314.dasm (-8.42 % of base)
-24 : 33436.dasm (-8.42 % of base)
-8 : 13978.dasm (-0.62 % of base)
-8 : 53116.dasm (-0.23 % of base)
-3 : 34400.dasm (-2.16 % of base)
-3 : 15612.dasm (-1.96 % of base)
15 total files with Code Size differences (11 improved, 4 regressed), 0 unchanged.
Top method regressions (bytes):
7 (1.84 % of base) : 52774.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 52449.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 56536.dasm - LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 55015.dasm - LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (bytes):
-62 (-7.11 % of base) : 53068.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-51 (-0.88 % of base) : 52167.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
-36 (-8.51 % of base) : 54293.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-36 (-5.76 % of base) : 59046.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-34 (-0.28 % of base) : 30969.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-24 (-8.42 % of base) : 33314.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-8.42 % of base) : 33436.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-8 (-0.23 % of base) : 53116.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (Tier1)
-8 (-0.62 % of base) : 13978.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
-3 (-1.96 % of base) : 15612.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
-3 (-2.16 % of base) : 34400.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
Top method regressions (percentages):
7 (1.84 % of base) : 52774.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 52449.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 56536.dasm - LinqBenchmarks:Where01LinqMethodX():ubyte:this (Tier1-OSR)
7 (1.84 % of base) : 55015.dasm - LinqBenchmarks:Where01LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (percentages):
-36 (-8.51 % of base) : 54293.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-24 (-8.42 % of base) : 33314.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-8.42 % of base) : 33436.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-62 (-7.11 % of base) : 53068.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-36 (-5.76 % of base) : 59046.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-3 (-2.16 % of base) : 34400.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
-3 (-1.96 % of base) : 15612.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
-51 (-0.88 % of base) : 52167.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
-8 (-0.62 % of base) : 13978.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:FindChainViaAia(byref):Interop+Crypto+X509VerifyStatusCode:this (Tier0-FullOpts)
-34 (-0.28 % of base) : 30969.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-8 (-0.23 % of base) : 53116.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (Tier1)
15 total methods with Code Size differences (11 improved, 4 regressed).
```
--------------------------------------------------------------------------------
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: 403711765 (overridden on cmd)
Total bytes of diff: 403705514 (overridden on cmd)
Total bytes of delta: -6251 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
8 : 358359.dasm (0.12 % of base)
8 : 387644.dasm (0.12 % of base)
8 : 397995.dasm (0.12 % of base)
7 : 412843.dasm (4.19 % of base)
7 : 412919.dasm (4.05 % of base)
7 : 413260.dasm (4.19 % of base)
7 : 413336.dasm (4.05 % of base)
4 : 526529.dasm (3.81 % of base)
4 : 532889.dasm (3.81 % of base)
3 : 394073.dasm (0.41 % of base)
3 : 399769.dasm (0.41 % of base)
2 : 532920.dasm (2.22 % of base)
2 : 394318.dasm (0.27 % of base)
1 : 538533.dasm (2.94 % of base)
Top file improvements (bytes):
-1058 : 31480.dasm (-51.53 % of base)
-201 : 544686.dasm (-1.96 % of base)
-81 : 397091.dasm (-1.44 % of base)
-62 : 534296.dasm (-1.50 % of base)
-62 : 529414.dasm (-1.50 % of base)
-57 : 598638.dasm (-2.40 % of base)
-54 : 399493.dasm (-2.35 % of base)
-51 : 504863.dasm (-0.88 % of base)
-49 : 596534.dasm (-9.59 % of base)
-40 : 399389.dasm (-2.07 % of base)
-39 : 392740.dasm (-2.14 % of base)
-38 : 393146.dasm (-1.69 % of base)
-37 : 532942.dasm (-69.81 % of base)
-36 : 392708.dasm (-1.62 % of base)
-36 : 529836.dasm (-27.27 % of base)
-36 : 399378.dasm (-1.60 % of base)
-35 : 4925.dasm (-17.33 % of base)
-35 : 385011.dasm (-0.54 % of base)
-35 : 387226.dasm (-0.54 % of base)
-35 : 415407.dasm (-2.55 % of base)
50 total files with Code Size differences (36 improved, 14 regressed), 26 unchanged.
Top method regressions (bytes):
8 (0.12 % of base) : 358359.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
8 (0.12 % of base) : 387644.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
8 (0.12 % of base) : 397995.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
7 (4.19 % of base) : 412843.dasm - testout1:Sub_Funclet_106():int (FullOpts)
7 (4.19 % of base) : 413260.dasm - testout1:Sub_Funclet_106():int (FullOpts)
7 (4.05 % of base) : 412919.dasm - testout1:Sub_Funclet_183():int (FullOpts)
7 (4.05 % of base) : 413336.dasm - testout1:Sub_Funclet_183():int (FullOpts)
4 (3.81 % of base) : 526529.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
4 (3.81 % of base) : 532889.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
3 (0.41 % of base) : 394073.dasm - Internal.NativeFormat.NativeWriter:Save(System.IO.Stream):this (Tier1-OSR)
3 (0.41 % of base) : 399769.dasm - Internal.NativeFormat.NativeWriter:Save(System.IO.Stream):this (Tier1-OSR)
2 (0.27 % of base) : 394318.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.MethodIsGenericMapNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
2 (2.22 % of base) : 532920.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
1 (2.94 % of base) : 538533.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-1058 (-51.53 % of base) : 31480.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-201 (-1.96 % of base) : 544686.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
-81 (-1.44 % of base) : 397091.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-62 (-1.50 % of base) : 534296.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-62 (-1.50 % of base) : 529414.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-57 (-2.40 % of base) : 598638.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+d__2:MoveNext():this (FullOpts)
-54 (-2.35 % of base) : 399493.dasm - ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2[ILCompiler.DependencyAnalysisFramework.NoLogStrategy`1[System.__Canon],System.__Canon]:ProcessMarkStack():this (Tier1)
-51 (-0.88 % of base) : 504863.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-49 (-9.59 % of base) : 596534.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-40 (-2.07 % of base) : 399389.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-39 (-2.14 % of base) : 392740.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-38 (-1.69 % of base) : 393146.dasm - ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2[ILCompiler.DependencyAnalysisFramework.NoLogStrategy`1[System.__Canon],System.__Canon]:ProcessMarkStack():this (Tier1)
-37 (-69.81 % of base) : 532942.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-36 (-1.62 % of base) : 392708.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-36 (-1.60 % of base) : 399378.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-36 (-27.27 % of base) : 529836.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-35 (-0.54 % of base) : 385011.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
-35 (-0.54 % of base) : 387226.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
-35 (-17.33 % of base) : 4925.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
-35 (-2.55 % of base) : 415407.dasm - testout1:Func_0_4_4():ushort (FullOpts)
Top method regressions (percentages):
7 (4.19 % of base) : 412843.dasm - testout1:Sub_Funclet_106():int (FullOpts)
7 (4.19 % of base) : 413260.dasm - testout1:Sub_Funclet_106():int (FullOpts)
7 (4.05 % of base) : 412919.dasm - testout1:Sub_Funclet_183():int (FullOpts)
7 (4.05 % of base) : 413336.dasm - testout1:Sub_Funclet_183():int (FullOpts)
4 (3.81 % of base) : 526529.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
4 (3.81 % of base) : 532889.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
1 (2.94 % of base) : 538533.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
2 (2.22 % of base) : 532920.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
3 (0.41 % of base) : 394073.dasm - Internal.NativeFormat.NativeWriter:Save(System.IO.Stream):this (Tier1-OSR)
3 (0.41 % of base) : 399769.dasm - Internal.NativeFormat.NativeWriter:Save(System.IO.Stream):this (Tier1-OSR)
2 (0.27 % of base) : 394318.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.MethodIsGenericMapNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
8 (0.12 % of base) : 358359.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
8 (0.12 % of base) : 387644.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
8 (0.12 % of base) : 397995.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
Top method improvements (percentages):
-37 (-69.81 % of base) : 532942.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-29 (-64.44 % of base) : 526531.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-23 (-58.97 % of base) : 532890.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-1058 (-51.53 % of base) : 31480.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-33 (-31.43 % of base) : 415843.dasm - filter1:f4() (FullOpts)
-33 (-27.97 % of base) : 544042.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-26 (-27.96 % of base) : 526572.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-36 (-27.27 % of base) : 529836.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-11 (-22.45 % of base) : 417152.dasm - try1:f4() (FullOpts)
-35 (-17.33 % of base) : 4925.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
-17 (-13.39 % of base) : 530970.dasm - BoxTest_enum_il.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
-20 (-12.74 % of base) : 529092.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
-13 (-10.57 % of base) : 526569.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-18 (-10.40 % of base) : 412954.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-18 (-10.40 % of base) : 413371.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-20 (-10.00 % of base) : 413871.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-20 (-10.00 % of base) : 414287.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-19 (-9.74 % of base) : 414175.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-19 (-9.74 % of base) : 414249.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-49 (-9.59 % of base) : 596534.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
```
--------------------------------------------------------------------------------
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: 38727287 (overridden on cmd)
Total bytes of diff: 38725677 (overridden on cmd)
Total bytes of delta: -1610 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
12 : 190380.dasm (2.15 % of base)
12 : 190382.dasm (2.15 % of base)
Top file improvements (bytes):
-659 : 194417.dasm (-92.30 % of base)
-98 : 200572.dasm (-0.39 % of base)
-72 : 31789.dasm (-4.99 % of base)
-72 : 36375.dasm (-17.48 % of base)
-51 : 40339.dasm (-1.43 % of base)
-41 : 4597.dasm (-3.53 % of base)
-39 : 228633.dasm (-2.43 % of base)
-37 : 69050.dasm (-10.36 % of base)
-35 : 15713.dasm (-1.63 % of base)
-34 : 201353.dasm (-3.86 % of base)
-30 : 229726.dasm (-18.87 % of base)
-30 : 41404.dasm (-1.83 % of base)
-25 : 42271.dasm (-5.49 % of base)
-24 : 174768.dasm (-1.90 % of base)
-20 : 229563.dasm (-14.18 % of base)
-19 : 109811.dasm (-7.48 % of base)
-19 : 228794.dasm (-4.11 % of base)
-19 : 41405.dasm (-0.66 % of base)
-18 : 96111.dasm (-9.28 % of base)
-17 : 198533.dasm (-0.62 % of base)
47 total files with Code Size differences (45 improved, 2 regressed), 4 unchanged.
Top method regressions (bytes):
12 (2.15 % of base) : 190380.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.15 % of base) : 190382.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
Top method improvements (bytes):
-659 (-92.30 % of base) : 194417.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-98 (-0.39 % of base) : 200572.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-72 (-17.48 % of base) : 36375.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-72 (-4.99 % of base) : 31789.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-51 (-1.43 % of base) : 40339.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-41 (-3.53 % of base) : 4597.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-39 (-2.43 % of base) : 228633.dasm - System.Formats.Tar.TarHeader+d__52:MoveNext():this (FullOpts)
-37 (-10.36 % of base) : 69050.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-35 (-1.63 % of base) : 15713.dasm - System.IO.BufferedStream+d__68:MoveNext():this (FullOpts)
-34 (-3.86 % of base) : 201353.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-30 (-1.83 % of base) : 41404.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-30 (-18.87 % of base) : 229726.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-25 (-5.49 % of base) : 42271.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-1.90 % of base) : 174768.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-20 (-14.18 % of base) : 229563.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-19 (-0.66 % of base) : 41405.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckRefEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-19 (-7.48 % of base) : 109811.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-19 (-4.11 % of base) : 228794.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-18 (-9.28 % of base) : 96111.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-17 (-12.32 % of base) : 229652.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
Top method regressions (percentages):
12 (2.15 % of base) : 190380.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.15 % of base) : 190382.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
Top method improvements (percentages):
-659 (-92.30 % of base) : 194417.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-30 (-18.87 % of base) : 229726.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-72 (-17.48 % of base) : 36375.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-20 (-14.18 % of base) : 229563.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-17 (-12.32 % of base) : 229652.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-37 (-10.36 % of base) : 69050.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-9.64 % of base) : 70339.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-18 (-9.28 % of base) : 96111.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-13 (-7.51 % of base) : 222424.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
-19 (-7.48 % of base) : 109811.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-9 (-6.92 % of base) : 229707.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
-25 (-5.49 % of base) : 42271.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-11 (-5.47 % of base) : 142217.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
-11 (-5.09 % of base) : 39811.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-7 (-5.00 % of base) : 201541.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
-72 (-4.99 % of base) : 31789.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-19 (-4.11 % of base) : 228794.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-34 (-3.86 % of base) : 201353.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-41 (-3.53 % of base) : 4597.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-7 (-3.37 % of base) : 201027.dasm - Microsoft.VisualBasic.CompilerServices.LateBinding:VerifyObjRefPresentForInstanceCall(System.Object,System.Reflection.MemberInfo) (FullOpts)
```
--------------------------------------------------------------------------------
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: 60419954 (overridden on cmd)
Total bytes of diff: 60416685 (overridden on cmd)
Total bytes of delta: -3269 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
36 : 124120.dasm (1.32 % of base)
15 : 106889.dasm (1.79 % of base)
12 : 136682.dasm (2.12 % of base)
12 : 136684.dasm (2.12 % of base)
10 : 276824.dasm (0.95 % of base)
1 : 54210.dasm (5.56 % of base)
Top file improvements (bytes):
-659 : 147438.dasm (-92.30 % of base)
-106 : 149346.dasm (-0.38 % of base)
-81 : 19565.dasm (-5.46 % of base)
-58 : 93441.dasm (-1.51 % of base)
-51 : 63818.dasm (-0.83 % of base)
-50 : 239725.dasm (-6.08 % of base)
-49 : 239719.dasm (-9.59 % of base)
-44 : 162930.dasm (-1.17 % of base)
-44 : 149896.dasm (-5.10 % of base)
-41 : 20662.dasm (-3.24 % of base)
-41 : 265944.dasm (-22.04 % of base)
-40 : 163355.dasm (-3.10 % of base)
-40 : 181056.dasm (-3.10 % of base)
-37 : 96979.dasm (-10.82 % of base)
-33 : 259638.dasm (-7.57 % of base)
-31 : 64893.dasm (-1.72 % of base)
-28 : 207390.dasm (-1.97 % of base)
-26 : 259637.dasm (-6.15 % of base)
-25 : 106630.dasm (-0.27 % of base)
-25 : 65810.dasm (-6.05 % of base)
55 total files with Code Size differences (49 improved, 6 regressed), 6 unchanged.
Top method regressions (bytes):
36 (1.32 % of base) : 124120.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
15 (1.79 % of base) : 106889.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertyAccessorSymbol:GetReturnType(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
12 (2.12 % of base) : 136682.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.12 % of base) : 136684.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
10 (0.95 % of base) : 276824.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
1 (5.56 % of base) : 54210.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
Top method improvements (bytes):
-659 (-92.30 % of base) : 147438.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-106 (-0.38 % of base) : 149346.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-81 (-5.46 % of base) : 19565.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-58 (-1.51 % of base) : 93441.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-51 (-0.83 % of base) : 63818.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-50 (-6.08 % of base) : 239725.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:Scavenge():int:this (FullOpts)
-49 (-9.59 % of base) : 239719.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-44 (-1.17 % of base) : 162930.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-44 (-5.10 % of base) : 149896.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-41 (-22.04 % of base) : 265944.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-41 (-3.24 % of base) : 20662.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-40 (-3.10 % of base) : 163355.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-40 (-3.10 % of base) : 181056.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-37 (-10.82 % of base) : 96979.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-33 (-7.57 % of base) : 259638.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-31 (-1.72 % of base) : 64893.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-28 (-1.97 % of base) : 207390.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-26 (-6.15 % of base) : 259637.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-25 (-6.05 % of base) : 65810.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-25 (-0.27 % of base) : 106630.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
Top method regressions (percentages):
1 (5.56 % of base) : 54210.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
12 (2.12 % of base) : 136682.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.12 % of base) : 136684.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
15 (1.79 % of base) : 106889.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertyAccessorSymbol:GetReturnType(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceModuleSymbol,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
36 (1.32 % of base) : 124120.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
10 (0.95 % of base) : 276824.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
Top method improvements (percentages):
-659 (-92.30 % of base) : 147438.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-41 (-22.04 % of base) : 265944.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-4 (-20.00 % of base) : 264214.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
-12 (-16.44 % of base) : 295375.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
-12 (-15.79 % of base) : 295376.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-12 (-13.33 % of base) : 295377.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-20 (-12.74 % of base) : 265963.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-7 (-11.67 % of base) : 29025.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-11.43 % of base) : 295374.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
-17 (-11.04 % of base) : 265940.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-37 (-10.82 % of base) : 96979.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-6 (-10.71 % of base) : 29037.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-49 (-9.59 % of base) : 239719.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-33 (-7.57 % of base) : 259638.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-19 (-7.39 % of base) : 187002.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-19 (-7.39 % of base) : 169610.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-9 (-6.16 % of base) : 265958.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
-26 (-6.15 % of base) : 259637.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-50 (-6.08 % of base) : 239725.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:Scavenge():int:this (FullOpts)
-25 (-6.05 % of base) : 65810.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):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: 337103194 (overridden on cmd)
Total bytes of diff: 337074756 (overridden on cmd)
Total bytes of delta: -28438 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
112 : 696613.dasm (1.10 % of base)
94 : 701058.dasm (3.34 % of base)
62 : 708290.dasm (4.26 % of base)
37 : 192506.dasm (2.60 % of base)
33 : 588864.dasm (0.51 % of base)
28 : 697132.dasm (2.08 % of base)
25 : 697166.dasm (1.75 % of base)
21 : 222488.dasm (1.34 % of base)
18 : 471663.dasm (6.45 % of base)
17 : 706311.dasm (5.69 % of base)
17 : 551488.dasm (1.12 % of base)
14 : 215306.dasm (0.77 % of base)
14 : 215241.dasm (1.07 % of base)
12 : 218479.dasm (0.98 % of base)
11 : 697130.dasm (1.99 % of base)
10 : 537209.dasm (7.87 % of base)
10 : 90103.dasm (0.39 % of base)
10 : 214903.dasm (0.57 % of base)
9 : 57613.dasm (0.21 % of base)
8 : 709577.dasm (0.56 % of base)
Top file improvements (bytes):
-387 : 78026.dasm (-3.65 % of base)
-384 : 39301.dasm (-3.77 % of base)
-377 : 20719.dasm (-3.92 % of base)
-347 : 76106.dasm (-3.32 % of base)
-332 : 76818.dasm (-4.79 % of base)
-316 : 70804.dasm (-3.11 % of base)
-237 : 77391.dasm (-3.40 % of base)
-220 : 28846.dasm (-3.21 % of base)
-200 : 78049.dasm (-2.84 % of base)
-171 : 78276.dasm (-2.51 % of base)
-129 : 669550.dasm (-13.65 % of base)
-127 : 88710.dasm (-0.68 % of base)
-119 : 494276.dasm (-0.71 % of base)
-119 : 494277.dasm (-0.71 % of base)
-119 : 494278.dasm (-0.71 % of base)
-119 : 494275.dasm (-0.70 % of base)
-118 : 63713.dasm (-1.22 % of base)
-100 : 684069.dasm (-2.64 % of base)
-97 : 713825.dasm (-4.62 % of base)
-93 : 54302.dasm (-6.46 % of base)
69 total files with Code Size differences (45 improved, 24 regressed), 20 unchanged.
Top method regressions (bytes):
112 (1.10 % of base) : 696613.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodTableRows(int[]):this (Tier1-OSR)
94 (3.34 % of base) : 701058.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindSubcaptures[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong]](System.ReadOnlySpan`1[ushort],int,int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+Registers[ulong]:this (Tier1-OSR)
62 (4.26 % of base) : 708290.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
37 (2.60 % of base) : 192506.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol:Microsoft.Cci.IReference.Dispatch(Microsoft.Cci.MetadataVisitor):this (Tier1)
33 (0.51 % of base) : 588864.dasm - System.Net.Http.X509ResourceClient+<>c__DisplayClass15_0+<b__0>d:MoveNext():this (Tier1)
28 (2.08 % of base) : 697132.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalScopeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
25 (1.75 % of base) : 697166.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier1-OSR)
21 (1.34 % of base) : 222488.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
18 (6.45 % of base) : 471663.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
17 (5.69 % of base) : 706311.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
17 (1.12 % of base) : 551488.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
14 (1.07 % of base) : 215241.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
14 (0.77 % of base) : 215306.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
12 (0.98 % of base) : 218479.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
11 (1.99 % of base) : 697130.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDebugInformationTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
10 (0.39 % of base) : 90103.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
10 (0.57 % of base) : 214903.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestAdd(int,int,int,int) (Tier1-OSR)
10 (7.87 % of base) : 537209.dasm - System.Xml.XmlBufferReader:ReadRawBytes[long]():long:this (Tier1)
9 (0.21 % of base) : 57613.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
8 (0.56 % of base) : 709577.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
Top method improvements (bytes):
-387 (-3.65 % of base) : 78026.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-384 (-3.77 % of base) : 39301.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-377 (-3.92 % of base) : 20719.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-347 (-3.32 % of base) : 76106.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-332 (-4.79 % of base) : 76818.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-316 (-3.11 % of base) : 70804.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-237 (-3.40 % of base) : 77391.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-220 (-3.21 % of base) : 28846.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-200 (-2.84 % of base) : 78049.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-171 (-2.51 % of base) : 78276.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-129 (-13.65 % of base) : 669550.dasm - System.Text.Json.JsonPropertyDictionary`1[System.__Canon]:SetValue(System.String,System.__Canon,byref):System.__Canon:this (Tier1)
-127 (-0.68 % of base) : 88710.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-119 (-0.70 % of base) : 494275.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier1)
-119 (-0.71 % of base) : 494276.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (Tier1)
-119 (-0.71 % of base) : 494277.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier1)
-119 (-0.71 % of base) : 494278.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier1)
-118 (-1.22 % of base) : 63713.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-100 (-2.64 % of base) : 684069.dasm - System.Text.Json.Serialization.Converters.IAsyncEnumerableOfTConverter`2[System.__Canon,int]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
-97 (-4.62 % of base) : 713825.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeIsPatternExpression(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundPattern,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-93 (-6.46 % of base) : 54302.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:GetAttributesBag(byref,ubyte):Microsoft.CodeAnalysis.CustomAttributesBag`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (Tier1)
Top method regressions (percentages):
10 (7.87 % of base) : 537209.dasm - System.Xml.XmlBufferReader:ReadRawBytes[long]():long:this (Tier1)
18 (6.45 % of base) : 471663.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
17 (5.69 % of base) : 706311.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
62 (4.26 % of base) : 708290.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
94 (3.34 % of base) : 701058.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindSubcaptures[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong]](System.ReadOnlySpan`1[ushort],int,int,System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+PerThreadData[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+Registers[ulong]:this (Tier1-OSR)
37 (2.60 % of base) : 192506.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol:Microsoft.Cci.IReference.Dispatch(Microsoft.Cci.MetadataVisitor):this (Tier1)
28 (2.08 % of base) : 697132.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalScopeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
11 (1.99 % of base) : 697130.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDebugInformationTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
25 (1.75 % of base) : 697166.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier1-OSR)
2 (1.38 % of base) : 522880.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[float](float,float,System.String) (Instrumented Tier1)
21 (1.34 % of base) : 222488.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
17 (1.12 % of base) : 551488.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
112 (1.10 % of base) : 696613.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodTableRows(int[]):this (Tier1-OSR)
14 (1.07 % of base) : 215241.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
12 (0.98 % of base) : 218479.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
3 (0.87 % of base) : 294042.dasm - System.IO.Stream:ReadAtLeastCore(System.Span`1[ubyte],int,ubyte):int:this (Tier1)
2 (0.87 % of base) : 217188.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
14 (0.77 % of base) : 215306.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
1 (0.68 % of base) : 229400.dasm - System.Collections.Tests.ICollection_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:ICollection_Generic_Contains_DefaultValueOnCollectionNotContainingDefaultValue(int):this (Tier1)
10 (0.57 % of base) : 214903.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestAdd(int,int,int,int) (Tier1-OSR)
Top method improvements (percentages):
-51 (-47.22 % of base) : 659624.dasm - System.Text.Json.JsonSerializerOptions:ConfigureForJsonSerializer():this (Tier1)
-47 (-35.07 % of base) : 56988.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
-47 (-34.56 % of base) : 90559.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-47 (-34.56 % of base) : 64794.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-47 (-34.56 % of base) : 729603.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-47 (-34.56 % of base) : 187868.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-35 (-27.13 % of base) : 243136.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-6 (-26.09 % of base) : 487321.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-35 (-24.65 % of base) : 691686.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-33 (-23.24 % of base) : 700362.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-38 (-21.23 % of base) : 691498.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this (Tier1)
-26 (-20.31 % of base) : 237814.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 456602.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 82229.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 105595.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 654289.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 352018.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 687515.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 281083.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-26 (-20.31 % of base) : 44960.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
```
--------------------------------------------------------------------------------
libraries_tests_no_tiered_compilation.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: 132558776 (overridden on cmd)
Total bytes of diff: 132555059 (overridden on cmd)
Total bytes of delta: -3717 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file regressions (bytes):
12 : 176801.dasm (2.12 % of base)
12 : 176803.dasm (2.12 % of base)
10 : 101730.dasm (0.98 % of base)
4 : 170959.dasm (0.17 % of base)
3 : 182749.dasm (0.57 % of base)
1 : 32631.dasm (0.36 % of base)
Top file improvements (bytes):
-102 : 59177.dasm (-0.36 % of base)
-90 : 19257.dasm (-2.19 % of base)
-81 : 116423.dasm (-5.61 % of base)
-66 : 211824.dasm (-2.05 % of base)
-66 : 212183.dasm (-2.05 % of base)
-62 : 211916.dasm (-1.94 % of base)
-62 : 212058.dasm (-1.94 % of base)
-51 : 7109.dasm (-0.88 % of base)
-44 : 5632.dasm (-1.22 % of base)
-44 : 59416.dasm (-5.33 % of base)
-41 : 150222.dasm (-22.04 % of base)
-41 : 94488.dasm (-3.25 % of base)
-37 : 13938.dasm (-3.44 % of base)
-37 : 56660.dasm (-10.82 % of base)
-37 : 7482.dasm (-3.52 % of base)
-36 : 164196.dasm (-1.15 % of base)
-34 : 78470.dasm (-9.66 % of base)
-33 : 164161.dasm (-1.72 % of base)
-31 : 11373.dasm (-1.65 % of base)
-30 : 270662.dasm (-1.68 % of base)
63 total files with Code Size differences (57 improved, 6 regressed), 7 unchanged.
Top method regressions (bytes):
12 (2.12 % of base) : 176801.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.12 % of base) : 176803.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
10 (0.98 % of base) : 101730.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
4 (0.17 % of base) : 170959.dasm - (dynamicClass):(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
3 (0.57 % of base) : 182749.dasm - System.Reflection.Metadata.Tests.BlobTests:EmptyWrites():this (FullOpts)
1 (0.36 % of base) : 32631.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
Top method improvements (bytes):
-102 (-0.36 % of base) : 59177.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-90 (-2.19 % of base) : 19257.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-81 (-5.61 % of base) : 116423.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-66 (-2.05 % of base) : 212183.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeNumberTest() (FullOpts)
-66 (-2.05 % of base) : 211824.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeTest() (FullOpts)
-62 (-1.94 % of base) : 211916.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
-62 (-1.94 % of base) : 212058.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
-51 (-0.88 % of base) : 7109.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-44 (-1.22 % of base) : 5632.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-44 (-5.33 % of base) : 59416.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-41 (-22.04 % of base) : 150222.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-41 (-3.25 % of base) : 94488.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-37 (-10.82 % of base) : 56660.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-37 (-3.44 % of base) : 13938.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-37 (-3.52 % of base) : 7482.dasm - Microsoft.Interop.ComInterfaceInfo:TryGetGuid(Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.InterfaceDeclarationSyntax,byref,byref):ubyte (FullOpts)
-36 (-1.15 % of base) : 164196.dasm - System.Collections.ObjectModel.Tests.KeyedCollectionTests`2[System.__Canon,System.__Canon]:Threshold(int,System.Collections.ObjectModel.Tests.Named`1[System.__Canon]):this (FullOpts)
-34 (-9.66 % of base) : 78470.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-33 (-1.72 % of base) : 164161.dasm - System.Collections.ObjectModel.Tests.KeyedCollectionTests`2[System.__Canon,System.__Canon]:ChangeItemKeySetKeyNonNullToNullChangeKeySomethingElse(int,System.Collections.ObjectModel.Tests.Named`1[System.__Canon]):this (FullOpts)
-31 (-1.65 % of base) : 11373.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-30 (-1.68 % of base) : 270662.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex430_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
Top method regressions (percentages):
12 (2.12 % of base) : 176801.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.12 % of base) : 176803.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
10 (0.98 % of base) : 101730.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts)
3 (0.57 % of base) : 182749.dasm - System.Reflection.Metadata.Tests.BlobTests:EmptyWrites():this (FullOpts)
1 (0.36 % of base) : 32631.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
4 (0.17 % of base) : 170959.dasm - (dynamicClass):(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
Top method improvements (percentages):
-26 (-26.00 % of base) : 43271.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-26 (-26.00 % of base) : 48962.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-26 (-26.00 % of base) : 5450.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-41 (-22.04 % of base) : 150222.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-12.74 % of base) : 150147.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-19 (-11.11 % of base) : 14958.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-17 (-11.04 % of base) : 150152.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-37 (-10.82 % of base) : 56660.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-19 (-10.61 % of base) : 9660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-19 (-9.90 % of base) : 267573.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-34 (-9.66 % of base) : 78470.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-24 (-8.42 % of base) : 20495.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 20480.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-19 (-7.69 % of base) : 44804.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-19 (-7.60 % of base) : 51808.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-19 (-7.39 % of base) : 12303.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
-19 (-7.04 % of base) : 15588.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-25 (-6.05 % of base) : 22954.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-23 (-5.87 % of base) : 44799.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:TryGetFirstTwoWorseResults(byref,byref):int:this (FullOpts)
-24 (-5.83 % of base) : 76456.dasm - System.Collections.Tests.List_Generic_Tests`1[System.__Canon]:Constructor_IEnumerable(int,int,int,int,int):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: 13175161 (overridden on cmd)
Total bytes of diff: 13174105 (overridden on cmd)
Total bytes of delta: -1056 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file improvements (bytes):
-118 : 4577.dasm (-30.73 % of base)
-81 : 5942.dasm (-5.61 % of base)
-58 : 22016.dasm (-1.49 % of base)
-51 : 19046.dasm (-0.88 % of base)
-37 : 26795.dasm (-10.82 % of base)
-33 : 12090.dasm (-1.64 % of base)
-32 : 9403.dasm (-1.64 % of base)
-31 : 24988.dasm (-1.72 % of base)
-28 : 22047.dasm (-1.78 % of base)
-26 : 1131.dasm (-3.51 % of base)
-26 : 13722.dasm (-1.49 % of base)
-25 : 11174.dasm (-24.04 % of base)
-25 : 24046.dasm (-6.05 % of base)
-24 : 14743.dasm (-8.42 % of base)
-24 : 14761.dasm (-8.42 % of base)
-22 : 5222.dasm (-5.57 % of base)
-22 : 7111.dasm (-1.29 % of base)
-19 : 21809.dasm (-1.31 % of base)
-19 : 24196.dasm (-9.90 % of base)
-19 : 24242.dasm (-11.11 % of base)
51 total files with Code Size differences (51 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-118 (-30.73 % of base) : 4577.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-81 (-5.61 % of base) : 5942.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-58 (-1.49 % of base) : 22016.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-51 (-0.88 % of base) : 19046.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-37 (-10.82 % of base) : 26795.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-33 (-1.64 % of base) : 12090.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-32 (-1.64 % of base) : 9403.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-31 (-1.72 % of base) : 24988.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-28 (-1.78 % of base) : 22047.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-26 (-3.51 % of base) : 1131.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-26 (-1.49 % of base) : 13722.dasm - Microsoft.ML.Data.EvaluatorBase`1[System.__Canon]:ProcessData(Microsoft.ML.IDataView,Microsoft.ML.Data.RoleMappedSchema,System.Func`2[int,ubyte],System.__Canon,System.__Canon[]):System.Collections.Generic.Dictionary`2[System.String,Microsoft.ML.IDataView]:this (FullOpts)
-25 (-24.04 % of base) : 11174.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-25 (-6.05 % of base) : 24046.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-8.42 % of base) : 14761.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 14743.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-22 (-1.29 % of base) : 7111.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadConstant(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+HasConstantTag]):FSharp.Compiler.AbstractIL.IL+ILFieldInit (FullOpts)
-22 (-5.57 % of base) : 5222.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-19 (-1.31 % of base) : 21809.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-19 (-11.11 % of base) : 24242.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-19 (-9.90 % of base) : 24196.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
Top method improvements (percentages):
-118 (-30.73 % of base) : 4577.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-25 (-24.04 % of base) : 11174.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-19 (-11.11 % of base) : 24242.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-37 (-10.82 % of base) : 26795.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-19 (-10.80 % of base) : 23030.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-19 (-9.90 % of base) : 24196.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 14761.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-8.42 % of base) : 14743.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-25 (-6.05 % of base) : 24046.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-81 (-5.61 % of base) : 5942.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-22 (-5.57 % of base) : 5222.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-11 (-4.55 % of base) : 14512.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-5 (-3.70 % of base) : 21555.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
-26 (-3.51 % of base) : 1131.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-18 (-3.25 % of base) : 11177.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-15 (-3.22 % of base) : 26731.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-11 (-3.09 % of base) : 11253.dasm - BenchmarkDotNet.Portability.Cpu.HardwareIntrinsics+<g__GetCurrentProcessInstructionSets|2_0>d:MoveNext():ubyte:this (FullOpts)
-5 (-3.07 % of base) : 21589.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
-7 (-2.99 % of base) : 20090.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-2.64 % of base) : 17789.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,uint]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,uint][],int):this (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: 4234681 (overridden on cmd)
Total bytes of diff: 4234486 (overridden on cmd)
Total bytes of delta: -195 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
Detail diffs
```
Top file improvements (bytes):
-59 : 7919.dasm (-3.18 % of base)
-29 : 15477.dasm (-1.72 % of base)
-20 : 4002.dasm (-4.73 % of base)
-15 : 16533.dasm (-0.91 % of base)
-13 : 5100.dasm (-3.58 % of base)
-10 : 17785.dasm (-0.35 % of base)
-10 : 25257.dasm (-0.35 % of base)
-10 : 5096.dasm (-2.62 % of base)
-10 : 22542.dasm (-0.35 % of base)
-7 : 603.dasm (-0.50 % of base)
-6 : 1775.dasm (-0.24 % of base)
-6 : 12784.dasm (-0.24 % of base)
12 total files with Code Size differences (12 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-59 (-3.18 % of base) : 7919.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-29 (-1.72 % of base) : 15477.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-20 (-4.73 % of base) : 4002.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-15 (-0.91 % of base) : 16533.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
-13 (-3.58 % of base) : 5100.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-10 (-2.62 % of base) : 5096.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-10 (-0.35 % of base) : 17785.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-10 (-0.35 % of base) : 25257.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-10 (-0.35 % of base) : 22542.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-7 (-0.50 % of base) : 603.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-6 (-0.24 % of base) : 1775.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-6 (-0.24 % of base) : 12784.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
Top method improvements (percentages):
-20 (-4.73 % of base) : 4002.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-13 (-3.58 % of base) : 5100.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-59 (-3.18 % of base) : 7919.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-10 (-2.62 % of base) : 5096.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-29 (-1.72 % of base) : 15477.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-15 (-0.91 % of base) : 16533.dasm - System.IO.KeyParser:TryParseTerminalInputSequence(ushort[],System.TerminalFormatStrings,byref,byref,int):ubyte (FullOpts)
-7 (-0.50 % of base) : 603.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-10 (-0.35 % of base) : 17785.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-10 (-0.35 % of base) : 25257.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-10 (-0.35 % of base) : 22542.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-6 (-0.24 % of base) : 1775.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-6 (-0.24 % of base) : 12784.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
12 total methods with Code Size differences (12 improved, 0 regressed).
```
--------------------------------------------------------------------------------
---
## osx arm64
Diffs are based on 2,270,861 contexts (932,669 MinOpts, 1,338,192 FullOpts).
MISSED contexts: 9 (0.00%)
Overall (-37,436 bytes)
|Collection|Base size (bytes)|Diff size (bytes)|
|---|--:|--:|
|benchmarks.run.osx.arm64.checked.mch|11,186,596|-480|
|benchmarks.run_pgo.osx.arm64.checked.mch|34,439,108|-4,156|
|benchmarks.run_tiered.osx.arm64.checked.mch|15,516,300|-228|
|coreclr_tests.run.osx.arm64.checked.mch|486,421,224|-5,532|
|libraries.crossgen2.osx.arm64.checked.mch|55,725,628|-1,660|
|libraries.pmi.osx.arm64.checked.mch|80,219,108|-3,432|
|libraries_tests.run.osx.arm64.Release.mch|324,579,084|-16,932|
|libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch|162,574,088|-3,744|
|realworld.run.osx.arm64.checked.mch|15,061,172|-1,272|
FullOpts (-37,436 bytes)
|Collection|Base size (bytes)|Diff size (bytes)|
|---|--:|--:|
|benchmarks.run.osx.arm64.checked.mch|11,186,060|-480|
|benchmarks.run_pgo.osx.arm64.checked.mch|18,137,808|-4,156|
|benchmarks.run_tiered.osx.arm64.checked.mch|4,011,816|-228|
|coreclr_tests.run.osx.arm64.checked.mch|153,808,300|-5,532|
|libraries.crossgen2.osx.arm64.checked.mch|55,724,000|-1,660|
|libraries.pmi.osx.arm64.checked.mch|80,097,980|-3,432|
|libraries_tests.run.osx.arm64.Release.mch|120,863,236|-16,932|
|libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch|149,420,360|-3,744|
|realworld.run.osx.arm64.checked.mch|14,497,216|-1,272|
Example diffs
benchmarks.run.osx.arm64.checked.mch
-24 (-12.50%) : 22123.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T04] ( 3, 4 ) ref -> x20 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,22 +23,21 @@
; V12 tmp7 [V12,T06] ( 2, 3 ) ref -> x21 "field V03._originalStack (fldOffset=0x0)" P-INDEP
; V13 tmp8 [V13,T00] ( 8, 27 ) ref -> x22 "field V03._remainingStack (fldOffset=0x8)" P-INDEP
;* V14 cse0 [V14,T07] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V15 rat0 [V15,T03] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+;* V15 rat0 [V15,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V16 rat1 [V16,T05] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V17 rat2 [V17,T02] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V17 rat2 [V17,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- str x0, [fp, #0x18]
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
-G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=20 bbWeight=1 PerfScore 4.00
+G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x20, xzr
; gcrRegs +[x20]
ldr x0, [x19, #0xA0]
@@ -54,16 +53,10 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x21]
mov x22, x1
; gcrRegs +[x22]
- ldr x0, [x19]
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x20]
- cbnz x0, G_M64146_IG04
b G_M64146_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 14.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1 x20]
+ ; gcrRegs -[x0-x1 x20]
mov x0, x22
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -110,13 +103,13 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x0]
;; size=4 bbWeight=1 PerfScore 0.50
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -127,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -136,8 +129,8 @@ Unwind Info:
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
E6 save_next
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 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
-28 (-7.61%) : 8757.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -38,8 +38,8 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M29540_IG08
- cbz x1, G_M29540_IG09
+ cbnz w14, G_M29540_IG07
+ cbz x1, G_M29540_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M29540_IG10
+ cbnz w0, G_M29540_IG09
mov w14, #7
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M29540_IG04
+ cbz w0, G_M29540_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M29540_IG05
- b G_M29540_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -91,7 +80,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
-28 (-7.61%) : 8775.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -38,8 +38,8 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M23091_IG08
- cbz x1, G_M23091_IG09
+ cbnz w14, G_M23091_IG07
+ cbz x1, G_M23091_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M23091_IG10
+ cbnz w0, G_M23091_IG09
mov w14, #4
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -91,7 +80,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-24 (-0.36%) : 19100.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 149 single block inlinees; 52 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T07] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+; V00 this [V00,T06] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
; V01 arg1 [V01,T01] ( 33, 17.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V02 arg2 [V02,T00] ( 53, 18 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V03 arg3 [V03,T14] ( 5, 3.50) ushort -> x24 single-def
; V04 arg4 [V04,T09] ( 10, 6 ) ubyte -> x23 single-def
; V05 arg5 [V05,T02] ( 32, 17 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V06 loc0 [V06,T06] ( 26, 13 ) ubyte -> x25
+; V06 loc0 [V06,T08] ( 23, 11.50) ubyte -> x25
;* V07 loc1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundNamespaceExpression>
;* V08 loc2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
;* V09 loc3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundUnconvertedAddressOfOperator>
@@ -574,7 +574,7 @@
; V563 cse0 [V563,T186] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V564 cse1 [V564,T187] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V565 cse2 [V565,T04] ( 31, 15.50) int -> x26 multi-def "CSE - aggressive"
-; V566 cse3 [V566,T08] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
+; V566 cse3 [V566,T07] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
; V567 rat0 [V567,T56] ( 3, 3 ) int -> x25 "ReplaceWithLclVar is creating a new local variable"
; V568 rat1 [V568,T57] ( 3, 3 ) int -> x28 "ReplaceWithLclVar is creating a new local variable"
; V569 rat2 [V569,T58] ( 3, 3 ) int -> x7 "ReplaceWithLclVar is creating a new local variable"
@@ -624,7 +624,7 @@ G_M42189_IG02: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefReg
ldr wzr, [x0]
blr x1
; gcrRegs -[x0]
- cbnz w0, G_M42189_IG168
+ cbnz w0, G_M42189_IG167
;; size=32 bbWeight=1 PerfScore 10.00
G_M42189_IG03: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x12]
@@ -644,7 +644,7 @@ G_M42189_IG04: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x27, x0
- bne G_M42189_IG170
+ bne G_M42189_IG169
ldr x4, [x19, #0x40]
; gcrRegs +[x4]
ldrb w4, [x4, #0x12]
@@ -670,7 +670,7 @@ G_M42189_IG05: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x6, [x6]
blr x6
; gcrRegs -[x0-x2 x5 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=52 bbWeight=0.50 PerfScore 5.00
G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21-x22]
@@ -679,7 +679,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x27, x0
- bne G_M42189_IG171
+ bne G_M42189_IG170
mov x1, x19
; gcrRegs +[x1]
uxth w26, w24
@@ -694,7 +694,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x1 x3 x19 x21-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -712,7 +712,7 @@ G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=48 bbWeight=0.50 PerfScore 5.00
G_M42189_IG08: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -860,37 +860,27 @@ G_M42189_IG21: ; bbWeight=0.50, gcrefRegs=200004 {x2 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0 x2 x21]
- b G_M42189_IG168
+ b G_M42189_IG167
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M42189_IG22: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
ldrb w25, [x19, #0x12]
cmp w25, #48
- bhi G_M42189_IG27
- cmp w25, #12
- bhi G_M42189_IG24
- cmp w25, #6
- bhi G_M42189_IG23
- cmp w25, #4
- ccmp w25, #6, z, ne
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=44 bbWeight=0.50 PerfScore 5.25
-G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19 x22]
- cmp w25, #10
- beq G_M42189_IG161
- cmp w25, #12
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19 x22]
- cmp w25, #35
bhi G_M42189_IG26
+ cmp w25, #12
+ bhi G_M42189_IG23
+ cmp w25, #6
+ bls G_M42189_IG164
+ cmp w25, #10
+ beq G_M42189_IG160
+ b G_M42189_IG164
+ ;; size=40 bbWeight=0.50 PerfScore 5.00
+G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ cmp w25, #35
+ bhi G_M42189_IG25
sub w28, w25, #22
cmp w28, #10
- bhi G_M42189_IG25
+ bhi G_M42189_IG24
mov w0, w28
adr x1, [@RWD16]
ldr w1, [x1, x0, LSL #2]
@@ -898,25 +888,25 @@ G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=44 bbWeight=0.50 PerfScore 4.75
-G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #35
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #42
- beq G_M42189_IG164
+ beq G_M42189_IG163
cmp w25, #47
- beq G_M42189_IG160
+ beq G_M42189_IG159
cmp w25, #48
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x27, x0
- bne G_M42189_IG172
+ bne G_M42189_IG171
ldr x3, [x19, #0x28]
; gcrRegs +[x3]
mov w2, w26
@@ -932,25 +922,25 @@ G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x5, [x5]
blr x5
; gcrRegs -[x0-x1 x3-x4 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=88 bbWeight=0.50 PerfScore 9.50
-G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #151
- bhi G_M42189_IG30
+ bhi G_M42189_IG29
cmp w25, #110
- bhi G_M42189_IG28
+ bhi G_M42189_IG27
cmp w25, #70
- beq G_M42189_IG116
+ beq G_M42189_IG115
cmp w25, #110
- bne G_M42189_IG165
- tbz w26, #5, G_M42189_IG142
- b G_M42189_IG139
+ bne G_M42189_IG164
+ tbz w26, #5, G_M42189_IG141
+ b G_M42189_IG138
;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
sub w7, w25, #114
cmp w7, #3
- bhi G_M42189_IG29
+ bhi G_M42189_IG28
mov w0, w7
adr x1, [@RWD60]
ldr w1, [x1, x0, LSL #2]
@@ -958,25 +948,25 @@ G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #151
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #159
- bhi G_M42189_IG31
+ bhi G_M42189_IG30
cmp w25, #157
- beq G_M42189_IG80
+ beq G_M42189_IG79
cmp w25, #159
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x27, x0
- bne G_M42189_IG173
+ bne G_M42189_IG172
mov x2, x19
; gcrRegs +[x2]
ldr x1, [x2, #0x28]
@@ -996,17 +986,17 @@ G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x7, [x7]
blr x7
; gcrRegs -[x0-x3 x6 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=100 bbWeight=0.50 PerfScore 11.50
-G_M42189_IG31: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #173
- beq G_M42189_IG128
+ beq G_M42189_IG127
cmp w25, #177
- beq G_M42189_IG161
+ beq G_M42189_IG160
...
-32 (-0.24%) : 10716.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T151] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T152] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T153] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T326] ( 3, 1.50) long -> x0 single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T326] ( 2, 1 ) long -> x0 single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T327] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -108,7 +108,7 @@
;* V97 tmp84 [V97 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V98 tmp85 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V99 tmp86 [V99 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V100 tmp87 [V100,T114] ( 3, 10 ) long -> x0 "Inline stloc first use temp"
+; V100 tmp87 [V100,T114] ( 2, 8 ) long -> x0 "Inline stloc first use temp"
;* V101 tmp88 [V101,T121] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V102 tmp89 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -513,7 +513,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x19]
- b G_M11467_IG260
+ b G_M11467_IG258
;; size=40 bbWeight=0.50 PerfScore 8.00
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x21]
@@ -568,13 +568,13 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs -[x0-x1]
ldr w0, [x24, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w25, w0
cmp w0, #0
ble G_M11467_IG44
ldr w0, [x24, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldrb w26, [x24, #0x10]
mov w0, #0xD1FFAB1E
cmp w26, w0
@@ -754,7 +754,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w4, [x26, w2, UXTW #2]
@@ -770,7 +770,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w4, w2, #1
@@ -787,7 +787,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w2, #2
@@ -803,7 +803,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w2, [x26, w1, UXTW #2]
@@ -819,7 +819,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w1, #1
@@ -839,7 +839,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x2, #16
; byrRegs +[x26]
add w2, w1, #2
@@ -847,18 +847,18 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x26, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -882,7 +882,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
beq G_M11467_IG44
ldr w1, [x24, #0x08]
cmp w26, w1
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x1, x24, #16
; byrRegs +[x1]
ldrb w28, [x1, w26, UXTW #2]
@@ -1088,7 +1088,7 @@ G_M11467_IG37: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1104,7 +1104,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1121,7 +1121,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1137,7 +1137,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1153,7 +1153,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1173,7 +1173,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x2, #16
; byrRegs +[x4]
add w2, w1, #2
@@ -1181,18 +1181,18 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x4, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -1249,7 +1249,7 @@ G_M11467_IG45: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x27]
- b G_M11467_IG91
+ b G_M11467_IG89
;; size=68 bbWeight=0.50 PerfScore 11.50
G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x27]
@@ -1265,34 +1265,28 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byre
; gcrRegs -[x0-x1]
ldr w0, [x27, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w26, w0
cmp w0, #0
- ble G_M11467_IG90
+ ble G_M11467_IG88
ldr w0, [x27, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldr x24, [x27, #0x10]
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG47
- mov x1, #0xD1FFAB1E
- cmp x0, x1
- beq G_M11467_IG48
- b G_M11467_IG48
- ;; size=92 bbWeight=0.50 PerfScore 13.75
-G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref
+ cbnz x0, G_M11467_IG47
and x0, x24, #0xD1FFAB1E
orr x24, x0, #0xD1FFAB1E
- ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
+ ;; size=84 bbWeight=0.50 PerfScore 12.75
+G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG49
+ cbz x0, G_M11467_IG48
mov x1, #0xD1FFAB1E
cmp x0, x1
- bne G_M11467_IG49
- b G_M11467_IG51
...
-8 (-0.20%) : 14958.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
@@ -30,15 +30,15 @@
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V21 tmp2 [V21 ] ( 8, 16 ) struct (16) [fp+0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T36] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V22 tmp3 [V22,T35] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V23 tmp4 [V23 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-; V24 tmp5 [V24,T44] ( 3, 6 ) int -> x1 "impAppendStmt"
+; V24 tmp5 [V24,T43] ( 3, 6 ) int -> x1 "impAppendStmt"
;* V25 tmp6 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp9 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V29 tmp10 [V29 ] ( 5, 10 ) struct (16) [fp+0x28] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V30 tmp11 [V30,T37] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp11 [V30,T36] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -48,7 +48,7 @@
; V37 tmp18 [V37,T128] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 tmp21 [V40,T38] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V40 tmp21 [V40,T37] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V41 tmp22 [V41 ] ( 0, 0 ) ref -> zero-ref
; V42 tmp23 [V42,T96] ( 2, 2 ) ref -> x14 single-def
;* V43 tmp24 [V43,T117] ( 0, 0 ) int -> zero-ref
@@ -66,14 +66,14 @@
;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V58 tmp39 [V58,T39] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V58 tmp39 [V58,T38] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V59 tmp40 [V59,T68] ( 2, 4 ) int -> x2 "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V61 tmp42 [V61,T04] ( 12, 12 ) int -> x20 "Inline return value spill temp"
-; V62 tmp43 [V62,T45] ( 3, 6 ) int -> x3 "Inlining Arg"
-; V63 tmp44 [V63,T46] ( 3, 6 ) int -> x1 "Inlining Arg"
+; V62 tmp43 [V62,T44] ( 3, 6 ) int -> x3 "Inlining Arg"
+; V63 tmp44 [V63,T45] ( 3, 6 ) int -> x1 "Inlining Arg"
; V64 tmp45 [V64,T11] ( 4, 8 ) ref -> x1 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V65 tmp46 [V65,T33] ( 4, 6 ) int -> x2 "Inlining Arg"
+; V65 tmp46 [V65,T46] ( 3, 6 ) int -> x2 "Inlining Arg"
;* V66 tmp47 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V67 tmp48 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V68 tmp49 [V68,T27] ( 6, 6 ) byref -> x24 "Inline stloc first use temp"
@@ -196,8 +196,8 @@
; V185 tmp166 [V185,T75] ( 2, 4 ) long -> x2 "Inlining Arg"
; V186 tmp167 [V186,T05] ( 6, 12 ) ref -> x0 class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V187 tmp168 [V187,T08] ( 5, 10 ) byref -> x19 single-def "Inlining Arg"
-; V188 tmp169 [V188,T40] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V189 tmp170 [V189,T41] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V188 tmp169 [V188,T39] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V189 tmp170 [V189,T40] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V190 tmp171 [V190 ] ( 6, 6 ) ref -> [fp+0x98] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V191 tmp172 [V191 ] ( 6, 6 ) int -> [fp+0xA0] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V192 tmp173 [V192 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -210,8 +210,8 @@
; V199 tmp180 [V199,T59] ( 4, 4 ) short -> [fp+0x64] do-not-enreg[] "field V14._token (fldOffset=0xc)" P-DEP
; V200 tmp181 [V200,T107] ( 2, 2 ) ubyte -> [fp+0x66] do-not-enreg[] "field V14._continueOnCapturedContext (fldOffset=0xe)" P-DEP
; V201 tmp182 [V201,T32] ( 4, 6 ) ref -> [fp+0x38] do-not-enreg[] "field V21._object (fldOffset=0x0)" P-DEP
-; V202 tmp183 [V202,T34] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
-; V203 tmp184 [V203,T35] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
+; V202 tmp183 [V202,T33] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
+; V203 tmp184 [V203,T34] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
;* V204 tmp185 [V204 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp186 [V205 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
; V206 tmp187 [V206,T51] ( 3, 5 ) ref -> [fp+0x28] do-not-enreg[] "field V29._object (fldOffset=0x0)" P-DEP
@@ -269,10 +269,10 @@
;* V258 tmp239 [V258 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
;* V259 tmp240 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V182._reference (fldOffset=0x0)" P-INDEP
;* V260 tmp241 [V260 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-; V261 tmp242 [V261,T42] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V261 tmp242 [V261,T41] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
; V262 tmp243 [V262,T64] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V263 tmp244 [V263,T65] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V264 tmp245 [V264,T43] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
+; V264 tmp245 [V264,T42] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
; V265 tmp246 [V265,T66] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V266 tmp247 [V266,T67] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V267 PSPSym [V267,T127] ( 1, 1 ) long -> [fp+0xB0] do-not-enreg[V] "PSPSym"
@@ -421,7 +421,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG92
+ b G_M33324_IG91
;; size=80 bbWeight=1 PerfScore 21.00
G_M33324_IG07: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, nogc
; gcrRegs +[x19]
@@ -491,7 +491,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ble G_M33324_IG15
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbz x1, G_M33324_IG75
+ cbz x1, G_M33324_IG74
mov w3, w2
add x3, x3, w20, UXTW
ldr w4, [x1, #0x08]
@@ -596,7 +596,7 @@ G_M33324_IG14: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=1200000 {x2
blr x1
; gcr arg pop 0
cmp w22, w25
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w22
mov x0, x24
; byrRegs +[x0]
@@ -620,7 +620,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
cmp w20, w1
bne G_M33324_IG16
str w20, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG80
+ b G_M33324_IG79
;; size=20 bbWeight=1 PerfScore 6.50
G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
cmp w20, #0
@@ -629,7 +629,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
; byrRegs +[x1]
ldr w2, [x1, #0x0C]
cmp w20, w2
- bhi G_M33324_IG77
+ bhi G_M33324_IG76
ldr x21, [x1]
; gcrRegs +[x21]
ldr w1, [x1, #0x08]
@@ -949,7 +949,7 @@ G_M33324_IG28: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
ldr w0, [x21, #0x14]
add w0, w20, w0
str w0, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG86
+ b G_M33324_IG85
;; size=16 bbWeight=1 PerfScore 5.50
G_M33324_IG29: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21]
@@ -1032,7 +1032,7 @@ G_M33324_IG33: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG82
+ b G_M33324_IG81
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG34: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[x21]
@@ -1140,7 +1140,7 @@ G_M33324_IG41: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG84
+ b G_M33324_IG83
;; size=92 bbWeight=1 PerfScore 22.50
G_M33324_IG42: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1411,7 +1411,7 @@ G_M33324_IG57: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG88
+ b G_M33324_IG87
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG58: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1666,7 +1666,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x1
; gcr arg pop 0
cmp w23, w26
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w23
mov x0, x25
; byrRegs +[x0]
@@ -1679,7 +1679,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x3
; byrRegs -[x0-x1 x22 x25]
; gcr arg pop 0
- b G_M33324_IG78
+ b G_M33324_IG77
;; size=72 bbWeight=1 PerfScore 16.00
G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1691,13 +1691,7 @@ G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
- ; byrRegs +[x0]
- cbnz w2, G_M33324_IG74
- b G_M33324_IG74
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
+G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -1706,7 +1700,7 @@ G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -1716,7 +1710,7 @@ G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG77: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
; byrRegs +[x21]
ldr w0, [x19, #0x30]
add w0, w0, w20
@@ -1725,9 +1719,9 @@ G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
add w0, w0, w20
str w0, [fp, #0xA8] // [V03 loc2]
;; size=24 bbWeight=1 PerfScore 9.00
-G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
ldr w0, [fp, #0xAC] // [V01 loc0]
- tbz w0, #31, G_M33324_IG90
+ tbz w0, #31, G_M33324_IG89
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -1740,51 +1734,51 @@ G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x0 x19]
; gcr arg pop 0
- b G_M33324_IG90
+ b G_M33324_IG89
;; size=44 bbWeight=1 PerfScore 16.00
-G_M33324_IG80: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
+G_M33324_IG79: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
; gcrRegs +[x19]
; byrRegs -[x21] +[x0]
; GC ptr vars +{V01 V02}
ldr x0, [fp, #0xB0] // [V267 PSPSym]
; byrRegs -[x0]
- bl G_M33324_IG93
+ bl G_M33324_IG92
;; size=8 bbWeight=1 PerfScore 3.00
-G_M33324_IG81: ; bbWeight=1, nogc, extend
- b G_M33324_IG90
+G_M33324_IG80: ; bbWeight=1, nogc, extend
+ b G_M33324_IG89
;; size=4 bbWeight=1 PerfScore 1.00
-G_M33324_IG82: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG81: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
...
benchmarks.run_pgo.osx.arm64.checked.mch
-24 (-14.63%) : 25977.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.69) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.76) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.69) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.69) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.69) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.73
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.67
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.31
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.15
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.69
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.18, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.94, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-14.63%) : 60357.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.69) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.76) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.69) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.69) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.69) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.73
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.68
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.31
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.15
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.69
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.18, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.94, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-12.50%) : 26143.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7 ) ref -> [fp+0x10] this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 6.25) ref -> [fp+0x18] this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T03] ( 4, 3.50) int -> x13
; V03 loc1 [V03,T05] ( 3, 2.75) ref -> x14 class-hnd exact single-def <<unknown class>>
@@ -20,37 +20,38 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
; V10 cse0 [V10,T06] ( 3, 2.25) byref -> x2 "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 3 ) long -> x1 "Spilling to split statement for tree"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V13 rat2 [V13,T02] ( 2, 3 ) long -> x1 "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
G_M60687_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
mov fp, sp
- str x0, [fp, #0x18]
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M60687_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0002 {x1}, byref, isz
; gcrRegs +[x0]
; byrRegs +[x1]
ldr w13, [x0, #0x10]
sub w13, w13, #1
- str x0, [fp, #0x10] // [V00 this]
+ str x0, [fp, #0x18] // [V00 this]
; GC ptr vars +{V00}
ldr x14, [x0, #0x08]
; gcrRegs +[x14]
ldr w12, [x14, #0x08]
cmp w12, w13
- bls G_M60687_IG05
+ bls G_M60687_IG04
;; size=28 bbWeight=1 PerfScore 12.00
-G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=4000 {x14}, byrefRegs=0002 {x1}, gcvars, byref, isz
+G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=4000 {x14}, byrefRegs=0002 {x1}, gcvars, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x10] // [V00 this]
+ ldr x0, [fp, #0x18] // [V00 this]
; gcrRegs +[x0]
ldr w12, [x0, #0x14]
add w12, w12, #1
- stp w13, w12, [x0, #0x10]
+ str w12, [x0, #0x14]
+ str x0, [fp, #0x18] // [V00 this]
+ str w13, [x0, #0x10]
mov w12, #24
mov x15, #16
umaddl x13, w13, w12, x15
@@ -61,46 +62,35 @@ G_M60687_IG03: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=
; byrRegs +[x14]
mov x13, x2
; byrRegs +[x13]
- ; GC ptr vars -{V00}
bl CORINFO_HELP_ASSIGN_BYREF
+ ; gcrRegs -[x0]
; byrRegs -[x1]
bl CORINFO_HELP_ASSIGN_BYREF
bl CORINFO_HELP_ASSIGN_BYREF
- str x0, [fp, #0x10] // [V00 this]
- ; GC ptr vars +{V00}
- ldr x1, [x0]
- ldr x1, [x1, #0x38]
- ldr x1, [x1]
- ldr x1, [x1, #0x20]
- cbnz x1, G_M60687_IG07
- ;; size=76 bbWeight=0.75 PerfScore 23.25
-G_M60687_IG04: ; bbWeight=0.15, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
- ; gcrRegs -[x0]
- ; byrRegs -[x13-x14]
- b G_M60687_IG07
- ;; size=4 bbWeight=0.15 PerfScore 0.15
-G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
- ; byrRegs -[x2] +[x1]
+ b G_M60687_IG06
+ ;; size=64 bbWeight=0.75 PerfScore 15.00
+G_M60687_IG04: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2 x13-x14] +[x1]
stp xzr, xzr, [x1]
str xzr, [x1, #0x10]
mov w0, wzr
;; size=12 bbWeight=0.25 PerfScore 0.62
-G_M60687_IG06: ; bbWeight=0.25, epilog, nogc, extend
+G_M60687_IG05: ; bbWeight=0.25, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=0.25 PerfScore 0.50
-G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
+G_M60687_IG06: ; bbWeight=0.75, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, gcvars, byref
; byrRegs -[x1] +[x2]
stp xzr, xzr, [x2]
str xzr, [x2, #0x10]
mov w0, #1
;; size=12 bbWeight=0.75 PerfScore 1.88
-G_M60687_IG08: ; bbWeight=0.75, epilog, nogc, extend
+G_M60687_IG07: ; bbWeight=0.75, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=0.75 PerfScore 1.50
-; Total bytes of code 160, prolog size 12, PerfScore 42.40, instruction count 40, allocated bytes for code 160 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 8, PerfScore 33.00, instruction count 35, allocated bytes for code 140 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -111,7 +101,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 81604.dasm - System.Linq.Enumerable:AnySystem.__Canon:ubyte (Tier1-OSR)
@@ -12,10 +12,10 @@
;
; V00 TypeCtx [V00,T11] ( 7,138.99) long -> x19 single-def
;* V01 arg0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-; V02 arg1 [V02,T12] ( 9,104.99) ref -> x20 class-hnd single-def <System.Func`2[System.__Canon,ubyte]>
-; V03 loc0 [V03,T03] ( 17,503.00) ref -> [fp+0xC0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
+; V02 arg1 [V02,T12] ( 9,103.01) ref -> x20 class-hnd single-def <System.Func`2[System.__Canon,ubyte]>
+; V03 loc0 [V03,T03] ( 17,501.01) ref -> [fp+0xC0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
; V04 loc1 [V04,T08] ( 7,199.98) ref -> x2 class-hnd <System.__Canon>
-; V05 loc2 [V05,T19] ( 2, 0 ) ubyte -> [fp+0xB4] do-not-enreg[Z] EH-live tier0-frame
+; V05 loc2 [V05,T17] ( 2, 0 ) ubyte -> [fp+0xB4] do-not-enreg[Z] EH-live tier0-frame
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V08 tmp2 [V08 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
@@ -25,23 +25,22 @@
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <System.Collections.Perf_FrozenDictionary_String>
; V13 tmp7 [V13,T05] ( 5,200.00) int -> x2 "guarded devirt return temp"
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.String]>
-;* V15 tmp9 [V15,T17] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V15 tmp9 [V15 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V16 tmp10 [V16,T09] ( 6,199.98) ubyte -> x0 "Inline return value spill temp"
; V17 tmp11 [V17,T01] ( 6,599.94) ref -> x0 class-hnd exact "Inlining Arg" <<unknown class>>
;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
; V19 tmp13 [V19,T06] ( 6,300.00) int -> x22 "Inline stloc first use temp"
-; V20 PSPSym [V20,T18] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V20 PSPSym [V20,T16] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V21 cse0 [V21,T07] ( 3,297.00) int -> x21 "CSE - aggressive"
-; V22 cse1 [V22,T16] ( 3, 3.00) int -> x21 "CSE - aggressive"
-; V23 cse2 [V23,T15] ( 4, 4.00) long -> x21 hoist multi-def "CSE - aggressive"
-; V24 rat0 [V24,T02] ( 3,554.34) long -> x0 "spilling expr"
-; V25 rat1 [V25,T04] ( 3,443.48) long -> x11 "fgMakeTemp is creating a new local variable"
-; V26 rat2 [V26,T13] ( 3, 5.60) long -> x0 "spilling expr"
-; V27 rat3 [V27,T14] ( 3, 4.48) long -> x11 "fgMakeTemp is creating a new local variable"
+; V22 cse1 [V22,T15] ( 3, 3.00) int -> x21 "CSE - aggressive"
+; V23 rat0 [V23,T02] ( 3,554.34) long -> x0 "spilling expr"
+; V24 rat1 [V24,T04] ( 3,443.48) long -> x11 "fgMakeTemp is creating a new local variable"
+; V25 rat2 [V25,T13] ( 3, 5.60) long -> x0 "spilling expr"
+; V26 rat3 [V26,T14] ( 3, 4.48) long -> x11 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
-G_M43250_IG01: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M43250_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x20]
stp x21, x22, [sp, #0x30]
@@ -51,20 +50,20 @@ G_M43250_IG01: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x19, [fp, #0xD8]
ldr x20, [fp, #0xC8]
; gcrRegs +[x20]
- ;; size=32 bbWeight=1.00 PerfScore 9.00
-G_M43250_IG02: ; bbWeight=1.00, gcVars=0000000000000008 {V03}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=32 bbWeight=0.01 PerfScore 0.09
+G_M43250_IG02: ; bbWeight=0.01, gcVars=0000000000000008 {V03}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V03}
ldr x0, [fp, #0xC0] // [V03 loc0]
; gcrRegs +[x0]
cbz x0, G_M43250_IG12
cbz x20, G_M43250_IG12
ldr x0, [fp, #0xC0] // [V03 loc0]
- ldr x21, [x0]
- movz x0, #0xD1FFAB1E
+ ldr x0, [x0]
; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- cmp x21, x0
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ cmp x0, x1
bne G_M43250_IG12
ldr x0, [x20, #0x18]
movz x1, #0xD1FFAB1E // code for System.Collections.Perf_FrozenDictionary_String:<Verify>b__13_0(System.String):ubyte:this
@@ -73,7 +72,7 @@ G_M43250_IG02: ; bbWeight=1.00, gcVars=0000000000000008 {V03}, gcrefRegs=
cmp x0, x1
bne G_M43250_IG12
b G_M43250_IG07
- ;; size=68 bbWeight=1.00 PerfScore 19.00
+ ;; size=68 bbWeight=0.01 PerfScore 0.19
G_M43250_IG03: ; bbWeight=98.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x38]
ldr x1, [x0, #0x08]
@@ -162,12 +161,12 @@ G_M43250_IG11: ; bbWeight=35.64, gcrefRegs=100000 {x20}, byrefRegs=0000 {
mov x11, x0
b G_M43250_IG05
;; size=28 bbWeight=35.64 PerfScore 160.36
-G_M43250_IG12: ; bbWeight=0.01, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M43250_IG12: ; bbWeight=0.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xC0] // [V03 loc0]
; gcrRegs +[x0]
ldr xzr, [x0]
b G_M43250_IG17
- ;; size=12 bbWeight=0.01 PerfScore 0.06
+ ;; size=12 bbWeight=0.00 PerfScore 0.00
G_M43250_IG13: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x38]
@@ -215,12 +214,12 @@ G_M43250_IG16: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
G_M43250_IG17: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xC0] // [V03 loc0]
; gcrRegs +[x0]
- ldr x21, [x0]
- movz x0, #0xD1FFAB1E
+ ldr x0, [x0]
; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- cmp x21, x0
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ cmp x0, x1
bne G_M43250_IG24
ldr x0, [fp, #0xC0] // [V03 loc0]
; gcrRegs +[x0]
@@ -375,7 +374,7 @@ G_M43250_IG36: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 800, prolog size 32, PerfScore 5473.72, instruction count 200, allocated bytes for code 800 (MethodHash=7c9f570d) for method System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):ubyte (Tier1-OSR)
+; Total bytes of code 800, prolog size 32, PerfScore 5445.94, instruction count 200, allocated bytes for code 800 (MethodHash=7c9f570d) for method System.Linq.Enumerable:Any[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):ubyte (Tier1-OSR)
; ============================================================
Unwind Info:
+36 (+1.92%) : 65177.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
@@ -11,59 +11,61 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T18] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T26] ( 5, 166.65) int -> x20
-; V03 loc2 [V03,T31] ( 3, 50.02) int -> x21
+; V01 loc0 [V01,T20] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T28] ( 5, 166.65) int -> x20
+; V03 loc2 [V03,T32] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T16] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T17] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T29] ( 2, 66.69) ref -> x22 class-hnd "dup spill" <<unknown class>>
+; V08 tmp1 [V08,T30] ( 2, 66.69) ref -> x23 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T17] ( 8, 366.83) ref -> x22
-; V11 tmp4 [V11,T38] ( 5, 0.11) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp5 [V12,T34] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
+; V10 tmp3 [V10,T18] ( 8, 366.83) ref -> x23
+; V11 tmp4 [V11,T39] ( 5, 0.11) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V12 tmp5 [V12,T35] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7757.53) ref -> x22 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6489.98) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T27] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V20 tmp13 [V20,T39] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T15] ( 12, 633.60) ref -> x23 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
-; V22 tmp15 [V22,T20] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V23 tmp16 [V23,T21] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V24 tmp17 [V24,T24] ( 3, 200.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V25 tmp18 [V25,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V27 tmp20 [V27,T13] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T25] ( 4, 166.74) ref -> x22
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V20 tmp13 [V20,T40] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
+; V21 tmp14 [V21,T16] ( 12, 633.60) ref -> x22 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V22 tmp15 [V22,T22] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V23 tmp16 [V23,T23] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V24 tmp17 [V24,T26] ( 3, 200.08) ref -> x22 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V25 tmp18 [V25,T12] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V26 tmp19 [V26,T13] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V27 tmp20 [V27,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V28 tmp21 [V28,T27] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T22] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T23] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T19] ( 6, 283.32) int -> x23 "Inline stloc first use temp"
+; V31 tmp24 [V31,T15] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T24] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T25] ( 2, 266.78) ref -> x22 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T21] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5071.61) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2535.70) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10143.67) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10143.67) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T28] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T29] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25657.37) byref -> x25 "Inlining Arg"
-; V44 tmp37 [V44,T05] ( 8, 5121.61) ref -> x26 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T30] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V47 tmp40 [V47,T36] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T33] ( 4, 33.94) int -> x24 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7608.42) ref -> x27 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7608.42) int -> x2 "index expr"
-; V51 PSPSym [V51,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3798.72) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T32] ( 3, 38.37) int -> x2 "CSE - moderate"
+; V43 tmp36 [V43,T00] ( 24,25657.37) byref -> x2 "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 8, 5121.61) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V45 tmp38 [V45,T31] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T36] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
+;* V47 tmp40 [V47,T37] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V48 tmp41 [V48,T34] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7608.42) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7608.42) int -> x3 "index expr"
+; V51 PSPSym [V51,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V52 cse0 [V52,T07] ( 3, 3798.72) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T33] ( 3, 38.37) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1301.48) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T19] ( 17, 303.79) long -> registers multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -82,24 +84,24 @@ G_M15171_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w20, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M15171_IG02: ; bbWeight=1, gcVars=0000000000010000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V16}
- b G_M15171_IG17
+G_M15171_IG02: ; bbWeight=1, gcVars=0000000000020000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05 V17}
+ b G_M15171_IG16
;; size=4 bbWeight=1 PerfScore 1.00
G_M15171_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V16}
+ ; GC ptr vars -{V05 V17}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr x22, [x0]
- ; gcrRegs +[x22]
- cbz x22, G_M15171_IG06
+ ldr x23, [x0]
+ ; gcrRegs +[x23]
+ cbz x23, G_M15171_IG06
;; size=20 bbWeight=16.67 PerfScore 91.71
-G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
cbz x19, G_M15171_IG54
;; size=4 bbWeight=16.67 PerfScore 16.67
-G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M15171_IG55
+G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M15171_IG55
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -113,34 +115,35 @@ G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
cbz x0, G_M15171_IG07
- mov x1, x22
+ mov x1, x23
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x50]
ldr x2, [x2, #0x10]
blr x2
- ; gcrRegs -[x1 x22]
- ; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
- b G_M15171_IG11
- ;; size=72 bbWeight=66.69 PerfScore 1433.94
-G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x23]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
+ ; gcrRegs -[x1 x23]
; gcr arg pop 0
mov x22, x0
; gcrRegs +[x22]
+ b G_M15171_IG11
+ ;; size=72 bbWeight=66.69 PerfScore 1433.94
+G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x22]
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #1 LSL #32
+ mov x0, x22
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ mov x23, x0
+ ; gcrRegs +[x23]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x22, #8
+ add x14, x23, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
@@ -148,17 +151,17 @@ G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movz x14, #0xD1FFAB1E // code for LinqBenchmarks+<>c:<Where00LinqQueryX>b__7_0(Product):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
- str x14, [x22, #0x18]
+ str x14, [x23, #0x18]
movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
- mov x15, x22
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M15171_IG04
- ;; size=84 bbWeight=0.01 PerfScore 0.16
-G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ ;; size=88 bbWeight=0.01 PerfScore 0.17
+G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -182,47 +185,47 @@ G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
movk x0, #1 LSL #32
mov w1, #44
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ; gcrRegs -[x22 x28]
+ ; gcrRegs -[x23 x28]
; gcr arg pop 0
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr x23, [x0]
- ; gcrRegs +[x23]
+ ldr x22, [x0]
+ ; gcrRegs +[x22]
b G_M15171_IG11
;; size=92 bbWeight=66.69 PerfScore 1433.94
-G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=10480000 {x19 x22 x28}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x22 x28]
+G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=10880000 {x19 x23 x28}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22] +[x23 x28]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x22, x0
+ ; gcrRegs +[x22]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [x23, #0x10]
- add x14, x23, #24
+ str w0, [x22, #0x10]
+ add x14, x22, #24
; byrRegs +[x14]
mov x15, x28
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x28]
; byrRegs -[x14]
...
+36 (+1.92%) : 66558.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
@@ -11,59 +11,61 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T18] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T26] ( 5, 166.65) int -> x20
-; V03 loc2 [V03,T31] ( 3, 50.02) int -> x21
+; V01 loc0 [V01,T20] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T28] ( 5, 166.65) int -> x20
+; V03 loc2 [V03,T32] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T16] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T17] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T29] ( 2, 66.69) ref -> x22 class-hnd "dup spill" <<unknown class>>
+; V08 tmp1 [V08,T30] ( 2, 66.69) ref -> x23 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T17] ( 8, 366.83) ref -> x22
-; V11 tmp4 [V11,T38] ( 5, 0.11) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp5 [V12,T34] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
+; V10 tmp3 [V10,T18] ( 8, 366.83) ref -> x23
+; V11 tmp4 [V11,T39] ( 5, 0.11) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V12 tmp5 [V12,T35] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7755.55) ref -> x22 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6488.35) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T27] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V20 tmp13 [V20,T39] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T15] ( 12, 633.60) ref -> x23 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
-; V22 tmp15 [V22,T20] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V23 tmp16 [V23,T21] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V24 tmp17 [V24,T24] ( 3, 200.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V25 tmp18 [V25,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V27 tmp20 [V27,T13] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T25] ( 4, 166.74) ref -> x22
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V20 tmp13 [V20,T40] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
+; V21 tmp14 [V21,T16] ( 12, 633.60) ref -> x22 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V22 tmp15 [V22,T22] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V23 tmp16 [V23,T23] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V24 tmp17 [V24,T26] ( 3, 200.08) ref -> x22 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V25 tmp18 [V25,T12] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V26 tmp19 [V26,T13] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V27 tmp20 [V27,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V28 tmp21 [V28,T27] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T22] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T23] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T19] ( 6, 283.32) int -> x23 "Inline stloc first use temp"
+; V31 tmp24 [V31,T15] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T24] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T25] ( 2, 266.78) ref -> x22 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T21] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5070.29) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2535.02) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10141.09) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10141.09) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T28] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T29] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25650.64) byref -> x25 "Inlining Arg"
-; V44 tmp37 [V44,T05] ( 8, 5120.28) ref -> x26 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T30] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V47 tmp40 [V47,T36] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T33] ( 4, 33.94) int -> x24 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7606.58) ref -> x27 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7606.58) int -> x2 "index expr"
-; V51 PSPSym [V51,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3797.75) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T32] ( 3, 38.36) int -> x2 "CSE - moderate"
+; V43 tmp36 [V43,T00] ( 24,25650.64) byref -> x2 "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 8, 5120.28) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V45 tmp38 [V45,T31] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T36] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
+;* V47 tmp40 [V47,T37] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V48 tmp41 [V48,T34] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7606.58) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7606.58) int -> x3 "index expr"
+; V51 PSPSym [V51,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V52 cse0 [V52,T07] ( 3, 3797.75) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T33] ( 3, 38.36) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1301.14) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T19] ( 17, 303.79) long -> registers multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -82,24 +84,24 @@ G_M64534_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w20, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M64534_IG02: ; bbWeight=1, gcVars=0000000000010000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V16}
- b G_M64534_IG17
+G_M64534_IG02: ; bbWeight=1, gcVars=0000000000020000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05 V17}
+ b G_M64534_IG16
;; size=4 bbWeight=1 PerfScore 1.00
G_M64534_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V16}
+ ; GC ptr vars -{V05 V17}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr x22, [x0]
- ; gcrRegs +[x22]
- cbz x22, G_M64534_IG06
+ ldr x23, [x0]
+ ; gcrRegs +[x23]
+ cbz x23, G_M64534_IG06
;; size=20 bbWeight=16.67 PerfScore 91.71
-G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
cbz x19, G_M64534_IG54
;; size=4 bbWeight=16.67 PerfScore 16.67
-G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M64534_IG55
+G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M64534_IG55
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -113,34 +115,35 @@ G_M64534_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
cbz x0, G_M64534_IG07
- mov x1, x22
+ mov x1, x23
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x50]
ldr x2, [x2, #0x10]
blr x2
- ; gcrRegs -[x1 x22]
- ; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
- b G_M64534_IG11
- ;; size=72 bbWeight=66.69 PerfScore 1433.94
-G_M64534_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x23]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
+ ; gcrRegs -[x1 x23]
; gcr arg pop 0
mov x22, x0
; gcrRegs +[x22]
+ b G_M64534_IG11
+ ;; size=72 bbWeight=66.69 PerfScore 1433.94
+G_M64534_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x22]
+ movz x22, #0xD1FFAB1E
+ movk x22, #0xD1FFAB1E LSL #16
+ movk x22, #1 LSL #32
+ mov x0, x22
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ mov x23, x0
+ ; gcrRegs +[x23]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x22, #8
+ add x14, x23, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
@@ -148,17 +151,17 @@ G_M64534_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movz x14, #0xD1FFAB1E // code for LinqBenchmarks+<>c:<Where00LinqMethodX>b__8_0(Product):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
- str x14, [x22, #0x18]
+ str x14, [x23, #0x18]
movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
movk x14, #1 LSL #32
- mov x15, x22
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M64534_IG04
- ;; size=84 bbWeight=0.01 PerfScore 0.16
-G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ ;; size=88 bbWeight=0.01 PerfScore 0.17
+G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -182,47 +185,47 @@ G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
movk x0, #1 LSL #32
mov w1, #44
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ; gcrRegs -[x22 x28]
+ ; gcrRegs -[x23 x28]
; gcr arg pop 0
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr x23, [x0]
- ; gcrRegs +[x23]
+ ldr x22, [x0]
+ ; gcrRegs +[x22]
b G_M64534_IG11
;; size=92 bbWeight=66.69 PerfScore 1433.94
-G_M64534_IG08: ; bbWeight=66.69, gcrefRegs=10480000 {x19 x22 x28}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x22 x28]
+G_M64534_IG08: ; bbWeight=66.69, gcrefRegs=10880000 {x19 x23 x28}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22] +[x23 x28]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x22, x0
+ ; gcrRegs +[x22]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [x23, #0x10]
- add x14, x23, #24
+ str w0, [x22, #0x10]
+ add x14, x22, #24
; byrRegs +[x14]
mov x15, x28
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x28]
; byrRegs -[x14]
...
benchmarks.run_tiered.osx.arm64.checked.mch
-28 (-7.61%) : 26317.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -38,8 +38,8 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M23091_IG08
- cbz x1, G_M23091_IG09
+ cbnz w14, G_M23091_IG07
+ cbz x1, G_M23091_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M23091_IG10
+ cbnz w0, G_M23091_IG09
mov w14, #4
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -91,7 +80,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M23091_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M23091_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M23091_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG05..G_M23091_IG06) handled by [G_M23091_IG11..END) (class: 1000001)
+EH#0: try [G_M23091_IG04..G_M23091_IG05) handled by [G_M23091_IG10..END) (class: 1000001)
-28 (-7.61%) : 26390.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -38,8 +38,8 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
ldr w14, [x19, #0x60]
- cbnz w14, G_M29540_IG08
- cbz x1, G_M29540_IG09
+ cbnz w14, G_M29540_IG07
+ cbz x1, G_M29540_IG08
add x14, x1, #172
; byrRegs +[x14]
mov w15, #1
@@ -47,7 +47,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
mov w0, w12
casal w0, w15, [x14]
str w0, [fp, #0x24] // [V07 tmp3]
- cbnz w0, G_M29540_IG10
+ cbnz w0, G_M29540_IG09
mov w14, #7
; byrRegs -[x14]
str w14, [x1, #0x94]
@@ -59,21 +59,10 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=180
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x1, #0xBA]
- cbnz w0, G_M29540_IG04
+ cbz w0, G_M29540_IG04
;; size=68 bbWeight=1 PerfScore 19.50
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M29540_IG05
- b G_M29540_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -91,7 +80,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0-x1 x15]
; byrRegs -[x14]
;; size=36 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr x0, [fp, #0x18] // [V01 arg1]
@@ -106,17 +95,17 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0-x2 x19-x20]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 11.00
-G_M29540_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M29540_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG06: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -129,7 +118,7 @@ G_M29540_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -146,7 +135,7 @@ G_M29540_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG09: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V00 V01}
mov x0, x1
@@ -163,14 +152,14 @@ G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -186,7 +175,7 @@ G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_unix #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 32, PerfScore 50.00, instruction count 92, allocated bytes for code 368 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 340, prolog size 32, PerfScore 45.25, instruction count 85, allocated bytes for code 340 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,7 +186,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 80 (0x00050) Actual length = 320 (0x000140)
+ Function Length : 73 (0x00049) Actual length = 292 (0x000124)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -230,4 +219,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG05..G_M29540_IG06) handled by [G_M29540_IG11..END) (class: 1000001)
+EH#0: try [G_M29540_IG04..G_M29540_IG05) handled by [G_M29540_IG10..END) (class: 1000001)
-28 (-4.02%) : 17849.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -48,8 +48,8 @@ G_M38239_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M38239_IG02: ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x0]
ldr w1, [x0, #0x60]
- cbnz w1, G_M38239_IG14
- cbz x19, G_M38239_IG15
+ cbnz w1, G_M38239_IG13
+ cbz x19, G_M38239_IG14
ldr x1, [x19, #0x28]
; gcrRegs +[x1]
str x1, [fp, #0x28] // [V03 loc0]
@@ -60,7 +60,7 @@ G_M38239_IG03: ; bbWeight=0.50, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
; gcrRegs -[x1]
ldr x1, [fp, #0x28] // [V03 loc0]
; gcrRegs +[x1]
- cbz x1, G_M38239_IG16
+ cbz x1, G_M38239_IG15
add x1, fp, #40 // [V03 loc0]
; gcrRegs -[x1]
movz x2, #0xD1FFAB1E // code for System.Net.Sockets.Socket:Serialize(byref):System.Net.SocketAddress:this
@@ -86,7 +86,7 @@ G_M38239_IG04: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
mov w12, wzr
mov w1, w12
casal w1, w15, [x14]
- cbnz w1, G_M38239_IG17
+ cbnz w1, G_M38239_IG16
mov w14, #9
; byrRegs -[x14]
str w14, [x19, #0x94]
@@ -98,20 +98,9 @@ G_M38239_IG04: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
ldrb w1, [x19, #0xBA]
- cbnz w1, G_M38239_IG06
+ cbz w1, G_M38239_IG06
;; size=52 bbWeight=1 PerfScore 13.50
-G_M38239_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #2 LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- ldrb w1, [x1, #0x9D]
- ; gcrRegs -[x1]
- cbz w1, G_M38239_IG07
- b G_M38239_IG07
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M38239_IG06: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M38239_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
@@ -127,7 +116,7 @@ G_M38239_IG06: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M38239_IG07: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M38239_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0x20] // [V00 this]
; gcrRegs +[x0]
ldr x14, [x0, #0x10]
@@ -136,9 +125,9 @@ G_M38239_IG07: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x21]
str x21, [fp, #0x10] // [V04 loc1]
; GC ptr vars +{V04}
- cbnz x14, G_M38239_IG09
+ cbnz x14, G_M38239_IG08
;; size=20 bbWeight=1 PerfScore 7.50
-G_M38239_IG08: ; bbWeight=0.50, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG07: ; bbWeight=0.50, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x14]
add x14, x0, #16
; byrRegs +[x14]
@@ -148,7 +137,7 @@ G_M38239_IG08: ; bbWeight=0.50, gcVars=0000000000000083 {V00 V01 V04}, gc
; gcrRegs -[x15]
; byrRegs -[x14]
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M38239_IG09: ; bbWeight=1, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M38239_IG08: ; bbWeight=1, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref
ldr x1, [x0, #0x08]
; gcrRegs +[x1]
mov x0, x19
@@ -163,7 +152,7 @@ G_M38239_IG09: ; bbWeight=1, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs
; gcr arg pop 0
sxtw w20, w0
;; size=36 bbWeight=1 PerfScore 10.00
-G_M38239_IG10: ; bbWeight=1, gcVars=0000000000000082 {V00 V04}, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M38239_IG09: ; bbWeight=1, gcVars=0000000000000082 {V00 V04}, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x19]
; GC ptr vars -{V00 V01}
ldr x0, [fp, #0x20] // [V00 this]
@@ -176,9 +165,9 @@ G_M38239_IG10: ; bbWeight=1, gcVars=0000000000000082 {V00 V04}, gcrefRegs
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- cbnz w0, G_M38239_IG12
+ cbnz w0, G_M38239_IG11
;; size=32 bbWeight=1 PerfScore 9.00
-G_M38239_IG11: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M38239_IG10: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x20] // [V00 this]
; gcrRegs +[x0]
add x14, x0, #16
@@ -191,19 +180,19 @@ G_M38239_IG11: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
; byrRegs -[x14]
str xzr, [x0, #0x20]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M38239_IG12: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG11: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
; GC ptr vars -{V00}
cmp w20, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M38239_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M38239_IG12: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x48]
ldp x19, x20, [sp, #0x38]
ldp fp, lr, [sp], #0x50
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-G_M38239_IG14: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG13: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x0]
; GC ptr vars +{V00 V01}
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
@@ -216,7 +205,7 @@ G_M38239_IG14: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M38239_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38239_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -233,7 +222,7 @@ G_M38239_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M38239_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38239_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -298,7 +287,7 @@ G_M38239_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=156 bbWeight=0 PerfScore 0.00
-G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
; GC ptr vars +{V00 V01}
mov x0, x19
@@ -313,7 +302,7 @@ G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=800
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01 V04}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
@@ -321,7 +310,7 @@ G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcref
add x3, fp, #80
str x3, [sp, #0x10]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x20] // [V00 this]
; gcrRegs +[x0]
add x14, x0, #16
@@ -347,7 +336,7 @@ G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000083 {V00 V01 V04}, gcref
brk_unix #0
;; size=52 bbWeight=0 PerfScore 0.00
-; Total bytes of code 696, prolog size 40, PerfScore 86.25, instruction count 174, allocated bytes for code 696 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 668, prolog size 40, PerfScore 81.50, instruction count 167, allocated bytes for code 668 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -358,7 +347,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 156 (0x0009c) Actual length = 624 (0x000270)
+ Function Length : 149 (0x00095) Actual length = 596 (0x000254)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -393,4 +382,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M38239_IG09..G_M38239_IG10) handled by [G_M38239_IG18..END) (class: 1000001)
+EH#0: try [G_M38239_IG08..G_M38239_IG09) handled by [G_M38239_IG17..END) (class: 1000001)
-32 (-0.24%) : 21726.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T151] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T152] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T153] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T326] ( 3, 1.50) long -> x0 single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T326] ( 2, 1 ) long -> x0 single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T327] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -108,7 +108,7 @@
;* V97 tmp84 [V97 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V98 tmp85 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V99 tmp86 [V99 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V100 tmp87 [V100,T114] ( 3, 10 ) long -> x0 "Inline stloc first use temp"
+; V100 tmp87 [V100,T114] ( 2, 8 ) long -> x0 "Inline stloc first use temp"
;* V101 tmp88 [V101,T121] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V102 tmp89 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -513,7 +513,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x19]
- b G_M11467_IG260
+ b G_M11467_IG258
;; size=40 bbWeight=0.50 PerfScore 8.00
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x21]
@@ -568,13 +568,13 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs -[x0-x1]
ldr w0, [x24, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w25, w0
cmp w0, #0
ble G_M11467_IG44
ldr w0, [x24, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldrb w26, [x24, #0x10]
mov w0, #0xD1FFAB1E
cmp w26, w0
@@ -754,7 +754,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w4, [x26, w2, UXTW #2]
@@ -770,7 +770,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w4, w2, #1
@@ -787,7 +787,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w2, #2
@@ -803,7 +803,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
ldrh w2, [x26, w1, UXTW #2]
@@ -819,7 +819,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x4, #16
; byrRegs +[x26]
add w2, w1, #1
@@ -839,7 +839,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x26, x2, #16
; byrRegs +[x26]
add w2, w1, #2
@@ -847,18 +847,18 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=1380000 {x19 x20 x21 x24}, byre
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x26, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x26, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -882,7 +882,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
beq G_M11467_IG44
ldr w1, [x24, #0x08]
cmp w26, w1
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x1, x24, #16
; byrRegs +[x1]
ldrb w28, [x1, w26, UXTW #2]
@@ -1088,7 +1088,7 @@ G_M11467_IG37: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1104,7 +1104,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1121,7 +1121,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1137,7 +1137,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1153,7 +1153,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1173,7 +1173,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add x4, x2, #16
; byrRegs +[x4]
add w2, w1, #2
@@ -1181,18 +1181,18 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
ldrh w2, [x4, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #1
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG261
+ bhs G_M11467_IG259
add w2, w0, #2
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -1249,7 +1249,7 @@ G_M11467_IG45: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x2, [x23, #0x10]
blr x2
; gcrRegs -[x0-x1 x27]
- b G_M11467_IG91
+ b G_M11467_IG89
;; size=68 bbWeight=0.50 PerfScore 11.50
G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x27]
@@ -1265,34 +1265,28 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byre
; gcrRegs -[x0-x1]
ldr w0, [x27, #0x08]
cmp w0, #0
- blt G_M11467_IG262
+ blt G_M11467_IG260
sxtw w26, w0
cmp w0, #0
- ble G_M11467_IG90
+ ble G_M11467_IG88
ldr w0, [x27, #0x08]
cmp w0, #0
- bls G_M11467_IG261
+ bls G_M11467_IG259
ldr x24, [x27, #0x10]
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG47
- mov x1, #0xD1FFAB1E
- cmp x0, x1
- beq G_M11467_IG48
- b G_M11467_IG48
- ;; size=92 bbWeight=0.50 PerfScore 13.75
-G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref
+ cbnz x0, G_M11467_IG47
and x0, x24, #0xD1FFAB1E
orr x24, x0, #0xD1FFAB1E
- ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
+ ;; size=84 bbWeight=0.50 PerfScore 12.75
+G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
and x0, x24, #0xD1FFAB1E
- cbz x0, G_M11467_IG49
+ cbz x0, G_M11467_IG48
mov x1, #0xD1FFAB1E
cmp x0, x1
- bne G_M11467_IG49
- b G_M11467_IG51
...
+0 (0.00%) : 45799.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T10] ( 3, 17 ) int -> x1
-; V03 loc2 [V03,T08] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T08] ( 3, 17 ) int -> x1
+; V03 loc2 [V03,T06] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T07] ( 3, 24 ) ref -> x7 "V04.[008..016)"
-; V17 tmp11 [V17,T04] ( 8, 50.01) int -> x4 "V04.[016..020)"
+; V14 tmp8 [V14,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T05] ( 3, 24 ) ref -> x6 "V04.[008..016)"
+; V17 tmp11 [V17,T03] ( 8, 50.01) int -> x4 "V04.[016..020)"
; V18 tmp12 [V18,T02] ( 3, 66.01) int -> x5 "V04.[020..024)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M51974_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x48] // [V04 loc3+0x10], [V04 loc3+0x14]
- b G_M51974_IG04
+ b G_M51974_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,76 +52,74 @@ G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byre
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
-G_M51974_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M51974_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M51974_IG05: ; bbWeight=8, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x7]
- ldr w7, [x7, #0x1C]
- ; gcrRegs -[x7]
- cbnz w7, G_M51974_IG06
+ b G_M51974_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
+G_M51974_IG04: ; bbWeight=8, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x6]
+ ldr w6, [x6, #0x1C]
+ ; gcrRegs -[x6]
+ cbnz w6, G_M51974_IG05
add w1, w1, #1
;; size=12 bbWeight=8 PerfScore 36.00
-G_M51974_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M51974_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M51974_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M51974_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M51974_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M51974_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M51974_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M51974_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr x7, [x7, w4, UXTW #3]
- ; gcrRegs +[x7]
- ; byrRegs -[x7]
+ bhs G_M51974_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr x6, [x6, w4, UXTW #3]
+ ; gcrRegs +[x6]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M51974_IG09
+ mov w7, #1
+ b G_M51974_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M51974_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x7]
- add w4, w7, #1
- mov x7, xzr
- ; gcrRegs +[x7]
- mov w8, wzr
+G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x6]
+ add w4, w6, #1
+ mov x6, xzr
+ ; gcrRegs +[x6]
+ mov w7, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M51974_IG09: ; bbWeight=64, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M51974_IG05
+G_M51974_IG08: ; bbWeight=64, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M51974_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M51974_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3 x7]
+G_M51974_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x3 x6]
add w0, w0, #1
movz w3, #0xD1FFAB1E
movk w3, #15 LSL #16
cmp w0, w3
blt G_M51974_IG03
;; size=20 bbWeight=8 PerfScore 24.00
-G_M51974_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz w0, #0xD1FFAB1E
movk w0, #76 LSL #16
cmp w1, w0
cset x0, eq
;; size=16 bbWeight=1 PerfScore 2.00
-G_M51974_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M51974_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M51974_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M51974_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -132,7 +129,7 @@ G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 16, PerfScore 416.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 208, prolog size 16, PerfScore 578.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
+0 (0.00%) : 30620.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <PerfLabTests.LowLevelPerf>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
-; V02 loc1 [V02,T10] ( 2, 9 ) int -> x1
-; V03 loc2 [V03,T07] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
+; V02 loc1 [V02,T08] ( 2, 9 ) int -> x1
+; V03 loc2 [V03,T05] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[int]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x8)" P-INDEP
-; V13 tmp7 [V13,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
+; V13 tmp7 [V13,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "field V08._current (fldOffset=0x10)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 8, 50.01) int -> x4 "V04.[008..012)"
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T03] ( 8, 50.01) int -> x4 "V04.[008..012)"
; V17 tmp11 [V17,T02] ( 3, 66.01) int -> x5 "V04.[012..016)"
-; V18 tmp12 [V18,T08] ( 3, 24 ) int -> x7 "V04.[016..020)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V18 tmp12 [V18,T06] ( 3, 24 ) int -> x6 "V04.[016..020)"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M6486_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, by
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x40] // [V04 loc3+0x08], [V04 loc3+0x0c]
- b G_M6486_IG04
+ b G_M6486_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,45 +52,43 @@ G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
+ b G_M6486_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
G_M6486_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M6486_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M6486_IG05: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- sxtw w1, w7
+ sxtw w1, w6
;; size=4 bbWeight=8 PerfScore 4.00
-G_M6486_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M6486_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M6486_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M6486_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M6486_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M6486_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M6486_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr w7, [x7, w4, UXTW #2]
- ; byrRegs -[x7]
+ bhs G_M6486_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr w6, [x6, w4, UXTW #2]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M6486_IG09
+ mov w7, #1
+ b G_M6486_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M6486_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- add w4, w7, #1
+G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ add w4, w6, #1
+ mov w6, wzr
mov w7, wzr
- mov w8, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M6486_IG09: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M6486_IG05
+G_M6486_IG08: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M6486_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x3]
add w0, w0, #1
movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field>
@@ -101,20 +98,20 @@ G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
cmp w0, w4
blt G_M6486_IG03
;; size=28 bbWeight=8 PerfScore 52.00
-G_M6486_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
mov w0, w1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M6486_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M6486_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M6486_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M6486_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -124,7 +121,7 @@ G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 16, PerfScore 411.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
+; Total bytes of code 196, prolog size 16, PerfScore 573.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
; ============================================================
Unwind Info:
coreclr_tests.run.osx.arm64.checked.mch
-44 (-55.00%) : 520268.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 5, 4 ) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 4 ) float -> d0 "Single return block return value"
+; V02 tmp1 [V02,T00] ( 2, 4 ) float -> d0 "Single return block return value"
;
; Lcl frame size = 0
@@ -18,34 +18,19 @@ G_M53791_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- ble G_M53791_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53791_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- b G_M53791_IG05
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- blo G_M53791_IG03
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53791_IG03
- b G_M53791_IG03
- ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M53791_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-28 (-43.75%) : 516220.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+; V00 loc0 [V00,T00] ( 2, 2 ) float -> d0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,28 +19,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -51,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
-28 (-43.75%) : 520216.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
@@ -17,28 +17,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -49,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
+12 (+6.25%) : 397349.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -15,14 +15,14 @@
;* V04 loc4 [V04 ] ( 0, 0 ) ubyte -> zero-ref
; V05 loc5 [V05,T01] ( 4, 4 ) ref -> x19 class-hnd exact single-def <testout1>
;* V06 loc6 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V07 loc7 [V07,T04] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V07 loc7 [V07,T03] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
; V08 loc8 [V08,T00] ( 5, 5 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <testout1>
;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref single-def
+;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref single-def
@@ -31,60 +31,60 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-;* V23 tmp14 [V23,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V23 tmp14 [V23,T20] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp17 [V26,T08] ( 2, 2 ) int -> x1 single-def
+; V26 tmp17 [V26,T09] ( 2, 2 ) int -> x2 single-def
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp20 [V29,T09] ( 2, 2 ) int -> x1 single-def
+; V29 tmp20 [V29,T10] ( 2, 2 ) int -> x2 single-def
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp23 [V32,T10] ( 2, 2 ) int -> x1 single-def
+; V32 tmp23 [V32,T11] ( 2, 2 ) int -> x2 single-def
;* V33 tmp24 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp26 [V35,T11] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp26 [V35,T12] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref
-; V38 tmp29 [V38,T12] ( 2, 2 ) int -> x0 single-def
+;* V38 tmp29 [V38,T13] ( 0, 0 ) int -> zero-ref single-def
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp32 [V41,T13] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp35 [V44,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V44 tmp35 [V44,T21] ( 0, 0 ) int -> zero-ref single-def
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp38 [V47,T14] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp38 [V47,T14] ( 2, 2 ) int -> x2 single-def
;* V48 tmp39 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp41 [V50,T15] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp41 [V50,T15] ( 2, 2 ) int -> x1 single-def
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp44 [V53,T16] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp44 [V53,T16] ( 2, 2 ) int -> x1 single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp47 [V56,T23] ( 0, 0 ) int -> zero-ref single-def
+; V56 tmp47 [V56,T17] ( 2, 2 ) int -> x1 single-def
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp50 [V59,T17] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp50 [V59,T18] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp53 [V62,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp53 [V62,T19] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp56 [V65,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp56 [V65,T22] ( 0, 0 ) int -> zero-ref single-def
;* V66 tmp57 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp58 [V67 ] ( 0, 0 ) int -> zero-ref
-;* V68 tmp59 [V68,T24] ( 0, 0 ) int -> zero-ref single-def
+;* V68 tmp59 [V68 ] ( 0, 0 ) int -> zero-ref
;* V69 tmp60 [V69 ] ( 0, 0 ) int -> zero-ref
;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 cse0 [V71,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V72 cse1 [V72,T20] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V73 cse2 [V73,T02] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V74 cse3 [V74,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V75 cse4 [V75,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V76 cse5 [V76,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V71 cse0 [V71,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V72 cse1 [V72,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V73 cse2 [V73,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V74 cse3 [V74,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V75 cse4 [V75,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V76 cse5 [V76,T02] ( 3, 3 ) long -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -136,21 +136,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -161,7 +164,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+12 (+6.25%) : 397766.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref
-;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref single-def
+;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref single-def
@@ -28,61 +28,61 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref
-;* V20 tmp15 [V20,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V20 tmp15 [V20,T21] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp18 [V23,T09] ( 2, 2 ) int -> x1 single-def
+; V23 tmp18 [V23,T10] ( 2, 2 ) int -> x2 single-def
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp21 [V26,T10] ( 2, 2 ) int -> x1 single-def
+; V26 tmp21 [V26,T11] ( 2, 2 ) int -> x2 single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp24 [V29,T11] ( 2, 2 ) int -> x1 single-def
+; V29 tmp24 [V29,T12] ( 2, 2 ) int -> x2 single-def
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp27 [V32,T12] ( 2, 2 ) int -> x0 single-def
+;* V32 tmp27 [V32,T13] ( 0, 0 ) int -> zero-ref single-def
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp30 [V35,T13] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp30 [V35,T14] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref
-;* V38 tmp33 [V38,T14] ( 0, 0 ) int -> zero-ref single-def
+;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp36 [V41,T23] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp36 [V41,T22] ( 0, 0 ) int -> zero-ref single-def
;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp39 [V44,T15] ( 0, 0 ) int -> zero-ref single-def
+; V44 tmp39 [V44,T15] ( 2, 2 ) int -> x2 single-def
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp42 [V47,T16] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp42 [V47,T16] ( 2, 2 ) int -> x1 single-def
;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp45 [V50,T17] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp45 [V50,T17] ( 2, 2 ) int -> x1 single-def
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp48 [V53,T24] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp48 [V53,T18] ( 2, 2 ) int -> x1 single-def
;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp51 [V56,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V56 tmp51 [V56,T19] ( 0, 0 ) int -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp54 [V59,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp54 [V59,T20] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp57 [V62,T20] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp57 [V62,T23] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp60 [V65,T25] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref
-; V68 cse0 [V68,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V69 cse1 [V69,T21] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V70 cse2 [V70,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V71 cse3 [V71,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V72 cse4 [V72,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V73 cse5 [V73,T04] ( 3, 3 ) long -> x1 "CSE - aggressive"
-; V74 cse6 [V74,T08] ( 2, 2 ) long -> x0 "CSE - aggressive"
+; V68 cse0 [V68,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V69 cse1 [V69,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V70 cse2 [V70,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V71 cse3 [V71,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V72 cse4 [V72,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V73 cse5 [V73,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V74 cse6 [V74,T09] ( 2, 2 ) long -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -134,21 +134,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -159,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 525828.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
@@ -33,8 +33,11 @@ G_M15390_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
+G_M15390_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ brk_unix #0
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 15, allocated bytes for code 60 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +48,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.crossgen2.osx.arm64.checked.mch
-32 (-12.70%) : 220847.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w11, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w11, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -97,23 +97,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
ldr x1, [x1]
blr x1
; gcrRegs -[x0 x21]
- ;; size=68 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w11, w19, #0xD1FFAB1E
- cmp w11, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w11, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w11, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_unix #0
+ ;; size=72 bbWeight=0 PerfScore 0.00
-; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -124,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 55 (0x00037) Actual length = 220 (0x0000dc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-11.48%) : 67972.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
; V01 arg1 [V01,T01] ( 4, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
; V02 loc0 [V02,T03] ( 4, 2 ) ref -> x0 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V03 loc1 [V03,T05] ( 3, 1.50) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,22 +41,10 @@ G_M26195_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
mov x21, x0
; gcrRegs +[x21]
- cbnz x21, G_M26195_IG04
+ cbz x21, G_M26195_IG05
;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0 x21]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x11]
- blr x1
- ; gcr arg pop 0
- cbnz x0, G_M26195_IG06
- b G_M26195_IG06
- ;; size=28 bbWeight=0.50 PerfScore 3.75
-G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x21]
+G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x21, #0x18]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -64,11 +52,11 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
ldr x11, [x0, #0x18]
; gcrRegs +[x11]
ldr x11, [x11, #0x20]
- cbnz x11, G_M26195_IG06
+ cbnz x11, G_M26195_IG05
ldr x22, [x0, #0x20]
; gcrRegs +[x22]
mov x0, x22
@@ -79,7 +67,7 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
mov x0, x22
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -96,14 +84,14 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr wzr, [x0]
ldr x2, [x11]
;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
br x2
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x21] +[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -113,7 +101,7 @@ G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
@@ -121,7 +109,7 @@ G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
; ============================================================
Unwind Info:
@@ -132,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-9.86%) : 40042.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 2.50) ref -> x0 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-; V01 arg1 [V01,T00] ( 9, 6 ) int -> x19 single-def
+; V01 arg1 [V01,T00] ( 7, 6 ) int -> x19 single-def
; V02 arg2 [V02,T01] ( 7, 4.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V03 arg3 [V03,T02] ( 4, 3 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -41,27 +41,16 @@ G_M9442_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
; gcrRegs +[x21]
;; size=52 bbWeight=1 PerfScore 10.00
G_M9442_IG02: ; bbWeight=1, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x0]
- mov w11, #0xD1FFAB1E
- cmp w19, w11
- bgt G_M9442_IG04
- ;; size=12 bbWeight=1 PerfScore 2.00
-G_M9442_IG03: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- mov w0, #0xD1FFAB1E
- mov w11, #0xD1FFAB1E
- cmp w19, w0
- ccmp w19, w11, z, ne
- beq G_M9442_IG06
- b G_M9442_IG06
- ;; size=24 bbWeight=0.50 PerfScore 2.00
-G_M9442_IG04: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w11, #0xD1FFAB1E
mov w1, #0xD1FFAB1E
+ mov w2, #0xD1FFAB1E
cmp w19, w11
ccmp w19, w1, z, ne
- bne G_M9442_IG06
+ ccmp w19, w2, nzc, eq
+ ble G_M9442_IG05
+ ;; size=28 bbWeight=1 PerfScore 4.00
+G_M9442_IG03: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
ldr x0, [x0, #0x08]
ldr x0, [x0, #0x08]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -85,14 +74,14 @@ G_M9442_IG04: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0
ldr x2, [x11]
blr x2
; gcrRegs -[x0 x20-x21]
- ;; size=108 bbWeight=0.50 PerfScore 16.25
-G_M9442_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=88 bbWeight=0.50 PerfScore 14.75
+G_M9442_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x98]
ldp x19, x20, [sp, #0x88]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M9442_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M9442_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20-x21]
mov w1, #23
orr w1, w19, w1
@@ -111,14 +100,14 @@ G_M9442_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=3000
blr x2
; gcrRegs -[x0 x20-x21]
;; size=56 bbWeight=0.50 PerfScore 7.50
-G_M9442_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M9442_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x98]
ldp x19, x20, [sp, #0x88]
ldp fp, lr, [sp], #0xA0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 284, prolog size 40, PerfScore 42.75, instruction count 71, allocated bytes for code 284 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
+; Total bytes of code 256, prolog size 40, PerfScore 41.25, instruction count 64, allocated bytes for code 256 (MethodHash=8378db1d) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
+ Function Length : 64 (0x00040) Actual length = 256 (0x000100)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 38691.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -25,20 +25,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35943_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov w11, #0xD1FFAB1E
cmp w0, w11
- beq G_M35943_IG05
+ bne G_M35943_IG05
;; size=12 bbWeight=1 PerfScore 2.00
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, xzr
- ; gcrRegs +[x0]
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x20
- ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x19]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -60,13 +49,23 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
mov x0, x20
; gcrRegs +[x0]
;; size=64 bbWeight=0.50 PerfScore 8.75
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
+ ret lr
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x20]
+ mov x0, xzr
+ ; gcrRegs +[x0]
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x20]
+ ; gcrRegs -[x0]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // function address
add x0, x0, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x0]
+0 (0.00%) : 152391.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -47,7 +47,7 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M57654_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w0
adr x11, [@RWD00]
ldr w11, [x11, x0, LSL #2]
@@ -78,7 +78,7 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w23
adr x11, [@RWD44]
ldr w11, [x11, x0, LSL #2]
@@ -86,22 +86,10 @@ G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x11, x11, x1
br x11
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M57654_IG07: ; 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_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M57654_IG12
+ beq G_M57654_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -111,7 +99,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M57654_IG12
+ cbz w0, G_M57654_IG10
mov w2, w20
mov x0, x21
; gcrRegs +[x0]
@@ -122,12 +110,12 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M57654_IG06
+ cbz w20, G_M57654_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M57654_IG10
+ cbnz w0, G_M57654_IG08
ldr x23, [x19, #0x38]
; gcrRegs +[x23]
- cbz x23, G_M57654_IG09
+ cbz x23, G_M57654_IG07
mov x0, x23
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -135,7 +123,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M57654_IG09
+ cbz x0, G_M57654_IG07
mov x0, x23
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -144,9 +132,9 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0 x23]
; gcr arg pop 0
- b G_M57654_IG10
+ b G_M57654_IG08
;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -164,7 +152,7 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x3, [x19, #0x40]
; gcrRegs +[x3]
@@ -172,7 +160,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w3, [x3, #0x08]
; gcrRegs -[x3]
cmp w0, w3
- beq G_M57654_IG06
+ beq G_M57654_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov w3, w20
@@ -214,7 +202,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr wzr, [x0]
ldr x1, [x11]
;; size=140 bbWeight=0.50 PerfScore 32.00
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -222,7 +210,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -235,7 +223,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr wzr, [x0]
ldr x4, [x11]
;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -243,12 +231,12 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #10
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov w3, w20
@@ -263,7 +251,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M57654_IG16
+ cbnz w23, G_M57654_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -275,9 +263,19 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 10.50
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M57654_IG15: ; 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_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -343,20 +341,20 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
; Total bytes of code 808, prolog size 36, PerfScore 123.00, instruction count 202, allocated bytes for code 808 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+0 (0.00%) : 159392.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (FullOpts)
@@ -16,8 +16,8 @@
; V04 arg4 [V04,T04] ( 3, 2.50) int -> x22 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String[]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x19 class-hnd single-def "finalizable newobj spill" <System.String>
+; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x21 class-hnd single-def "finalizable newobj spill" <System.String>
; V09 tmp3 [V09,T06] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;
; Lcl frame size = 8
@@ -36,9 +36,47 @@ G_M21875_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=36 bbWeight=1 PerfScore 6.50
G_M21875_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M21875_IG05
+ cbnz w2, G_M21875_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov x1, x20
+ ; gcrRegs +[x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x1 x19-x20]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ ; gcrRegs -[x0]
+ blr x0
+ ; gcrRegs +[x0]
+ mov x19, x0
+ ; gcrRegs +[x19]
+ mov x1, x21
+ ; gcrRegs +[x1]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0-x1 x21]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
+G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0] +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -64,44 +102,6 @@ G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=64 bbWeight=0.50 PerfScore 7.00
-G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- mov x1, x20
- ; gcrRegs +[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x1 x19-x20]
- mov x19, x0
- ; gcrRegs +[x19]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M21875_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
libraries.pmi.osx.arm64.checked.mch
-32 (-13.33%) : 311086.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w0, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w0, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -93,23 +93,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
; gcrRegs -[x0 x21]
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w0, w19, #0xD1FFAB1E
- cmp w0, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w0, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w0, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_unix #0
+ ;; size=64 bbWeight=0 PerfScore 0.00
-; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -120,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ 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)
-12 (-12.00%) : 9101.dasm - System.SpanHelpers:LastIndexOfAnyInRangelong:int (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T06] ( 3, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T03] ( 4, 8 ) long -> x1 ld-addr-op single-def
-; V02 arg2 [V02,T05] ( 4, 6 ) long -> x2 ld-addr-op single-def
+; V02 arg2 [V02,T05] ( 3, 4 ) long -> x2 ld-addr-op single-def
; V03 arg3 [V03,T10] ( 3, 3 ) int -> x3 single-def
; V04 loc0 [V04,T01] ( 7, 18.50) int -> x3
; V05 loc1 [V05,T07] ( 2, 8 ) byref -> x4
@@ -18,7 +18,7 @@
;* V07 tmp1 [V07,T08] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V08 tmp2 [V08,T00] ( 3, 20 ) long -> x5 "Inlining Arg"
;* V09 tmp3 [V09,T09] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V10 tmp4 [V10,T02] ( 3, 12 ) long -> x4 "Inlining Arg"
+; V10 tmp4 [V10,T02] ( 2, 8 ) long -> x4 "Inlining Arg"
; V11 cse0 [V11,T04] ( 3, 10 ) long -> x4 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -48,11 +48,8 @@ G_M64784_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
;; size=8 bbWeight=2 PerfScore 3.00
G_M64784_IG05: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
cmp x2, x4
- blt G_M64784_IG06
- cmp x2, x4
- ble G_M64784_IG09
- b G_M64784_IG09
- ;; size=20 bbWeight=2 PerfScore 8.00
+ bge G_M64784_IG09
+ ;; size=8 bbWeight=2 PerfScore 3.00
G_M64784_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
sub w3, w3, #1
tbz w3, #31, G_M64784_IG03
@@ -73,7 +70,7 @@ G_M64784_IG10: ; 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 48.50, instruction count 25, allocated bytes for code 100 (MethodHash=eef202ef) for method System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 43.50, instruction count 22, allocated bytes for code 88 (MethodHash=eef202ef) for method System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -84,7 +81,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 22 (0x00016) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-12.00%) : 9099.dasm - System.SpanHelpers:LastIndexOfAnyInRangeint:int (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T06] ( 3, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T03] ( 4, 8 ) int -> x1 ld-addr-op single-def
-; V02 arg2 [V02,T05] ( 4, 6 ) int -> x2 ld-addr-op single-def
+; V02 arg2 [V02,T05] ( 3, 4 ) int -> x2 ld-addr-op single-def
; V03 arg3 [V03,T10] ( 3, 3 ) int -> x3 single-def
; V04 loc0 [V04,T01] ( 7, 18.50) int -> x3
; V05 loc1 [V05,T07] ( 2, 8 ) byref -> x4
@@ -18,7 +18,7 @@
;* V07 tmp1 [V07,T08] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V08 tmp2 [V08,T00] ( 3, 20 ) int -> x5 "Inlining Arg"
;* V09 tmp3 [V09,T09] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V10 tmp4 [V10,T02] ( 3, 12 ) int -> x4 "Inlining Arg"
+; V10 tmp4 [V10,T02] ( 2, 8 ) int -> x4 "Inlining Arg"
; V11 cse0 [V11,T04] ( 3, 10 ) int -> x4 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -48,11 +48,8 @@ G_M37321_IG04: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
;; size=8 bbWeight=2 PerfScore 3.00
G_M37321_IG05: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
cmp w2, w4
- blt G_M37321_IG06
- cmp w2, w4
- ble G_M37321_IG09
- b G_M37321_IG09
- ;; size=20 bbWeight=2 PerfScore 8.00
+ bge G_M37321_IG09
+ ;; size=8 bbWeight=2 PerfScore 3.00
G_M37321_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
sub w3, w3, #1
tbz w3, #31, G_M37321_IG03
@@ -73,7 +70,7 @@ G_M37321_IG10: ; 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 48.50, instruction count 25, allocated bytes for code 100 (MethodHash=fbeb6e36) for method System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 43.50, instruction count 22, allocated bytes for code 88 (MethodHash=fbeb6e36) for method System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -84,7 +81,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 22 (0x00016) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 3856.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanOrEqualdouble (FullOpts)
+0 (0.00%) : 154856.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
@@ -14,7 +14,7 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V04 tmp2 [V04 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V06 tmp4 [V06,T01] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -27,7 +27,7 @@ G_M32950_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldp x0, x1, [x0, #0x50]
; gcrRegs -[x0]
ldrsh wzr, [x1, #0x0C]
- ldrh w0, [x0, #0x04]
+ ldrsh wzr, [x0, #0x04]
;; size=12 bbWeight=1 PerfScore 10.00
G_M32950_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
+0 (0.00%) : 275868.dasm - System.IO.Ports.SerialPort:set_ParityReplace(ubyte):this (FullOpts)
@@ -29,7 +29,7 @@ G_M28490_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
cbz x2, G_M28490_IG04
;; size=8 bbWeight=1 PerfScore 4.00
G_M28490_IG03: ; bbWeight=0.50, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref
- ldr x2, [x2, #0x20]
+ ldr xzr, [x2, #0x20]
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M28490_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
libraries_tests.run.osx.arm64.Release.mch
-20 (-21.74%) : 62943.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.13) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,13 +25,13 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs +[x0-x1]
ldr x14, [x0, #0x18]
; gcrRegs +[x14]
- cbnz x14, G_M46606_IG06
- ldapur w2, [x1, #0x34]
- tbnz w2, #21, G_M46606_IG03
- tbnz w2, #22, G_M46606_IG03
- tbz w2, #24, G_M46606_IG05
- add x14, x0, #24
+ cbnz x14, G_M46606_IG05
+ ldapur w14, [x1, #0x34]
; gcrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG03
+ tbnz w14, #22, G_M46606_IG03
+ tbz w14, #24, G_M46606_IG03
+ add x14, x0, #24
; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
@@ -49,24 +49,16 @@ G_M46606_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M46606_IG03
- tbnz w2, #17, G_M46606_IG03
- tbnz w2, #16, G_M46606_IG03
- tbz w2, #25, G_M46606_IG03
- b G_M46606_IG03
- ;; size=20 bbWeight=0.03 PerfScore 0.17
-G_M46606_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1] +[x0]
+G_M46606_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x1]
ldr x0, [x0, #0x18]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 8, PerfScore 17.17, instruction count 23, allocated bytes for code 92 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 17.00, instruction count 18, allocated bytes for code 72 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -77,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 18 (0x00012) Actual length = 72 (0x000048)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-21.74%) : 159343.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4 ) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -26,12 +26,12 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
ldr x14, [x0, #0x18]
; gcrRegs +[x14]
cbnz x14, G_M46606_IG05
- ldapur w2, [x1, #0x34]
- tbnz w2, #21, G_M46606_IG03
- tbnz w2, #22, G_M46606_IG03
- tbz w2, #24, G_M46606_IG07
- add x14, x0, #24
+ ldapur w14, [x1, #0x34]
; gcrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG03
+ tbnz w14, #22, G_M46606_IG03
+ tbz w14, #24, G_M46606_IG03
+ add x14, x0, #24
; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
@@ -57,16 +57,8 @@ G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-G_M46606_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x1]
- tbnz w2, #23, G_M46606_IG03
- tbnz w2, #17, G_M46606_IG03
- tbnz w2, #16, G_M46606_IG03
- tbz w2, #25, G_M46606_IG03
- b G_M46606_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 8, PerfScore 17.00, instruction count 23, allocated bytes for code 92 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 17.00, instruction count 18, allocated bytes for code 72 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -77,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 18 (0x00012) Actual length = 72 (0x000048)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-21.74%) : 55868.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 6, 4.66) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 3.66) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T03] ( 8, 2.29) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 4, 2.22) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T04] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V05 cse0 [V05,T02] ( 3, 2.45) ref -> x14 "CSE - aggressive"
;
@@ -39,10 +39,10 @@ G_M21386_IG04: ; bbWeight=0.45, epilog, nogc, extend
;; size=8 bbWeight=0.45 PerfScore 0.89
G_M21386_IG05: ; bbWeight=0.55, gcVars=0000000000000000 {}, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x14] +[x1]
- ldapur w2, [x1, #0x34]
- tbnz w2, #21, G_M21386_IG06
- tbnz w2, #22, G_M21386_IG06
- tbz w2, #24, G_M21386_IG08
+ ldapur w14, [x1, #0x34]
+ tbnz w14, #21, G_M21386_IG06
+ tbnz w14, #22, G_M21386_IG06
+ tbz w14, #24, G_M21386_IG06
add x14, x0, #24
; byrRegs +[x14]
mov x15, x1
@@ -61,16 +61,8 @@ G_M21386_IG07: ; bbWeight=0.55, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.55 PerfScore 1.11
-G_M21386_IG08: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M21386_IG06
- tbnz w2, #17, G_M21386_IG06
- tbnz w2, #16, G_M21386_IG06
- tbz w2, #25, G_M21386_IG06
- b G_M21386_IG06
- ;; size=20 bbWeight=0.02 PerfScore 0.09
-; Total bytes of code 92, prolog size 8, PerfScore 13.08, instruction count 23, allocated bytes for code 92 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 12.99, instruction count 18, allocated bytes for code 72 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
; ============================================================
Unwind Info:
@@ -81,7 +73,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 18 (0x00012) Actual length = 72 (0x000048)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.16%) : 186890.dasm - System.Collections.Generic.HashSet1[ulong]:UnionWith(System.Collections.Generic.IEnumerable1[ulong]):this (Tier1-OSR)
@@ -12,7 +12,7 @@
;
; V00 this [V00,T10] ( 4, 100.80) ref -> x19 this class-hnd single-def <System.Collections.Generic.HashSet`1[ulong]>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IEnumerable`1[ulong]>
-; V02 loc0 [V02,T08] ( 16, 204.62) ref -> [fp+0xB0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[ulong]>
+; V02 loc0 [V02,T08] ( 16, 205.08) ref -> [fp+0xB0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[ulong]>
;* V03 loc1 [V03 ] ( 0, 0 ) long -> zero-ref
; V04 loc2 [V04 ] ( 3, 99.80) int -> [fp+0xA0] do-not-enreg[X] addr-exposed ld-addr-op tier0-frame
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,53 +23,51 @@
; V10 tmp5 [V10,T03] ( 5, 200 ) int -> x4 "guarded devirt return temp"
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
-;* V13 tmp8 [V13,T14] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V15 tmp10 [V15,T00] ( 18,1798.64) byref -> x20 "Inlining Arg"
+; V15 tmp10 [V15,T00] ( 18,1798.64) byref -> x21 "Inlining Arg"
; V16 tmp11 [V16,T02] ( 8, 398.64) int -> x3 "Inline stloc first use temp"
-; V17 tmp12 [V17,T01] ( 6, 597.96) ref -> x21 class-hnd exact "impAppendStmt" <<unknown class>>
-; V18 tmp13 [V18,T04] ( 6, 298.98) byref -> x22 "Inline stloc first use temp"
+; V17 tmp12 [V17,T01] ( 6, 597.96) ref -> x22 class-hnd exact "impAppendStmt" <<unknown class>>
+; V18 tmp13 [V18,T04] ( 6, 298.98) byref -> x23 "Inline stloc first use temp"
;* V19 tmp14 [V19 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V20 PSPSym [V20,T15] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V20 PSPSym [V20,T15] ( 1, 1 ) long -> [fp+0x10] do-not-enreg[V] "PSPSym"
; V21 cse0 [V21,T05] ( 3, 297 ) int -> x0 "CSE - aggressive"
-; V22 cse1 [V22,T11] ( 3, 3.00) int -> x0 "CSE - aggressive"
+; V22 cse1 [V22,T12] ( 3, 3.00) int -> x0 "CSE - aggressive"
; V23 cse2 [V23,T07] ( 3, 296.66) int -> x3 "CSE - aggressive"
-; V24 cse3 [V24,T13] ( 3, 3.00) int -> x3 "CSE - aggressive"
+; V24 cse3 [V24,T14] ( 3, 3.00) int -> x3 "CSE - aggressive"
; V25 cse4 [V25,T06] ( 3, 296.66) ref -> x2 "CSE - aggressive"
-; V26 cse5 [V26,T12] ( 3, 3.00) ref -> x2 "CSE - aggressive"
+; V26 cse5 [V26,T11] ( 10, 7.78) long -> x20 hoist multi-def "CSE - aggressive"
+; V27 cse6 [V27,T13] ( 3, 3.00) ref -> x2 "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M38939_IG01: ; bbWeight=1.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
add xip1, sp, #208
- str xip1, [fp, #0x18] // [V20 PSPSym]
+ str xip1, [fp, #0x10] // [V20 PSPSym]
ldr x19, [fp, #0xC0]
; gcrRegs +[x19]
- ;; size=28 bbWeight=1.20 PerfScore 8.41
+ ;; size=32 bbWeight=1.20 PerfScore 9.61
G_M38939_IG02: ; bbWeight=1.20, gcVars=0000000000000100 {V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V02 V08}
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
- cbz x2, G_M38939_IG10
- ;; size=8 bbWeight=1.20 PerfScore 3.60
-G_M38939_IG03: ; bbWeight=0.75, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x2]
+ cbz x2, G_M38939_IG09
ldr x2, [fp, #0xB0] // [V02 loc0]
- ; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- cmp x2, x0
- bne G_M38939_IG10
- b G_M38939_IG05
- ;; size=32 bbWeight=0.75 PerfScore 6.71
-G_M38939_IG04: ; bbWeight=97.81, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #1 LSL #32
+ cmp x2, x20
+ bne G_M38939_IG09
+ b G_M38939_IG04
+ ;; size=40 bbWeight=1.20 PerfScore 14.41
+G_M38939_IG03: ; bbWeight=97.81, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x1, [x2, #0x10]
@@ -85,90 +83,93 @@ G_M38939_IG04: ; bbWeight=97.81, gcrefRegs=80000 {x19}, byrefRegs=0000 {}
; gcrRegs -[x0]
; gcr arg pop 0
;; size=36 bbWeight=97.81 PerfScore 1124.82
-G_M38939_IG05: ; bbWeight=99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M38939_IG04: ; bbWeight=99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
- add x20, x2, #8
- ; byrRegs +[x20]
- ldr w2, [x20, #0x10]
+ add x21, x2, #8
+ ; byrRegs +[x21]
+ ldr w2, [x21, #0x10]
; gcrRegs -[x2]
- ldr x0, [x20]
+ ldr x0, [x21]
; gcrRegs +[x0]
ldr w0, [x0, #0x34]
; gcrRegs -[x0]
cmp w2, w0
- bne G_M38939_IG18
+ bne G_M38939_IG17
;; size=28 bbWeight=99 PerfScore 1287.00
-G_M38939_IG06: ; bbWeight=99, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- ldr w3, [x20, #0x14]
- ldr x2, [x20]
+G_M38939_IG05: ; bbWeight=99, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+ ldr w3, [x21, #0x14]
+ ldr x2, [x21]
; gcrRegs +[x2]
ldr w0, [x2, #0x28]
cmp w3, w0
- blo G_M38939_IG08
+ blo G_M38939_IG07
add w2, w0, #1
; gcrRegs -[x2]
- str w2, [x20, #0x14]
- str xzr, [x20, #0x08]
+ str w2, [x21, #0x14]
+ str xzr, [x21, #0x08]
mov w4, wzr
- cbnz w4, G_M38939_IG04
+ cbnz w4, G_M38939_IG03
;; size=40 bbWeight=99 PerfScore 1435.50
-G_M38939_IG07: ; bbWeight=1.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38939_IG06: ; bbWeight=1.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
- ; byrRegs -[x20]
- b G_M38939_IG20
+ ; byrRegs -[x21]
+ b G_M38939_IG19
;; size=4 bbWeight=1.19 PerfScore 1.19
-G_M38939_IG08: ; bbWeight=98.66, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x20}, byref, isz
+G_M38939_IG07: ; bbWeight=98.66, gcrefRegs=80004 {x2 x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs +[x2 x19]
- ; byrRegs +[x20]
- ldr x21, [x2, #0x10]
- ; gcrRegs +[x21]
+ ; byrRegs +[x21]
+ ldr x22, [x2, #0x10]
+ ; gcrRegs +[x22]
add w0, w3, #1
- str w0, [x20, #0x14]
- ldr w2, [x21, #0x08]
+ str w0, [x21, #0x14]
+ ldr w2, [x22, #0x08]
; gcrRegs -[x2]
cmp w3, w2
- bhs G_M38939_IG09
+ bhs G_M38939_IG08
ubfiz x2, x3, #4, #32
add x2, x2, #16
- add x22, x21, x2
- ; byrRegs +[x22]
- ldr w2, [x22, #0x04]
+ add x23, x22, x2
+ ; byrRegs +[x23]
+ ldr w2, [x23, #0x04]
cmn w2, #1
- blt G_M38939_IG06
- ldr x0, [x22, #0x08]
- str x0, [x20, #0x08]
- b G_M38939_IG04
+ blt G_M38939_IG05
+ ldr x0, [x23, #0x08]
+ str x0, [x21, #0x08]
+ b G_M38939_IG03
;; size=60 bbWeight=98.66 PerfScore 2022.59
-G_M38939_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- ; byrRegs -[x20 x22]
+G_M38939_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19 x22]
+ ; byrRegs -[x21 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M38939_IG10: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M38939_IG09: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr xzr, [x2]
- b G_M38939_IG13
- ;; size=12 bbWeight=0.01 PerfScore 0.04
-G_M38939_IG11: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #1 LSL #32
+ b G_M38939_IG12
+ ;; size=24 bbWeight=0.01 PerfScore 0.09
+G_M38939_IG10: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x2]
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- cmp x2, x0
- bne G_M38939_IG19
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #1 LSL #32
+ cmp x2, x20
+ bne G_M38939_IG18
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x1, [x2, #0x10]
;; size=36 bbWeight=0.99 PerfScore 12.84
-G_M38939_IG12: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M38939_IG11: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
add x2, fp, #160 // [V04 loc2]
mov x0, x19
@@ -181,72 +182,69 @@ G_M38939_IG12: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcrRegs -[x0]
; gcr arg pop 0
;; size=28 bbWeight=0.99 PerfScore 6.42
-G_M38939_IG13: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M38939_IG12: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- cmp x2, x0
- bne G_M38939_IG17
+ cmp x2, x20
+ bne G_M38939_IG16
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
- add x20, x2, #8
- ; byrRegs +[x20]
- ldr w2, [x20, #0x10]
+ add x21, x2, #8
+ ; byrRegs +[x21]
+ ldr w2, [x21, #0x10]
; gcrRegs -[x2]
...
+40 (+3.83%) : 603973.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArraySystem.Collections.Generic.KeyValuePair2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]:System.Collections.Immutable.ImmutableArray1[System.ValueTuple2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
@@ -11,12 +11,12 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V01 arg1 [V01,T24] ( 7, 2.99) ref -> x19 class-hnd single-def <System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V01 arg1 [V01,T21] ( 7, 10.49) ref -> x19 class-hnd single-def <System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
; V02 loc0 [V02,T20] ( 3, 100.00) ref -> x20 class-hnd exact <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V03 loc1 [V03,T19] ( 12, 105.74) ref -> [fp+0x188] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V03 loc1 [V03,T19] ( 14, 114.22) ref -> [fp+0x188] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
; V04 loc2 [V04 ] ( 10, 384.93) struct (24) [fp+0x170] do-not-enreg[XS] addr-exposed tier0-frame <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T30] ( 4, 0 ) struct (24) [fp+0x40] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
+; V06 tmp1 [V06,T27] ( 4, 0 ) struct (24) [fp+0x40] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
@@ -26,7 +26,7 @@
; V13 tmp8 [V13,T10] ( 5, 200.00) int -> x0 "guarded devirt return temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2+Enumerator[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.SortedDictionary`2+Enumerator[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-;* V16 tmp11 [V16,T26] ( 0, 0 ) int -> zero-ref single-def "OSR entry state var"
+;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V17 tmp12 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
@@ -52,47 +52,45 @@
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V40 tmp35 [V40,T11] ( 2, 3.85) byref -> x14 "Inlining Arg"
; V41 tmp36 [V41,T12] ( 6, 192.47) struct (24) [fp+0x28] do-not-enreg[S] must-init "Inline return value spill temp" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-; V42 tmp37 [V42,T05] ( 4, 384.93) byref -> x23 "Inlining Arg"
+; V42 tmp37 [V42,T05] ( 4, 384.93) byref -> x21 "Inlining Arg"
;* V43 tmp38 [V43 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
;* V45 tmp40 [V45 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V47 tmp42 [V47 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
;* V48 tmp43 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot>
-; V49 tmp44 [V49,T00] ( 16,1154.80) ref -> x27 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
-; V50 tmp45 [V50,T08] ( 10, 288.70) int -> x28 "Inline stloc first use temp"
+; V49 tmp44 [V49,T00] ( 16,1154.80) ref -> x25 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]>
+; V50 tmp45 [V50,T08] ( 10, 288.70) int -> x26 "Inline stloc first use temp"
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V52 tmp47 [V52,T28] ( 6, 0 ) int -> x1 "Inline return value spill temp"
-; V53 tmp48 [V53,T29] ( 6, 0 ) int -> x1 "Inlining Arg"
+; V52 tmp47 [V52,T25] ( 6, 0 ) int -> x1 "Inline return value spill temp"
+; V53 tmp48 [V53,T26] ( 6, 0 ) int -> x1 "Inlining Arg"
; V54 tmp49 [V54,T04] ( 4, 400.00) byref -> registers "Inlining Arg"
-;* V55 tmp50 [V55,T21] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V55 tmp50 [V55,T22] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp51 [V56 ] ( 0, 0 ) ref -> zero-ref "field V48.VariableState (fldOffset=0x0)" P-INDEP
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "field V48.SharedStateIndex (fldOffset=0x8)" P-INDEP
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "V32.[000..004)"
-; V59 tmp54 [V59,T17] ( 4, 192.47) int -> x24 "V45.[000..004)"
-; V60 tmp55 [V60,T16] ( 4, 192.47) ref -> x25 "V45.[008..016)"
-; V61 tmp56 [V61,T18] ( 4, 192.47) int -> x26 "V45.[016..020)"
+; V59 tmp54 [V59,T17] ( 4, 192.47) int -> x22 "V45.[000..004)"
+; V60 tmp55 [V60,T16] ( 4, 192.47) ref -> x23 "V45.[008..016)"
+; V61 tmp56 [V61,T18] ( 4, 192.47) int -> x24 "V45.[016..020)"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "V47.[000..004)"
;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref "V47.[008..016)"
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "V47.[016..020)"
-; V65 tmp60 [V65,T14] ( 5, 192.47) int -> x24 "V06.[000..004)"
-; V66 tmp61 [V66,T13] ( 5, 192.47) ref -> x25 "V06.[008..016)"
-; V67 tmp62 [V67,T15] ( 5, 192.47) int -> x26 "V06.[016..020)"
-; V68 tmp63 [V68,T01] ( 8, 769.87) byref -> x3 "Spilling address for field-by-field copy"
+; V65 tmp60 [V65,T14] ( 5, 192.47) int -> x22 "V06.[000..004)"
+; V66 tmp61 [V66,T13] ( 5, 192.47) ref -> x23 "V06.[008..016)"
+; V67 tmp62 [V67,T15] ( 5, 192.47) int -> x24 "V06.[016..020)"
+; V68 tmp63 [V68,T01] ( 8, 769.87) byref -> x1 "Spilling address for field-by-field copy"
;* V69 tmp64 [V69 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V70 tmp65 [V70 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V71 tmp66 [V71 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V73 tmp68 [V73 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]>
-; V74 tmp69 [V74,T02] ( 6, 577.40) ref -> x1 "arr expr"
-; V75 tmp70 [V75,T03] ( 6, 577.40) int -> x2 "index expr"
-; V76 PSPSym [V76,T27] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; V74 tmp69 [V74,T02] ( 6, 577.40) ref -> x27 "arr expr"
+; V75 tmp70 [V75,T03] ( 6, 577.40) int -> x28 "index expr"
+; V76 PSPSym [V76,T24] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
; V77 cse0 [V77,T09] ( 3, 285.81) ref -> x14 "CSE - aggressive"
-; V78 cse1 [V78,T25] ( 3, 2.89) ref -> x14 "CSE - moderate"
-; V79 cse2 [V79,T07] ( 7, 297.20) byref -> x23 multi-def "CSE - aggressive"
+; V78 cse1 [V78,T23] ( 3, 2.89) ref -> x14 "CSE - moderate"
+; V79 cse2 [V79,T07] ( 7, 297.20) byref -> x21 multi-def "CSE - aggressive"
; V80 cse3 [V80,T06] ( 6, 201.92) byref -> registers multi-def "CSE - aggressive"
-; V81 cse4 [V81,T22] ( 8, 6.75) long -> x21 multi-def "CSE - moderate"
-; V82 cse5 [V82,T23] ( 8, 6.75) long -> x22 multi-def "CSE - moderate"
;
; Lcl frame size = 80
@@ -118,98 +116,94 @@ G_M55780_IG02: ; bbWeight=3.77, gcVars=0000000000080000 {V03}, gcrefRegs=
; GC ptr vars +{V03}
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x0]
- cbz x0, G_M55780_IG17
- ;; size=8 bbWeight=3.77 PerfScore 11.30
-G_M55780_IG03: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- cbz x19, G_M55780_IG17
+ cbz x0, G_M55780_IG16
+ cbz x19, G_M55780_IG16
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
- ; gcrRegs +[x0]
- ldr x21, [x0]
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #1 LSL #32
- cmp x21, x22
- bne G_M55780_IG17
- ldr x0, [x19, #0x18]
+ ldr x0, [x0]
; gcrRegs -[x0]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ cmp x0, x1
+ bne G_M55780_IG16
+ ldr x0, [x19, #0x18]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager+Builder+<>c:<ToManagerAndFree>b__5_0(System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]):System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
cmp x0, x1
- bne G_M55780_IG17
- b G_M55780_IG09
- ;; size=60 bbWeight=0.01 PerfScore 0.21
-G_M55780_IG04: ; bbWeight=95.27, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
+ bne G_M55780_IG16
+ b G_M55780_IG08
+ ;; size=68 bbWeight=3.77 PerfScore 71.56
+G_M55780_IG03: ; bbWeight=95.27, gcrefRegs=100000 {x20}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x19]
- ; byrRegs +[x23]
- ldr x14, [x23, #0x10]
+ ; byrRegs +[x21]
+ ldr x14, [x21, #0x10]
; gcrRegs +[x14]
- cbz x14, G_M55780_IG26
+ cbz x14, G_M55780_IG25
;; size=8 bbWeight=95.27 PerfScore 381.09
-G_M55780_IG05: ; bbWeight=95.27, nogc, extend
+G_M55780_IG04: ; bbWeight=95.27, nogc, extend
ldp x12, x15, [x14, #0x20]
stp x12, x15, [fp, #0x28]
ldr x12, [x14, #0x30]
str x12, [fp, #0x38]
;; size=16 bbWeight=95.27 PerfScore 857.44
-G_M55780_IG06: ; bbWeight=95.27, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, nogc
+G_M55780_IG05: ; bbWeight=95.27, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, nogc
; gcrRegs -[x14]
- ; byrRegs -[x23]
+ ; byrRegs -[x21]
ldp x12, x14, [fp, #0x28]
stp x12, x14, [fp, #0xD1FFAB1E]
ldr x12, [fp, #0x38]
str x12, [fp, #0xD1FFAB1E]
;; size=16 bbWeight=95.27 PerfScore 666.90
-G_M55780_IG07: ; bbWeight=95.27, isz, extend
- ldr w24, [fp, #0xD1FFAB1E] // [V04 loc2]
- ldr x25, [fp, #0xD1FFAB1E] // [V04 loc2+0x08]
+G_M55780_IG06: ; bbWeight=95.27, isz, extend
+ ldr w22, [fp, #0xD1FFAB1E] // [V04 loc2]
+ ldr x23, [fp, #0xD1FFAB1E] // [V04 loc2+0x08]
+ ; gcrRegs +[x23]
+ ldr w24, [fp, #0xD1FFAB1E] // [V04 loc2+0x10]
+ ldr x25, [x20, #0x08]
; gcrRegs +[x25]
- ldr w26, [fp, #0xD1FFAB1E] // [V04 loc2+0x10]
- ldr x27, [x20, #0x08]
- ; gcrRegs +[x27]
- ldr w14, [x27, #0x10]
- add w28, w14, #1
- ldr x14, [x27, #0x08]
+ ldr w14, [x25, #0x10]
+ add w26, w14, #1
+ ldr x14, [x25, #0x08]
; gcrRegs +[x14]
ldr w14, [x14, #0x08]
; gcrRegs -[x14]
- cmp w14, w28
- blt G_M55780_IG25
+ cmp w14, w26
+ blt G_M55780_IG24
;; size=40 bbWeight=95.27 PerfScore 1905.43
-G_M55780_IG08: ; bbWeight=95.27, gcrefRegs=A100000 {x20 x25 x27}, byrefRegs=0000 {}, byref, isz
- ldr x1, [x27, #0x08]
- ; gcrRegs +[x1]
- ldr w2, [x27, #0x10]
- ldr w14, [x1, #0x08]
- cmp w2, w14
- bhs G_M55780_IG19
+G_M55780_IG07: ; bbWeight=95.27, gcrefRegs=2900000 {x20 x23 x25}, byrefRegs=0000 {}, byref, isz
+ ldr x27, [x25, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x25, #0x10]
+ ldr w14, [x27, #0x08]
+ cmp w28, w14
+ bhs G_M55780_IG18
mov w14, #24
mov x15, #16
- umaddl x14, w2, w14, x15
- add x3, x1, x14
- ; byrRegs +[x3]
- str w24, [x3]
- add x14, x3, #8
+ umaddl x14, w28, w14, x15
+ add x1, x27, x14
+ ; byrRegs +[x1]
+ str w22, [x1]
+ add x14, x1, #8
; byrRegs +[x14]
- mov x15, x25
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x1 x15 x25]
+ ; gcrRegs -[x15 x23 x27]
; byrRegs -[x14]
- str w26, [x3, #0x10]
- str w28, [x27, #0x10]
+ str w24, [x1, #0x10]
+ str w26, [x25, #0x10]
;; size=60 bbWeight=95.27 PerfScore 2095.97
-G_M55780_IG09: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x27]
- ; byrRegs -[x3]
+G_M55780_IG08: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x25]
+ ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x0]
add x19, x0, #8
; byrRegs +[x19]
- add x23, x19, #8
- ; byrRegs +[x23]
- mov x0, x23
+ add x21, x19, #8
+ ; byrRegs +[x21]
+ mov x0, x21
; gcrRegs -[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -219,16 +213,23 @@ G_M55780_IG09: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {
blr x1
; byrRegs -[x0 x19]
; gcr arg pop 0
- cbnz w0, G_M55780_IG04
+ cbnz w0, G_M55780_IG03
;; size=40 bbWeight=99.00 PerfScore 990.00
-G_M55780_IG10: ; bbWeight=3.77, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
...
+16 (+5.97%) : 178756.dasm - System.Collections.Generic.HashSet1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet1[int]):ubyte:this (Tier1-OSR)
@@ -6,7 +6,7 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 99.97
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 99.97
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -14,14 +14,14 @@
; V01 arg1 [V01,T05] ( 4,201.86) ref -> x19 class-hnd single-def <System.Collections.Generic.HashSet`1[int]>
; V02 loc0 [V02,T10] ( 4, 4 ) struct (24) [fp+0x60] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.HashSet`1+Enumerator[int]>
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
-;* V04 loc2 [V04,T12] ( 0, 0 ) ubyte -> zero-ref
+;* V04 loc2 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T11] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.HashSet`1+Enumerator[int]>
; V08 tmp3 [V08,T06] ( 3,200 ) ubyte -> x2 "Inline return value spill temp"
; V09 tmp4 [V09,T04] ( 4,246.15) int -> x22 "Inline stloc first use temp"
-; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x0 class-hnd exact "impAppendStmt" <<unknown class>>
-; V11 tmp6 [V11,T08] ( 3,123.08) byref -> x22 "Inline stloc first use temp"
+; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x1 class-hnd exact "impAppendStmt" <<unknown class>>
+; V11 tmp6 [V11,T08] ( 3,123.08) byref -> registers "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref "field V07._hashSet (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "field V07._version (fldOffset=0x8)" P-INDEP
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "field V07._index (fldOffset=0xc)" P-INDEP
@@ -30,15 +30,15 @@
; V17 tmp12 [V17,T09] ( 2,101 ) int -> x21 "V02.[008..012)"
; V18 tmp13 [V18,T00] ( 5,385.62) int -> registers "V02.[012..016)"
; V19 tmp14 [V19,T07] ( 3,199.93) int -> x1 "V02.[016..020)"
-; V20 cse0 [V20,T02] ( 3,361.54) int -> x23 hoist "CSE - aggressive"
+; V20 cse0 [V20,T02] ( 3,361.54) int -> x0 hoist "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M12432_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
ldr x19, [fp, #0x78]
; gcrRegs +[x19]
@@ -60,21 +60,21 @@ G_M12432_IG03: ; bbWeight=99.93, gcrefRegs=180000 {x19 x20}, byrefRegs=00
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- mov w22, w24
+ mov w22, w23
tbnz w0, #31, G_M12432_IG14
;; size=36 bbWeight=99.93 PerfScore 1049.26
G_M12432_IG04: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w0, [x20, #0x34]
cmp w21, w0
bne G_M12432_IG13
- ldr w23, [x20, #0x28]
+ ldr w0, [x20, #0x28]
;; size=16 bbWeight=100 PerfScore 750.00
G_M12432_IG05: ; bbWeight=161.54, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cmp w22, w23
+ cmp w22, w0
blo G_M12432_IG10
;; size=8 bbWeight=161.54 PerfScore 242.31
G_M12432_IG06: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- add w24, w23, #1
+ add w23, w0, #1
mov w1, wzr
mov w2, wzr
;; size=12 bbWeight=100 PerfScore 150.00
@@ -86,50 +86,49 @@ G_M12432_IG08: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.06 PerfScore 0.03
G_M12432_IG09: ; bbWeight=0.06, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
- ;; size=24 bbWeight=0.06 PerfScore 0.33
+ ;; size=24 bbWeight=0.06 PerfScore 0.39
G_M12432_IG10: ; bbWeight=61.54, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19-x20]
- ldr x0, [x20, #0x10]
- ; gcrRegs +[x0]
- add w1, w22, #1
- sxtw w24, w1
- ldr w1, [x0, #0x08]
- cmp w22, w1
- bhs G_M12432_IG11
- mov w1, #12
- mov x2, #16
- umaddl x1, w22, w1, x2
- add x22, x0, x1
+ ldr x1, [x20, #0x10]
+ ; gcrRegs +[x1]
+ add w2, w22, #1
+ sxtw w23, w2
+ ldr w2, [x1, #0x08]
+ cmp w22, w2
+ bhs G_M12432_IG16
+ mov w2, #12
+ mov x3, #16
+ umaddl x2, w22, w2, x3
+ add x22, x1, x2
; byrRegs +[x22]
- ldr w0, [x22, #0x04]
- ; gcrRegs -[x0]
- cmn w0, #1
- bge G_M12432_IG12
- mov w22, w24
+ ldr w1, [x22, #0x04]
+ ; gcrRegs -[x1]
+ cmn w1, #1
+ blt G_M12432_IG12
+ ;; size=52 bbWeight=61.54 PerfScore 1200.00
+G_M12432_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
+ mov x0, x22
+ ; byrRegs +[x0]
+ mov w22, w23
; byrRegs -[x22]
- b G_M12432_IG05
- ;; size=60 bbWeight=61.54 PerfScore 1292.31
-G_M12432_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- bl CORINFO_HELP_RNGCHKFAIL
- ; gcr arg pop 0
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M12432_IG12: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
- ; gcrRegs +[x19-x20]
- ; byrRegs +[x22]
- ldr w1, [x22, #0x08]
+ ldr w1, [x0, #0x08]
mov w2, #1
+ mov w23, w22
b G_M12432_IG07
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG12: ; bbWeight=30.77, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
+ mov w22, w23
+ b G_M12432_IG05
+ ;; size=8 bbWeight=30.77 PerfScore 46.15
G_M12432_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
- ; byrRegs -[x22]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -142,26 +141,31 @@ G_M12432_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0 PerfScore 0.00
G_M12432_IG15: ; bbWeight=0, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ bl CORINFO_HELP_RNGCHKFAIL
+ ; gcr arg pop 0
+ brk_unix #0
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 268, prolog size 24, PerfScore 3595.74, instruction count 67, allocated bytes for code 268 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
+; Total bytes of code 284, prolog size 24, PerfScore 3549.65, instruction count 71, allocated bytes for code 284 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 268 (0x00010c)
+ Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -172,10 +176,13 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
05 alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
E4 end
+ E4 end
+ E4 end
+ E4 end
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
-24 (-17.14%) : 48857.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xC0]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
-24 (-17.14%) : 5667.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xD1FFAB1E]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
-24 (-17.14%) : 43168.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xC0]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
+0 (0.00%) : 173992.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -57,7 +57,7 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M11729_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w0
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -87,7 +87,7 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M11729_IG06
+ bhi G_M11729_IG16
mov w0, w23
adr x1, [@RWD44]
ldr w1, [x1, x0, LSL #2]
@@ -95,22 +95,10 @@ G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M11729_IG07: ; 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_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M11729_IG12
+ beq G_M11729_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -119,7 +107,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M11729_IG12
+ cbz w0, G_M11729_IG10
mov x0, x21
; gcrRegs +[x0]
mov w1, w22
@@ -131,12 +119,12 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M11729_IG06
+ cbz w20, G_M11729_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M11729_IG10
+ cbnz w0, G_M11729_IG08
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
- cbz x0, G_M11729_IG09
+ cbz x0, G_M11729_IG07
mov x1, x0
; gcrRegs +[x1]
ldr x1, [x1]
@@ -145,15 +133,15 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
cmp x1, x2
- bne G_M11729_IG09
+ bne G_M11729_IG07
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x08]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M11729_IG10
+ b G_M11729_IG08
;; size=132 bbWeight=0.50 PerfScore 24.50
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -168,7 +156,7 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=28 bbWeight=0.50 PerfScore 2.25
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x1, [x19, #0x40]
; gcrRegs +[x1]
@@ -176,7 +164,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w1, [x1, #0x08]
; gcrRegs -[x1]
cmp w0, w1
- beq G_M11729_IG06
+ beq G_M11729_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov x1, x21
@@ -213,7 +201,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x20]
;; size=124 bbWeight=0.50 PerfScore 34.00
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -221,7 +209,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -233,7 +221,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x4, [x4, #0x90]
ldr x4, [x4, #0x20]
;; size=28 bbWeight=0.50 PerfScore 6.75
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -241,12 +229,12 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #9
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov x1, x21
@@ -260,7 +248,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M11729_IG16
+ cbnz w23, G_M11729_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -273,9 +261,19 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 11.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M11729_IG15: ; 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_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -340,20 +338,20 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=80 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
; Total bytes of code 760, prolog size 36, PerfScore 125.50, instruction count 190, allocated bytes for code 760 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+0 (0.00%) : 277968.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2682_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -65,11 +65,11 @@
;* V54 tmp43 [V54 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V55 tmp44 [V55,T54] ( 4, 2 ) int -> x0 single-def "Inline stloc first use temp"
; V56 tmp45 [V56,T53] ( 3, 3 ) ref -> x3 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V57 tmp46 [V57,T46] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
-; V58 tmp47 [V58,T37] ( 4, 8 ) int -> x1 "Inline stloc first use temp"
-; V59 tmp48 [V59,T30] ( 3, 12 ) ref -> x0 class-hnd "impAppendStmt" <<unknown class>>
+; V57 tmp46 [V57,T46] ( 3, 6 ) int -> x1 "Inline stloc first use temp"
+; V58 tmp47 [V58,T37] ( 4, 8 ) int -> x2 "Inline stloc first use temp"
+; V59 tmp48 [V59,T30] ( 3, 12 ) ref -> x1 class-hnd "impAppendStmt" <<unknown class>>
;* V60 tmp49 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V61 tmp50 [V61,T31] ( 3, 12 ) byref -> x0 "dup spill"
+; V61 tmp50 [V61,T31] ( 3, 12 ) byref -> x1 "dup spill"
; V62 tmp51 [V62,T51] ( 2, 2.00) byref -> x1 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V63 tmp52 [V63,T52] ( 2, 2.00) int -> x2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V64 tmp53 [V64,T36] ( 4, 10.00) byref -> x20 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
@@ -94,9 +94,9 @@
; V83 tmp72 [V83,T16] ( 3, 24.00) ref -> x0 "arr expr"
; V84 tmp73 [V84,T03] ( 3, 96 ) ref -> x2 "arr expr"
; V85 tmp74 [V85,T17] ( 3, 24.00) ref -> x0 "arr expr"
-; V86 tmp75 [V86,T32] ( 3, 12 ) ref -> x1 "arr expr"
+; V86 tmp75 [V86,T32] ( 3, 12 ) ref -> x2 "arr expr"
; V87 cse0 [V87,T09] ( 4, 40.00) ref -> x0 "CSE - aggressive"
-; V88 cse1 [V88,T44] ( 3, 7 ) ref -> x22 hoist "CSE - moderate"
+; V88 cse1 [V88,T44] ( 3, 7 ) ref -> x0 hoist "CSE - moderate"
; V89 cse2 [V89,T33] ( 2, 8 ) ref -> x1 "CSE - moderate"
; V90 cse3 [V90,T22] ( 12, 19.50) ref -> x1 multi-def "CSE - moderate"
; V91 cse4 [V91,T35] ( 3, 12 ) int -> x2 "CSE - moderate"
@@ -512,50 +512,50 @@ G_M36985_IG35: ; bbWeight=0.50, epilog, nogc, extend
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M36985_IG36: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
- ldr x22, [x19, #0x20]
- ; gcrRegs +[x22]
+ ldr x0, [x19, #0x20]
+ ; gcrRegs +[x0]
b G_M36985_IG38
;; size=8 bbWeight=1 PerfScore 4.00
-G_M36985_IG37: ; bbWeight=2, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- mov x0, x22
- ; gcrRegs +[x0]
- ldr w1, [x19, #0x58]
- add w2, w1, #1
- str w2, [x19, #0x58]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M36985_IG41
- add x0, x0, #16
- ; gcrRegs -[x0]
- ; byrRegs +[x0]
- ldr w0, [x0, w1, UXTW #2]
- ; byrRegs -[x0]
- ldr x1, [x19, #0x28]
+G_M36985_IG37: ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ mov x1, x0
; gcrRegs +[x1]
- ldr x1, [x1, #0x50]
- ldr w2, [x1, #0x08]
- cmp w0, w2
+ ldr w2, [x19, #0x58]
+ add w3, w2, #1
+ str w3, [x19, #0x58]
+ ldr w3, [x1, #0x08]
+ cmp w2, w3
bhs G_M36985_IG41
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- ubfiz x0, x0, #2, #32
- add x0, x1, x0
- ; byrRegs +[x0]
- ldr w1, [x0]
+ ldr w1, [x1, w2, UXTW #2]
; byrRegs -[x1]
- sub w1, w1, #1
- str w1, [x0]
+ ldr x2, [x19, #0x28]
+ ; gcrRegs +[x2]
+ ldr x2, [x2, #0x50]
+ ldr w3, [x2, #0x08]
+ cmp w1, w3
+ bhs G_M36985_IG41
+ add x2, x2, #16
+ ; gcrRegs -[x2]
+ ; byrRegs +[x2]
+ ubfiz x1, x1, #2, #32
+ add x1, x2, x1
+ ; byrRegs +[x1]
+ ldr w2, [x1]
+ ; byrRegs -[x2]
+ sub w2, w2, #1
+ str w2, [x1]
;; size=80 bbWeight=2 PerfScore 60.00
-G_M36985_IG38: ; bbWeight=4, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x0]
- ldr w0, [x22, #0x08]
- ldr w1, [x19, #0x58]
- sub w0, w0, w1
- cbnz w0, G_M36985_IG37
+G_M36985_IG38: ; bbWeight=4, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[x1]
+ ldr w1, [x0, #0x08]
+ ldr w2, [x19, #0x58]
+ sub w1, w1, w2
+ cbnz w1, G_M36985_IG37
;; size=16 bbWeight=4 PerfScore 30.00
G_M36985_IG39: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x22]
+ ; gcrRegs -[x0 x19]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M36985_IG40: ; bbWeight=0.50, epilog, nogc, extend
+0 (0.00%) : 277972.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2685_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -57,11 +57,11 @@
;* V46 tmp35 [V46 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V47 tmp36 [V47,T53] ( 4, 2 ) int -> x0 single-def "Inline stloc first use temp"
; V48 tmp37 [V48,T52] ( 3, 3 ) ref -> x3 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V49 tmp38 [V49,T45] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
-; V50 tmp39 [V50,T37] ( 4, 8 ) int -> x1 "Inline stloc first use temp"
-; V51 tmp40 [V51,T30] ( 3, 12 ) ref -> x0 class-hnd "impAppendStmt" <<unknown class>>
+; V49 tmp38 [V49,T45] ( 3, 6 ) int -> x1 "Inline stloc first use temp"
+; V50 tmp39 [V50,T37] ( 4, 8 ) int -> x2 "Inline stloc first use temp"
+; V51 tmp40 [V51,T30] ( 3, 12 ) ref -> x1 class-hnd "impAppendStmt" <<unknown class>>
;* V52 tmp41 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V53 tmp42 [V53,T31] ( 3, 12 ) byref -> x0 "dup spill"
+; V53 tmp42 [V53,T31] ( 3, 12 ) byref -> x1 "dup spill"
; V54 tmp43 [V54,T50] ( 2, 2.00) byref -> x1 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V55 tmp44 [V55,T51] ( 2, 2.00) int -> x2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V56 tmp45 [V56,T36] ( 4, 10.00) byref -> x20 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
@@ -80,9 +80,9 @@
; V69 tmp58 [V69,T16] ( 3, 24.00) ref -> x0 "arr expr"
; V70 tmp59 [V70,T03] ( 3, 96 ) ref -> x2 "arr expr"
; V71 tmp60 [V71,T17] ( 3, 24.00) ref -> x0 "arr expr"
-; V72 tmp61 [V72,T32] ( 3, 12 ) ref -> x1 "arr expr"
+; V72 tmp61 [V72,T32] ( 3, 12 ) ref -> x2 "arr expr"
; V73 cse0 [V73,T09] ( 4, 40.00) ref -> x0 "CSE - aggressive"
-; V74 cse1 [V74,T43] ( 3, 7 ) ref -> x22 hoist "CSE - moderate"
+; V74 cse1 [V74,T43] ( 3, 7 ) ref -> x0 hoist "CSE - moderate"
; V75 cse2 [V75,T33] ( 2, 8 ) ref -> x0 "CSE - moderate"
; V76 cse3 [V76,T22] ( 12, 19.50) ref -> x1 multi-def "CSE - moderate"
; V77 cse4 [V77,T35] ( 3, 12 ) int -> x2 "CSE - moderate"
@@ -499,50 +499,50 @@ G_M5182_IG34: ; bbWeight=0.50, epilog, nogc, extend
;; size=28 bbWeight=0.50 PerfScore 3.50
G_M5182_IG35: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
- ldr x22, [x19, #0x20]
- ; gcrRegs +[x22]
+ ldr x0, [x19, #0x20]
+ ; gcrRegs +[x0]
b G_M5182_IG37
;; size=8 bbWeight=1 PerfScore 4.00
-G_M5182_IG36: ; bbWeight=2, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- mov x0, x22
- ; gcrRegs +[x0]
- ldr w1, [x19, #0x58]
- add w2, w1, #1
- str w2, [x19, #0x58]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M5182_IG40
- add x0, x0, #16
- ; gcrRegs -[x0]
- ; byrRegs +[x0]
- ldr w0, [x0, w1, UXTW #2]
- ; byrRegs -[x0]
- ldr x1, [x19, #0x28]
+G_M5182_IG36: ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ mov x1, x0
; gcrRegs +[x1]
- ldr x1, [x1, #0x50]
- ldr w2, [x1, #0x08]
- cmp w0, w2
+ ldr w2, [x19, #0x58]
+ add w3, w2, #1
+ str w3, [x19, #0x58]
+ ldr w3, [x1, #0x08]
+ cmp w2, w3
bhs G_M5182_IG40
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- ubfiz x0, x0, #2, #32
- add x0, x1, x0
- ; byrRegs +[x0]
- ldr w1, [x0]
+ ldr w1, [x1, w2, UXTW #2]
; byrRegs -[x1]
- sub w1, w1, #1
- str w1, [x0]
+ ldr x2, [x19, #0x28]
+ ; gcrRegs +[x2]
+ ldr x2, [x2, #0x50]
+ ldr w3, [x2, #0x08]
+ cmp w1, w3
+ bhs G_M5182_IG40
+ add x2, x2, #16
+ ; gcrRegs -[x2]
+ ; byrRegs +[x2]
+ ubfiz x1, x1, #2, #32
+ add x1, x2, x1
+ ; byrRegs +[x1]
+ ldr w2, [x1]
+ ; byrRegs -[x2]
+ sub w2, w2, #1
+ str w2, [x1]
;; size=80 bbWeight=2 PerfScore 60.00
-G_M5182_IG37: ; bbWeight=4, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x0]
- ldr w0, [x22, #0x08]
- ldr w1, [x19, #0x58]
- sub w0, w0, w1
- cbnz w0, G_M5182_IG36
+G_M5182_IG37: ; bbWeight=4, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[x1]
+ ldr w1, [x0, #0x08]
+ ldr w2, [x19, #0x58]
+ sub w1, w1, w2
+ cbnz w1, G_M5182_IG36
;; size=16 bbWeight=4 PerfScore 30.00
G_M5182_IG38: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x22]
+ ; gcrRegs -[x0 x19]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M5182_IG39: ; bbWeight=0.50, epilog, nogc, extend
realworld.run.osx.arm64.checked.mch
-28 (-20.59%) : 11014.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 6, 4.50) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,29 +37,16 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M3270_IG04
+ cbz x0, G_M3270_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- cbnz x0, G_M3270_IG06
- b G_M3270_IG06
- ;; size=28 bbWeight=0.50 PerfScore 2.50
-G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x19]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M3270_IG06
+ cbz x0, G_M3270_IG05
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbnz x1, G_M3270_IG06
+ cbnz x1, G_M3270_IG05
ldr x0, [x0, #0x08]
ldr x1, [x19, #0x08]
movz x2, #0xD1FFAB1E // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -67,23 +54,23 @@ G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x2, #1 LSL #32
ldr x2, [x2]
;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x19]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_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
-; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -94,7 +81,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ 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 (-8.93%) : 21107.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)
@@ -27,10 +27,10 @@
; V16 tmp12 [V16,T00] ( 5, 27 ) int -> x21 "field V01._index (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) ubyte -> zero-ref "V03.[004..005)"
;* V18 cse0 [V18,T11] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V19 cse1 [V19,T06] ( 2, 2 ) long -> x22 "CSE - aggressive"
-; V20 rat0 [V20,T07] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+; V19 cse1 [V19,T06] ( 1, 1 ) long -> x22 "CSE - aggressive"
+;* V20 rat0 [V20,T07] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V21 rat1 [V21,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V22 rat2 [V22,T05] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V22 rat2 [V22,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V23 rat3 [V23,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V24 rat4 [V24,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
@@ -49,7 +49,7 @@ G_M864_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
mov x19, x0
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,15 +62,10 @@ G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
; gcrRegs +[x20]
mov w21, w1
ldr x22, [x19]
- mov x0, x22
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x30]
- cbnz x0, G_M864_IG04
b G_M864_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 16.50
G_M864_IG03: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
add x8, fp, #24 // [V02 loc1]
@@ -118,7 +113,7 @@ G_M864_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +124,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-7.94%) : 21847.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
@@ -25,10 +25,10 @@
; V14 tmp8 [V14,T05] ( 3, 6 ) ref -> x0 "Field obj"
; V15 tmp9 [V15,T01] ( 2, 8 ) byref -> x2 "argument with side effect"
;* V16 cse0 [V16,T12] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V17 cse1 [V17,T08] ( 3, 3 ) long -> x24 "CSE - aggressive"
-; V18 rat0 [V18,T10] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V17 cse1 [V17,T08] ( 2, 2.50) long -> x24 "CSE - aggressive"
+;* V18 rat0 [V18,T10] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V19 rat1 [V19,T11] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V20 rat2 [V20,T09] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V20 rat2 [V20,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -62,7 +62,7 @@ G_M9562_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
; gcrRegs +[x21]
cbz x21, G_M9562_IG07
;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
+G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x0]
mov x0, x21
; gcrRegs +[x0]
@@ -75,15 +75,10 @@ G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
; gcrRegs +[x22]
mov w23, w1
ldr x24, [x19]
- mov x0, x24
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x30]
- cbnz x0, G_M9562_IG05
b G_M9562_IG05
- ;; size=60 bbWeight=0.50 PerfScore 10.75
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M9562_IG04: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+ ; gcrRegs -[x0]
mov x0, x22
; gcrRegs +[x0]
mov w1, w23
@@ -133,7 +128,7 @@ G_M9562_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
; ============================================================
Unwind Info:
@@ -144,7 +139,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 3185.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption1[System.String]]:this (FullOpts)
@@ -22,11 +22,12 @@
; V11 tmp5 [V11,T00] ( 6, 10 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]>
-;* V14 tmp8 [V14,T09] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
-;* V15 tmp9 [V15,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
-; V16 cse0 [V16,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
-;* V17 cse1 [V17,T11] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V18 cse2 [V18,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
+;* V14 tmp8 [V14,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
+;* V15 tmp9 [V15,T11] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
+; V16 tmp10 [V16,T09] ( 2, 1 ) ref -> x2 single-def "Field obj"
+; V17 cse0 [V17,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
+;* V18 cse1 [V18,T12] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V19 cse2 [V19,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -102,7 +103,7 @@ G_M10872_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbz x2, G_M10872_IG05
;; size=160 bbWeight=1 PerfScore 38.50
G_M10872_IG03: ; bbWeight=0.50, gcrefRegs=500005 {x0 x2 x20 x22}, byrefRegs=0000 {}, byref
- ldr xzr, [x2, #0x10]
+ ldrsb wzr, [x2]
ldr x2, [x0, #0x08]
mov x0, x20
mov x1, x22
+0 (0.00%) : 19518.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -24,19 +24,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35943_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov w1, #0xD1FFAB1E
cmp w0, w1
- beq G_M35943_IG05
+ bne G_M35943_IG05
;; size=12 bbWeight=1 PerfScore 2.00
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, xzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x20
- ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -57,13 +47,21 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
mov x0, x20
; gcrRegs +[x0]
;; size=60 bbWeight=0.50 PerfScore 8.50
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
+ ret lr
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x20]
+ mov x0, xzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x20]
bl CORINFO_HELP_OVERFLOW
brk_unix #0
;; size=8 bbWeight=0 PerfScore 0.00
+0 (0.00%) : 25728.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:LowerEvaluation(Microsoft.CodeAnalysis.CSharp.BoundDagEvaluation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
@@ -20,7 +20,7 @@
; V09 loc7 [V09,T44] ( 10, 5 ) ref -> x20 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
; V10 loc8 [V10,T45] ( 10, 5 ) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V12 loc10 [V12,T131] ( 3, 1.50) ref -> x28 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V12 loc10 [V12,T131] ( 3, 1.50) ref -> x23 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V13 loc11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V14 loc12 [V14,T85] ( 5, 2.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
;* V15 loc13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
@@ -50,8 +50,8 @@
; V39 loc37 [V39,T153] ( 2, 1 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V40 loc38 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V41 loc39 [V41,T135] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V42 loc40 [V42,T72] ( 6, 3 ) ref -> x27 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V43 loc41 [V43,T130] ( 4, 1.75) ref -> x28 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
+; V42 loc40 [V42,T72] ( 6, 3 ) ref -> x22 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V43 loc41 [V43,T130] ( 4, 1.75) ref -> x23 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
; V44 loc42 [V44,T154] ( 2, 1 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V45 loc43 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V46 loc44 [V46,T136] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
@@ -60,7 +60,7 @@
;* V49 tmp2 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V50 tmp3 [V50,T99] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V51 tmp4 [V51,T22] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V52 tmp5 [V52,T74] ( 3, 3 ) ref -> x27 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
+; V52 tmp5 [V52,T74] ( 3, 3 ) ref -> x26 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
; V53 tmp6 [V53,T50] ( 4, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
;* V54 tmp7 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagPropertyEvaluation>
; V55 tmp8 [V55,T100] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
@@ -97,15 +97,15 @@
;* V86 tmp39 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
;* V87 tmp40 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
;* V88 tmp41 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
-; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x22 class-hnd exact single-def "dup spill" <<unknown class>>
-; V90 tmp43 [V90,T107] ( 2, 2 ) ref -> x28 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
+; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x23 class-hnd exact single-def "dup spill" <<unknown class>>
+; V90 tmp43 [V90,T107] ( 2, 2 ) ref -> x21 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
; V91 tmp44 [V91,T91] ( 3, 2.25) ref -> x1 single-def "CASTCLASS eval op1"
; V92 tmp45 [V92,T151] ( 3, 1.25) long -> x2 "fgMakeTemp is creating a new local variable"
; V93 tmp46 [V93,T68] ( 5, 3.75) ref -> x21 class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V94 tmp47 [V94,T108] ( 2, 2 ) ref -> x22 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V95 tmp48 [V95,T29] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
;* V96 tmp49 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
-;* V97 tmp50 [V97,T198] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+;* V97 tmp50 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
; V98 tmp51 [V98 ] ( 3, 1.50) struct (24) [fp+0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
; V99 tmp52 [V99,T137] ( 3, 1.50) ref -> x26 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V100 tmp53 [V100,T52] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
@@ -122,11 +122,11 @@
;* V111 tmp64 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V112 tmp65 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V113 tmp66 [V113 ] ( 3, 1.50) struct (24) [fp+0xB8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-; V114 tmp67 [V114,T94] ( 4, 2 ) ref -> x23 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V114 tmp67 [V114,T94] ( 4, 2 ) ref -> x24 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V115 tmp68 [V115,T53] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V116 tmp69 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
; V117 tmp70 [V117,T87] ( 5, 2.50) ref -> x3 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
+; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
;* V119 tmp72 [V119 ] ( 0, 0 ) ref -> zero-ref
; V120 tmp73 [V120,T138] ( 3, 1.50) ref -> x21 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V121 tmp74 [V121,T31] ( 8, 8 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundAddressOfOperator>
@@ -420,7 +420,7 @@ G_M26377_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
;; size=60 bbWeight=1 PerfScore 21.00
G_M26377_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- b G_M26377_IG18
+ b G_M26377_IG10
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
add x0, x8, #0xD1FFAB1E
@@ -428,7 +428,7 @@ G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG05
mov x22, x20
; gcrRegs +[x22]
- b G_M26377_IG31
+ b G_M26377_IG23
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -437,7 +437,7 @@ G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG06
mov x23, x20
; gcrRegs +[x23]
- b G_M26377_IG37
+ b G_M26377_IG29
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23]
@@ -448,7 +448,7 @@ G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG07
mov x24, x20
; gcrRegs +[x24]
- b G_M26377_IG57
+ b G_M26377_IG49
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
@@ -457,7 +457,7 @@ G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG08
mov x25, x20
; gcrRegs +[x25]
- b G_M26377_IG70
+ b G_M26377_IG62
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
@@ -468,7 +468,7 @@ G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG09
mov x26, x20
; gcrRegs +[x26]
- b G_M26377_IG72
+ b G_M26377_IG64
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x26]
@@ -476,241 +476,10 @@ G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x8, #0xD1FFAB1E LSL #16
movk x8, #1 LSL #32
cmp x1, x8
- bne G_M26377_IG86
- ldr x27, [x20, #0x30]
- ; gcrRegs +[x27]
- mov x28, x27
- ; gcrRegs +[x28]
- cbz x28, G_M26377_IG11
- ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M26377_IG10: ; bbWeight=0.25, gcrefRegs=18380000 {x19 x20 x21 x27 x28}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x28]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- cmp x0, x1
- beq G_M26377_IG82
- ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M26377_IG11: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x28]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- ldr wzr, [x0]
- blr x1
- mov x22, x0
- ; gcrRegs +[x22]
- ldr x1, [x20, #0x38]
- ; gcrRegs +[x1]
- ldrsb wzr, [x22]
- mov x0, x22
- mov x2, x21
- ; gcrRegs +[x2]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #1 LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x21]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
- ldr x28, [x20, #0x40]
- ; gcrRegs +[x28]
- mov x0, x19
- ; gcrRegs +[x0]
- mov x1, x20
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1]
- mov x2, x0
- ; gcrRegs +[x2]
- mov x0, x22
- mov x1, x28
- ; gcrRegs +[x1]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #1 LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x28]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
- mov x0, x22
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter+PlaceholderReplacer:Replace(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.BoundEarlyValuePlaceholderBase,Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x27, x0
- ; gcrRegs +[x27]
- mov x0, x22
- movz x1, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Clear():this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
- ; gcrRegs -[x0]
- ldr x0, [x22, #0x48]
- ; gcrRegs +[x0]
- cbz x0, G_M26377_IG12
- ldr x14, [x0, #0x08]
- ; gcrRegs +[x14]
- cbnz x14, G_M26377_IG83
- add x14, x0, #8
- ; gcrRegs -[x14]
- ; byrRegs +[x14]
- mov x15, x22
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x0 x15 x22]
- ; byrRegs -[x14]
- ;; size=296 bbWeight=0.50 PerfScore 40.25
-G_M26377_IG12: ; bbWeight=0.50, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter:Visit(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- ldr wzr, [x0]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x1, x0
- ; gcrRegs +[x1]
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.osx.arm64.checked.mch |
27 |
27 |
0 |
0 |
-480 |
+0 |
| benchmarks.run_pgo.osx.arm64.checked.mch |
261 |
189 |
2 |
70 |
-4,228 |
+72 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
13 |
11 |
0 |
2 |
-228 |
+0 |
| coreclr_tests.run.osx.arm64.checked.mch |
442 |
240 |
5 |
197 |
-5,584 |
+52 |
| libraries.crossgen2.osx.arm64.checked.mch |
56 |
50 |
0 |
6 |
-1,660 |
+0 |
| libraries.pmi.osx.arm64.checked.mch |
199 |
185 |
0 |
14 |
-3,432 |
+0 |
| libraries_tests.run.osx.arm64.Release.mch |
979 |
769 |
18 |
192 |
-17,216 |
+284 |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
252 |
234 |
0 |
18 |
-3,744 |
+0 |
| realworld.run.osx.arm64.checked.mch |
55 |
52 |
0 |
3 |
-1,272 |
+0 |
|
2,284 |
1,757 |
25 |
502 |
-37,844 |
+408 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.osx.arm64.checked.mch |
24,860 |
4 |
24,856 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
83,813 |
48,088 |
35,725 |
4 (0.00%) |
4 (0.00%) |
| benchmarks.run_tiered.osx.arm64.checked.mch |
48,123 |
37,350 |
10,773 |
1 (0.00%) |
1 (0.00%) |
| coreclr_tests.run.osx.arm64.checked.mch |
585,884 |
356,765 |
229,119 |
4 (0.00%) |
4 (0.00%) |
| libraries.crossgen2.osx.arm64.checked.mch |
234,105 |
15 |
234,090 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.osx.arm64.checked.mch |
316,348 |
18 |
316,330 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.osx.arm64.Release.mch |
643,885 |
468,829 |
175,056 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
302,301 |
21,597 |
280,704 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.osx.arm64.checked.mch |
31,542 |
3 |
31,539 |
0 (0.00%) |
0 (0.00%) |
|
2,270,861 |
932,669 |
1,338,192 |
9 (0.00%) |
9 (0.00%) |
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: 11186596 (overridden on cmd)
Total bytes of diff: 11186116 (overridden on cmd)
Total bytes of delta: -480 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 10716.dasm (-0.24 % of base)
-28 : 6839.dasm (-2.36 % of base)
-28 : 6849.dasm (-4.02 % of base)
-28 : 8757.dasm (-7.61 % of base)
-28 : 8775.dasm (-7.61 % of base)
-24 : 14962.dasm (-0.66 % of base)
-24 : 19100.dasm (-0.36 % of base)
-24 : 14783.dasm (-3.92 % of base)
-24 : 8086.dasm (-1.56 % of base)
-24 : 22123.dasm (-12.50 % of base)
-20 : 9946.dasm (-3.29 % of base)
-20 : 22900.dasm (-5.26 % of base)
-16 : 13444.dasm (-2.60 % of base)
-16 : 12717.dasm (-0.98 % of base)
-16 : 8745.dasm (-1.84 % of base)
-16 : 18543.dasm (-4.00 % of base)
-12 : 11464.dasm (-2.24 % of base)
-12 : 10584.dasm (-2.10 % of base)
-12 : 14976.dasm (-0.60 % of base)
-12 : 15364.dasm (-7.14 % of base)
27 total files with Code Size differences (27 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 10716.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-7.61 % of base) : 8775.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-2.36 % of base) : 6839.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 8757.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-4.02 % of base) : 6849.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-0.36 % of base) : 19100.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-12.50 % of base) : 22123.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-3.92 % of base) : 14783.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-0.66 % of base) : 14962.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-24 (-1.56 % of base) : 8086.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-20 (-3.29 % of base) : 9946.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-20 (-5.26 % of base) : 22900.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-4.00 % of base) : 18543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-2.60 % of base) : 13444.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-16 (-1.84 % of base) : 8745.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
-16 (-0.98 % of base) : 12717.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-12 (-0.80 % of base) : 19180.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-12 (-7.14 % of base) : 15364.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-12 (-0.60 % of base) : 14976.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
-12 (-2.10 % of base) : 10584.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
Top method improvements (percentages):
-24 (-12.50 % of base) : 22123.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-28 (-7.61 % of base) : 8775.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 8757.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-12 (-7.14 % of base) : 15364.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-20 (-5.26 % of base) : 22900.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-28 (-4.02 % of base) : 6849.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-16 (-4.00 % of base) : 18543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-24 (-3.92 % of base) : 14783.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-12 (-3.57 % of base) : 8543.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.29 % of base) : 9946.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-16 (-2.60 % of base) : 13444.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-28 (-2.36 % of base) : 6839.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-12 (-2.24 % of base) : 11464.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
-12 (-2.10 % of base) : 10584.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-16 (-1.84 % of base) : 8745.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
-24 (-1.56 % of base) : 8086.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-8 (-1.40 % of base) : 8747.dasm - System.Net.SafeDeleteSslContext:ReadPendingWrites(byref):this (FullOpts)
-16 (-0.98 % of base) : 12717.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.97 % of base) : 11750.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.91 % of base) : 24724.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
27 total methods with Code Size differences (27 improved, 0 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: 34439108 (overridden on cmd)
Total bytes of diff: 34434952 (overridden on cmd)
Total bytes of delta: -4156 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
36 : 65177.dasm (1.92 % of base)
36 : 66558.dasm (1.92 % of base)
Top file improvements (bytes):
-76 : 45293.dasm (-4.85 % of base)
-56 : 32902.dasm (-6.03 % of base)
-48 : 45297.dasm (-3.23 % of base)
-32 : 38873.dasm (-1.80 % of base)
-32 : 64705.dasm (-1.80 % of base)
-32 : 65649.dasm (-1.80 % of base)
-32 : 66109.dasm (-1.81 % of base)
-32 : 66698.dasm (-1.80 % of base)
-32 : 68341.dasm (-1.81 % of base)
-32 : 74433.dasm (-1.80 % of base)
-32 : 77689.dasm (-1.81 % of base)
-32 : 24185.dasm (-1.81 % of base)
-32 : 36575.dasm (-1.81 % of base)
-32 : 22894.dasm (-1.81 % of base)
-32 : 72114.dasm (-1.81 % of base)
-32 : 33286.dasm (-1.81 % of base)
-32 : 36233.dasm (-1.81 % of base)
-32 : 68309.dasm (-1.81 % of base)
-32 : 70073.dasm (-1.81 % of base)
-32 : 76018.dasm (-1.80 % of base)
51 total files with Code Size differences (49 improved, 2 regressed), 38 unchanged.
Top method regressions (bytes):
36 (1.92 % of base) : 66558.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
36 (1.92 % of base) : 65177.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (bytes):
-76 (-4.85 % of base) : 45293.dasm - System.Buffers.ConfigurableArrayPool`1+Bucket[ubyte]:Return(ubyte[]):this (Tier1)
-56 (-6.03 % of base) : 32902.dasm - System.Threading.SpinLock:Enter(byref):this (Tier1)
-48 (-3.23 % of base) : 45297.dasm - System.Buffers.ConfigurableArrayPool`1+Bucket[ubyte]:Rent():ubyte[]:this (Tier1)
-32 (-1.80 % of base) : 38873.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 64705.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 65649.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 66109.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 66698.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 68341.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 74433.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 77689.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 24185.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 36575.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 22894.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 72114.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 33286.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 36233.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 68309.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 70073.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.80 % of base) : 76018.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
Top method regressions (percentages):
36 (1.92 % of base) : 66558.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
36 (1.92 % of base) : 65177.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (percentages):
-24 (-14.63 % of base) : 25977.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-14.63 % of base) : 60357.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 26143.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 60483.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 41347.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 43925.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 71102.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 66219.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 75631.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 80750.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-28 (-7.61 % of base) : 37434.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-7.61 % of base) : 37529.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-7.59 % of base) : 74780.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 79018.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.14 % of base) : 71949.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.14 % of base) : 59173.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.14 % of base) : 59682.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.06 % of base) : 43159.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-6.98 % of base) : 81991.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-6.98 % of base) : 76905.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (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: 15516300 (overridden on cmd)
Total bytes of diff: 15516072 (overridden on cmd)
Total bytes of delta: -228 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 21726.dasm (-0.24 % of base)
-28 : 17849.dasm (-4.02 % of base)
-28 : 26317.dasm (-7.61 % of base)
-28 : 17837.dasm (-2.36 % of base)
-28 : 26390.dasm (-7.61 % of base)
-24 : 26271.dasm (-1.56 % of base)
-16 : 10926.dasm (-1.81 % of base)
-12 : 45016.dasm (-1.83 % of base)
-12 : 43743.dasm (-2.68 % of base)
-12 : 42964.dasm (-1.24 % of base)
-8 : 26384.dasm (-1.40 % of base)
11 total files with Code Size differences (11 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 21726.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-7.61 % of base) : 26317.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-2.36 % of base) : 17837.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-7.61 % of base) : 26390.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-4.02 % of base) : 17849.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-1.56 % of base) : 26271.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
-16 (-1.81 % of base) : 10926.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
-12 (-1.24 % of base) : 42964.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-12 (-2.68 % of base) : 43743.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-12 (-1.83 % of base) : 45016.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-8 (-1.40 % of base) : 26384.dasm - System.Net.SafeDeleteSslContext:ReadPendingWrites(byref):this (Tier1)
Top method improvements (percentages):
-28 (-7.61 % of base) : 26317.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-7.61 % of base) : 26390.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-4.02 % of base) : 17849.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-12 (-2.68 % of base) : 43743.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-28 (-2.36 % of base) : 17837.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-12 (-1.83 % of base) : 45016.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-16 (-1.81 % of base) : 10926.dasm - System.Net.SafeDeleteSslContext:ReadFromConnection(long,ulong,ulong):int (FullOpts)
-24 (-1.56 % of base) : 26271.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
-8 (-1.40 % of base) : 26384.dasm - System.Net.SafeDeleteSslContext:ReadPendingWrites(byref):this (Tier1)
-12 (-1.24 % of base) : 42964.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-32 (-0.24 % of base) : 21726.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
11 total methods with Code Size differences (11 improved, 0 regressed).
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: 486421224 (overridden on cmd)
Total bytes of diff: 486415692 (overridden on cmd)
Total bytes of delta: -5532 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
12 : 397425.dasm (6.00 % of base)
12 : 397842.dasm (6.00 % of base)
12 : 397349.dasm (6.25 % of base)
12 : 397766.dasm (6.25 % of base)
4 : 525828.dasm (7.14 % of base)
Top file improvements (bytes):
-1064 : 30348.dasm (-47.42 % of base)
-292 : 531836.dasm (-2.86 % of base)
-52 : 515690.dasm (-30.95 % of base)
-44 : 520268.dasm (-55.00 % of base)
-44 : 585449.dasm (-1.43 % of base)
-40 : 521622.dasm (-1.17 % of base)
-40 : 515268.dasm (-1.17 % of base)
-36 : 516261.dasm (-28.12 % of base)
-36 : 531192.dasm (-25.71 % of base)
-36 : 583797.dasm (-5.70 % of base)
-32 : 398681.dasm (-12.70 % of base)
-32 : 398755.dasm (-12.70 % of base)
-28 : 397877.dasm (-14.00 % of base)
-28 : 398377.dasm (-10.94 % of base)
-28 : 398793.dasm (-10.94 % of base)
-28 : 398265.dasm (-11.11 % of base)
-28 : 516220.dasm (-43.75 % of base)
-28 : 520216.dasm (-43.75 % of base)
-28 : 397460.dasm (-14.00 % of base)
-28 : 398339.dasm (-11.11 % of base)
36 total files with Code Size differences (31 improved, 5 regressed), 35 unchanged.
Top method regressions (bytes):
12 (6.25 % of base) : 397349.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 397766.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 397425.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 397842.dasm - testout1:Sub_Funclet_183():int (FullOpts)
4 (7.14 % of base) : 525828.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-1064 (-47.42 % of base) : 30348.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-292 (-2.86 % of base) : 531836.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
-52 (-30.95 % of base) : 515690.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-44 (-55.00 % of base) : 520268.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-44 (-1.43 % of base) : 585449.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<TEST_MultipleConnectPortsSuspend>d__2:MoveNext():this (FullOpts)
-40 (-1.17 % of base) : 521622.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-40 (-1.17 % of base) : 515268.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-36 (-5.70 % of base) : 583797.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-36 (-25.71 % of base) : 531192.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-36 (-28.12 % of base) : 516261.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-32 (-12.70 % of base) : 398681.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 398755.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-43.75 % of base) : 516220.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-43.75 % of base) : 520216.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-11.11 % of base) : 398265.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-28 (-11.11 % of base) : 398339.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-10.94 % of base) : 398377.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-28 (-10.94 % of base) : 398793.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-28 (-14.00 % of base) : 397877.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-28 (-14.00 % of base) : 397460.dasm - testout1:Sub_Funclet_221():int (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 525828.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
12 (6.25 % of base) : 397349.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 397766.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 397425.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 397842.dasm - testout1:Sub_Funclet_183():int (FullOpts)
Top method improvements (percentages):
-44 (-55.00 % of base) : 520268.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-1064 (-47.42 % of base) : 30348.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-28 (-43.75 % of base) : 516220.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-43.75 % of base) : 520216.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-52 (-30.95 % of base) : 515690.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-36 (-28.12 % of base) : 516261.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-36 (-25.71 % of base) : 531192.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-20 (-20.00 % of base) : 400847.dasm - filter1:f4() (FullOpts)
-28 (-14.00 % of base) : 397877.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-28 (-14.00 % of base) : 397460.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-32 (-12.70 % of base) : 398681.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 398755.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-20 (-12.50 % of base) : 516218.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-20 (-12.50 % of base) : 520215.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-11.11 % of base) : 398265.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-28 (-11.11 % of base) : 398339.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-10.94 % of base) : 398377.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-28 (-10.94 % of base) : 398793.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-20 (-10.87 % of base) : 518234.dasm - BoxTest_enum_il.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
-24 (-10.00 % of base) : 514946.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
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: 55725628 (overridden on cmd)
Total bytes of diff: 55723968 (overridden on cmd)
Total bytes of delta: -1660 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-660 : 156440.dasm (-88.24 % of base)
-144 : 80434.dasm (-18.46 % of base)
-112 : 75856.dasm (-5.27 % of base)
-56 : 140498.dasm (-0.21 % of base)
-36 : 150499.dasm (-2.17 % of base)
-36 : 66684.dasm (-8.18 % of base)
-32 : 220847.dasm (-12.70 % of base)
-28 : 67972.dasm (-11.48 % of base)
-28 : 40042.dasm (-9.86 % of base)
-28 : 39173.dasm (-1.29 % of base)
-24 : 38108.dasm (-0.53 % of base)
-24 : 141282.dasm (-2.09 % of base)
-24 : 224197.dasm (-1.20 % of base)
-24 : 224358.dasm (-3.53 % of base)
-24 : 187700.dasm (-2.08 % of base)
-20 : 82311.dasm (-6.58 % of base)
-20 : 194561.dasm (-3.14 % of base)
-20 : 220684.dasm (-8.62 % of base)
-20 : 46560.dasm (-3.65 % of base)
-16 : 194365.dasm (-5.48 % of base)
47 total files with Code Size differences (47 improved, 0 regressed), 6 unchanged.
Top method improvements (bytes):
-660 (-88.24 % of base) : 156440.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-144 (-18.46 % of base) : 80434.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-112 (-5.27 % of base) : 75856.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.21 % of base) : 140498.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-36 (-8.18 % of base) : 66684.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-2.17 % of base) : 150499.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-32 (-12.70 % of base) : 220847.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 67972.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-28 (-9.86 % of base) : 40042.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-1.29 % of base) : 39173.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-0.53 % of base) : 38108.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-2.09 % of base) : 141282.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-24 (-3.53 % of base) : 224358.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-1.20 % of base) : 224197.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-24 (-2.08 % of base) : 187700.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-20 (-3.65 % of base) : 46560.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-20 (-6.58 % of base) : 82311.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-20 (-3.14 % of base) : 194561.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
-20 (-8.62 % of base) : 220684.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-16 (-4.08 % of base) : 63416.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
Top method improvements (percentages):
-660 (-88.24 % of base) : 156440.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-144 (-18.46 % of base) : 80434.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-32 (-12.70 % of base) : 220847.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 67972.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-28 (-9.86 % of base) : 40042.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-20 (-8.62 % of base) : 220684.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-8.18 % of base) : 66684.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.02 % of base) : 220773.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-6.58 % of base) : 82311.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-16 (-5.48 % of base) : 194365.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
-112 (-5.27 % of base) : 75856.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-12 (-5.17 % of base) : 141470.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
-12 (-4.35 % of base) : 231301.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
-16 (-4.08 % of base) : 63416.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-4.00 % of base) : 95955.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-12 (-3.95 % of base) : 228778.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.65 % of base) : 46560.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-8 (-3.64 % of base) : 220828.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
-24 (-3.53 % of base) : 224358.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-16 (-3.51 % of base) : 217719.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream: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: 80219108 (overridden on cmd)
Total bytes of diff: 80215676 (overridden on cmd)
Total bytes of delta: -3432 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-660 : 208787.dasm (-87.30 % of base)
-108 : 82412.dasm (-2.22 % of base)
-72 : 109560.dasm (-4.29 % of base)
-64 : 236395.dasm (-4.11 % of base)
-64 : 39399.dasm (-4.11 % of base)
-48 : 189302.dasm (-0.18 % of base)
-40 : 115110.dasm (-0.40 % of base)
-40 : 211208.dasm (-2.42 % of base)
-36 : 264062.dasm (-7.76 % of base)
-36 : 85928.dasm (-7.89 % of base)
-32 : 115290.dasm (-0.63 % of base)
-32 : 25427.dasm (-4.94 % of base)
-32 : 25428.dasm (-4.94 % of base)
-32 : 25429.dasm (-4.94 % of base)
-32 : 311086.dasm (-13.33 % of base)
-28 : 54766.dasm (-5.56 % of base)
-24 : 189849.dasm (-2.30 % of base)
-24 : 42350.dasm (-1.99 % of base)
-24 : 42910.dasm (-2.27 % of base)
-24 : 53846.dasm (-1.12 % of base)
49 total files with Code Size differences (49 improved, 0 regressed), 14 unchanged.
Top method improvements (bytes):
-660 (-87.30 % of base) : 208787.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-108 (-2.22 % of base) : 82412.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.29 % of base) : 109560.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-4.11 % of base) : 236395.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-64 (-4.11 % of base) : 39399.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-48 (-0.18 % of base) : 189302.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-40 (-0.40 % of base) : 115110.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
-40 (-2.42 % of base) : 211208.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-7.89 % of base) : 85928.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-7.76 % of base) : 264062.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-32 (-0.63 % of base) : 115290.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:AddGroupClassMembersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
-32 (-13.33 % of base) : 311086.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-4.94 % of base) : 25429.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-4.94 % of base) : 25428.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-4.94 % of base) : 25427.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-28 (-5.56 % of base) : 54766.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-1.12 % of base) : 53846.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-1.99 % of base) : 42350.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():ubyte:this (FullOpts)
-24 (-2.27 % of base) : 42910.dasm - Microsoft.CodeAnalysis.Diagnostics.SuppressMessageAttributeState:TryDecodeSuppressMessageAttributeData(Microsoft.CodeAnalysis.AttributeData,byref):ubyte (FullOpts)
-24 (-2.30 % of base) : 189849.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
Top method improvements (percentages):
-660 (-87.30 % of base) : 208787.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-32 (-13.33 % of base) : 311086.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-12.00 % of base) : 9099.dasm - System.SpanHelpers:LastIndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
-12 (-12.00 % of base) : 9101.dasm - System.SpanHelpers:LastIndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
-12 (-11.54 % of base) : 258517.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-4 (-11.11 % of base) : 268311.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
-12 (-11.11 % of base) : 258516.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
-12 (-11.11 % of base) : 9087.dasm - System.SpanHelpers:IndexOfAnyInRange[int](byref,int,int,int):int (FullOpts)
-12 (-11.11 % of base) : 9089.dasm - System.SpanHelpers:IndexOfAnyInRange[long](byref,long,long,int):int (FullOpts)
-12 (-9.68 % of base) : 258518.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-20 (-9.09 % of base) : 311105.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-8.11 % of base) : 258515.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 85928.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-7.76 % of base) : 264062.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-16 (-7.41 % of base) : 311082.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-6.41 % of base) : 46011.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-6.41 % of base) : 242327.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-5.88 % of base) : 110241.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-24 (-5.66 % of base) : 264063.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-28 (-5.56 % of base) : 54766.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (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: 324579084 (overridden on cmd)
Total bytes of diff: 324562152 (overridden on cmd)
Total bytes of delta: -16932 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
40 : 603973.dasm (3.83 % of base)
40 : 607303.dasm (2.11 % of base)
40 : 589816.dasm (2.11 % of base)
24 : 178227.dasm (1.15 % of base)
20 : 615653.dasm (1.17 % of base)
16 : 178756.dasm (5.97 % of base)
16 : 177196.dasm (1.05 % of base)
16 : 186890.dasm (2.16 % of base)
16 : 612360.dasm (1.38 % of base)
12 : 573378.dasm (0.96 % of base)
8 : 183605.dasm (0.40 % of base)
8 : 177766.dasm (0.52 % of base)
8 : 500542.dasm (1.68 % of base)
4 : 66544.dasm (1.18 % of base)
4 : 549039.dasm (0.58 % of base)
4 : 589796.dasm (0.60 % of base)
4 : 595689.dasm (0.03 % of base)
4 : 612000.dasm (1.18 % of base)
Top file improvements (bytes):
-164 : 605912.dasm (-2.44 % of base)
-144 : 411412.dasm (-0.78 % of base)
-136 : 70561.dasm (-1.26 % of base)
-132 : 411411.dasm (-0.73 % of base)
-128 : 411414.dasm (-0.70 % of base)
-128 : 79139.dasm (-0.81 % of base)
-128 : 411413.dasm (-0.70 % of base)
-124 : 600668.dasm (-0.74 % of base)
-120 : 327185.dasm (-2.09 % of base)
-120 : 262250.dasm (-6.44 % of base)
-112 : 35374.dasm (-0.95 % of base)
-108 : 589204.dasm (-1.44 % of base)
-96 : 89307.dasm (-0.47 % of base)
-92 : 316269.dasm (-1.14 % of base)
-92 : 588999.dasm (-0.60 % of base)
-80 : 604484.dasm (-0.72 % of base)
-80 : 541750.dasm (-2.35 % of base)
-80 : 542681.dasm (-1.92 % of base)
-76 : 558219.dasm (-0.85 % of base)
-76 : 73380.dasm (-0.62 % of base)
64 total files with Code Size differences (46 improved, 18 regressed), 22 unchanged.
Top method regressions (bytes):
40 (3.83 % of base) : 603973.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArray[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]](System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]],System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
40 (2.11 % of base) : 607303.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
40 (2.11 % of base) : 589816.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
24 (1.15 % of base) : 178227.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
20 (1.17 % of base) : 615653.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
16 (1.38 % of base) : 612360.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
16 (1.05 % of base) : 177196.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
16 (5.97 % of base) : 178756.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
16 (2.16 % of base) : 186890.dasm - System.Collections.Generic.HashSet`1[ulong]:UnionWith(System.Collections.Generic.IEnumerable`1[ulong]):this (Tier1-OSR)
12 (0.96 % of base) : 573378.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Memory`1[int]]:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this (Tier1)
8 (1.68 % of base) : 500542.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (Tier1)
8 (0.52 % of base) : 177766.dasm - System.Collections.Concurrent.Tests.LongRangePartitionerTests:CheckGetDynamicPartitions(long,long) (Tier1-OSR)
8 (0.40 % of base) : 183605.dasm - System.Collections.Tests.IEnumerable_NonGeneric_Tests:IEnumerable_NonGeneric_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
4 (1.18 % of base) : 66544.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
4 (1.18 % of base) : 612000.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
4 (0.60 % of base) : 589796.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalVariableTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
4 (0.58 % of base) : 549039.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor+Cache`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:EvictStaleCacheEntries(long):this (Tier1-OSR)
4 (0.03 % of base) : 595689.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1-OSR)
Top method improvements (bytes):
-164 (-2.44 % of base) : 605912.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:RestorePending(Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):this (Tier1)
-144 (-0.78 % of base) : 411412.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess2():int:this (Tier1)
-136 (-1.26 % of base) : 70561.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-132 (-0.73 % of base) : 411411.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier1)
-128 (-0.81 % of base) : 79139.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-128 (-0.70 % of base) : 411413.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier1)
-128 (-0.70 % of base) : 411414.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier1)
-124 (-0.74 % of base) : 600668.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-120 (-6.44 % of base) : 262250.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (Tier0-FullOpts)
-120 (-2.09 % of base) : 327185.dasm - System.Net.Tests.HttpListenerRequestTests+<Cookies_GetProperty_ReturnsExpected>d__36:MoveNext():this (Tier1)
-112 (-0.95 % of base) : 35374.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-108 (-1.44 % of base) : 589204.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-96 (-0.47 % of base) : 89307.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-92 (-0.60 % of base) : 588999.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-92 (-1.14 % of base) : 316269.dasm - System.SpanTests.SpanTests:TestMatchMany_Char() (Tier1-OSR)
-80 (-0.72 % of base) : 604484.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:RestorePending(Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):this (Tier1-OSR)
-80 (-1.92 % of base) : 542681.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,int]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
-80 (-2.35 % of base) : 541750.dasm - System.Text.Json.Serialization.Converters.DictionaryOfTKeyTValueConverter`3[System.__Canon,System.__Canon,System.__Canon]:OnWriteResume(System.Text.Json.Utf8JsonWriter,System.__Canon,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (Tier1)
-76 (-0.62 % of base) : 73380.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-76 (-0.85 % of base) : 558219.dasm - System.Text.Json.Tests.JsonDocumentTests:ReadJson400KB(Newtonsoft.Json.Linq.JToken):System.String (Tier1-OSR)
Top method regressions (percentages):
16 (5.97 % of base) : 178756.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
40 (3.83 % of base) : 603973.dasm - Roslyn.Utilities.EnumerableExtensions:SelectAsArray[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]](System.Collections.Generic.IReadOnlyCollection`1[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]],System.Func`2[System.Collections.Generic.KeyValuePair`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot],System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]]):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[int,Microsoft.CodeAnalysis.CSharp.NullableWalker+Snapshot]] (Tier1-OSR)
16 (2.16 % of base) : 186890.dasm - System.Collections.Generic.HashSet`1[ulong]:UnionWith(System.Collections.Generic.IEnumerable`1[ulong]):this (Tier1-OSR)
40 (2.11 % of base) : 607303.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
40 (2.11 % of base) : 589816.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
8 (1.68 % of base) : 500542.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (Tier1)
16 (1.38 % of base) : 612360.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
4 (1.18 % of base) : 66544.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
4 (1.18 % of base) : 612000.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
20 (1.17 % of base) : 615653.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
24 (1.15 % of base) : 178227.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
16 (1.05 % of base) : 177196.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
12 (0.96 % of base) : 573378.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[System.Memory`1[int]]:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this (Tier1)
4 (0.60 % of base) : 589796.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalVariableTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
4 (0.58 % of base) : 549039.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor+Cache`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:EvictStaleCacheEntries(long):this (Tier1-OSR)
8 (0.52 % of base) : 177766.dasm - System.Collections.Concurrent.Tests.LongRangePartitionerTests:CheckGetDynamicPartitions(long,long) (Tier1-OSR)
8 (0.40 % of base) : 183605.dasm - System.Collections.Tests.IEnumerable_NonGeneric_Tests:IEnumerable_NonGeneric_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
4 (0.03 % of base) : 595689.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1-OSR)
Top method improvements (percentages):
-20 (-21.74 % of base) : 62943.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-21.74 % of base) : 159343.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-21.74 % of base) : 90924.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-21.74 % of base) : 55868.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
-12 (-20.00 % of base) : 401333.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-28 (-17.07 % of base) : 605569.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-24 (-16.67 % of base) : 613916.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
-24 (-14.63 % of base) : 594373.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-20 (-13.89 % of base) : 203403.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 593034.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-12.00 % of base) : 198401.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 325259.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 48511.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 558797.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 82078.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-11.54 % of base) : 604339.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-11.54 % of base) : 57569.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-11.54 % of base) : 90644.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-20 (-10.64 % of base) : 157877.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_Succeeded():ubyte:this (Tier1)
-20 (-10.64 % of base) : 601602.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_Succeeded():ubyte:this (Tier1)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 162574088 (overridden on cmd)
Total bytes of diff: 162570344 (overridden on cmd)
Total bytes of delta: -3744 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-108 : 19118.dasm (-2.40 % of base)
-72 : 114092.dasm (-4.57 % of base)
-56 : 59054.dasm (-0.19 % of base)
-48 : 205800.dasm (-1.63 % of base)
-48 : 206042.dasm (-1.66 % of base)
-48 : 206346.dasm (-1.66 % of base)
-48 : 207190.dasm (-1.63 % of base)
-40 : 94181.dasm (-2.42 % of base)
-36 : 73628.dasm (-10.59 % of base)
-36 : 56549.dasm (-7.89 % of base)
-32 : 15158.dasm (-7.92 % of base)
-32 : 185963.dasm (-5.41 % of base)
-32 : 186120.dasm (-5.41 % of base)
-32 : 20014.dasm (-2.55 % of base)
-32 : 13211.dasm (-1.78 % of base)
-32 : 147872.dasm (-13.33 % of base)
-32 : 160157.dasm (-1.20 % of base)
-32 : 5955.dasm (-0.97 % of base)
-28 : 20969.dasm (-7.61 % of base)
-28 : 20984.dasm (-7.61 % of base)
47 total files with Code Size differences (47 improved, 0 regressed), 18 unchanged.
Top method improvements (bytes):
-108 (-2.40 % of base) : 19118.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 114092.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.19 % of base) : 59054.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-48 (-1.63 % of base) : 207190.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeNumberTest() (FullOpts)
-48 (-1.63 % of base) : 205800.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeTest() (FullOpts)
-48 (-1.66 % of base) : 206042.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
-48 (-1.66 % of base) : 206346.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
-40 (-2.42 % of base) : 94181.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-7.89 % of base) : 56549.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-10.59 % of base) : 73628.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-32 (-7.92 % of base) : 15158.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-32 (-1.78 % of base) : 13211.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-32 (-2.55 % of base) : 20014.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsCustom(byref,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-32 (-0.97 % of base) : 5955.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-32 (-1.20 % of base) : 160157.dasm - System.Collections.ObjectModel.Tests.KeyedCollectionTests`2[int,System.__Canon]:Threshold(int,System.Collections.ObjectModel.Tests.Named`1[System.__Canon]):this (FullOpts)
-32 (-13.33 % of base) : 147872.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-5.41 % of base) : 186120.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-5.41 % of base) : 185963.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-28 (-5.56 % of base) : 23705.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-7.61 % of base) : 20984.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
Top method improvements (percentages):
-24 (-17.14 % of base) : 43168.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 48857.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 5667.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-32 (-13.33 % of base) : 147872.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-10.59 % of base) : 73628.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-16 (-10.00 % of base) : 155057.dasm - System.Numerics.Tensors.Tests.GenericIntegerTensorPrimitivesTests`1[System.Int128]:RemoveSignedMinValue(System.Span`1[System.Int128]):this (FullOpts)
-20 (-9.09 % of base) : 147797.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-8.77 % of base) : 11342.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 13006.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-32 (-7.92 % of base) : 15158.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-36 (-7.89 % of base) : 56549.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-28 (-7.61 % of base) : 20984.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-7.61 % of base) : 20969.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-16 (-7.41 % of base) : 147802.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-7.35 % of base) : 264967.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-20 (-7.14 % of base) : 51762.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.94 % of base) : 44696.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.76 % of base) : 14256.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.41 % of base) : 14319.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
-28 (-5.56 % of base) : 23705.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):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: 15061172 (overridden on cmd)
Total bytes of diff: 15059900 (overridden on cmd)
Total bytes of delta: -1272 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-224 : 4588.dasm (-37.09 % of base)
-108 : 20711.dasm (-2.28 % of base)
-72 : 5957.dasm (-4.57 % of base)
-64 : 9392.dasm (-3.07 % of base)
-48 : 11666.dasm (-3.23 % of base)
-36 : 25199.dasm (-7.89 % of base)
-32 : 20736.dasm (-2.03 % of base)
-32 : 5068.dasm (-5.76 % of base)
-32 : 1670.dasm (-3.36 % of base)
-28 : 11017.dasm (-3.68 % of base)
-28 : 11014.dasm (-20.59 % of base)
-28 : 23112.dasm (-5.56 % of base)
-28 : 9891.dasm (-2.19 % of base)
-24 : 17417.dasm (-0.36 % of base)
-24 : 20554.dasm (-1.97 % of base)
-24 : 23380.dasm (-1.12 % of base)
-24 : 20427.dasm (-1.50 % of base)
-24 : 1124.dasm (-2.88 % of base)
-20 : 21107.dasm (-8.93 % of base)
-20 : 25135.dasm (-3.79 % of base)
46 total files with Code Size differences (46 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-224 (-37.09 % of base) : 4588.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-108 (-2.28 % of base) : 20711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 5957.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-3.07 % of base) : 9392.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-48 (-3.23 % of base) : 11666.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 25199.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-3.36 % of base) : 1670.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-32 (-5.76 % of base) : 5068.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-32 (-2.03 % of base) : 20736.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-28 (-2.19 % of base) : 9891.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
-28 (-20.59 % of base) : 11014.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-28 (-3.68 % of base) : 11017.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-28 (-5.56 % of base) : 23112.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-2.88 % of base) : 1124.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-24 (-1.50 % of base) : 20427.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-24 (-0.36 % of base) : 17417.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-1.12 % of base) : 23380.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-1.97 % of base) : 20554.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
-20 (-7.94 % of base) : 21847.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-20 (-7.35 % of base) : 22345.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
Top method improvements (percentages):
-224 (-37.09 % of base) : 4588.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-28 (-20.59 % of base) : 11014.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-20 (-8.93 % of base) : 21107.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 21847.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-36 (-7.89 % of base) : 25199.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-20 (-7.35 % of base) : 22345.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-32 (-5.76 % of base) : 5068.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-28 (-5.56 % of base) : 23112.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-12 (-4.84 % of base) : 26475.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-72 (-4.57 % of base) : 5957.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-16 (-4.00 % of base) : 18437.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-8 (-3.92 % of base) : 19799.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
-20 (-3.79 % of base) : 25135.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-28 (-3.68 % of base) : 11017.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-8 (-3.64 % of base) : 20229.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
-32 (-3.36 % of base) : 1670.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-48 (-3.23 % of base) : 11666.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-64 (-3.07 % of base) : 9392.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-24 (-2.88 % of base) : 1124.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-16 (-2.37 % of base) : 17724.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeAttributeUsageAttribute(Microsoft.CodeAnalysis.TypedConstant,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[System.String,Microsoft.CodeAnalysis.TypedConstant]]):Microsoft.CodeAnalysis.AttributeUsageInfo (FullOpts)
windows arm64
Diffs are based on 2,341,109 contexts (938,449 MinOpts, 1,402,660 FullOpts).
MISSED contexts: 8 (0.00%)
Overall (-36,452 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
10,966,124 |
-424 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
45,570,040 |
-3,804 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
15,587,136 |
-160 |
| coreclr_tests.run.windows.arm64.checked.mch |
495,272,272 |
-4,888 |
| libraries.crossgen2.windows.arm64.checked.mch |
59,070,392 |
-1,712 |
| libraries.pmi.windows.arm64.checked.mch |
79,847,816 |
-3,640 |
| libraries_tests.run.windows.arm64.Release.mch |
330,788,744 |
-16,052 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
171,581,040 |
-3,932 |
| realworld.run.windows.arm64.checked.mch |
15,904,856 |
-1,376 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
3,970,816 |
-464 |
FullOpts (-36,452 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
10,965,588 |
-424 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
29,558,644 |
-3,804 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
4,409,948 |
-160 |
| coreclr_tests.run.windows.arm64.checked.mch |
156,583,168 |
-4,888 |
| libraries.crossgen2.windows.arm64.checked.mch |
59,068,756 |
-1,712 |
| libraries.pmi.windows.arm64.checked.mch |
79,727,832 |
-3,640 |
| libraries_tests.run.windows.arm64.Release.mch |
127,355,148 |
-16,052 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
158,427,292 |
-3,932 |
| realworld.run.windows.arm64.checked.mch |
15,340,876 |
-1,376 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
3,969,804 |
-464 |
Example diffs
benchmarks.run.windows.arm64.checked.mch
-24 (-12.50%) : 21795.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x19 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T04] ( 3, 4 ) ref -> x20 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -23,22 +23,21 @@
; V12 tmp7 [V12,T06] ( 2, 3 ) ref -> x21 "field V03._originalStack (fldOffset=0x0)" P-INDEP
; V13 tmp8 [V13,T00] ( 8, 27 ) ref -> x22 "field V03._remainingStack (fldOffset=0x8)" P-INDEP
;* V14 cse0 [V14,T07] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V15 rat0 [V15,T03] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+;* V15 rat0 [V15,T03] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V16 rat1 [V16,T05] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V17 rat2 [V17,T02] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V17 rat2 [V17,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 0
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- str x0, [fp, #0x18]
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
-G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=20 bbWeight=1 PerfScore 4.00
+G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x20, xzr
; gcrRegs +[x20]
ldr x0, [x19, #0xA0]
@@ -54,16 +53,10 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x21]
mov x22, x1
; gcrRegs +[x22]
- ldr x0, [x19]
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x20]
- cbnz x0, G_M64146_IG04
b G_M64146_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 14.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1 x20]
+ ; gcrRegs -[x0-x1 x20]
mov x0, x22
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this
@@ -110,13 +103,13 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x0]
;; size=4 bbWeight=1 PerfScore 0.50
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 192, prolog size 20, PerfScore 113.50, instruction count 48, allocated bytes for code 192 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 168, prolog size 16, PerfScore 99.50, instruction count 42, allocated bytes for code 168 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -127,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -136,8 +129,8 @@ Unwind Info:
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
E6 save_next
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 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
-12 (-7.14%) : 14861.dasm - System.Collections.Generic.PriorityQueue2[int,int]:MoveUpDefaultComparer(System.ValueTuple2[int,int],int):this (FullOpts)
@@ -16,11 +16,11 @@
;* V05 loc2 [V05 ] ( 0, 0 ) struct ( 8) zero-ref <System.ValueTuple`2[int,int]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V08 tmp2 [V08,T03] ( 3, 20 ) int -> x7 ld-addr-op "Inlining Arg"
+; V08 tmp2 [V08,T03] ( 2, 16 ) int -> x7 ld-addr-op "Inlining Arg"
;* V09 tmp3 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V10 tmp4 [V10,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V11 tmp5 [V11,T08] ( 2, 8 ) int -> x6 "field V05.Item1 (fldOffset=0x0)" P-INDEP
-; V12 tmp6 [V12,T05] ( 4, 14 ) int -> x5 "field V05.Item2 (fldOffset=0x4)" P-INDEP
+; V12 tmp6 [V12,T05] ( 3, 12 ) int -> x5 "field V05.Item2 (fldOffset=0x4)" P-INDEP
; V13 tmp7 [V13,T01] ( 3, 24 ) byref -> x5 "BlockOp address local"
; V14 tmp8 [V14,T02] ( 3, 24 ) byref -> x2 "BlockOp address local"
; V15 cse0 [V15,T07] ( 5, 11 ) int -> x1 hoist multi-def "CSE - aggressive"
@@ -37,7 +37,7 @@ G_M9068_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
cmp w2, #0
- ble G_M9068_IG06
+ ble G_M9068_IG04
ldr w1, [x0, #0x08]
ldr w3, [fp, #0x1C] // [V01 arg1+0x04]
;; size=20 bbWeight=1 PerfScore 9.50
@@ -45,7 +45,7 @@ G_M9068_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
sub w4, w2, #1
asr w4, w4, #2
cmp w4, w1
- bhs G_M9068_IG08
+ bhs G_M9068_IG06
ubfiz x5, x4, #3, #32
add x5, x5, #16
add x5, x0, x5
@@ -54,16 +54,9 @@ G_M9068_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; byrRegs -[x5]
sxtw w7, w3
cmp w7, w5
- blt G_M9068_IG05
- ;; size=44 bbWeight=4 PerfScore 40.00
-G_M9068_IG04: ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
- cmp w7, w5
- ble G_M9068_IG06
- b G_M9068_IG06
- ;; size=12 bbWeight=2 PerfScore 5.00
-G_M9068_IG05: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ bge G_M9068_IG04
cmp w2, w1
- bhs G_M9068_IG08
+ bhs G_M9068_IG06
ubfiz x2, x2, #3, #32
add x2, x2, #16
add x2, x0, x2
@@ -73,28 +66,28 @@ G_M9068_IG05: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; byrRegs -[x2]
cmp w2, #0
bgt G_M9068_IG03
- ;; size=36 bbWeight=4 PerfScore 26.00
-G_M9068_IG06: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ ;; size=80 bbWeight=4 PerfScore 66.00
+G_M9068_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x08]
cmp w2, w1
- bhs G_M9068_IG08
+ bhs G_M9068_IG06
ubfiz x1, x2, #3, #32
add x1, x1, #16
ldr x2, [fp, #0x18] // [V01 arg1]
str x2, [x0, x1]
;; size=28 bbWeight=1 PerfScore 9.00
-G_M9068_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M9068_IG05: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M9068_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M9068_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 168, prolog size 12, PerfScore 94.00, instruction count 42, allocated bytes for code 168 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
+; Total bytes of code 156, prolog size 12, PerfScore 89.00, instruction count 39, allocated bytes for code 156 (MethodHash=d4dadc93) for method System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -105,7 +98,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-6.73%) : 1086.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -41,15 +41,15 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=36 bbWeight=1 PerfScore 6.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
ldr w14, [x20, #0x68]
- cbnz w14, G_M23091_IG11
- cbz x19, G_M23091_IG12
+ cbnz w14, G_M23091_IG10
+ cbz x19, G_M23091_IG11
add x14, x19, #244
; byrRegs +[x14]
mov w15, #1
mov w12, wzr
mov w1, w12
casal w1, w15, [x14]
- cbnz w1, G_M23091_IG13
+ cbnz w1, G_M23091_IG12
mov w14, #4
; byrRegs -[x14]
str w14, [x19, #0xDC]
@@ -61,20 +61,9 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x19, #0xFA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=64 bbWeight=1 PerfScore 18.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -90,7 +79,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
ldr x14, [x19, #0xB0]
; gcrRegs +[x14]
add x14, x14, #8
@@ -102,14 +91,14 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
; gcrRegs -[x15]
; byrRegs -[x14]
;; size=16 bbWeight=1 PerfScore 5.00
-G_M23091_IG06: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x1, [x20, #0x08]
; gcrRegs +[x1]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M23091_IG08
+ cbz x0, G_M23091_IG07
;; size=12 bbWeight=1 PerfScore 7.00
-G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+G_M23091_IG06: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20-x21]
mov x0, x19
; gcrRegs +[x0]
@@ -120,9 +109,9 @@ G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- b G_M23091_IG09
+ b G_M23091_IG08
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x1 x21]
mov x0, x19
; gcrRegs +[x0]
@@ -136,19 +125,19 @@ G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=
; gcrRegs -[x0-x2 x21]
; gcr arg pop 0
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M23091_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x19]
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG09: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20]
mov x0, x20
; gcrRegs +[x0]
@@ -161,7 +150,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -177,7 +166,7 @@ G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=40 bbWeight=0 PerfScore 0.00
-G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
; GC ptr vars +{V00 V01}
mov x0, x19
@@ -192,7 +181,7 @@ G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=800
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
@@ -200,7 +189,7 @@ G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
add x3, fp, #64
str x3, [sp, #0x10]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -216,7 +205,7 @@ G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_windows #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 416, prolog size 36, PerfScore 58.25, instruction count 104, allocated bytes for code 416 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 388, prolog size 36, PerfScore 53.50, instruction count 97, allocated bytes for code 388 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -227,7 +216,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 91 (0x0005b) Actual length = 364 (0x00016c)
+ Function Length : 84 (0x00054) Actual length = 336 (0x000150)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -262,4 +251,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG06..G_M23091_IG09) handled by [G_M23091_IG14..END) (class: 1000001)
+EH#0: try [G_M23091_IG05..G_M23091_IG08) handled by [G_M23091_IG13..END) (class: 1000001)
-24 (-0.36%) : 18667.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 149 single block inlinees; 52 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T07] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+; V00 this [V00,T06] ( 20, 11 ) ref -> x22 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
; V01 arg1 [V01,T01] ( 33, 17.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
; V02 arg2 [V02,T00] ( 53, 18 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V03 arg3 [V03,T14] ( 5, 3.50) ushort -> x24 single-def
; V04 arg4 [V04,T09] ( 10, 6 ) ubyte -> x23 single-def
; V05 arg5 [V05,T02] ( 32, 17 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V06 loc0 [V06,T06] ( 26, 13 ) ubyte -> x25
+; V06 loc0 [V06,T08] ( 23, 11.50) ubyte -> x25
;* V07 loc1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundNamespaceExpression>
;* V08 loc2 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
;* V09 loc3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundUnconvertedAddressOfOperator>
@@ -574,7 +574,7 @@
; V563 cse0 [V563,T186] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V564 cse1 [V564,T187] ( 3, 1.50) ref -> x2 "CSE - conservative"
; V565 cse2 [V565,T04] ( 31, 15.50) int -> x26 multi-def "CSE - aggressive"
-; V566 cse3 [V566,T08] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
+; V566 cse3 [V566,T07] ( 24, 12 ) long -> x27 multi-def "CSE - aggressive"
; V567 rat0 [V567,T56] ( 3, 3 ) int -> x25 "ReplaceWithLclVar is creating a new local variable"
; V568 rat1 [V568,T57] ( 3, 3 ) int -> x28 "ReplaceWithLclVar is creating a new local variable"
; V569 rat2 [V569,T58] ( 3, 3 ) int -> x7 "ReplaceWithLclVar is creating a new local variable"
@@ -624,7 +624,7 @@ G_M42189_IG02: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefReg
ldr wzr, [x0]
blr x1
; gcrRegs -[x0]
- cbnz w0, G_M42189_IG168
+ cbnz w0, G_M42189_IG167
;; size=32 bbWeight=1 PerfScore 10.00
G_M42189_IG03: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x12]
@@ -644,7 +644,7 @@ G_M42189_IG04: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG170
+ bne G_M42189_IG169
ldr x4, [x19, #0x40]
; gcrRegs +[x4]
ldrb w4, [x4, #0x12]
@@ -670,7 +670,7 @@ G_M42189_IG05: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x6, [x6]
blr x6
; gcrRegs -[x0-x2 x5 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=52 bbWeight=0.50 PerfScore 5.00
G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21-x22]
@@ -679,7 +679,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG171
+ bne G_M42189_IG170
mov x1, x19
; gcrRegs +[x1]
uxth w26, w24
@@ -694,7 +694,7 @@ G_M42189_IG06: ; bbWeight=0.50, gcrefRegs=680000 {x19 x21 x22}, byrefRegs
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x1 x3 x19 x21-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=68 bbWeight=0.50 PerfScore 7.50
G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -712,7 +712,7 @@ G_M42189_IG07: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=48 bbWeight=0.50 PerfScore 5.00
G_M42189_IG08: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
@@ -860,37 +860,27 @@ G_M42189_IG21: ; bbWeight=0.50, gcrefRegs=200004 {x2 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0 x2 x21]
- b G_M42189_IG168
+ b G_M42189_IG167
;; size=32 bbWeight=0.50 PerfScore 3.75
G_M42189_IG22: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
ldrb w25, [x19, #0x12]
cmp w25, #48
- bhi G_M42189_IG27
- cmp w25, #12
- bhi G_M42189_IG24
- cmp w25, #6
- bhi G_M42189_IG23
- cmp w25, #4
- ccmp w25, #6, z, ne
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=44 bbWeight=0.50 PerfScore 5.25
-G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19 x22]
- cmp w25, #10
- beq G_M42189_IG161
- cmp w25, #12
- beq G_M42189_IG165
- b G_M42189_IG165
- ;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19 x22]
- cmp w25, #35
bhi G_M42189_IG26
+ cmp w25, #12
+ bhi G_M42189_IG23
+ cmp w25, #6
+ bls G_M42189_IG164
+ cmp w25, #10
+ beq G_M42189_IG160
+ b G_M42189_IG164
+ ;; size=40 bbWeight=0.50 PerfScore 5.00
+G_M42189_IG23: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ cmp w25, #35
+ bhi G_M42189_IG25
sub w28, w25, #22
cmp w28, #10
- bhi G_M42189_IG25
+ bhi G_M42189_IG24
mov w0, w28
adr x1, [@RWD16]
ldr w1, [x1, x0, LSL #2]
@@ -898,25 +888,25 @@ G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=44 bbWeight=0.50 PerfScore 4.75
-G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG24: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #35
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG25: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #42
- beq G_M42189_IG164
+ beq G_M42189_IG163
cmp w25, #47
- beq G_M42189_IG160
+ beq G_M42189_IG159
cmp w25, #48
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG172
+ bne G_M42189_IG171
ldr x3, [x19, #0x28]
; gcrRegs +[x3]
mov w2, w26
@@ -932,25 +922,25 @@ G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x5, [x5]
blr x5
; gcrRegs -[x0-x1 x3-x4 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=88 bbWeight=0.50 PerfScore 9.50
-G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG26: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #151
- bhi G_M42189_IG30
+ bhi G_M42189_IG29
cmp w25, #110
- bhi G_M42189_IG28
+ bhi G_M42189_IG27
cmp w25, #70
- beq G_M42189_IG116
+ beq G_M42189_IG115
cmp w25, #110
- bne G_M42189_IG165
- tbz w26, #5, G_M42189_IG142
- b G_M42189_IG139
+ bne G_M42189_IG164
+ tbz w26, #5, G_M42189_IG141
+ b G_M42189_IG138
;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG27: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
sub w7, w25, #114
cmp w7, #3
- bhi G_M42189_IG29
+ bhi G_M42189_IG28
mov w0, w7
adr x1, [@RWD60]
ldr w1, [x1, x0, LSL #2]
@@ -958,25 +948,25 @@ G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
add x1, x1, x2
br x1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG28: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x22]
cmp w25, #151
- beq G_M42189_IG128
- b G_M42189_IG165
+ beq G_M42189_IG127
+ b G_M42189_IG164
;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG29: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x22]
cmp w25, #159
- bhi G_M42189_IG31
+ bhi G_M42189_IG30
cmp w25, #157
- beq G_M42189_IG80
+ beq G_M42189_IG79
cmp w25, #159
- bne G_M42189_IG165
+ bne G_M42189_IG164
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x27, x0
- bne G_M42189_IG173
+ bne G_M42189_IG172
mov x2, x19
; gcrRegs +[x2]
ldr x1, [x2, #0x28]
@@ -996,17 +986,17 @@ G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byref
ldr x7, [x7]
blr x7
; gcrRegs -[x0-x3 x6 x19-x22]
- b G_M42189_IG150
+ b G_M42189_IG149
;; size=100 bbWeight=0.50 PerfScore 11.50
-G_M42189_IG31: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M42189_IG30: ; bbWeight=0.50, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x22]
cmp w25, #173
- beq G_M42189_IG128
+ beq G_M42189_IG127
cmp w25, #177
- beq G_M42189_IG161
+ beq G_M42189_IG160
...
-32 (-0.24%) : 8968.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T154] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T155] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T156] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T335] ( 3, 1.50) long -> x0 single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T335] ( 2, 1 ) long -> x0 single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T336] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -109,7 +109,7 @@
;* V98 tmp85 [V98 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V99 tmp86 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V100 tmp87 [V100 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V101 tmp88 [V101,T114] ( 3, 10 ) long -> x2 "Inline stloc first use temp"
+; V101 tmp88 [V101,T114] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
;* V102 tmp89 [V102,T124] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V104 tmp91 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -529,7 +529,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr x2, [x24, #0x10]
blr x2
; gcrRegs -[x0-x1 x19]
- b G_M11467_IG269
+ b G_M11467_IG267
;; size=40 bbWeight=0.50 PerfScore 8.00
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x21]
@@ -578,13 +578,13 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs -[x0-x1]
ldr w0, [x25, #0x08]
cmp w0, #0
- blt G_M11467_IG271
+ blt G_M11467_IG269
sxtw w26, w0
cmp w0, #0
ble G_M11467_IG44
ldr w0, [x25, #0x08]
cmp w0, #0
- bls G_M11467_IG270
+ bls G_M11467_IG268
ldrb w27, [x25, #0x10]
mov w0, #0xD1FFAB1E
cmp w27, w0
@@ -764,7 +764,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
ldrh w4, [x27, w2, UXTW #2]
@@ -780,7 +780,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w4, w2, #1
@@ -797,7 +797,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w2, w2, #2
@@ -813,7 +813,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
ldrh w2, [x27, w1, UXTW #2]
@@ -829,7 +829,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w2, w1, #1
@@ -849,7 +849,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x2, #16
; byrRegs +[x27]
add w2, w1, #2
@@ -857,18 +857,18 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
ldrh w2, [x27, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #1
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #2
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -892,7 +892,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
beq G_M11467_IG44
ldr w1, [x25, #0x08]
cmp w27, w1
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x1, x25, #16
; byrRegs +[x1]
ldrb w28, [x1, w27, UXTW #2]
@@ -1096,7 +1096,7 @@ G_M11467_IG37: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldr x4, [x4]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1112,7 +1112,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w5, w1, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1129,7 +1129,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w5, w1, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1146,7 +1146,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1162,7 +1162,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1182,7 +1182,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x2, #16
; byrRegs +[x4]
add w2, w1, #2
@@ -1190,18 +1190,18 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
ldrh w2, [x4, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #1
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #2
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -1252,7 +1252,7 @@ G_M11467_IG45: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x2, [x24, #0x10]
blr x2
; gcrRegs -[x0-x1 x25]
- b G_M11467_IG100
+ b G_M11467_IG98
;; size=56 bbWeight=0.50 PerfScore 10.75
G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x25]
@@ -1265,34 +1265,28 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs -[x0-x1]
ldr w0, [x25, #0x08]
cmp w0, #0
- blt G_M11467_IG271
+ blt G_M11467_IG269
sxtw w27, w0
cmp w0, #0
- ble G_M11467_IG99
+ ble G_M11467_IG97
ldr w0, [x25, #0x08]
cmp w0, #0
- bls G_M11467_IG270
+ bls G_M11467_IG268
ldr x28, [x25, #0x10]
and x0, x28, #0xD1FFAB1E
- cbz x0, G_M11467_IG47
- mov x1, #0xD1FFAB1E
- cmp x0, x1
- beq G_M11467_IG48
- b G_M11467_IG48
- ;; size=80 bbWeight=0.50 PerfScore 13.00
-G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref
+ cbnz x0, G_M11467_IG47
and x0, x28, #0xD1FFAB1E
orr x28, x0, #0xD1FFAB1E
- ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+ ;; size=72 bbWeight=0.50 PerfScore 12.00
+G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
and x0, x28, #0xD1FFAB1E
- cbz x0, G_M11467_IG49
+ cbz x0, G_M11467_IG48
mov x1, #0xD1FFAB1E
cmp x0, x1
- bne G_M11467_IG49
- b G_M11467_IG51
...
-8 (-0.20%) : 14807.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
@@ -30,15 +30,15 @@
;# V19 OutArgs [V19 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V21 tmp2 [V21 ] ( 8, 16 ) struct (16) [fp+0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T36] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V22 tmp3 [V22,T35] ( 3, 6 ) ref -> x4 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V23 tmp4 [V23 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-; V24 tmp5 [V24,T44] ( 3, 6 ) int -> x1 "impAppendStmt"
+; V24 tmp5 [V24,T43] ( 3, 6 ) int -> x1 "impAppendStmt"
;* V25 tmp6 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
;* V28 tmp9 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
; V29 tmp10 [V29 ] ( 5, 10 ) struct (16) [fp+0x28] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V30 tmp11 [V30,T37] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp11 [V30,T36] ( 3, 6 ) ref -> x5 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
@@ -48,7 +48,7 @@
; V37 tmp18 [V37,T128] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 tmp21 [V40,T38] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V40 tmp21 [V40,T37] ( 3, 6 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V41 tmp22 [V41 ] ( 0, 0 ) ref -> zero-ref
; V42 tmp23 [V42,T96] ( 2, 2 ) ref -> x14 single-def
;* V43 tmp24 [V43,T117] ( 0, 0 ) int -> zero-ref
@@ -66,14 +66,14 @@
;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V58 tmp39 [V58,T39] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V58 tmp39 [V58,T38] ( 3, 6 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V59 tmp40 [V59,T68] ( 2, 4 ) int -> x2 "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V61 tmp42 [V61,T04] ( 12, 12 ) int -> x20 "Inline return value spill temp"
-; V62 tmp43 [V62,T45] ( 3, 6 ) int -> x3 "Inlining Arg"
-; V63 tmp44 [V63,T46] ( 3, 6 ) int -> x1 "Inlining Arg"
+; V62 tmp43 [V62,T44] ( 3, 6 ) int -> x3 "Inlining Arg"
+; V63 tmp44 [V63,T45] ( 3, 6 ) int -> x1 "Inlining Arg"
; V64 tmp45 [V64,T11] ( 4, 8 ) ref -> x1 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V65 tmp46 [V65,T33] ( 4, 6 ) int -> x2 "Inlining Arg"
+; V65 tmp46 [V65,T46] ( 3, 6 ) int -> x2 "Inlining Arg"
;* V66 tmp47 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V67 tmp48 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V68 tmp49 [V68,T27] ( 6, 6 ) byref -> x24 "Inline stloc first use temp"
@@ -196,8 +196,8 @@
; V185 tmp166 [V185,T75] ( 2, 4 ) long -> x2 "Inlining Arg"
; V186 tmp167 [V186,T05] ( 6, 12 ) ref -> x0 class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V187 tmp168 [V187,T08] ( 5, 10 ) byref -> x19 single-def "Inlining Arg"
-; V188 tmp169 [V188,T40] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V189 tmp170 [V189,T41] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V188 tmp169 [V188,T39] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V189 tmp170 [V189,T40] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V190 tmp171 [V190 ] ( 6, 6 ) ref -> [fp+0x98] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V191 tmp172 [V191 ] ( 6, 6 ) int -> [fp+0xA0] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V192 tmp173 [V192 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -210,8 +210,8 @@
; V199 tmp180 [V199,T59] ( 4, 4 ) short -> [fp+0x64] do-not-enreg[] "field V14._token (fldOffset=0xc)" P-DEP
; V200 tmp181 [V200,T107] ( 2, 2 ) ubyte -> [fp+0x66] do-not-enreg[] "field V14._continueOnCapturedContext (fldOffset=0xe)" P-DEP
; V201 tmp182 [V201,T32] ( 4, 6 ) ref -> [fp+0x38] do-not-enreg[] "field V21._object (fldOffset=0x0)" P-DEP
-; V202 tmp183 [V202,T34] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
-; V203 tmp184 [V203,T35] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
+; V202 tmp183 [V202,T33] ( 4, 6 ) int -> [fp+0x40] do-not-enreg[] "field V21._index (fldOffset=0x8)" P-DEP
+; V203 tmp184 [V203,T34] ( 4, 6 ) int -> [fp+0x44] do-not-enreg[] "field V21._length (fldOffset=0xc)" P-DEP
;* V204 tmp185 [V204 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp186 [V205 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
; V206 tmp187 [V206,T51] ( 3, 5 ) ref -> [fp+0x28] do-not-enreg[] "field V29._object (fldOffset=0x0)" P-DEP
@@ -269,10 +269,10 @@
;* V258 tmp239 [V258 ] ( 0, 0 ) int -> zero-ref "field V181._length (fldOffset=0x8)" P-INDEP
;* V259 tmp240 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V182._reference (fldOffset=0x0)" P-INDEP
;* V260 tmp241 [V260 ] ( 0, 0 ) int -> zero-ref "field V182._length (fldOffset=0x8)" P-INDEP
-; V261 tmp242 [V261,T42] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
+; V261 tmp242 [V261,T41] ( 3, 6 ) ref -> x1 single-def "argument with side effect"
; V262 tmp243 [V262,T64] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V263 tmp244 [V263,T65] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V264 tmp245 [V264,T43] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
+; V264 tmp245 [V264,T42] ( 3, 6 ) ref -> x4 single-def "argument with side effect"
; V265 tmp246 [V265,T66] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V266 tmp247 [V266,T67] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V267 PSPSym [V267,T127] ( 1, 1 ) long -> [fp+0xB0] do-not-enreg[V] "PSPSym"
@@ -421,7 +421,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG92
+ b G_M33324_IG91
;; size=80 bbWeight=1 PerfScore 21.00
G_M33324_IG07: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, nogc
; gcrRegs +[x19]
@@ -491,7 +491,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ble G_M33324_IG15
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbz x1, G_M33324_IG75
+ cbz x1, G_M33324_IG74
mov w3, w2
add x3, x3, w20, UXTW
ldr w4, [x1, #0x08]
@@ -596,7 +596,7 @@ G_M33324_IG14: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=1200000 {x2
blr x1
; gcr arg pop 0
cmp w22, w25
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w22
mov x0, x24
; byrRegs +[x0]
@@ -620,7 +620,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
cmp w20, w1
bne G_M33324_IG16
str w20, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG80
+ b G_M33324_IG79
;; size=20 bbWeight=1 PerfScore 6.50
G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
cmp w20, #0
@@ -629,7 +629,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0},
; byrRegs +[x1]
ldr w2, [x1, #0x0C]
cmp w20, w2
- bhi G_M33324_IG77
+ bhi G_M33324_IG76
ldr x21, [x1]
; gcrRegs +[x21]
ldr w1, [x1, #0x08]
@@ -949,7 +949,7 @@ G_M33324_IG28: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
ldr w0, [x21, #0x14]
add w0, w20, w0
str w0, [fp, #0xA8] // [V03 loc2]
- b G_M33324_IG86
+ b G_M33324_IG85
;; size=16 bbWeight=1 PerfScore 5.50
G_M33324_IG29: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21]
@@ -1032,7 +1032,7 @@ G_M33324_IG33: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG82
+ b G_M33324_IG81
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG34: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, nogc
; byrRegs -[x21]
@@ -1140,7 +1140,7 @@ G_M33324_IG41: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG84
+ b G_M33324_IG83
;; size=92 bbWeight=1 PerfScore 22.50
G_M33324_IG42: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1411,7 +1411,7 @@ G_M33324_IG57: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x1]
; gcr arg pop 0
- b G_M33324_IG88
+ b G_M33324_IG87
;; size=96 bbWeight=1 PerfScore 24.50
G_M33324_IG58: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1666,7 +1666,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x1
; gcr arg pop 0
cmp w23, w26
- bhi G_M33324_IG76
+ bhi G_M33324_IG75
mov w2, w23
mov x0, x25
; byrRegs +[x0]
@@ -1679,7 +1679,7 @@ G_M33324_IG73: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=2600000 {x2
blr x3
; byrRegs -[x0-x1 x22 x25]
; gcr arg pop 0
- b G_M33324_IG78
+ b G_M33324_IG77
;; size=72 bbWeight=1 PerfScore 16.00
G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; byrRegs -[x21]
@@ -1691,13 +1691,7 @@ G_M33324_IG74: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
- ; byrRegs +[x0]
- cbnz w2, G_M33324_IG74
- b G_M33324_IG74
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
+G_M33324_IG75: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -1706,7 +1700,7 @@ G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M33324_IG76: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -1716,7 +1710,7 @@ G_M33324_IG77: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG77: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
; byrRegs +[x21]
ldr w0, [x19, #0x30]
add w0, w0, w20
@@ -1725,9 +1719,9 @@ G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
add w0, w0, w20
str w0, [fp, #0xA8] // [V03 loc2]
;; size=24 bbWeight=1 PerfScore 9.00
-G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M33324_IG78: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
ldr w0, [fp, #0xAC] // [V01 loc0]
- tbz w0, #31, G_M33324_IG90
+ tbz w0, #31, G_M33324_IG89
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -1740,51 +1734,51 @@ G_M33324_IG79: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21
blr x2
; gcrRegs -[x0 x19]
; gcr arg pop 0
- b G_M33324_IG90
+ b G_M33324_IG89
;; size=44 bbWeight=1 PerfScore 16.00
-G_M33324_IG80: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
+G_M33324_IG79: ; bbWeight=1, gcVars=000000000000000000000000000000000000000000000003 {V00 V02}, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, gcvars, byref
; gcrRegs +[x19]
; byrRegs -[x21] +[x0]
; GC ptr vars +{V01 V02}
ldr x0, [fp, #0xB0] // [V267 PSPSym]
; byrRegs -[x0]
- bl G_M33324_IG93
+ bl G_M33324_IG92
;; size=8 bbWeight=1 PerfScore 3.00
-G_M33324_IG81: ; bbWeight=1, nogc, extend
- b G_M33324_IG90
+G_M33324_IG80: ; bbWeight=1, nogc, extend
+ b G_M33324_IG89
;; size=4 bbWeight=1 PerfScore 1.00
-G_M33324_IG82: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
+G_M33324_IG81: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref
...
benchmarks.run_pgo.windows.arm64.checked.mch
-24 (-14.63%) : 41629.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.68) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.76) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.68) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.68) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.68) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.72
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.67
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.32
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.14
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.68
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.17, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.93, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-14.63%) : 39334.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.69) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.77) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T01] ( 6, 5.69) int -> x2
; V03 loc1 [V03,T05] ( 4, 3.84) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.69) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.69) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.92 PerfScore 20.75
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.18 PerfScore 0.18
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.92 PerfScore 9.68
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.08 PerfScore 0.12
-G_M49890_IG06: ; bbWeight=0.08, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.08, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.08 PerfScore 0.31
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.92 PerfScore 4.15
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.92 PerfScore 3.69
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 44.20, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 31.95, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-14.63%) : 50211.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 6.86) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.14) ref -> x19 this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> x1 single-def
; V02 loc0 [V02,T02] ( 6, 4.86) int -> x2
; V03 loc1 [V03,T04] ( 4, 3.43) ref -> x3 class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.71) int -> x4 "CSE - aggressive"
-; V08 rat0 [V08,T05] ( 2, 2.86) long -> x0 "Spilling to split statement for tree"
+;* V08 rat0 [V08,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T03] ( 2, 2.86) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -27,10 +27,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; byrRegs +[x1]
ldr w0, [x19, #0x10]
@@ -39,9 +38,9 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; gcrRegs +[x3]
ldr w4, [x3, #0x08]
cmp w4, w2
- bls G_M49890_IG05
+ bls G_M49890_IG04
;; size=24 bbWeight=1 PerfScore 11.00
-G_M49890_IG03: ; bbWeight=0.71, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref, isz
+G_M49890_IG03: ; bbWeight=0.71, gcrefRegs=80008 {x3 x19}, byrefRegs=0002 {x1}, byref
ldr w14, [x19, #0x14]
add w14, w14, #1
stp w2, w14, [x19, #0x10]
@@ -53,51 +52,44 @@ G_M49890_IG03: ; bbWeight=0.71, gcrefRegs=80008 {x3 x19}, byrefRegs=0002
bl CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x1 x14]
- ldr x0, [x19]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x18]
- cbnz x0, G_M49890_IG07
- ;; size=48 bbWeight=0.71 PerfScore 16.07
-G_M49890_IG04: ; bbWeight=0.14, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, byref
- b G_M49890_IG07
- ;; size=4 bbWeight=0.14 PerfScore 0.14
-G_M49890_IG05: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
+ b G_M49890_IG06
+ ;; size=32 bbWeight=0.71 PerfScore 7.50
+G_M49890_IG04: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x3]
; byrRegs +[x1]
str xzr, [x1]
mov w0, wzr
;; size=8 bbWeight=0.29 PerfScore 0.43
-G_M49890_IG06: ; bbWeight=0.29, epilog, nogc, extend
+G_M49890_IG05: ; bbWeight=0.29, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.29 PerfScore 1.14
-G_M49890_IG07: ; bbWeight=0.71, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.71, gcVars=0000000000000000 {}, gcrefRegs=80008 {x3 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x3]
; byrRegs -[x1]
sxtw x0, w2
mov w1, w4
cmp x0, x1
- bhs G_M49890_IG09
+ bhs G_M49890_IG08
add x0, x3, #16
; byrRegs +[x0]
str xzr, [x0, w2, SXTW #3]
mov w0, #1
; byrRegs -[x0]
;; size=28 bbWeight=0.71 PerfScore 3.21
-G_M49890_IG08: ; bbWeight=0.71, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.71, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.71 PerfScore 2.86
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x3]
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 16, PerfScore 38.86, instruction count 41, allocated bytes for code 164 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 29.14, instruction count 35, allocated bytes for code 140 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -108,7 +100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.22%) : 71128.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
@@ -11,59 +11,61 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T18] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T26] ( 5, 166.65) int -> x20
-; V03 loc2 [V03,T31] ( 3, 50.02) int -> x21
+; V01 loc0 [V01,T20] ( 5, 283.45) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T28] ( 5, 166.65) int -> x20
+; V03 loc2 [V03,T32] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T16] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T17] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T29] ( 2, 66.69) ref -> x22 class-hnd "dup spill" <<unknown class>>
+; V08 tmp1 [V08,T30] ( 2, 66.69) ref -> x23 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T17] ( 8, 366.83) ref -> x22
-; V11 tmp4 [V11,T38] ( 5, 0.11) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp5 [V12,T34] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
+; V10 tmp3 [V10,T18] ( 8, 366.83) ref -> x23
+; V11 tmp4 [V11,T39] ( 5, 0.11) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V12 tmp5 [V12,T35] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7787.73) ref -> x22 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6515.09) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T27] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V20 tmp13 [V20,T39] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T15] ( 12, 633.60) ref -> x23 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
-; V22 tmp15 [V22,T20] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V23 tmp16 [V23,T21] ( 4, 266.78) ref -> x28 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V24 tmp17 [V24,T24] ( 3, 200.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V25 tmp18 [V25,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V27 tmp20 [V27,T13] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T25] ( 4, 166.74) ref -> x22
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V20 tmp13 [V20,T40] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
+; V21 tmp14 [V21,T16] ( 12, 633.60) ref -> x24 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V22 tmp15 [V22,T22] ( 4, 266.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V23 tmp16 [V23,T23] ( 4, 266.78) ref -> x22 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V24 tmp17 [V24,T26] ( 3, 200.08) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V25 tmp18 [V25,T12] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V26 tmp19 [V26,T13] ( 5, 666.95) ref -> x28 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V27 tmp20 [V27,T14] ( 5, 666.95) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V28 tmp21 [V28,T27] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T14] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T22] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T23] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T19] ( 6, 283.32) int -> x23 "Inline stloc first use temp"
+; V31 tmp24 [V31,T15] ( 5, 666.95) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T24] ( 2, 266.78) ref -> x23 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T25] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T21] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5091.81) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2545.88) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10183.71) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10183.71) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T28] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T29] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25758.85) byref -> x25 "Inlining Arg"
-; V44 tmp37 [V44,T05] ( 8, 5141.80) ref -> x26 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T30] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T35] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
-;* V47 tmp40 [V47,T36] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T33] ( 4, 33.94) int -> x24 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7637.93) ref -> x27 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7637.93) int -> x2 "index expr"
-; V51 PSPSym [V51,T37] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3813.67) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T32] ( 3, 38.52) int -> x2 "CSE - moderate"
+; V43 tmp36 [V43,T00] ( 24,25758.85) byref -> x2 "Inlining Arg"
+; V44 tmp37 [V44,T05] ( 8, 5141.80) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
+; V45 tmp38 [V45,T31] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T36] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
+;* V47 tmp40 [V47,T37] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
+; V48 tmp41 [V48,T34] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7637.93) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7637.93) int -> x3 "index expr"
+; V51 PSPSym [V51,T38] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V52 cse0 [V52,T07] ( 3, 3813.67) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T33] ( 3, 38.52) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1306.58) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T19] ( 15, 303.77) long -> x22 multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -82,24 +84,24 @@ G_M15171_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w20, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M15171_IG02: ; bbWeight=1, gcVars=0000000000010000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V16}
+G_M15171_IG02: ; bbWeight=1, gcVars=0000000000020000 {V05}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05 V17}
b G_M15171_IG17
;; size=4 bbWeight=1 PerfScore 1.00
G_M15171_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V16}
+ ; GC ptr vars -{V05 V17}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x22, [x0]
- ; gcrRegs +[x22]
- cbz x22, G_M15171_IG06
+ ldr x23, [x0]
+ ; gcrRegs +[x23]
+ cbz x23, G_M15171_IG06
;; size=20 bbWeight=16.67 PerfScore 91.71
-G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x19, G_M15171_IG54
+G_M15171_IG04: ; bbWeight=16.67, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x19, G_M15171_IG55
;; size=4 bbWeight=16.67 PerfScore 16.67
-G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M15171_IG55
+G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M15171_IG56
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -109,34 +111,34 @@ G_M15171_IG05: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
cbz x0, G_M15171_IG07
- mov x1, x22
+ mov x1, x23
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x50]
ldr x2, [x2, #0x10]
blr x2
- ; gcrRegs -[x1 x22]
+ ; gcrRegs -[x1 x23]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x24, x0
+ ; gcrRegs +[x24]
b G_M15171_IG11
;; size=56 bbWeight=66.69 PerfScore 1133.81
G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x24]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x23, x0
+ ; gcrRegs +[x23]
movz x14, #0xD1FFAB1E
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
ldr x15, [x14]
; gcrRegs +[x15]
- add x14, x22, #8
+ add x14, x23, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
@@ -144,17 +146,17 @@ G_M15171_IG06: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movz x14, #0xD1FFAB1E // code for LinqBenchmarks+<>c:<Where00LinqQueryX>b__7_0(Product):ubyte:this
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- str x14, [x22, #0x18]
+ str x14, [x23, #0x18]
movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- mov x15, x22
+ mov x15, x23
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M15171_IG04
;; size=84 bbWeight=0.01 PerfScore 0.16
-G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -167,10 +169,10 @@ G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
blr x2
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- mov x28, x0
- ; gcrRegs +[x28]
- cbz x28, G_M15171_IG09
- ldr w0, [x28, #0x08]
+ mov x22, x0
+ ; gcrRegs +[x22]
+ cbz x22, G_M15171_IG09
+ ldr w0, [x22, #0x08]
; gcrRegs -[x0]
cbnz w0, G_M15171_IG08
movz x0, #0xD1FFAB1E
@@ -178,65 +180,23 @@ G_M15171_IG07: ; bbWeight=66.69, gcrefRegs=480000 {x19 x22}, byrefRegs=00
movk x0, #0xD1FFAB1E LSL #32
mov w1, #38
bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- ; gcrRegs -[x22 x28]
+ ; gcrRegs -[x22-x23]
; gcr arg pop 0
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x23, [x0]
- ; gcrRegs +[x23]
+ ldr x24, [x0]
+ ; gcrRegs +[x24]
b G_M15171_IG11
;; size=92 bbWeight=66.69 PerfScore 1433.94
-G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=10480000 {x19 x22 x28}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x22 x28]
+G_M15171_IG08: ; bbWeight=66.69, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x24] +[x22-x23]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
- bl <unknown method>
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- str w0, [x23, #0x10]
- add x14, x23, #24
- ; byrRegs +[x14]
- mov x15, x28
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
...
+8 (+0.44%) : 72925.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
@@ -12,59 +12,60 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
; V01 loc0 [V01,T24] ( 5, 66.69) ref -> x20 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T20] ( 5, 166.65) int -> x19
+; V02 loc1 [V02,T21] ( 5, 166.65) int -> x19
; V03 loc2 [V03,T28] ( 3, 50.02) int -> x21
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerable`1[Product]>
-; V05 loc4 [V05,T12] ( 32, 395.48) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
+; V05 loc4 [V05,T13] ( 32, 401.90) ref -> [fp+0x100] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[Product]>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T25] ( 2, 66.69) ref -> x24 class-hnd "dup spill" <<unknown class>>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 tmp3 [V10,T23] ( 8, 66.71) ref -> x24
+; V10 tmp3 [V10,T22] ( 8, 66.71) ref -> x24
; V11 tmp4 [V11,T37] ( 5, 0.11) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V12 tmp5 [V12,T33] ( 3, 33.35) ref -> x22 "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x2 "guarded devirt return temp"
-; V17 tmp10 [V17,T02] ( 14, 7852.81) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V16 tmp9 [V16,T10] ( 5, 200.00) int -> x3 "guarded devirt return temp"
+; V17 tmp10 [V17,T04] ( 14, 6569.31) ref -> x23 class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-;* V19 tmp12 [V19,T21] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V20 tmp13 [V20,T38] ( 2, 0.04) ref -> x15 class-hnd exact "Inlining Arg" <LinqBenchmarks+<>c>
-; V21 tmp14 [V21,T13] ( 12, 316.80) ref -> x22 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
+; V21 tmp14 [V21,T14] ( 12, 316.80) ref -> x22 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerable`1[Product]>
; V22 tmp15 [V22,T31] ( 4, 33.35) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
; V23 tmp16 [V23,T32] ( 4, 33.35) ref -> x25 class-hnd "Inline stloc first use temp" <<unknown class>>
; V24 tmp17 [V24,T27] ( 3, 50.02) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
; V25 tmp18 [V25,T39] ( 5, 0 ) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V26 tmp19 [V26,T18] ( 5, 166.74) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V26 tmp19 [V26,T19] ( 5, 166.74) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
; V27 tmp20 [V27,T40] ( 5, 0 ) ref -> x22 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T19] ( 4, 166.74) ref -> x22
+; V28 tmp21 [V28,T20] ( 4, 166.74) ref -> x22
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V31 tmp24 [V31,T11] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
-; V32 tmp25 [V32,T15] ( 2, 266.78) ref -> x24 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-; V33 tmp26 [V33,T16] ( 2, 266.78) ref -> x22 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
-; V34 tmp27 [V34,T14] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
+; V31 tmp24 [V31,T12] ( 5, 666.95) ref -> x23 class-hnd exact "NewObj constructor temp" <System.Linq.Enumerable+WhereListIterator`1[Product]>
+; V32 tmp25 [V32,T16] ( 2, 266.78) ref -> x26 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V33 tmp26 [V33,T17] ( 2, 266.78) ref -> x22 class-hnd "Inlining Arg" <System.Func`2[System.__Canon,ubyte]>
+; V34 tmp27 [V34,T15] ( 6, 283.32) int -> x24 "Inline stloc first use temp"
; V35 tmp28 [V35,T06] ( 8, 5135.21) ref -> x28 class-hnd "Inline stloc first use temp" <Product>
; V36 tmp29 [V36,T09] ( 4, 2567.60) int -> x0 "guarded devirt return temp"
-; V37 tmp30 [V37,T01] ( 8,10270.41) ref -> x3 "guarded devirt arg temp"
+; V37 tmp30 [V37,T01] ( 8,10270.41) ref -> x4 "guarded devirt arg temp"
;* V38 tmp31 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <LinqBenchmarks+<>c>
-; V39 tmp32 [V39,T22] ( 4, 67.88) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
+; V39 tmp32 [V39,T23] ( 4, 66.70) ref -> x15 class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
;* V40 tmp33 [V40 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp35 [V42,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V43 tmp36 [V43,T00] ( 24,25977.15) byref -> x26 "Inlining Arg"
+; V43 tmp36 [V43,T00] ( 24,25977.15) byref -> x2 "Inlining Arg"
; V44 tmp37 [V44,T05] ( 8, 5185.20) ref -> x27 class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
-; V45 tmp38 [V45,T26] ( 6, 50.91) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
+; V45 tmp38 [V45,T26] ( 6, 50.03) ref -> x15 "field V40._list (fldOffset=0x0)" P-INDEP
;* V46 tmp39 [V46,T34] ( 0, 0 ) ref -> zero-ref "field V40._current (fldOffset=0x8)" P-INDEP
;* V47 tmp40 [V47,T35] ( 0, 0 ) int -> zero-ref "field V40._index (fldOffset=0x10)" P-INDEP
-; V48 tmp41 [V48,T30] ( 4, 33.94) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
-; V49 tmp42 [V49,T03] ( 6, 7702.81) ref -> x28 "arr expr"
-; V50 tmp43 [V50,T04] ( 6, 7702.81) int -> x2 "index expr"
+; V48 tmp41 [V48,T30] ( 4, 33.35) int -> x25 "field V40._version (fldOffset=0x14)" P-INDEP
+; V49 tmp42 [V49,T02] ( 6, 7702.81) ref -> x28 "arr expr"
+; V50 tmp43 [V50,T03] ( 6, 7702.81) int -> x3 "index expr"
; V51 PSPSym [V51,T36] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
-; V52 cse0 [V52,T07] ( 3, 3845.89) int -> x2 "CSE - aggressive"
-; V53 cse1 [V53,T29] ( 3, 38.85) int -> x2 "CSE - moderate"
-; V54 cse2 [V54,T17] ( 15, 187.35) long -> registers multi-def "CSE - aggressive"
+; V52 cse0 [V52,T07] ( 3, 3845.89) int -> x3 "CSE - aggressive"
+; V53 cse1 [V53,T29] ( 3, 38.85) int -> x3 "CSE - moderate"
+; V54 cse2 [V54,T11] ( 4, 1317.44) byref -> x26 hoist multi-def "CSE - aggressive"
+; V55 cse3 [V55,T18] ( 15, 203.73) long -> registers multi-def "CSE - aggressive"
;
; Lcl frame size = 16
@@ -83,12 +84,12 @@ G_M64534_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr w19, [fp, #0xD1FFAB1E]
ldr w21, [fp, #0xD1FFAB1E]
;; size=48 bbWeight=1 PerfScore 14.00
-G_M64534_IG02: ; bbWeight=1, gcVars=0000000000001000 {V05}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars +{V05 V12}
+G_M64534_IG02: ; bbWeight=1, gcVars=0000000000002000 {V05}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars +{V05}
b G_M64534_IG12
;; size=4 bbWeight=1 PerfScore 1.00
G_M64534_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars -{V05 V12}
+ ; GC ptr vars -{V05}
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -97,8 +98,8 @@ G_M64534_IG03: ; bbWeight=16.67, gcVars=0000000000000000 {}, gcrefRegs=10
cbz x24, G_M64534_IG10
;; size=20 bbWeight=16.67 PerfScore 91.71
G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M64534_IG47
- cbz x24, G_M64534_IG48
+ cbz x20, G_M64534_IG48
+ cbz x24, G_M64534_IG49
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -107,7 +108,7 @@ G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=1100000 {x20 x24}, byrefRegs=0
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M64534_IG49
+ cbnz x0, G_M64534_IG50
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -119,7 +120,7 @@ G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=1100000 {x20 x24}, byrefRegs=0
; gcr arg pop 0
mov x25, x0
; gcrRegs +[x25]
- cbnz x25, G_M64534_IG50
+ cbnz x25, G_M64534_IG51
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -131,7 +132,7 @@ G_M64534_IG04: ; bbWeight=16.67, gcrefRegs=1100000 {x20 x24}, byrefRegs=0
; gcr arg pop 0
mov x23, x0
; gcrRegs +[x23]
- cbz x23, G_M64534_IG52
+ cbz x23, G_M64534_IG53
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
@@ -168,7 +169,7 @@ G_M64534_IG05: ; bbWeight=16.67, gcrefRegs=500000 {x20 x22}, byrefRegs=00
movk x1, #0xD1FFAB1E LSL #32
mov x23, x1
cmp x0, x23
- bne G_M64534_IG53
+ bne G_M64534_IG54
ldr w0, [x22, #0x14]
cbnz w0, G_M64534_IG07
;; size=36 bbWeight=16.67 PerfScore 175.07
@@ -186,18 +187,18 @@ G_M64534_IG07: ; bbWeight=66.69, gcrefRegs=500000 {x20 x22}, byrefRegs=00
; gcr arg pop 0
mov x23, x0
; gcrRegs +[x23]
- ldp x24, x22, [x22, #0x18]
- ; gcrRegs +[x24]
+ ldp x26, x22, [x22, #0x18]
+ ; gcrRegs +[x26]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
str w0, [x23, #0x10]
add x14, x23, #24
; byrRegs +[x14]
- mov x15, x24
+ mov x15, x26
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15 x24]
+ ; gcrRegs -[x15 x26]
; byrRegs -[x14]
add x14, x23, #32
; byrRegs +[x14]
@@ -257,17 +258,13 @@ G_M64534_IG11: ; bbWeight=66.69, gcrefRegs=500000 {x20 x22}, byrefRegs=00
; gcrRegs -[x24] +[x22]
b G_M64534_IG08
;; size=4 bbWeight=66.69 PerfScore 66.69
-G_M64534_IG12: ; bbWeight=16.67, gcVars=0000000000001000 {V05}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64534_IG12: ; bbWeight=16.67, gcVars=0000000000002000 {V05}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x22]
- ; GC ptr vars +{V05 V12}
+ ; GC ptr vars +{V05}
ldr x14, [fp, #0xD1FFAB1E] // [V05 loc4]
; gcrRegs +[x14]
cbz x14, G_M64534_IG28
- ;; size=8 bbWeight=16.67 PerfScore 50.02
-G_M64534_IG13: ; bbWeight=8.49, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x14]
ldr x14, [fp, #0xD1FFAB1E] // [V05 loc4]
- ; gcrRegs +[x14]
ldr x14, [x14]
; gcrRegs -[x14]
movz x22, #0xD1FFAB1E
@@ -275,12 +272,12 @@ G_M64534_IG13: ; bbWeight=8.49, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
movk x22, #0xD1FFAB1E LSL #32
cmp x14, x22
bne G_M64534_IG28
- b G_M64534_IG15
- ;; size=32 bbWeight=8.49 PerfScore 76.37
-G_M64534_IG14: ; bbWeight=82.49, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ b G_M64534_IG14
+ ;; size=40 bbWeight=16.67 PerfScore 200.08
+G_M64534_IG13: ; bbWeight=82.49, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
add w19, w19, #1
;; size=4 bbWeight=82.49 PerfScore 41.25
-G_M64534_IG15: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M64534_IG14: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
ldr x23, [fp, #0xD1FFAB1E] // [V05 loc4]
; gcrRegs +[x23]
mov x14, x23
@@ -289,47 +286,51 @@ G_M64534_IG15: ; bbWeight=99.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {
cmp w24, #1
beq G_M64534_IG24
;; size=20 bbWeight=99.00 PerfScore 693.00
-G_M64534_IG16: ; bbWeight=82.49, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref, isz
+G_M64534_IG15: ; bbWeight=82.49, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x14]
cmp w24, #2
bne G_M64534_IG22
;; size=8 bbWeight=82.49 PerfScore 123.74
-G_M64534_IG17: ; bbWeight=1287.46, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref, isz
+G_M64534_IG16: ; bbWeight=16.80, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref
add x26, x23, #40
; byrRegs +[x26]
- ldr x27, [x26]
+ ;; size=4 bbWeight=16.80 PerfScore 8.40
+G_M64534_IG17: ; bbWeight=1287.46, gcrefRegs=900000 {x20 x23}, byrefRegs=4000000 {x26}, byref, isz
+ mov x2, x26
+ ; byrRegs +[x2]
+ ldr x27, [x2]
; gcrRegs +[x27]
- ldr w14, [x26, #0x14]
+ ldr w14, [x2, #0x14]
ldr w15, [x27, #0x14]
cmp w14, w15
bne G_M64534_IG20
- ldr w2, [x26, #0x10]
+ ldr w3, [x2, #0x10]
ldr w14, [x27, #0x10]
- cmp w2, w14
+ cmp w3, w14
bhs G_M64534_IG21
;; size=40 bbWeight=1287.46 PerfScore 23818.05
-G_M64534_IG18: ; bbWeight=1270.96, gcrefRegs=8900000 {x20 x23 x27}, byrefRegs=4000000 {x26}, byref, isz
+G_M64534_IG18: ; bbWeight=1270.96, gcrefRegs=8900000 {x20 x23 x27}, byrefRegs=4000004 {x2 x26}, byref, isz
ldr x28, [x27, #0x08]
; gcrRegs +[x28]
ldr w14, [x28, #0x08]
- cmp w2, w14
- bhs G_M64534_IG40
+ cmp w3, w14
+ bhs G_M64534_IG41
add x14, x28, #16
...
+16 (+7.27%) : 83379.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -6,113 +6,121 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 99.19
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 99.19
; 1 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 2.56) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T08] ( 3, 12.78) int -> x0
-; V03 loc2 [V03,T10] ( 3, 3.84) int -> x1
-; V04 loc3 [V04,T09] ( 4, 4 ) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 2.56) ref -> x19 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T06] ( 3, 12.78) int -> x0
+; V03 loc2 [V03,T08] ( 3, 3.84) int -> x1
+; V04 loc3 [V04,T07] ( 4, 4 ) struct (24) [fp+0x58] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T07] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T03] ( 3,200 ) ubyte -> x3 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 2.56) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T02] ( 6,210.35) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 3,198.72) ref -> x7 "V04.[008..016)"
-; V17 tmp11 [V17,T01] ( 8,498.42) int -> x4 "V04.[016..020)"
-; V18 tmp12 [V18,T06] ( 3,102.28) int -> x5 "V04.[020..024)"
-; V19 tmp13 [V19,T00] ( 3,592.27) ref -> x7 "arr expr"
-; V20 cse0 [V20,T05] ( 2,108.07) int -> x6 hoist "CSE - aggressive"
+; V14 tmp8 [V14,T10] ( 2, 2.56) int -> x22 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T02] ( 6,302.28) ref -> x20 "V04.[000..008)"
+; V16 tmp10 [V16,T04] ( 3,198.72) ref -> x2 "V04.[008..016)"
+; V17 tmp11 [V17,T01] ( 8,498.42) int -> x21 "V04.[016..020)"
+; V18 tmp12 [V18,T05] ( 3,102.28) int -> x22 "V04.[020..024)"
+; V19 tmp13 [V19,T00] ( 3,592.27) ref -> x2 "arr expr"
;
; Lcl frame size = 0
G_M51974_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- ldr x2, [fp, #0x58]
- ; gcrRegs +[x2]
- ldp w1, w0, [fp, #0x50]
- ;; size=16 bbWeight=1 PerfScore 5.50
-G_M51974_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
- ldr x3, [fp, #0x38] // [V04 loc3]
- ; gcrRegs +[x3]
- ldp w4, w5, [fp, #0x48] // [V04 loc3+0x10], [V04 loc3+0x14]
- b G_M51974_IG04
+ ldr x19, [fp, #0x78]
+ ; gcrRegs +[x19]
+ ldp w1, w0, [fp, #0x70]
+ ;; size=24 bbWeight=1 PerfScore 7.50
+G_M51974_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ldr x20, [fp, #0x58] // [V04 loc3]
+ ; gcrRegs +[x20]
+ ldp w21, w22, [fp, #0x68] // [V04 loc3+0x10], [V04 loc3+0x14]
+ b G_M51974_IG05
;; size=12 bbWeight=1 PerfScore 5.00
-G_M51974_IG03: ; bbWeight=1.28, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x3]
- ldr w5, [x2, #0x14]
- mov x3, x2
- ; gcrRegs +[x3]
- mov w4, wzr
- ;; size=12 bbWeight=1.28 PerfScore 5.12
-G_M51974_IG04: ; bbWeight=8.07, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M51974_IG06
- ;; size=8 bbWeight=8.07 PerfScore 32.26
-G_M51974_IG05: ; bbWeight=98.72, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x7]
- ldr w7, [x7, #0x1C]
- ; gcrRegs -[x7]
- cbz w7, G_M51974_IG10
+G_M51974_IG03: ; bbWeight=1.28, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
+ ldr w22, [x19, #0x14]
+ mov x20, x19
+ ; gcrRegs +[x20]
+ mov w21, wzr
+ b G_M51974_IG05
+ ;; size=16 bbWeight=1.28 PerfScore 6.40
+G_M51974_IG04: ; bbWeight=98.72, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x2]
+ ldr w2, [x2, #0x1C]
+ ; gcrRegs -[x2]
+ cbz w2, G_M51974_IG09
;; size=8 bbWeight=98.72 PerfScore 394.88
-G_M51974_IG06: ; bbWeight=100, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- cmp w5, w6
- bne G_M51974_IG15
- ldr w7, [x3, #0x10]
- cmp w4, w7
- bhs G_M51974_IG11
- ;; size=20 bbWeight=100 PerfScore 600.00
-G_M51974_IG07: ; bbWeight=98.71, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
+G_M51974_IG05: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr w2, [x20, #0x14]
+ cmp w22, w2
+ bne G_M51974_IG11
+ ldr w2, [x20, #0x10]
+ cmp w21, w2
+ bhs G_M51974_IG10
+ ;; size=24 bbWeight=100 PerfScore 900.00
+G_M51974_IG06: ; bbWeight=98.71, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr x2, [x20, #0x08]
+ ; gcrRegs +[x2]
+ ldr w3, [x2, #0x08]
+ cmp w21, w3
bhs G_M51974_IG12
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr x7, [x7, w4, UXTW #3]
- ; gcrRegs +[x7]
- ; byrRegs -[x7]
- add w4, w4, #1
- mov w8, #1
+ add x2, x2, #16
+ ; gcrRegs -[x2]
+ ; byrRegs +[x2]
+ ldr x2, [x2, w21, UXTW #3]
+ ; gcrRegs +[x2]
+ ; byrRegs -[x2]
+ add w21, w21, #1
+ mov w3, #1
;; size=32 bbWeight=98.71 PerfScore 1184.54
-G_M51974_IG08: ; bbWeight=100, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M51974_IG05
+G_M51974_IG07: ; bbWeight=100, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
+ cbnz w3, G_M51974_IG04
;; size=4 bbWeight=100 PerfScore 100.00
-G_M51974_IG09: ; bbWeight=1.28, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3 x7]
+G_M51974_IG08: ; bbWeight=1.28, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x2 x20]
add w1, w1, #1
- movz w3, #0xD1FFAB1E
- movk w3, #15 LSL #16
- cmp w1, w3
+ movz w2, #0xD1FFAB1E
+ movk w2, #15 LSL #16
+ cmp w1, w2
bge G_M51974_IG13
b G_M51974_IG03
;; size=24 bbWeight=1.28 PerfScore 5.12
-G_M51974_IG10: ; bbWeight=6.39, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x3]
+G_M51974_IG09: ; bbWeight=6.39, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x20]
add w0, w0, #1
- b G_M51974_IG06
+ b G_M51974_IG05
;; size=8 bbWeight=6.39 PerfScore 9.59
-G_M51974_IG11: ; bbWeight=1.29, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w4, [x3, #0x10]
- add w4, w4, #1
- mov x7, xzr
- ; gcrRegs +[x7]
- mov w8, wzr
- b G_M51974_IG08
+G_M51974_IG10: ; bbWeight=1.29, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ldr w2, [x20, #0x10]
+ add w21, w2, #1
+ mov x2, xzr
+ ; gcrRegs +[x2]
+ mov w3, wzr
+ b G_M51974_IG07
;; size=20 bbWeight=1.29 PerfScore 7.08
+G_M51974_IG11: ; bbWeight=1.29, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x2 x19-x20]
+ movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ blr x0
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=24 bbWeight=1.29 PerfScore 8.37
G_M51974_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x2-x3 x7]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -123,32 +131,25 @@ G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cset x0, eq
;; size=16 bbWeight=0 PerfScore 0.00
G_M51974_IG14: ; bbWeight=0, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
add sp, sp, #96
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51974_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcr arg pop 0
- brk_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 220, prolog size 16, PerfScore 2349.10, instruction count 55, allocated bytes for code 220 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 236, prolog size 24, PerfScore 2628.49, instruction count 59, allocated bytes for code 236 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 55 (0x00037) Actual length = 220 (0x0000dc)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +157,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
+ 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]!
06 alloc_s #6 (0x06); sub sp, sp, #96 (0x060)
E4 end
...
benchmarks.run_tiered.windows.arm64.checked.mch
-28 (-6.67%) : 14718.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -41,15 +41,15 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=36 bbWeight=1 PerfScore 6.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
ldr w14, [x20, #0x68]
- cbnz w14, G_M23091_IG11
- cbz x19, G_M23091_IG12
+ cbnz w14, G_M23091_IG10
+ cbz x19, G_M23091_IG11
add x14, x19, #244
; byrRegs +[x14]
mov w15, #1
mov w12, wzr
mov w1, w12
casal w1, w15, [x14]
- cbnz w1, G_M23091_IG13
+ cbnz w1, G_M23091_IG12
mov w14, #4
; byrRegs -[x14]
str w14, [x19, #0xDC]
@@ -61,20 +61,9 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x19, #0xFA]
- cbnz w0, G_M23091_IG04
+ cbz w0, G_M23091_IG04
;; size=64 bbWeight=1 PerfScore 18.50
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M23091_IG05
- b G_M23091_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -90,7 +79,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
ldr x14, [x19, #0xB0]
; gcrRegs +[x14]
add x14, x14, #8
@@ -102,14 +91,14 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
; gcrRegs -[x15]
; byrRegs -[x14]
;; size=16 bbWeight=1 PerfScore 5.00
-G_M23091_IG06: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x1, [x20, #0x08]
; gcrRegs +[x1]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M23091_IG08
+ cbz x0, G_M23091_IG07
;; size=12 bbWeight=1 PerfScore 7.00
-G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+G_M23091_IG06: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20-x21]
mov x0, x19
; gcrRegs +[x0]
@@ -120,9 +109,9 @@ G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- b G_M23091_IG09
+ b G_M23091_IG08
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
+G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x1 x21]
mov x0, x19
; gcrRegs +[x0]
@@ -136,19 +125,19 @@ G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=
; gcrRegs -[x0-x2 x21]
; gcr arg pop 0
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M23091_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x19]
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG09: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20]
mov x0, x20
; gcrRegs +[x0]
@@ -161,7 +150,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -178,7 +167,7 @@ G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
; GC ptr vars +{V00 V01}
mov x0, x19
@@ -193,7 +182,7 @@ G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=800
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
@@ -201,7 +190,7 @@ G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
add x3, fp, #64
str x3, [sp, #0x10]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -217,7 +206,7 @@ G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_windows #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 420, prolog size 36, PerfScore 58.25, instruction count 105, allocated bytes for code 420 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 392, prolog size 36, PerfScore 53.50, instruction count 98, allocated bytes for code 392 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -228,7 +217,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 92 (0x0005c) Actual length = 368 (0x000170)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -263,4 +252,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG06..G_M23091_IG09) handled by [G_M23091_IG14..END) (class: 1000001)
+EH#0: try [G_M23091_IG05..G_M23091_IG08) handled by [G_M23091_IG13..END) (class: 1000001)
-28 (-6.67%) : 15268.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -41,15 +41,15 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=36 bbWeight=1 PerfScore 6.50
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
ldr w14, [x20, #0x68]
- cbnz w14, G_M29540_IG11
- cbz x19, G_M29540_IG12
+ cbnz w14, G_M29540_IG10
+ cbz x19, G_M29540_IG11
add x14, x19, #244
; byrRegs +[x14]
mov w15, #1
mov w12, wzr
mov w1, w12
casal w1, w15, [x14]
- cbnz w1, G_M29540_IG13
+ cbnz w1, G_M29540_IG12
mov w14, #7
; byrRegs -[x14]
str w14, [x19, #0xDC]
@@ -61,20 +61,9 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=380
; gcrRegs -[x15]
; byrRegs -[x14]
ldrb w0, [x19, #0xFA]
- cbnz w0, G_M29540_IG04
+ cbz w0, G_M29540_IG04
;; size=64 bbWeight=1 PerfScore 18.50
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldrb w0, [x0, #0x9D]
- ; gcrRegs -[x0]
- cbz w0, G_M29540_IG05
- b G_M29540_IG05
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -90,7 +79,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
ldr x14, [x19, #0xB0]
; gcrRegs +[x14]
add x14, x14, #8
@@ -102,14 +91,14 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
; gcrRegs -[x15]
; byrRegs -[x14]
;; size=16 bbWeight=1 PerfScore 5.00
-G_M29540_IG06: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x1, [x20, #0x08]
; gcrRegs +[x1]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M29540_IG08
+ cbz x0, G_M29540_IG07
;; size=12 bbWeight=1 PerfScore 7.00
-G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+G_M29540_IG06: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20-x21]
mov x0, x19
; gcrRegs +[x0]
@@ -120,9 +109,9 @@ G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- b G_M29540_IG09
+ b G_M29540_IG08
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
+G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x1 x21]
mov x0, x19
; gcrRegs +[x0]
@@ -136,19 +125,19 @@ G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=
; gcrRegs -[x0-x2 x21]
; gcr arg pop 0
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M29540_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x19]
; GC ptr vars -{V01}
cmp w0, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M29540_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG09: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x38]
ldp x19, x20, [sp, #0x28]
ldp fp, lr, [sp], #0x40
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20]
mov x0, x20
; gcrRegs +[x0]
@@ -161,7 +150,7 @@ G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -178,7 +167,7 @@ G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
; GC ptr vars +{V00 V01}
mov x0, x19
@@ -193,7 +182,7 @@ G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=800
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x18]
@@ -201,7 +190,7 @@ G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
add x3, fp, #64
str x3, [sp, #0x10]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x18] // [V01 arg1]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -217,7 +206,7 @@ G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
brk_windows #0
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 420, prolog size 36, PerfScore 58.25, instruction count 105, allocated bytes for code 420 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 392, prolog size 36, PerfScore 53.50, instruction count 98, allocated bytes for code 392 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -228,7 +217,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 92 (0x0005c) Actual length = 368 (0x000170)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -263,4 +252,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG06..G_M29540_IG09) handled by [G_M29540_IG14..END) (class: 1000001)
+EH#0: try [G_M29540_IG05..G_M29540_IG08) handled by [G_M29540_IG13..END) (class: 1000001)
-28 (-3.72%) : 27194.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -50,8 +50,8 @@ G_M38239_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M38239_IG02: ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x0]
ldr w1, [x0, #0x68]
- cbnz w1, G_M38239_IG16
- cbz x19, G_M38239_IG17
+ cbnz w1, G_M38239_IG15
+ cbz x19, G_M38239_IG16
ldr x1, [x19, #0x28]
; gcrRegs +[x1]
str x1, [fp, #0x30] // [V03 loc0]
@@ -62,7 +62,7 @@ G_M38239_IG03: ; bbWeight=0.50, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
; gcrRegs -[x1]
ldr x1, [fp, #0x30] // [V03 loc0]
; gcrRegs +[x1]
- cbz x1, G_M38239_IG18
+ cbz x1, G_M38239_IG17
add x1, fp, #48 // [V03 loc0]
; gcrRegs -[x1]
movz x2, #0xD1FFAB1E // code for System.Net.Sockets.Socket:Serialize(byref):System.Net.SocketAddress:this
@@ -88,7 +88,7 @@ G_M38239_IG04: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
mov w12, wzr
mov w1, w12
casal w1, w15, [x14]
- cbnz w1, G_M38239_IG19
+ cbnz w1, G_M38239_IG18
mov w14, #9
; byrRegs -[x14]
str w14, [x19, #0xDC]
@@ -100,20 +100,9 @@ G_M38239_IG04: ; bbWeight=1, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
ldrb w1, [x19, #0xFA]
- cbnz w1, G_M38239_IG06
+ cbz w1, G_M38239_IG06
;; size=52 bbWeight=1 PerfScore 13.50
-G_M38239_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- ldrb w1, [x1, #0x9D]
- ; gcrRegs -[x1]
- cbz w1, G_M38239_IG07
- b G_M38239_IG07
- ;; size=28 bbWeight=0.50 PerfScore 4.75
-G_M38239_IG06: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M38239_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E // code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -129,7 +118,7 @@ G_M38239_IG06: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M38239_IG07: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M38239_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x14, [x19, #0xB0]
; gcrRegs +[x14]
add x14, x14, #8
@@ -148,9 +137,9 @@ G_M38239_IG07: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x21]
str x21, [fp, #0x18] // [V04 loc1]
; GC ptr vars +{V04}
- cbnz x14, G_M38239_IG09
+ cbnz x14, G_M38239_IG08
;; size=36 bbWeight=1 PerfScore 12.50
-G_M38239_IG08: ; bbWeight=0.50, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG07: ; bbWeight=0.50, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x14]
add x14, x0, #16
; byrRegs +[x14]
@@ -160,14 +149,14 @@ G_M38239_IG08: ; bbWeight=0.50, gcVars=0000000000000103 {V00 V01 V04}, gc
; gcrRegs -[x15]
; byrRegs -[x14]
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M38239_IG09: ; bbWeight=1, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M38239_IG08: ; bbWeight=1, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x1, [x0, #0x08]
; gcrRegs +[x1]
ldr x2, [x19, #0x18]
; gcrRegs +[x2]
- cbz x2, G_M38239_IG11
+ cbz x2, G_M38239_IG10
;; size=12 bbWeight=1 PerfScore 7.00
-G_M38239_IG10: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
+G_M38239_IG09: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x2 x20]
mov x0, x19
; gcrRegs +[x0]
@@ -179,9 +168,9 @@ G_M38239_IG10: ; bbWeight=0.50, gcrefRegs=280002 {x1 x19 x21}, byrefRegs=
; gcrRegs -[x0-x1]
; gcr arg pop 0
sxtw w22, w0
- b G_M38239_IG12
+ b G_M38239_IG11
;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M38239_IG11: ; bbWeight=0.50, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M38239_IG10: ; bbWeight=0.50, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x1 x20]
mov x0, x19
; gcrRegs +[x0]
@@ -196,7 +185,7 @@ G_M38239_IG11: ; bbWeight=0.50, gcrefRegs=380002 {x1 x19 x20 x21}, byrefR
; gcr arg pop 0
sxtw w22, w0
;; size=32 bbWeight=0.50 PerfScore 3.50
-G_M38239_IG12: ; bbWeight=1, gcVars=0000000000000102 {V00 V04}, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M38239_IG11: ; bbWeight=1, gcVars=0000000000000102 {V00 V04}, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x19]
; GC ptr vars -{V00 V01}
ldr x0, [fp, #0x28] // [V00 this]
@@ -209,9 +198,9 @@ G_M38239_IG12: ; bbWeight=1, gcVars=0000000000000102 {V00 V04}, gcrefRegs
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- cbnz w0, G_M38239_IG14
+ cbnz w0, G_M38239_IG13
;; size=32 bbWeight=1 PerfScore 9.00
-G_M38239_IG13: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M38239_IG12: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x28] // [V00 this]
; gcrRegs +[x0]
add x14, x0, #16
@@ -224,19 +213,19 @@ G_M38239_IG13: ; bbWeight=0.50, gcrefRegs=200000 {x21}, byrefRegs=0000 {}
; byrRegs -[x14]
str xzr, [x0, #0x20]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M38239_IG14: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
; GC ptr vars -{V00}
cmp w22, #0xD1FFAB1E
cset x0, eq
;; size=8 bbWeight=1 PerfScore 1.00
-G_M38239_IG15: ; bbWeight=1, epilog, nogc, extend
+G_M38239_IG14: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x50]
ldp x19, x20, [sp, #0x40]
ldp fp, lr, [sp], #0x60
ret lr
;; size=16 bbWeight=1 PerfScore 4.00
-G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG15: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x0]
; GC ptr vars +{V00 V01}
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
@@ -249,7 +238,7 @@ G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M38239_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38239_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -266,7 +255,7 @@ G_M38239_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=44 bbWeight=0 PerfScore 0.00
-G_M38239_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38239_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -331,7 +320,7 @@ G_M38239_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=156 bbWeight=0 PerfScore 0.00
-G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
; GC ptr vars +{V00 V01}
mov x0, x19
@@ -346,7 +335,7 @@ G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=800
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M38239_IG20: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01 V04 V08}
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x20]
@@ -354,7 +343,7 @@ G_M38239_IG20: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcref
add x3, fp, #96
str x3, [sp, #0x18]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M38239_IG21: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG20: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
ldr x0, [fp, #0x28] // [V00 this]
; gcrRegs +[x0]
add x14, x0, #16
@@ -380,7 +369,7 @@ G_M38239_IG21: ; bbWeight=0, gcVars=0000000000000103 {V00 V01 V04}, gcref
brk_windows #0
;; size=52 bbWeight=0 PerfScore 0.00
-; Total bytes of code 752, prolog size 40, PerfScore 94.50, instruction count 188, allocated bytes for code 752 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 724, prolog size 40, PerfScore 89.75, instruction count 181, allocated bytes for code 724 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -391,7 +380,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 170 (0x000aa) Actual length = 680 (0x0002a8)
+ Function Length : 163 (0x000a3) Actual length = 652 (0x00028c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -428,4 +417,4 @@ Unwind Info:
*************** EH table for System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M38239_IG09..G_M38239_IG12) handled by [G_M38239_IG20..END) (class: 1000001)
+EH#0: try [G_M38239_IG08..G_M38239_IG11) handled by [G_M38239_IG19..END) (class: 1000001)
-32 (-0.24%) : 19640.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T154] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T155] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T156] ( 2, 8 ) int -> x2 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T335] ( 3, 1.50) long -> x0 single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T335] ( 2, 1 ) long -> x0 single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T336] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -109,7 +109,7 @@
;* V98 tmp85 [V98 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V99 tmp86 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V100 tmp87 [V100 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V101 tmp88 [V101,T114] ( 3, 10 ) long -> x2 "Inline stloc first use temp"
+; V101 tmp88 [V101,T114] ( 2, 8 ) long -> x2 "Inline stloc first use temp"
;* V102 tmp89 [V102,T124] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V104 tmp91 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -529,7 +529,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr x2, [x24, #0x10]
blr x2
; gcrRegs -[x0-x1 x19]
- b G_M11467_IG269
+ b G_M11467_IG267
;; size=40 bbWeight=0.50 PerfScore 8.00
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x21]
@@ -578,13 +578,13 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs -[x0-x1]
ldr w0, [x25, #0x08]
cmp w0, #0
- blt G_M11467_IG271
+ blt G_M11467_IG269
sxtw w26, w0
cmp w0, #0
ble G_M11467_IG44
ldr w0, [x25, #0x08]
cmp w0, #0
- bls G_M11467_IG270
+ bls G_M11467_IG268
ldrb w27, [x25, #0x10]
mov w0, #0xD1FFAB1E
cmp w27, w0
@@ -764,7 +764,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldr x4, [x4]
; gcrRegs +[x4]
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
ldrh w4, [x27, w2, UXTW #2]
@@ -780,7 +780,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w5, w2, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w4, w2, #1
@@ -797,7 +797,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w5, w2, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w2, w2, #2
@@ -813,7 +813,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
ldrh w2, [x27, w1, UXTW #2]
@@ -829,7 +829,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x4, #16
; byrRegs +[x27]
add w2, w1, #1
@@ -849,7 +849,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x27, x2, #16
; byrRegs +[x27]
add w2, w1, #2
@@ -857,18 +857,18 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
ldrh w2, [x27, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #1
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #2
ldrh w2, [x27, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -892,7 +892,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
beq G_M11467_IG44
ldr w1, [x25, #0x08]
cmp w27, w1
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x1, x25, #16
; byrRegs +[x1]
ldrb w28, [x1, w27, UXTW #2]
@@ -1096,7 +1096,7 @@ G_M11467_IG37: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldr x4, [x4]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1112,7 +1112,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w5, w1, #1
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1129,7 +1129,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w5, w1, #2
cmp w5, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1146,7 +1146,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldr x4, [x2]
; gcrRegs +[x4]
cmp w1, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1162,7 +1162,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x4]
add w2, w1, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x4, #16
; gcrRegs -[x4]
; byrRegs +[x4]
@@ -1182,7 +1182,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
add w4, w1, #2
; gcrRegs -[x4]
cmp w4, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add x4, x2, #16
; byrRegs +[x4]
add w2, w1, #2
@@ -1190,18 +1190,18 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x1C]
cmp w0, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
ldrh w2, [x4, w0, UXTW #2]
strh w2, [x21, #0x1E]
add w2, w0, #1
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #1
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x20]
add w2, w0, #2
cmp w2, #0xD1FFAB1E
- bhs G_M11467_IG270
+ bhs G_M11467_IG268
add w2, w0, #2
ldrh w2, [x4, w2, UXTW #2]
strh w2, [x21, #0x22]
@@ -1252,7 +1252,7 @@ G_M11467_IG45: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x2, [x24, #0x10]
blr x2
; gcrRegs -[x0-x1 x25]
- b G_M11467_IG100
+ b G_M11467_IG98
;; size=56 bbWeight=0.50 PerfScore 10.75
G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x25]
@@ -1265,34 +1265,28 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byre
; gcrRegs -[x0-x1]
ldr w0, [x25, #0x08]
cmp w0, #0
- blt G_M11467_IG271
+ blt G_M11467_IG269
sxtw w27, w0
cmp w0, #0
- ble G_M11467_IG99
+ ble G_M11467_IG97
ldr w0, [x25, #0x08]
cmp w0, #0
- bls G_M11467_IG270
+ bls G_M11467_IG268
ldr x28, [x25, #0x10]
and x0, x28, #0xD1FFAB1E
- cbz x0, G_M11467_IG47
- mov x1, #0xD1FFAB1E
- cmp x0, x1
- beq G_M11467_IG48
- b G_M11467_IG48
- ;; size=80 bbWeight=0.50 PerfScore 13.00
-G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref
+ cbnz x0, G_M11467_IG47
and x0, x28, #0xD1FFAB1E
orr x28, x0, #0xD1FFAB1E
- ;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
+ ;; size=72 bbWeight=0.50 PerfScore 12.00
+G_M11467_IG47: ; bbWeight=0.50, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=0000 {}, byref, isz
and x0, x28, #0xD1FFAB1E
- cbz x0, G_M11467_IG49
+ cbz x0, G_M11467_IG48
mov x1, #0xD1FFAB1E
cmp x0, x1
- bne G_M11467_IG49
- b G_M11467_IG51
...
+0 (0.00%) : 29709.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <PerfLabTests.LowLevelPerf>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
-; V02 loc1 [V02,T10] ( 2, 9 ) int -> x1
-; V03 loc2 [V03,T07] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[int]>
+; V02 loc1 [V02,T08] ( 2, 9 ) int -> x1
+; V03 loc2 [V03,T05] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[int]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x8)" P-INDEP
-; V13 tmp7 [V13,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
+; V13 tmp7 [V13,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0xc)" P-INDEP
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "field V08._current (fldOffset=0x10)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 8, 50.01) int -> x4 "V04.[008..012)"
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T03] ( 8, 50.01) int -> x4 "V04.[008..012)"
; V17 tmp11 [V17,T02] ( 3, 66.01) int -> x5 "V04.[012..016)"
-; V18 tmp12 [V18,T08] ( 3, 24 ) int -> x7 "V04.[016..020)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V18 tmp12 [V18,T06] ( 3, 24 ) int -> x6 "V04.[016..020)"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M6486_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, by
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x40] // [V04 loc3+0x08], [V04 loc3+0x0c]
- b G_M6486_IG04
+ b G_M6486_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,45 +52,43 @@ G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
+ b G_M6486_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
G_M6486_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M6486_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M6486_IG05: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- sxtw w1, w7
+ sxtw w1, w6
;; size=4 bbWeight=8 PerfScore 4.00
-G_M6486_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M6486_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M6486_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M6486_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M6486_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M6486_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M6486_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr w7, [x7, w4, UXTW #2]
- ; byrRegs -[x7]
+ bhs G_M6486_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr w6, [x6, w4, UXTW #2]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M6486_IG09
+ mov w7, #1
+ b G_M6486_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M6486_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- add w4, w7, #1
+G_M6486_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ add w4, w6, #1
+ mov w6, wzr
mov w7, wzr
- mov w8, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M6486_IG09: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M6486_IG05
+G_M6486_IG08: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M6486_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x3]
add w0, w0, #1
movz x3, #0xD1FFAB1E // data for <unknown class>:<unknown field>
@@ -101,20 +98,20 @@ G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
cmp w0, w4
blt G_M6486_IG03
;; size=28 bbWeight=8 PerfScore 52.00
-G_M6486_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
mov w0, w1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M6486_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M6486_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M6486_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M6486_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -124,7 +121,7 @@ G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 16, PerfScore 411.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
+; Total bytes of code 196, prolog size 16, PerfScore 573.11, instruction count 49, allocated bytes for code 196 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
; ============================================================
Unwind Info:
+0 (0.00%) : 46570.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
@@ -10,27 +10,26 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
-; V02 loc1 [V02,T10] ( 3, 17 ) int -> x1
-; V03 loc2 [V03,T08] ( 3, 24 ) int -> x0
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> x2 class-hnd <System.Collections.Generic.List`1[Product]>
+; V02 loc1 [V02,T08] ( 3, 17 ) int -> x1
+; V03 loc2 [V03,T06] ( 3, 24 ) int -> x0
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [fp+0x38] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[Product]>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <Product>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Product]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> x8 "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> x7 "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Product]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref "field V08._current (fldOffset=0x8)" P-INDEP
;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x10)" P-INDEP
-; V14 tmp8 [V14,T12] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> x3 "V04.[000..008)"
-; V16 tmp10 [V16,T07] ( 3, 24 ) ref -> x7 "V04.[008..016)"
-; V17 tmp11 [V17,T04] ( 8, 50.01) int -> x4 "V04.[016..020)"
+; V14 tmp8 [V14,T10] ( 2, 4 ) int -> x5 "field V08._version (fldOffset=0x14)" P-INDEP
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> x3 "V04.[000..008)"
+; V16 tmp10 [V16,T05] ( 3, 24 ) ref -> x6 "V04.[008..016)"
+; V17 tmp11 [V17,T03] ( 8, 50.01) int -> x4 "V04.[016..020)"
; V18 tmp12 [V18,T02] ( 3, 66.01) int -> x5 "V04.[020..024)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> x7 "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> x6 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> x7 "CSE - aggressive"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> x6 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> x6 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -45,7 +44,7 @@ G_M51974_IG02: ; bbWeight=0.01, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
ldr x3, [fp, #0x38] // [V04 loc3]
; gcrRegs +[x3]
ldp w4, w5, [fp, #0x48] // [V04 loc3+0x10], [V04 loc3+0x14]
- b G_M51974_IG04
+ b G_M51974_IG05
;; size=12 bbWeight=0.01 PerfScore 0.05
G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
; gcrRegs -[x3]
@@ -53,76 +52,74 @@ G_M51974_IG03: ; bbWeight=2, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byre
mov x3, x2
; gcrRegs +[x3]
mov w4, wzr
- ;; size=12 bbWeight=2 PerfScore 8.00
-G_M51974_IG04: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ldr w6, [x3, #0x14]
- b G_M51974_IG06
- ;; size=8 bbWeight=8 PerfScore 32.00
-G_M51974_IG05: ; bbWeight=8, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x7]
- ldr w7, [x7, #0x1C]
- ; gcrRegs -[x7]
- cbnz w7, G_M51974_IG06
+ b G_M51974_IG05
+ ;; size=16 bbWeight=2 PerfScore 10.00
+G_M51974_IG04: ; bbWeight=8, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x6]
+ ldr w6, [x6, #0x1C]
+ ; gcrRegs -[x6]
+ cbnz w6, G_M51974_IG05
add w1, w1, #1
;; size=12 bbWeight=8 PerfScore 36.00
-G_M51974_IG06: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+G_M51974_IG05: ; bbWeight=64, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x14]
cmp w5, w6
- bne G_M51974_IG14
- ;; size=8 bbWeight=64 PerfScore 96.00
-G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
- ldr w7, [x3, #0x10]
+ bne G_M51974_IG13
+ ;; size=12 bbWeight=64 PerfScore 288.00
+G_M51974_IG06: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref, isz
+ ldr w6, [x3, #0x10]
+ cmp w4, w6
+ bhs G_M51974_IG07
+ ldr x6, [x3, #0x08]
+ ; gcrRegs +[x6]
+ ldr w7, [x6, #0x08]
cmp w4, w7
- bhs G_M51974_IG08
- ldr x7, [x3, #0x08]
- ; gcrRegs +[x7]
- ldr w8, [x7, #0x08]
- cmp w4, w8
- bhs G_M51974_IG13
- add x7, x7, #16
- ; gcrRegs -[x7]
- ; byrRegs +[x7]
- ldr x7, [x7, w4, UXTW #3]
- ; gcrRegs +[x7]
- ; byrRegs -[x7]
+ bhs G_M51974_IG12
+ add x6, x6, #16
+ ; gcrRegs -[x6]
+ ; byrRegs +[x6]
+ ldr x6, [x6, w4, UXTW #3]
+ ; gcrRegs +[x6]
+ ; byrRegs -[x6]
add w4, w4, #1
- mov w8, #1
- b G_M51974_IG09
+ mov w7, #1
+ b G_M51974_IG08
;; size=48 bbWeight=8 PerfScore 140.00
-G_M51974_IG08: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x7]
- add w4, w7, #1
- mov x7, xzr
- ; gcrRegs +[x7]
- mov w8, wzr
+G_M51974_IG07: ; bbWeight=8, gcrefRegs=000C {x2 x3}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x6]
+ add w4, w6, #1
+ mov x6, xzr
+ ; gcrRegs +[x6]
+ mov w7, wzr
;; size=12 bbWeight=8 PerfScore 12.00
-G_M51974_IG09: ; bbWeight=64, gcrefRegs=008C {x2 x3 x7}, byrefRegs=0000 {}, byref, isz
- cbnz w8, G_M51974_IG05
+G_M51974_IG08: ; bbWeight=64, gcrefRegs=004C {x2 x3 x6}, byrefRegs=0000 {}, byref, isz
+ cbnz w7, G_M51974_IG04
;; size=4 bbWeight=64 PerfScore 64.00
-G_M51974_IG10: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x3 x7]
+G_M51974_IG09: ; bbWeight=8, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x3 x6]
add w0, w0, #1
movz w3, #0xD1FFAB1E
movk w3, #15 LSL #16
cmp w0, w3
blt G_M51974_IG03
;; size=20 bbWeight=8 PerfScore 24.00
-G_M51974_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz w0, #0xD1FFAB1E
movk w0, #76 LSL #16
cmp w1, w0
cset x0, eq
;; size=16 bbWeight=1 PerfScore 2.00
-G_M51974_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M51974_IG11: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
add sp, sp, #96
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-G_M51974_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M51974_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51974_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -132,7 +129,7 @@ G_M51974_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 16, PerfScore 416.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
+; Total bytes of code 208, prolog size 16, PerfScore 578.61, instruction count 52, allocated bytes for code 208 (MethodHash=877634f9) for method LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.arm64.checked.mch
-44 (-55.00%) : 244389.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 5, 4 ) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 4 ) float -> d0 "Single return block return value"
+; V02 tmp1 [V02,T00] ( 2, 4 ) float -> d0 "Single return block return value"
;
; Lcl frame size = 0
@@ -18,34 +18,19 @@ G_M53791_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- ble G_M53791_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53791_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- b G_M53791_IG05
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- blo G_M53791_IG03
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53791_IG03
- b G_M53791_IG03
- ;; size=28 bbWeight=0.50 PerfScore 3.00
-G_M53791_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 8, PerfScore 15.50, instruction count 20, allocated bytes for code 80 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-28 (-43.75%) : 244337.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
@@ -17,28 +17,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -49,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
-28 (-43.75%) : 240251.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> d0 single-def
+; V00 loc0 [V00,T00] ( 2, 2 ) float -> d0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,28 +19,19 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- fmov s16, #10.0000
- fcmp s0, s16
- bhs G_M53663_IG04
- ;; size=32 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- fmov s16, #10.0000
- fcmp s0, s16
- bne G_M53663_IG03
- b G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 64, prolog size 8, PerfScore 13.25, instruction count 16, allocated bytes for code 64 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.00, instruction count 9, allocated bytes for code 36 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -51,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ 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)
+12 (+6.25%) : 15751.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -15,14 +15,14 @@
;* V04 loc4 [V04 ] ( 0, 0 ) ubyte -> zero-ref
; V05 loc5 [V05,T01] ( 4, 4 ) ref -> x19 class-hnd exact single-def <testout1>
;* V06 loc6 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V07 loc7 [V07,T04] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V07 loc7 [V07,T03] ( 3, 3 ) ref -> x0 class-hnd exact single-def <<unknown class>>
; V08 loc8 [V08,T00] ( 5, 5 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <testout1>
;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref single-def
+;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref single-def
@@ -31,60 +31,60 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-;* V23 tmp14 [V23,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V23 tmp14 [V23,T20] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp17 [V26,T08] ( 2, 2 ) int -> x1 single-def
+; V26 tmp17 [V26,T09] ( 2, 2 ) int -> x2 single-def
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp20 [V29,T09] ( 2, 2 ) int -> x1 single-def
+; V29 tmp20 [V29,T10] ( 2, 2 ) int -> x2 single-def
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp23 [V32,T10] ( 2, 2 ) int -> x1 single-def
+; V32 tmp23 [V32,T11] ( 2, 2 ) int -> x2 single-def
;* V33 tmp24 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp26 [V35,T11] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp26 [V35,T12] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref
-; V38 tmp29 [V38,T12] ( 2, 2 ) int -> x0 single-def
+;* V38 tmp29 [V38,T13] ( 0, 0 ) int -> zero-ref single-def
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp32 [V41,T13] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp35 [V44,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V44 tmp35 [V44,T21] ( 0, 0 ) int -> zero-ref single-def
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp38 [V47,T14] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp38 [V47,T14] ( 2, 2 ) int -> x2 single-def
;* V48 tmp39 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp41 [V50,T15] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp41 [V50,T15] ( 2, 2 ) int -> x1 single-def
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp44 [V53,T16] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp44 [V53,T16] ( 2, 2 ) int -> x1 single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp47 [V56,T23] ( 0, 0 ) int -> zero-ref single-def
+; V56 tmp47 [V56,T17] ( 2, 2 ) int -> x1 single-def
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp50 [V59,T17] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp50 [V59,T18] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp53 [V62,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp53 [V62,T19] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp56 [V65,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp56 [V65,T22] ( 0, 0 ) int -> zero-ref single-def
;* V66 tmp57 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp58 [V67 ] ( 0, 0 ) int -> zero-ref
-;* V68 tmp59 [V68,T24] ( 0, 0 ) int -> zero-ref single-def
+;* V68 tmp59 [V68 ] ( 0, 0 ) int -> zero-ref
;* V69 tmp60 [V69 ] ( 0, 0 ) int -> zero-ref
;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 cse0 [V71,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V72 cse1 [V72,T20] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V73 cse2 [V73,T02] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V74 cse3 [V74,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V75 cse4 [V75,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V76 cse5 [V76,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V71 cse0 [V71,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V72 cse1 [V72,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V73 cse2 [V73,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V74 cse3 [V74,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V75 cse4 [V75,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V76 cse5 [V76,T02] ( 3, 3 ) long -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -136,21 +136,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -161,7 +164,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+12 (+6.25%) : 16168.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref
-;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref single-def
+;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref single-def
@@ -28,61 +28,61 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref
-;* V20 tmp15 [V20,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V20 tmp15 [V20,T21] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp18 [V23,T09] ( 2, 2 ) int -> x1 single-def
+; V23 tmp18 [V23,T10] ( 2, 2 ) int -> x2 single-def
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp21 [V26,T10] ( 2, 2 ) int -> x1 single-def
+; V26 tmp21 [V26,T11] ( 2, 2 ) int -> x2 single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp24 [V29,T11] ( 2, 2 ) int -> x1 single-def
+; V29 tmp24 [V29,T12] ( 2, 2 ) int -> x2 single-def
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp27 [V32,T12] ( 2, 2 ) int -> x0 single-def
+;* V32 tmp27 [V32,T13] ( 0, 0 ) int -> zero-ref single-def
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp30 [V35,T13] ( 2, 2 ) int -> x0 single-def
+;* V35 tmp30 [V35,T14] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref
-;* V38 tmp33 [V38,T14] ( 0, 0 ) int -> zero-ref single-def
+;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp36 [V41,T23] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp36 [V41,T22] ( 0, 0 ) int -> zero-ref single-def
;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp39 [V44,T15] ( 0, 0 ) int -> zero-ref single-def
+; V44 tmp39 [V44,T15] ( 2, 2 ) int -> x2 single-def
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp42 [V47,T16] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp42 [V47,T16] ( 2, 2 ) int -> x1 single-def
;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp45 [V50,T17] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp45 [V50,T17] ( 2, 2 ) int -> x1 single-def
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp48 [V53,T24] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp48 [V53,T18] ( 2, 2 ) int -> x1 single-def
;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp51 [V56,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V56 tmp51 [V56,T19] ( 0, 0 ) int -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp54 [V59,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp54 [V59,T20] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp57 [V62,T20] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp57 [V62,T23] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp60 [V65,T25] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref
-; V68 cse0 [V68,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
-;* V69 cse1 [V69,T21] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V70 cse2 [V70,T03] ( 2, 2 ) int -> x0 "CSE - aggressive"
-; V71 cse3 [V71,T06] ( 2, 2 ) int -> x1 "CSE - aggressive"
-; V72 cse4 [V72,T07] ( 2, 2 ) int -> x2 "CSE - aggressive"
-; V73 cse5 [V73,T04] ( 3, 3 ) long -> x1 "CSE - aggressive"
-; V74 cse6 [V74,T08] ( 2, 2 ) long -> x0 "CSE - aggressive"
+; V68 cse0 [V68,T04] ( 2, 2 ) int -> x2 "CSE - aggressive"
+; V69 cse1 [V69,T05] ( 2, 2 ) int -> x0 "CSE - aggressive"
+; V70 cse2 [V70,T06] ( 3, 3 ) int -> x1 "CSE - aggressive"
+; V71 cse3 [V71,T07] ( 3, 3 ) int -> x3 "CSE - aggressive"
+; V72 cse4 [V72,T08] ( 3, 3 ) int -> x0 "CSE - aggressive"
+; V73 cse5 [V73,T03] ( 3, 3 ) long -> x1 "CSE - aggressive"
+; V74 cse6 [V74,T09] ( 2, 2 ) long -> x0 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -134,21 +134,24 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str w1, [x19, #0x08]
strh w2, [x19, #0x0C]
ldr w1, [x19, #0x08]
- add w1, w1, #17
- ldp w0, w2, [x0, #0x10]
+ sxtw w2, w1
+ add w2, w2, #17
+ ldp w0, w3, [x0, #0x10]
; gcrRegs -[x0]
- add w1, w1, w2
+ add w2, w2, w3
+ add w2, w2, w0
+ add w1, w2, w1
+ add w1, w1, #17
+ add w1, w1, w3
add w0, w1, w0
- add w0, w0, #3
- sub w0, w0, #5
- ;; size=168 bbWeight=1 PerfScore 31.50
+ ;; size=180 bbWeight=1 PerfScore 33.00
G_M50161_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 192, prolog size 12, PerfScore 38.00, instruction count 48, allocated bytes for code 192 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 204, prolog size 12, PerfScore 39.50, instruction count 51, allocated bytes for code 204 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
@@ -159,7 +162,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+7.14%) : 251288.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
@@ -33,8 +33,11 @@ G_M15390_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
+G_M15390_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ brk_windows #0
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 56, prolog size 8, PerfScore 11.50, instruction count 14, allocated bytes for code 56 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 15, allocated bytes for code 60 (MethodHash=25a3c3e1) for method Runtime_56495:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +48,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.crossgen2.windows.arm64.checked.mch
-24 (-30.00%) : 221317.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -8,10 +8,10 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> x0 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> x0
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -20,56 +20,27 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #2
- cmp w1, #19
- bhi G_M3102_IG03
- mov w0, w1
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M3102_IG02]
- add x1, x1, x2
- br x1
- ;; size=36 bbWeight=1 PerfScore 8.00
-G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #101
- cmp w1, #2
- bls G_M3102_IG05
- b G_M3102_IG05
- ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ sub w0, w0, #2
+ cmp w0, #19
+ bhi G_M3102_IG04
+ movz w1, #0xD1FFAB1E
+ movk w1, #3 LSL #16
+ lsr w0, w1, w0
+ tbz w0, #0, G_M3102_IG04
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
- b G_M3102_IG06
+ b G_M3102_IG05
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -80,7 +51,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-32 (-12.70%) : 243107.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,11 +27,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w11, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w11, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -97,23 +97,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
ldr x1, [x1]
blr x1
; gcrRegs -[x0 x21]
- ;; size=68 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w11, w19, #0xD1FFAB1E
- cmp w11, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w11, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w11, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_windows #0
+ ;; size=72 bbWeight=0 PerfScore 0.00
-; Total bytes of code 252, prolog size 16, PerfScore 12.50, instruction count 63, allocated bytes for code 252 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 220, prolog size 16, PerfScore 12.00, instruction count 55, allocated bytes for code 220 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -124,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 55 (0x00037) Actual length = 220 (0x0000dc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-11.48%) : 67639.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:g_makeReplacement|171(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
; V01 arg1 [V01,T01] ( 4, 3 ) ref -> x20 class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
; V02 loc0 [V02,T03] ( 4, 2 ) ref -> x0 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V03 loc1 [V03,T05] ( 3, 1.50) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -41,22 +41,10 @@ G_M26195_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
mov x21, x0
; gcrRegs +[x21]
- cbnz x21, G_M26195_IG04
+ cbz x21, G_M26195_IG05
;; size=28 bbWeight=1 PerfScore 7.00
-G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0 x21]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x11]
- blr x1
- ; gcr arg pop 0
- cbnz x0, G_M26195_IG06
- b G_M26195_IG06
- ;; size=28 bbWeight=0.50 PerfScore 3.75
-G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x21]
+G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x21, #0x18]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -64,11 +52,11 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
ldr x11, [x0, #0x18]
; gcrRegs +[x11]
ldr x11, [x11, #0x20]
- cbnz x11, G_M26195_IG06
+ cbnz x11, G_M26195_IG05
ldr x22, [x0, #0x20]
; gcrRegs +[x22]
mov x0, x22
@@ -79,7 +67,7 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M26195_IG06
+ cbz x0, G_M26195_IG05
mov x0, x22
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -96,14 +84,14 @@ G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldr wzr, [x0]
ldr x2, [x11]
;; size=112 bbWeight=0.50 PerfScore 22.25
-G_M26195_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
br x2
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x21] +[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -113,7 +101,7 @@ G_M26195_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
@@ -121,7 +109,7 @@ G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 244, prolog size 24, PerfScore 44.00, instruction count 61, allocated bytes for code 244 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 216, prolog size 24, PerfScore 40.25, instruction count 54, allocated bytes for code 216 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
; ============================================================
Unwind Info:
@@ -132,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
+ Function Length : 54 (0x00036) Actual length = 216 (0x0000d8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 180303.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -47,7 +47,7 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M57654_IG02: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x54]
cmp w0, #10
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w0
adr x11, [@RWD00]
ldr w11, [x11, x0, LSL #2]
@@ -78,7 +78,7 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
sub w23, w0, #1
cmp w23, #2
- bhi G_M57654_IG06
+ bhi G_M57654_IG16
mov w0, w23
adr x11, [@RWD44]
ldr w11, [x11, x0, LSL #2]
@@ -86,22 +86,10 @@ G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
add x11, x11, x1
br x11
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M57654_IG07: ; 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_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19 x21]
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x5C]
cmn w0, #1
- beq G_M57654_IG12
+ beq G_M57654_IG10
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -111,7 +99,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M57654_IG12
+ cbz w0, G_M57654_IG10
mov w2, w20
mov x0, x21
; gcrRegs +[x0]
@@ -122,12 +110,12 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x3
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w20, G_M57654_IG06
+ cbz w20, G_M57654_IG16
ldr w0, [x19, #0x60]
- cbnz w0, G_M57654_IG10
+ cbnz w0, G_M57654_IG08
ldr x23, [x19, #0x38]
; gcrRegs +[x23]
- cbz x23, G_M57654_IG09
+ cbz x23, G_M57654_IG07
mov x0, x23
; gcrRegs +[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
@@ -135,7 +123,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr x1, [x11]
blr x1
; gcr arg pop 0
- cbz x0, G_M57654_IG09
+ cbz x0, G_M57654_IG07
mov x0, x23
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -144,9 +132,9 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
blr x1
; gcrRegs -[x0 x23]
; gcr arg pop 0
- b G_M57654_IG10
+ b G_M57654_IG08
;; size=140 bbWeight=0.50 PerfScore 24.00
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -164,7 +152,7 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x15]
; byrRegs -[x14]
;; size=40 bbWeight=0.50 PerfScore 5.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x60]
ldr x3, [x19, #0x40]
; gcrRegs +[x3]
@@ -172,7 +160,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr w3, [x3, #0x08]
; gcrRegs -[x3]
cmp w0, w3
- beq G_M57654_IG06
+ beq G_M57654_IG16
ldr x0, [x19, #0x38]
; gcrRegs +[x0]
mov w3, w20
@@ -214,7 +202,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
ldr wzr, [x0]
ldr x1, [x11]
;; size=140 bbWeight=0.50 PerfScore 32.00
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -222,7 +210,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -235,7 +223,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280
ldr wzr, [x0]
ldr x4, [x11]
;; size=32 bbWeight=0.50 PerfScore 5.75
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -243,12 +231,12 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
br x4
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1]
mov w0, #10
str w0, [x19, #0x54]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov w3, w20
@@ -263,7 +251,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0-x1 x21]
; gcr arg pop 0
sxtw w23, w0
- cbnz w23, G_M57654_IG16
+ cbnz w23, G_M57654_IG14
mov w0, #1
str w0, [x19, #0x54]
mov x0, x19
@@ -275,9 +263,19 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=000
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=72 bbWeight=0.50 PerfScore 10.50
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sxtw w0, w23
;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M57654_IG15: ; 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_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -343,20 +341,20 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=84 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
; Total bytes of code 808, prolog size 36, PerfScore 123.00, instruction count 202, allocated bytes for code 808 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+0 (0.00%) : 188275.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String,int,int,int):System.Exception (FullOpts)
@@ -15,8 +15,8 @@
; V03 arg3 [V03,T03] ( 3, 2.50) int -> x21 single-def
; V04 arg4 [V04,T04] ( 3, 2.50) int -> x22 single-def
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T05] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V07 tmp2 [V07,T08] ( 2, 2 ) ref -> x19 class-hnd single-def "finalizable newobj spill" <System.String>
+; V06 tmp1 [V06,T05] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp2 [V07,T08] ( 2, 2 ) ref -> x20 class-hnd single-def "finalizable newobj spill" <System.String>
; V08 tmp3 [V08,T06] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V09 tmp4 [V09,T07] ( 3, 3 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
;
@@ -36,9 +36,47 @@ G_M23253_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=36 bbWeight=1 PerfScore 6.50
G_M23253_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M23253_IG05
+ cbnz w2, G_M23253_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov x1, x20
+ ; gcrRegs +[x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x1 x19-x20]
+ mov x20, x0
+ ; gcrRegs +[x20]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ ; gcrRegs -[x0]
+ blr x0
+ ; gcrRegs +[x0]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ mov x1, x20
+ ; gcrRegs +[x1]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0-x1 x20]
+ mov x0, x21
+ ; gcrRegs +[x0]
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
+G_M23253_IG04: ; 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_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x21] +[x19-x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -83,44 +121,6 @@ G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=112 bbWeight=0.50 PerfScore 13.00
-G_M23253_IG04: ; 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_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- mov x1, x20
- ; gcrRegs +[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x1 x19-x20]
- mov x19, x0
- ; gcrRegs +[x19]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M23253_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
+0 (0.00%) : 187288.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (FullOpts)
@@ -16,8 +16,8 @@
; V04 arg4 [V04,T04] ( 3, 2.50) int -> x22 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String[]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x19 class-hnd single-def "finalizable newobj spill" <System.String>
+; V07 tmp1 [V07,T05] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V08 tmp2 [V08,T07] ( 2, 2 ) ref -> x21 class-hnd single-def "finalizable newobj spill" <System.String>
; V09 tmp3 [V09,T06] ( 3, 3 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;
; Lcl frame size = 8
@@ -36,9 +36,47 @@ G_M21875_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w22, w4
;; size=36 bbWeight=1 PerfScore 6.50
G_M21875_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w2, G_M21875_IG05
+ cbnz w2, G_M21875_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov x1, x20
+ ; gcrRegs +[x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x1 x19-x20]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ ; gcrRegs -[x0]
+ blr x0
+ ; gcrRegs +[x0]
+ mov x19, x0
+ ; gcrRegs +[x19]
+ mov x1, x21
+ ; gcrRegs +[x1]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0-x1 x21]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
+G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0] +[x20]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
@@ -64,44 +102,6 @@ G_M21875_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x0, x23
; gcrRegs +[x0]
;; size=64 bbWeight=0.50 PerfScore 7.00
-G_M21875_IG04: ; 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_M21875_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x23] +[x19-x20]
- mov x1, x20
- ; gcrRegs +[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x1 x19-x20]
- mov x19, x0
- ; gcrRegs +[x19]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x2, [x11]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M21875_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
libraries.pmi.windows.arm64.checked.mch
-24 (-30.00%) : 276323.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,10 +7,10 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> x0 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> x0
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -19,56 +19,27 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #2
- cmp w1, #19
- bhi G_M3102_IG03
- mov w0, w1
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M3102_IG02]
- add x1, x1, x2
- br x1
- ;; size=36 bbWeight=1 PerfScore 8.00
-G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #101
- cmp w1, #2
- bls G_M3102_IG05
- b G_M3102_IG05
- ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ sub w0, w0, #2
+ cmp w0, #19
+ bhi G_M3102_IG04
+ movz w1, #0xD1FFAB1E
+ movk w1, #3 LSL #16
+ lsr w0, w1, w0
+ tbz w0, #0, G_M3102_IG04
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
- b G_M3102_IG06
+ b G_M3102_IG05
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +50,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-32 (-13.33%) : 279094.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> x19 single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> x19 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> x20 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,11 +26,11 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x20]
;; size=24 bbWeight=1 PerfScore 4.50
G_M20631_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ mov w0, #250
cmp w19, #0xD1FFAB1E
- bgt G_M20631_IG07
- cmp w19, #250
- bne G_M20631_IG06
- ;; size=16 bbWeight=1 PerfScore 3.00
+ ccmp w19, w0, 0, le
+ bne G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -93,23 +93,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
; gcrRegs -[x0 x21]
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
- sub w0, w19, #0xD1FFAB1E
- cmp w0, #1
- bls G_M20631_IG04
- b G_M20631_IG04
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- mov w0, #0xD1FFAB1E
- cmp w19, #0xD1FFAB1E
- ccmp w19, w0, z, ne
- beq G_M20631_IG04
- b G_M20631_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ brk_windows #0
+ ;; size=64 bbWeight=0 PerfScore 0.00
-; Total bytes of code 240, prolog size 16, PerfScore 12.50, instruction count 60, allocated bytes for code 240 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 208, prolog size 16, PerfScore 12.00, instruction count 52, allocated bytes for code 208 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -120,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ 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)
-12 (-12.00%) : 4983.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRangeint:int (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T06] ( 3, 6 ) byref -> x0 single-def
; V01 arg1 [V01,T04] ( 4, 6.28) int -> x1 ld-addr-op single-def
-; V02 arg2 [V02,T05] ( 4, 6.28) int -> x2 ld-addr-op single-def
+; V02 arg2 [V02,T05] ( 3, 6 ) int -> x2 ld-addr-op single-def
; V03 arg3 [V03,T08] ( 3, 3 ) int -> x3 single-def
; V04 loc0 [V04,T00] ( 7, 19.72) int -> x3
; V05 loc1 [V05,T07] ( 2, 8 ) byref -> x4
@@ -18,7 +18,7 @@
;* V07 tmp1 [V07,T09] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V08 tmp2 [V08,T01] ( 3, 16.56) int -> x5 "Inlining Arg"
;* V09 tmp3 [V09,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V10 tmp4 [V10,T02] ( 3, 16.56) int -> x4 "Inlining Arg"
+; V10 tmp4 [V10,T02] ( 2, 16 ) int -> x4 "Inlining Arg"
; V11 cse0 [V11,T03] ( 3, 12 ) int -> x4 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -48,7 +48,7 @@ G_M34838_IG04: ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
;; size=8 bbWeight=0.28 PerfScore 0.42
G_M34838_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
cmp w2, w4
- bge G_M34838_IG11
+ bge G_M34838_IG08
;; size=8 bbWeight=4 PerfScore 6.00
G_M34838_IG06: ; bbWeight=1.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x0]
@@ -71,16 +71,8 @@ G_M34838_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M34838_IG11: ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- cmp w2, w4
- ble G_M34838_IG08
- ;; size=8 bbWeight=0.28 PerfScore 0.42
-G_M34838_IG12: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
- b G_M34838_IG08
- ;; size=4 bbWeight=0.06 PerfScore 0.06
-; Total bytes of code 100, prolog size 8, PerfScore 47.45, instruction count 25, allocated bytes for code 100 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 46.97, instruction count 22, allocated bytes for code 88 (MethodHash=781577e9) for method System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -91,7 +83,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 22 (0x00016) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 194092.dasm - System.Xml.XmlConvert:CreateException(System.String,int,int,int):System.Exception (FullOpts)
@@ -33,9 +33,36 @@ G_M24551_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov w21, w3
;; size=32 bbWeight=1 PerfScore 6.00
G_M24551_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- cbz w1, G_M24551_IG05
+ cbnz w1, G_M24551_IG05
;; size=4 bbWeight=1 PerfScore 1.00
G_M24551_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov x20, x0
+ ; gcrRegs +[x20]
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x2, #0xD1FFAB1E // code for <unknown method>
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
+ ; gcrRegs -[x0-x1 x19]
+ mov x0, x20
+ ; gcrRegs +[x0]
+ ;; size=48 bbWeight=0.50 PerfScore 4.75
+G_M24551_IG04: ; 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_M24551_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x20] +[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -107,33 +134,6 @@ G_M24551_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
mov x0, x22
; gcrRegs +[x0]
;; size=188 bbWeight=0.50 PerfScore 16.50
-G_M24551_IG04: ; 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_M24551_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x22] +[x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19]
- mov x0, x20
- ; gcrRegs +[x0]
- ;; size=48 bbWeight=0.50 PerfScore 4.75
G_M24551_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
+0 (0.00%) : 283060.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -15,11 +15,11 @@
; V04 loc1 [V04,T08] ( 2, 2 ) int -> x0
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
-; V07 tmp2 [V07,T16] ( 2, 0 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
-; V08 tmp3 [V08,T11] ( 3, 0 ) ref -> x22 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V09 tmp4 [V09,T12] ( 3, 0 ) ref -> x19 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V10 tmp5 [V10,T13] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V11 tmp6 [V11,T14] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp2 [V07,T17] ( 2, 0 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.String>
+; V08 tmp3 [V08,T12] ( 3, 0 ) ref -> x22 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V09 tmp4 [V09,T13] ( 3, 0 ) ref -> x19 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V10 tmp5 [V10,T14] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V11 tmp6 [V11,T15] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V12 tmp7 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V13 tmp8 [V13,T09] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
; V14 tmp9 [V14,T03] ( 3, 5 ) int -> x0 "Inlining Arg"
@@ -28,15 +28,16 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
; V18 tmp13 [V18,T05] ( 2, 2 ) ref -> x21 single-def "field V02._source (fldOffset=0x0)" P-INDEP
; V19 tmp14 [V19,T02] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
-; V20 tmp15 [V20,T15] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
-; V21 tmp16 [V21,T17] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V22 tmp17 [V22,T18] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V23 tmp18 [V23,T19] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V24 tmp19 [V24,T20] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V25 tmp20 [V25,T21] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V26 tmp21 [V26,T22] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V27 PSPSym [V27,T10] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
-; V28 cse0 [V28,T06] ( 3, 3 ) ref -> x0 "CSE - aggressive"
+; V20 tmp15 [V20,T10] ( 2, 1 ) ref -> x0 single-def "Field obj"
+; V21 tmp16 [V21,T16] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
+; V22 tmp17 [V22,T18] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V23 tmp18 [V23,T19] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V24 tmp19 [V24,T20] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V25 tmp20 [V25,T21] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V26 tmp21 [V26,T22] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V27 tmp22 [V27,T23] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V28 PSPSym [V28,T11] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+; V29 cse0 [V29,T06] ( 3, 3 ) ref -> x0 "CSE - aggressive"
;
; Lcl frame size = 32
@@ -47,7 +48,7 @@ G_M29166_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
str xzr, [fp, #0x20] // [V03 loc0]
add x3, sp, #80
- str x3, [fp, #0x28] // [V27 PSPSym]
+ str x3, [fp, #0x28] // [V28 PSPSym]
str x1, [fp, #0x18] // [V01 arg1]
; GC ptr vars +{V01}
mov x20, x0
@@ -158,7 +159,7 @@ G_M29166_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ldrsb wzr, [x0, #0x9D]
+ ldrsb wzr, [x0]
;; size=20 bbWeight=0.50 PerfScore 3.75
G_M29166_IG07: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
+8 (+0.28%) : 114148.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
@@ -95,7 +95,7 @@
; V84 tmp67 [V84,T60] ( 5, 2.50) ref -> x2
; V85 tmp68 [V85,T33] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V86 tmp69 [V86,T53] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;* V87 tmp70 [V87,T117] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V87 tmp70 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V88 tmp71 [V88,T92] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V89 tmp72 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticInfo>
;* V90 tmp73 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
@@ -171,7 +171,7 @@
; V160 tmp143 [V160,T66] ( 3, 2 ) int -> x0
;* V161 tmp144 [V161 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V162 tmp145 [V162,T79] ( 2, 2 ) ubyte -> x14 "Inline return value spill temp"
-;* V163 tmp146 [V163,T118] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V163 tmp146 [V163,T117] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
; V164 tmp147 [V164,T102] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V165 tmp148 [V165 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V166 tmp149 [V166 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -199,7 +199,7 @@
;* V188 tmp171 [V188 ] ( 0, 0 ) ref -> zero-ref "field V20.array (fldOffset=0x0)" P-INDEP
;* V189 tmp172 [V189 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.array (fldOffset=0x0)" P-INDEP
;* V190 tmp173 [V190,T114] ( 0, 0 ) ref -> zero-ref single-def "field V25._array (fldOffset=0x0)" P-INDEP
-;* V191 tmp174 [V191,T119] ( 0, 0 ) int -> zero-ref single-def "field V25._index (fldOffset=0x8)" P-INDEP
+;* V191 tmp174 [V191,T118] ( 0, 0 ) int -> zero-ref single-def "field V25._index (fldOffset=0x8)" P-INDEP
;* V192 tmp175 [V192 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._nodeOrParent (fldOffset=0x0)" P-INDEP
;* V193 tmp176 [V193 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._token (fldOffset=0x8)" P-INDEP
;* V194 tmp177 [V194 ] ( 0, 0 ) int -> zero-ref single-def "field V55._position (fldOffset=0x10)" P-INDEP
@@ -243,8 +243,8 @@
; V232 tmp215 [V232,T93] ( 3, 1.50) int -> [fp+0x78] "V53.[020..024)"
;* V233 tmp216 [V233,T115] ( 0, 0 ) ref -> zero-ref single-def "V68.[000..008)"
;* V234 tmp217 [V234,T116] ( 0, 0 ) ref -> zero-ref single-def "V68.[008..016)"
-;* V235 tmp218 [V235,T120] ( 0, 0 ) int -> zero-ref single-def "V68.[016..020)"
-;* V236 tmp219 [V236,T121] ( 0, 0 ) int -> zero-ref single-def "V68.[020..024)"
+;* V235 tmp218 [V235,T119] ( 0, 0 ) int -> zero-ref single-def "V68.[016..020)"
+;* V236 tmp219 [V236,T120] ( 0, 0 ) int -> zero-ref single-def "V68.[020..024)"
;* V237 tmp220 [V237 ] ( 0, 0 ) ref -> zero-ref single-def "V56.[000..008)"
;* V238 tmp221 [V238 ] ( 0, 0 ) ref -> zero-ref single-def "V56.[008..016)"
;* V239 tmp222 [V239 ] ( 0, 0 ) int -> zero-ref single-def "V56.[016..020)"
@@ -261,7 +261,7 @@
; V250 tmp233 [V250,T76] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V251 tmp234 [V251,T57] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V252 tmp235 [V252,T77] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-;* V253 cse0 [V253,T122] ( 0, 0 ) long -> zero-ref "CSE - conservative"
+;* V253 cse0 [V253,T121] ( 0, 0 ) long -> zero-ref "CSE - conservative"
; V254 cse1 [V254,T58] ( 3, 3 ) long -> x25 "CSE - conservative"
; V255 cse2 [V255,T27] ( 3, 6 ) ref -> x1 "CSE - moderate"
; V256 cse3 [V256,T90] ( 3, 1.50) ref -> x6 "CSE - conservative"
@@ -328,7 +328,7 @@ G_M20504_IG03: ; bbWeight=0.50, gcrefRegs=3E80002 {x1 x19 x21 x22 x23 x24
; gcrRegs -[x1]
mov x28, x0
; gcrRegs +[x28]
- b G_M20504_IG32
+ b G_M20504_IG33
;; size=64 bbWeight=0.50 PerfScore 9.25
G_M20504_IG04: ; bbWeight=0.50, gcrefRegs=7F80000 {x19 x20 x21 x22 x23 x24 x25 x26}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0 x28] +[x20 x26]
@@ -570,10 +570,10 @@ G_M20504_IG19: ; bbWeight=0.50, gcrefRegs=17E80000 {x19 x21 x22 x23 x24 x
; gcrRegs -[x0]
ldr x0, [x28, #0x38]
; gcrRegs +[x0]
- cbz x0, G_M20504_IG45
+ cbz x0, G_M20504_IG46
ldr x14, [x0, #0x08]
; gcrRegs +[x14]
- cbnz x14, G_M20504_IG44
+ cbnz x14, G_M20504_IG45
add x14, x0, #8
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -582,7 +582,7 @@ G_M20504_IG19: ; bbWeight=0.50, gcrefRegs=17E80000 {x19 x21 x22 x23 x24 x
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15 x28]
; byrRegs -[x14]
- b G_M20504_IG45
+ b G_M20504_IG46
;; size=60 bbWeight=0.50 PerfScore 10.00
G_M20504_IG20: ; bbWeight=1.00, gcVars=00000000000000000000004000080004 {V14 V28 V29}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x20 x28]
@@ -604,19 +604,16 @@ G_M20504_IG23: ; bbWeight=0.50, gcVars=00000002010000000000004004000000 {
; gcrRegs -[x26]
; byrRegs -[x0 x4]
; GC ptr vars -{V05 V28 V29 V30 V34 V36} +{V58 V88 V97 V214 V215}
- ldr x5, [fp, #0x30] // [V58 tmp41]
- ; gcrRegs +[x5]
- ldr x0, [x5, #0x10]
- ; gcrRegs +[x0]
- cbz x0, G_M20504_IG30
- mov x2, x5
+ cbnz w0, G_M20504_IG31
+ ldr x2, [fp, #0x30] // [V58 tmp41]
; gcrRegs +[x2]
ldp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
; gcrRegs +[x3 x26]
+ stp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
b G_M20504_IG25
- ;; size=24 bbWeight=0.50 PerfScore 5.25
+ ;; size=20 bbWeight=0.50 PerfScore 4.00
G_M20504_IG24: ; bbWeight=0.00, gcVars=00000000000000000000004000080024 {V14 V28 V29 V34}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x2-x3 x5]
+ ; gcrRegs -[x2-x3]
; GC ptr vars -{V58 V88 V97 V214 V215} +{V02 V05 V28 V29 V34}
sxtw x1, w7
movz x0, #0xD1FFAB1E
@@ -636,22 +633,51 @@ G_M20504_IG24: ; bbWeight=0.00, gcVars=00000000000000000000004000080024 {
; gcrRegs +[x4]
b G_M20504_IG17
;; size=40 bbWeight=0.00 PerfScore 0.01
-G_M20504_IG25: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x4] +[x0 x2-x3]
- ; GC ptr vars -{V28 V29} +{V58}
- cbz x26, G_M20504_IG29
+G_M20504_IG25: ; bbWeight=0.50, gcVars=00000002010000000000004004000000 {V14 V58 V214 V215}, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x4 x26]
+ ; GC ptr vars -{V28 V29} +{V58 V88 V97 V214 V215}
+ ldr x5, [fp, #0x30] // [V58 tmp41]
+ ; gcrRegs +[x5]
+ ldr x0, [x5, #0x10]
+ ; gcrRegs +[x0]
+ cbz x0, G_M20504_IG31
+ mov x2, x5
+ ; gcrRegs +[x2]
+ ldp x3, x26, [fp, #0x18] // [V215 tmp198], [V214 tmp197]
+ ; gcrRegs +[x3 x26]
b G_M20504_IG27
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=24 bbWeight=0.50 PerfScore 5.25
G_M20504_IG26: ; bbWeight=0.46, gcVars=00000000000000000000004000080004 {V14 V28 V29}, gcrefRegs=17F80010 {x4 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x2-x3] +[x4]
- ; GC ptr vars -{V58} +{V02 V28 V29}
+ ; gcrRegs -[x0 x2-x3 x5] +[x4]
+ ; GC ptr vars -{V58 V88 V97 V214 V215} +{V02 V28 V29}
sxtw w7, w5
ldr w5, [fp, #0xC4] // [V30 tmp13]
b G_M20504_IG09
;; size=12 bbWeight=0.46 PerfScore 1.61
-G_M20504_IG27: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
+G_M20504_IG27: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x4] +[x0 x2-x3]
; GC ptr vars -{V02 V28 V29} +{V58}
+ cbz x26, G_M20504_IG30
+ b G_M20504_IG29
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M20504_IG28: ; bbWeight=0.00, gcVars=00000000000000000000004040080024 {V14 V28 V29 V34 V36}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0011 {x0 x4}, gcvars, byref
+ ; gcrRegs -[x0 x2-x3]
+ ; byrRegs +[x0 x4]
+ ; GC ptr vars -{V58} +{V02 V05 V28 V29 V30 V34 V36}
+ mov x1, x4
+ ; byrRegs +[x1]
+ movz x4, #0xD1FFAB1E // code for <unknown method>
+ ; byrRegs -[x4]
+ movk x4, #0xD1FFAB1E LSL #16
+ movk x4, #0xD1FFAB1E LSL #32
+ ldr x4, [x4]
+ blr x4
+ ; byrRegs -[x0-x1]
+ b G_M20504_IG15
+ ;; size=28 bbWeight=0.00 PerfScore 0.00
+G_M20504_IG29: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=17F8000D {x0 x2 x3 x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x0 x2-x3]
+ ; GC ptr vars -{V02 V05 V28 V29 V30 V34 V36} +{V58}
str x3, [fp, #0x18] // [V215 tmp198]
; GC ptr vars +{V215}
mov x1, x26
@@ -666,26 +692,9 @@ G_M20504_IG27: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {
; gcrRegs +[x2]
ldr x3, [fp, #0x18] // [V215 tmp198]
; gcrRegs +[x3]
- b G_M20504_IG29
- ;; size=40 bbWeight=0.50 PerfScore 6.00
-G_M20504_IG28: ; bbWeight=0.00, gcVars=00000000000000000000004040080024 {V14 V28 V29 V34 V36}, gcrefRegs=17F80000 {x19 x20 x21 x22 x23 x24 x25 x26 x28}, byrefRegs=0011 {x0 x4}, gcvars, byref
- ; gcrRegs -[x2-x3] +[x26]
- ; byrRegs +[x0 x4]
- ; GC ptr vars -{V58 V215} +{V02 V05 V28 V29 V30 V34 V36}
- mov x1, x4
- ; byrRegs +[x1]
- movz x4, #0xD1FFAB1E // code for <unknown method>
- ; byrRegs -[x4]
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; byrRegs -[x0-x1]
- b G_M20504_IG15
- ;; size=28 bbWeight=0.00 PerfScore 0.00
-G_M20504_IG29: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=13F8000C {x2 x3 x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x26] +[x2-x3]
- ; GC ptr vars -{V02 V05 V28 V29 V30 V34 V36} +{V58}
+ ;; size=36 bbWeight=0.50 PerfScore 5.50
+G_M20504_IG30: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {V14 V58}, gcrefRegs=13F8000C {x2 x3 x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars -{V215}
mov x0, x2
; gcrRegs +[x0]
mov x1, x3
@@ -699,7 +708,7 @@ G_M20504_IG29: ; bbWeight=0.50, gcVars=00000000000000000000004004000000 {
blr x2
; gcrRegs -[x0-x1 x3]
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M20504_IG30: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
+G_M20504_IG31: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
ldrsb wzr, [x0]
@@ -722,7 +731,7 @@ G_M20504_IG30: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x
mov x28, x0
; gcrRegs +[x28]
;; size=64 bbWeight=0.50 PerfScore 9.50
-G_M20504_IG31: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
+G_M20504_IG32: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x20
; gcrRegs +[x0]
@@ -734,7 +743,7 @@ G_M20504_IG31: ; bbWeight=0.50, gcrefRegs=13F80000 {x19 x20 x21 x22 x23 x
blr x1
; gcrRegs -[x0 x20]
;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M20504_IG32: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG33: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25 x28}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x10]
; gcrRegs +[x20]
movz x0, #0xD1FFAB1E
@@ -884,13 +893,13 @@ G_M20504_IG32: ; bbWeight=1, gcrefRegs=13E80000 {x19 x21 x22 x23 x24 x25
; gcrRegs -[x15 x24]
; byrRegs -[x14]
tst w0, #255
- beq G_M20504_IG34
+ beq G_M20504_IG35
;; size=388 bbWeight=1 PerfScore 92.50
-G_M20504_IG33: ; bbWeight=0.50, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref
+G_M20504_IG34: ; bbWeight=0.50, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref
mov w14, #1
strb w14, [x20, #0x11]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M20504_IG34: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG35: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
add x14, x20, #24
; byrRegs +[x14]
mov x15, x27
@@ -940,7 +949,7 @@ G_M20504_IG34: ; bbWeight=1, gcrefRegs=CD80000 {x19 x20 x22 x23 x26 x27},
; gcrRegs -[x0]
cbnz w0, G_M20504_IG64
;; size=128 bbWeight=1 PerfScore 30.00
-G_M20504_IG35: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
+G_M20504_IG36: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x26, #0x10]
sub w0, w0, #59
cmp w0, #1
@@ -951,19 +960,19 @@ G_M20504_IG35: ; bbWeight=0.50, gcrefRegs=4780000 {x19 x20 x21 x22 x26},
ldr x24, [x23, #0x18]
; gcrRegs +[x24]
;; size=28 bbWeight=0.50 PerfScore 4.50
...
libraries_tests.run.windows.arm64.Release.mch
-20 (-20.83%) : 52294.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)
@@ -12,7 +12,7 @@
; V00 this [V00,T00] ( 6, 4.67) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 3.67) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T03] ( 8, 2.31) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 4, 2.23) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T04] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V05 cse0 [V05,T02] ( 3, 2.44) ref -> x14 "CSE - aggressive"
;
@@ -41,11 +41,13 @@ G_M21386_IG05: ; bbWeight=0.56, gcVars=0000000000000000 {}, gcrefRegs=000
; gcrRegs -[x14] +[x1]
add x14, x1, #52
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M21386_IG06
- tbnz w2, #22, G_M21386_IG06
- tbz w2, #24, G_M21386_IG08
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M21386_IG06
+ tbnz w14, #22, G_M21386_IG06
+ tbz w14, #24, G_M21386_IG06
add x14, x0, #24
+ ; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
@@ -62,16 +64,8 @@ G_M21386_IG07: ; bbWeight=0.56, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.56 PerfScore 1.12
-G_M21386_IG08: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M21386_IG06
- tbnz w2, #17, G_M21386_IG06
- tbnz w2, #16, G_M21386_IG06
- tbz w2, #25, G_M21386_IG06
- b G_M21386_IG06
- ;; size=20 bbWeight=0.02 PerfScore 0.10
-; Total bytes of code 96, prolog size 8, PerfScore 13.39, instruction count 24, allocated bytes for code 96 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 13.30, instruction count 19, allocated bytes for code 76 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 62482.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.14) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,15 +25,17 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs +[x0-x1]
ldr x14, [x0, #0x18]
; gcrRegs +[x14]
- cbnz x14, G_M46606_IG06
+ cbnz x14, G_M46606_IG05
add x14, x1, #52
; gcrRegs -[x14]
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M46606_IG03
- tbnz w2, #22, G_M46606_IG03
- tbz w2, #24, G_M46606_IG05
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG03
+ tbnz w14, #22, G_M46606_IG03
+ tbz w14, #24, G_M46606_IG03
add x14, x0, #24
+ ; byrRegs +[x14]
mov x15, x1
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
@@ -50,24 +52,16 @@ G_M46606_IG04: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG05: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M46606_IG03
- tbnz w2, #17, G_M46606_IG03
- tbnz w2, #16, G_M46606_IG03
- tbz w2, #25, G_M46606_IG03
- b G_M46606_IG03
- ;; size=20 bbWeight=0.03 PerfScore 0.17
-G_M46606_IG06: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1] +[x0]
+G_M46606_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x1]
ldr x0, [x0, #0x18]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 8, PerfScore 17.67, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -78,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 89299.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,12 +12,12 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> x0 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> x1 class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4.05) int -> x2 "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 3.98) int -> x14 "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
@@ -25,17 +25,17 @@ G_M46606_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs +[x0-x1]
ldr x14, [x0, #0x18]
; gcrRegs +[x14]
- cbnz x14, G_M46606_IG08
+ cbnz x14, G_M46606_IG07
add x14, x1, #52
; gcrRegs -[x14]
; byrRegs +[x14]
- ldapr w2, [x14]
- tbnz w2, #21, G_M46606_IG05
+ ldapr w14, [x14]
+ ; byrRegs -[x14]
+ tbnz w14, #21, G_M46606_IG05
;; size=20 bbWeight=1 PerfScore 8.50
G_M46606_IG03: ; bbWeight=0.99, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x14]
- tbnz w2, #22, G_M46606_IG05
- tbz w2, #24, G_M46606_IG07
+ tbnz w14, #22, G_M46606_IG05
+ tbz w14, #24, G_M46606_IG05
;; size=8 bbWeight=0.99 PerfScore 1.98
G_M46606_IG04: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
add x14, x0, #24
@@ -56,24 +56,16 @@ G_M46606_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M46606_IG07: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0]
- tbnz w2, #23, G_M46606_IG05
- tbnz w2, #17, G_M46606_IG05
- tbnz w2, #16, G_M46606_IG05
- tbz w2, #25, G_M46606_IG05
- b G_M46606_IG05
- ;; size=20 bbWeight=0.02 PerfScore 0.08
-G_M46606_IG08: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1] +[x0]
+G_M46606_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x1]
ldr x0, [x0, #0x18]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG09: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG08: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 8, PerfScore 17.56, instruction count 24, allocated bytes for code 96 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 76, prolog size 8, PerfScore 17.48, instruction count 19, allocated bytes for code 76 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -84,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.16%) : 186721.dasm - System.Collections.Generic.HashSet1[ulong]:UnionWith(System.Collections.Generic.IEnumerable1[ulong]):this (Tier1-OSR)
@@ -12,7 +12,7 @@
;
; V00 this [V00,T10] ( 4, 100.79) ref -> x19 this class-hnd single-def <System.Collections.Generic.HashSet`1[ulong]>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IEnumerable`1[ulong]>
-; V02 loc0 [V02,T08] ( 16, 204.71) ref -> [fp+0xB0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[ulong]>
+; V02 loc0 [V02,T08] ( 16, 205.18) ref -> [fp+0xB0] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[ulong]>
;* V03 loc1 [V03 ] ( 0, 0 ) long -> zero-ref
; V04 loc2 [V04 ] ( 3, 99.79) int -> [fp+0xA0] do-not-enreg[X] addr-exposed ld-addr-op tier0-frame
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,60 +23,58 @@
; V10 tmp5 [V10,T03] ( 5, 200.00) int -> x4 "guarded devirt return temp"
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
-;* V13 tmp8 [V13,T14] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.IEnumerator`1[ulong]>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
;* V16 tmp11 [V16 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.HashSet`1+Enumerator[ulong]>
;* V17 tmp12 [V17 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V18 tmp13 [V18,T00] ( 18,1798.64) byref -> x20 "Inlining Arg"
+; V18 tmp13 [V18,T00] ( 18,1798.64) byref -> x21 "Inlining Arg"
; V19 tmp14 [V19,T02] ( 8, 398.64) int -> x3 "Inline stloc first use temp"
-; V20 tmp15 [V20,T01] ( 6, 597.96) ref -> x21 class-hnd exact "impAppendStmt" <<unknown class>>
-; V21 tmp16 [V21,T04] ( 6, 298.98) byref -> x22 "Inline stloc first use temp"
+; V20 tmp15 [V20,T01] ( 6, 597.96) ref -> x22 class-hnd exact "impAppendStmt" <<unknown class>>
+; V21 tmp16 [V21,T04] ( 6, 298.98) byref -> x23 "Inline stloc first use temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) ref -> zero-ref "field V16._hashSet (fldOffset=0x0)" P-INDEP
;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "field V16._current (fldOffset=0x8)" P-INDEP
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "field V16._version (fldOffset=0x10)" P-INDEP
;* V26 tmp21 [V26 ] ( 0, 0 ) int -> zero-ref "field V16._index (fldOffset=0x14)" P-INDEP
-; V27 PSPSym [V27,T15] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V27 PSPSym [V27,T15] ( 1, 1 ) long -> [fp+0x10] do-not-enreg[V] "PSPSym"
; V28 cse0 [V28,T05] ( 3, 297.00) int -> x0 "CSE - aggressive"
-; V29 cse1 [V29,T11] ( 3, 3.00) int -> x0 "CSE - aggressive"
+; V29 cse1 [V29,T12] ( 3, 3.00) int -> x0 "CSE - aggressive"
; V30 cse2 [V30,T07] ( 3, 296.66) int -> x3 "CSE - aggressive"
-; V31 cse3 [V31,T13] ( 3, 3.00) int -> x3 "CSE - aggressive"
+; V31 cse3 [V31,T14] ( 3, 3.00) int -> x3 "CSE - aggressive"
; V32 cse4 [V32,T06] ( 3, 296.66) ref -> x2 "CSE - aggressive"
-; V33 cse5 [V33,T12] ( 3, 3.00) ref -> x2 "CSE - aggressive"
+; V33 cse5 [V33,T11] ( 10, 7.82) long -> x20 hoist multi-def "CSE - aggressive"
+; V34 cse6 [V34,T13] ( 3, 3.00) ref -> x2 "CSE - moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M38939_IG01: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
add xip1, sp, #208
- str xip1, [fp, #0x18] // [V27 PSPSym]
+ str xip1, [fp, #0x10] // [V27 PSPSym]
ldr x19, [fp, #0xC0]
; gcrRegs +[x19]
- ;; size=28 bbWeight=1.21 PerfScore 8.49
+ ;; size=32 bbWeight=1.21 PerfScore 9.70
G_M38939_IG02: ; bbWeight=1.21, gcVars=0000000000000100 {V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V02 V08}
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
- cbz x2, G_M38939_IG10
- ;; size=8 bbWeight=1.21 PerfScore 3.64
-G_M38939_IG03: ; bbWeight=0.75, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x2]
+ cbz x2, G_M38939_IG09
ldr x2, [fp, #0xB0] // [V02 loc0]
- ; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x2, x0
- bne G_M38939_IG10
- b G_M38939_IG05
- ;; size=32 bbWeight=0.75 PerfScore 6.78
-G_M38939_IG04: ; bbWeight=97.80, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ cmp x2, x20
+ bne G_M38939_IG09
+ b G_M38939_IG04
+ ;; size=40 bbWeight=1.21 PerfScore 14.55
+G_M38939_IG03: ; bbWeight=97.80, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x1, [x2, #0x10]
@@ -92,90 +90,93 @@ G_M38939_IG04: ; bbWeight=97.80, gcrefRegs=80000 {x19}, byrefRegs=0000 {}
; gcrRegs -[x0]
; gcr arg pop 0
;; size=36 bbWeight=97.80 PerfScore 1124.69
-G_M38939_IG05: ; bbWeight=99.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M38939_IG04: ; bbWeight=99.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
- add x20, x2, #8
- ; byrRegs +[x20]
- ldr w2, [x20, #0x10]
+ add x21, x2, #8
+ ; byrRegs +[x21]
+ ldr w2, [x21, #0x10]
; gcrRegs -[x2]
- ldr x0, [x20]
+ ldr x0, [x21]
; gcrRegs +[x0]
ldr w0, [x0, #0x34]
; gcrRegs -[x0]
cmp w2, w0
- bne G_M38939_IG18
+ bne G_M38939_IG17
;; size=28 bbWeight=99.00 PerfScore 1287.00
-G_M38939_IG06: ; bbWeight=99.00, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- ldr w3, [x20, #0x14]
- ldr x2, [x20]
+G_M38939_IG05: ; bbWeight=99.00, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+ ldr w3, [x21, #0x14]
+ ldr x2, [x21]
; gcrRegs +[x2]
ldr w0, [x2, #0x28]
cmp w3, w0
- blo G_M38939_IG08
+ blo G_M38939_IG07
add w2, w0, #1
; gcrRegs -[x2]
- str w2, [x20, #0x14]
- str xzr, [x20, #0x08]
+ str w2, [x21, #0x14]
+ str xzr, [x21, #0x08]
mov w4, wzr
- cbnz w4, G_M38939_IG04
+ cbnz w4, G_M38939_IG03
;; size=40 bbWeight=99.00 PerfScore 1435.50
-G_M38939_IG07: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38939_IG06: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
- ; byrRegs -[x20]
- b G_M38939_IG20
+ ; byrRegs -[x21]
+ b G_M38939_IG19
;; size=4 bbWeight=1.21 PerfScore 1.21
-G_M38939_IG08: ; bbWeight=98.66, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x20}, byref, isz
+G_M38939_IG07: ; bbWeight=98.66, gcrefRegs=80004 {x2 x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs +[x2 x19]
- ; byrRegs +[x20]
- ldr x21, [x2, #0x10]
- ; gcrRegs +[x21]
+ ; byrRegs +[x21]
+ ldr x22, [x2, #0x10]
+ ; gcrRegs +[x22]
add w0, w3, #1
- str w0, [x20, #0x14]
- ldr w2, [x21, #0x08]
+ str w0, [x21, #0x14]
+ ldr w2, [x22, #0x08]
; gcrRegs -[x2]
cmp w3, w2
- bhs G_M38939_IG09
+ bhs G_M38939_IG08
ubfiz x2, x3, #4, #32
add x2, x2, #16
- add x22, x21, x2
- ; byrRegs +[x22]
- ldr w2, [x22, #0x04]
+ add x23, x22, x2
+ ; byrRegs +[x23]
+ ldr w2, [x23, #0x04]
cmn w2, #1
- blt G_M38939_IG06
- ldr x0, [x22, #0x08]
- str x0, [x20, #0x08]
- b G_M38939_IG04
+ blt G_M38939_IG05
+ ldr x0, [x23, #0x08]
+ str x0, [x21, #0x08]
+ b G_M38939_IG03
;; size=60 bbWeight=98.66 PerfScore 2022.59
-G_M38939_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19 x21]
- ; byrRegs -[x20 x22]
+G_M38939_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19 x22]
+ ; byrRegs -[x21 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M38939_IG10: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M38939_IG09: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr xzr, [x2]
- b G_M38939_IG13
- ;; size=12 bbWeight=0.01 PerfScore 0.05
-G_M38939_IG11: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ b G_M38939_IG12
+ ;; size=24 bbWeight=0.01 PerfScore 0.09
+G_M38939_IG10: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x2]
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x2, x0
- bne G_M38939_IG19
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ cmp x2, x20
+ bne G_M38939_IG18
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x1, [x2, #0x10]
;; size=36 bbWeight=0.99 PerfScore 12.84
-G_M38939_IG12: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M38939_IG11: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
add x2, fp, #160 // [V04 loc2]
mov x0, x19
@@ -188,72 +189,69 @@ G_M38939_IG12: ; bbWeight=0.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcrRegs -[x0]
; gcr arg pop 0
;; size=28 bbWeight=0.99 PerfScore 6.42
-G_M38939_IG13: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M38939_IG12: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
ldr x2, [x2]
; gcrRegs -[x2]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x2, x0
- bne G_M38939_IG17
+ cmp x2, x20
+ bne G_M38939_IG16
ldr x2, [fp, #0xB0] // [V02 loc0]
; gcrRegs +[x2]
...
+20 (+2.87%) : 188062.dasm - System.Collections.Frozen.FrozenSetInternalBase2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable1[System.__Canon]):ubyte:this (Tier1-OSR)
@@ -12,10 +12,10 @@
;
; V00 this [V00,T09] ( 6, 200.30) ref -> [fp+0xD8] this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-; V02 loc0 [V02,T08] ( 14, 203.12) ref -> [fp+0xC8] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
+; V02 loc0 [V02,T08] ( 14, 203.60) ref -> [fp+0xC8] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
; V03 loc1 [V03,T10] ( 4, 198.30) ref -> x1 class-hnd <System.__Canon>
-; V04 loc2 [V04,T15] ( 1, 1 ) struct ( 8) [fp+0xB8] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Frozen.OrdinalStringFrozenSet+GSW>
-; V05 loc3 [V05,T18] ( 2, 0.24) ubyte -> [fp+0xB4] do-not-enreg[Z] EH-live tier0-frame
+; V04 loc2 [V04,T17] ( 1, 1 ) struct ( 8) [fp+0xB8] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Frozen.OrdinalStringFrozenSet+GSW>
+; V05 loc3 [V05,T19] ( 2, 0.24) ubyte -> [fp+0xB4] do-not-enreg[Z] EH-live tier0-frame
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V08 tmp2 [V08 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
@@ -24,65 +24,64 @@
; V11 tmp5 [V11,T01] ( 5, 200 ) int -> x2 "guarded devirt return temp"
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-;* V14 tmp8 [V14,T16] ( 0, 0 ) int -> zero-ref "OSR entry state var"
-; V15 tmp9 [V15,T00] ( 12,1200 ) byref -> x19 "Inlining Arg"
+;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+; V15 tmp9 [V15,T00] ( 12,1200 ) byref -> x21 "Inlining Arg"
;* V16 tmp10 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref "V04.[000..008)"
; V18 tmp12 [V18,T03] ( 6, 594.90) ref -> x2 "argument with side effect"
-; V19 PSPSym [V19,T17] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
+; V19 PSPSym [V19,T18] ( 1, 1 ) long -> [fp+0x10] do-not-enreg[V] "PSPSym"
; V20 cse0 [V20,T07] ( 3, 297 ) ref -> x2 "CSE - aggressive"
-; V21 cse1 [V21,T14] ( 3, 3.00) ref -> x20 "CSE - aggressive"
-; V22 rat0 [V22,T05] ( 3, 463.31) long -> x1 "Spilling to split statement for tree"
-; V23 rat1 [V23,T04] ( 3, 549.68) long -> x2 "spilling expr"
-; V24 rat2 [V24,T06] ( 3, 439.75) long -> x11 "fgMakeTemp is creating a new local variable"
-; V25 rat3 [V25,T12] ( 3, 4.68) long -> x1 "Spilling to split statement for tree"
-; V26 rat4 [V26,T11] ( 3, 5.55) long -> x2 "spilling expr"
-; V27 rat5 [V27,T13] ( 3, 4.44) long -> x11 "fgMakeTemp is creating a new local variable"
+; V21 cse1 [V21,T16] ( 3, 3.00) ref -> x19 "CSE - aggressive"
+; V22 cse2 [V22,T15] ( 4, 3.94) long -> x20 hoist multi-def "CSE - aggressive"
+; V23 cse3 [V23,T11] ( 8, 5.87) long -> x19 hoist multi-def "CSE - aggressive"
+; V24 rat0 [V24,T05] ( 3, 463.31) long -> x1 "Spilling to split statement for tree"
+; V25 rat1 [V25,T04] ( 3, 549.68) long -> x2 "spilling expr"
+; V26 rat2 [V26,T06] ( 3, 439.75) long -> x11 "fgMakeTemp is creating a new local variable"
+; V27 rat3 [V27,T13] ( 3, 4.68) long -> x1 "Spilling to split statement for tree"
+; V28 rat4 [V28,T12] ( 3, 5.55) long -> x2 "spilling expr"
+; V29 rat5 [V29,T14] ( 3, 4.44) long -> x11 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M25692_IG01: ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x20]
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
add xip1, sp, #240
- str xip1, [fp, #0x18] // [V19 PSPSym]
+ str xip1, [fp, #0x10] // [V19 PSPSym]
ldr x0, [fp, #0xD8]
; gcrRegs +[x0]
- ;; size=24 bbWeight=0.97 PerfScore 5.82
+ ;; size=28 bbWeight=0.97 PerfScore 6.79
G_M25692_IG02: ; bbWeight=0.97, gcVars=0000000000000300 {V00 V02}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V02}
ldr x1, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x1]
- cbz x1, G_M25692_IG10
- ;; size=8 bbWeight=0.97 PerfScore 2.91
-G_M25692_IG03: ; bbWeight=0.49, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x1]
+ cbz x1, G_M25692_IG09
ldr x1, [fp, #0xC8] // [V02 loc0]
- ; gcrRegs +[x1]
- ldr x1, [x1]
+ ldr x19, [x1]
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ cmp x19, x20
+ bne G_M25692_IG09
+ b G_M25692_IG06
+ ;; size=40 bbWeight=0.97 PerfScore 11.63
+G_M25692_IG03: ; bbWeight=98.16, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x1, x2
- bne G_M25692_IG10
- b G_M25692_IG07
- ;; size=32 bbWeight=0.49 PerfScore 4.45
-G_M25692_IG04: ; bbWeight=98.16, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
ldr x1, [x0]
ldr x2, [x1, #0x38]
ldr x2, [x2, #0x08]
ldr x3, [x2, #0x10]
cmp x3, #128
- ble G_M25692_IG09
+ ble G_M25692_IG08
;; size=24 bbWeight=98.16 PerfScore 1325.13
-G_M25692_IG05: ; bbWeight=78.53, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG04: ; bbWeight=78.53, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x11, [x2, #0x80]
- cbz x11, G_M25692_IG09
+ cbz x11, G_M25692_IG08
;; size=8 bbWeight=78.53 PerfScore 314.11
-G_M25692_IG06: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG05: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x0]
ldr x1, [x11]
@@ -101,36 +100,36 @@ G_M25692_IG06: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- tbnz w0, #31, G_M25692_IG18
+ tbnz w0, #31, G_M25692_IG17
;; size=48 bbWeight=98.16 PerfScore 2257.63
-G_M25692_IG07: ; bbWeight=99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG06: ; bbWeight=99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
ldr x1, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x1]
- add x19, x1, #8
- ; byrRegs +[x19]
- ldr w1, [x19, #0x08]
+ add x21, x1, #8
+ ; byrRegs +[x21]
+ ldr w1, [x21, #0x08]
; gcrRegs -[x1]
add w1, w1, #1
- str w1, [x19, #0x08]
- ldr w1, [x19, #0x08]
- ldr x2, [x19]
+ str w1, [x21, #0x08]
+ ldr w1, [x21, #0x08]
+ ldr x2, [x21]
; gcrRegs +[x2]
ldr w3, [x2, #0x08]
cmp w1, w3
- blo G_M25692_IG04
+ blo G_M25692_IG03
ldr w1, [x2, #0x08]
- str w1, [x19, #0x08]
+ str w1, [x21, #0x08]
mov w2, wzr
; gcrRegs -[x2]
- cbnz w2, G_M25692_IG04
+ cbnz w2, G_M25692_IG03
;; size=60 bbWeight=99 PerfScore 2475.00
-G_M25692_IG08: ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
- b G_M25692_IG20
+G_M25692_IG07: ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x21]
+ b G_M25692_IG19
;; size=4 bbWeight=0.85 PerfScore 0.85
-G_M25692_IG09: ; bbWeight=35.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25692_IG08: ; bbWeight=35.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x1
movz x1, #0xD1FFAB1E
@@ -139,30 +138,30 @@ G_M25692_IG09: ; bbWeight=35.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x11, x0
- b G_M25692_IG06
+ b G_M25692_IG05
;; size=28 bbWeight=35.34 PerfScore 159.02
-G_M25692_IG10: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+G_M25692_IG09: ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
ldr x1, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x1]
ldr xzr, [x1]
- b G_M25692_IG14
- ;; size=12 bbWeight=0.00 PerfScore 0.03
-G_M25692_IG11: ; bbWeight=0.99, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+ b G_M25692_IG13
+ ;; size=12 bbWeight=0.01 PerfScore 0.06
+G_M25692_IG10: ; bbWeight=0.99, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
ldr x1, [x0]
ldr x2, [x1, #0x38]
ldr x2, [x2, #0x08]
ldr x3, [x2, #0x10]
cmp x3, #128
- ble G_M25692_IG15
+ ble G_M25692_IG14
;; size=24 bbWeight=0.99 PerfScore 13.39
-G_M25692_IG12: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG11: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x11, [x2, #0x80]
- cbz x11, G_M25692_IG15
+ cbz x11, G_M25692_IG14
;; size=8 bbWeight=0.79 PerfScore 3.17
-G_M25692_IG13: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG12: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x0]
ldr x1, [x11]
@@ -181,42 +180,40 @@ G_M25692_IG13: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- tbnz w0, #31, G_M25692_IG18
+ tbnz w0, #31, G_M25692_IG17
;; size=48 bbWeight=0.99 PerfScore 22.80
-G_M25692_IG14: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG13: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
ldr x1, [fp, #0xC8] // [V02 loc0]
; gcrRegs +[x1]
- ldr x1, [x1]
- ; gcrRegs -[x1]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x1, x2
- bne G_M25692_IG19
+ ldr x19, [x1]
+ movz x20, #0xD1FFAB1E
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ cmp x19, x20
+ bne G_M25692_IG18
ldr x1, [fp, #0xC8] // [V02 loc0]
- ; gcrRegs +[x1]
- add x19, x1, #8
- ; byrRegs +[x19]
- ldr w1, [x19, #0x08]
+ add x21, x1, #8
+ ; byrRegs +[x21]
+ ldr w1, [x21, #0x08]
; gcrRegs -[x1]
add w1, w1, #1
- str w1, [x19, #0x08]
- ldr w1, [x19, #0x08]
- ldr x20, [x19]
- ; gcrRegs +[x20]
- ldr w2, [x20, #0x08]
+ str w1, [x21, #0x08]
+ ldr w1, [x21, #0x08]
+ ldr x19, [x21]
+ ; gcrRegs +[x19]
+ ldr w2, [x19, #0x08]
cmp w1, w2
...
+16 (+5.97%) : 181346.dasm - System.Collections.Generic.HashSet1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet1[int]):ubyte:this (Tier1-OSR)
@@ -6,7 +6,7 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 101.13
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 101.13
; 1 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -14,14 +14,14 @@
; V01 arg1 [V01,T05] ( 4,201.86) ref -> x19 class-hnd single-def <System.Collections.Generic.HashSet`1[int]>
; V02 loc0 [V02,T10] ( 4, 4 ) struct (24) [fp+0x60] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.HashSet`1+Enumerator[int]>
;* V03 loc1 [V03 ] ( 0, 0 ) int -> zero-ref
-;* V04 loc2 [V04,T12] ( 0, 0 ) ubyte -> zero-ref
+;* V04 loc2 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1 [V06,T11] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.HashSet`1+Enumerator[int]>
; V08 tmp3 [V08,T06] ( 3,200 ) ubyte -> x2 "Inline return value spill temp"
; V09 tmp4 [V09,T04] ( 4,246.15) int -> x22 "Inline stloc first use temp"
-; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x0 class-hnd exact "impAppendStmt" <<unknown class>>
-; V11 tmp6 [V11,T08] ( 3,123.08) byref -> x22 "Inline stloc first use temp"
+; V10 tmp5 [V10,T01] ( 3,369.23) ref -> x1 class-hnd exact "impAppendStmt" <<unknown class>>
+; V11 tmp6 [V11,T08] ( 3,123.08) byref -> registers "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref "field V07._hashSet (fldOffset=0x0)" P-INDEP
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "field V07._version (fldOffset=0x8)" P-INDEP
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "field V07._index (fldOffset=0xc)" P-INDEP
@@ -30,15 +30,15 @@
; V17 tmp12 [V17,T09] ( 2,101 ) int -> x21 "V02.[008..012)"
; V18 tmp13 [V18,T00] ( 5,385.62) int -> registers "V02.[012..016)"
; V19 tmp14 [V19,T07] ( 3,199.93) int -> x1 "V02.[016..020)"
-; V20 cse0 [V20,T02] ( 3,361.54) int -> x23 hoist "CSE - aggressive"
+; V20 cse0 [V20,T02] ( 3,361.54) int -> x0 hoist "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M12432_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
ldr x19, [fp, #0x78]
; gcrRegs +[x19]
@@ -60,21 +60,21 @@ G_M12432_IG03: ; bbWeight=99.93, gcrefRegs=180000 {x19 x20}, byrefRegs=00
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- mov w22, w24
+ mov w22, w23
tbnz w0, #31, G_M12432_IG14
;; size=36 bbWeight=99.93 PerfScore 1049.27
G_M12432_IG04: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w0, [x20, #0x34]
cmp w21, w0
bne G_M12432_IG13
- ldr w23, [x20, #0x28]
+ ldr w0, [x20, #0x28]
;; size=16 bbWeight=100 PerfScore 750.00
G_M12432_IG05: ; bbWeight=161.54, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cmp w22, w23
+ cmp w22, w0
blo G_M12432_IG10
;; size=8 bbWeight=161.54 PerfScore 242.31
G_M12432_IG06: ; bbWeight=100, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- add w24, w23, #1
+ add w23, w0, #1
mov w1, wzr
mov w2, wzr
;; size=12 bbWeight=100 PerfScore 150.00
@@ -86,50 +86,49 @@ G_M12432_IG08: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.06 PerfScore 0.03
G_M12432_IG09: ; bbWeight=0.06, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
- ;; size=24 bbWeight=0.06 PerfScore 0.33
+ ;; size=24 bbWeight=0.06 PerfScore 0.39
G_M12432_IG10: ; bbWeight=61.54, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19-x20]
- ldr x0, [x20, #0x10]
- ; gcrRegs +[x0]
- add w1, w22, #1
- sxtw w24, w1
- ldr w1, [x0, #0x08]
- cmp w22, w1
- bhs G_M12432_IG11
- mov w1, #12
- mov x2, #16
- umaddl x1, w22, w1, x2
- add x22, x0, x1
+ ldr x1, [x20, #0x10]
+ ; gcrRegs +[x1]
+ add w2, w22, #1
+ sxtw w23, w2
+ ldr w2, [x1, #0x08]
+ cmp w22, w2
+ bhs G_M12432_IG16
+ mov w2, #12
+ mov x3, #16
+ umaddl x2, w22, w2, x3
+ add x22, x1, x2
; byrRegs +[x22]
- ldr w0, [x22, #0x04]
- ; gcrRegs -[x0]
- cmn w0, #1
- bge G_M12432_IG12
- mov w22, w24
+ ldr w1, [x22, #0x04]
+ ; gcrRegs -[x1]
+ cmn w1, #1
+ blt G_M12432_IG12
+ ;; size=52 bbWeight=61.54 PerfScore 1200.00
+G_M12432_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
+ mov x0, x22
+ ; byrRegs +[x0]
+ mov w22, w23
; byrRegs -[x22]
- b G_M12432_IG05
- ;; size=60 bbWeight=61.54 PerfScore 1292.31
-G_M12432_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- bl CORINFO_HELP_RNGCHKFAIL
- ; gcr arg pop 0
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M12432_IG12: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref
- ; gcrRegs +[x19-x20]
- ; byrRegs +[x22]
- ldr w1, [x22, #0x08]
+ ldr w1, [x0, #0x08]
mov w2, #1
+ mov w23, w22
b G_M12432_IG07
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG12: ; bbWeight=30.77, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
+ mov w22, w23
+ b G_M12432_IG05
+ ;; size=8 bbWeight=30.77 PerfScore 46.15
G_M12432_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
- ; byrRegs -[x22]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -142,26 +141,31 @@ G_M12432_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0 PerfScore 0.00
G_M12432_IG15: ; bbWeight=0, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
add sp, sp, #80
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
+G_M12432_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ bl CORINFO_HELP_RNGCHKFAIL
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 268, prolog size 24, PerfScore 3595.74, instruction count 67, allocated bytes for code 268 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
+; Total bytes of code 284, prolog size 24, PerfScore 3549.65, instruction count 71, allocated bytes for code 284 (MethodHash=70e5cf6f) for method System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 268 (0x00010c)
+ Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -172,10 +176,13 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
05 alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
E4 end
+ E4 end
+ E4 end
+ E4 end
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
-24 (-30.00%) : 145928.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,10 +7,10 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> x0 single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> x0 single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> x0
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -19,56 +19,27 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #2
- cmp w1, #19
- bhi G_M3102_IG03
- mov w0, w1
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M3102_IG02]
- add x1, x1, x2
- br x1
- ;; size=36 bbWeight=1 PerfScore 8.00
-G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w1, w0, #101
- cmp w1, #2
- bls G_M3102_IG05
- b G_M3102_IG05
- ;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ sub w0, w0, #2
+ cmp w0, #19
+ bhi G_M3102_IG04
+ movz w1, #0xD1FFAB1E
+ movk w1, #3 LSL #16
+ lsr w0, w1, w0
+ tbz w0, #0, G_M3102_IG04
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
- b G_M3102_IG06
+ b G_M3102_IG05
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 80, prolog size 8, PerfScore 14.00, instruction count 20, allocated bytes for code 80 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 9.00, instruction count 14, allocated bytes for code 56 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +50,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ 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)
-24 (-17.14%) : 5521.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xD1FFAB1E]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
-24 (-17.14%) : 43769.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> x1 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,9 +20,9 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> x0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> x2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -30,10 +30,9 @@ G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
str x19, [sp, #0x18]
mov fp, sp
- str x0, [fp, #0x10]
mov x19, x0
; gcrRegs +[x19]
- ;; size=20 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr x0, [x19, #0x20]
@@ -46,54 +45,47 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
blr x2
; gcrRegs -[x0-x1]
; byrRegs +[x0]
- cbz x0, G_M43979_IG05
+ cbz x0, G_M43979_IG04
;; size=32 bbWeight=1 PerfScore 12.50
-G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
ldr w1, [x0]
ldr x2, [x19, #0x80]
; gcrRegs +[x2]
- ldr x0, [x19]
- ; byrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0xC0]
- cbnz x0, G_M43979_IG07
- ;; size=28 bbWeight=0.50 PerfScore 9.50
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref
- b G_M43979_IG07
- ;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M43979_IG06
+ ;; size=12 bbWeight=0.50 PerfScore 3.50
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
+ ; byrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG05: ; 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_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
cmp w1, w0
- bhs G_M43979_IG09
+ bhs G_M43979_IG08
add x0, x2, #16
; byrRegs +[x0]
ldr x0, [x0, w1, UXTW #3]
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG07: ; 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_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x2]
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 16, PerfScore 34.35, instruction count 35, allocated bytes for code 140 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 27.25, instruction count 29, allocated bytes for code 116 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -104,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
+0 (0.00%) : 135048.dasm - System.IO.Tests.StreamReadExactly+<>cDisplayClass60+<b__5>d:MoveNext():this (FullOpts)
+0 (0.00%) : 160004.dasm - System.Net.Quic.Tests.MsQuicTests+d__33:MoveNext():this (FullOpts)
@@ -1882,7 +1882,7 @@ G_M59229_IG85: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
and w1, w1, w2
mov w2, #0xD1FFAB1E
cmp w1, w2
- bne G_M59229_IG91
+ bne G_M59229_IG90
;; size=32 bbWeight=1 PerfScore 8.50
G_M59229_IG86: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
@@ -1890,7 +1890,7 @@ G_M59229_IG86: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
str w1, [x20, #0x7C]
ldr w1, [x20, #0x7C]
cmp w1, #0
- ble G_M59229_IG108
+ ble G_M59229_IG107
;; size=20 bbWeight=1 PerfScore 6.00
G_M59229_IG87: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
ldr x0, [x20, #0x38]
@@ -1900,12 +1900,12 @@ G_M59229_IG87: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
ldr w2, [x20, #0x7C]
neg w2, w2
add w2, w2, #100
- cbz x1, G_M59229_IG90
+ cbz x1, G_M59229_IG125
ldr w3, [x1, #0x08]
mov w4, w2
add x4, x4, #1
cmp x3, x4
- blo G_M59229_IG90
+ blo G_M59229_IG125
str x1, [fp, #0x90] // [V291 tmp263]
str w2, [fp, #0x98] // [V292 tmp264]
mov w1, #1
@@ -1925,7 +1925,7 @@ G_M59229_IG87: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
stp x0, x1, [fp, #0xD0] // [V20 loc19], [V20 loc19+0x08]
ldr x19, [fp, #0xD0] // [V20 loc19]
; gcrRegs +[x19]
- cbz x19, G_M59229_IG92
+ cbz x19, G_M59229_IG91
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -1935,7 +1935,7 @@ G_M59229_IG87: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M59229_IG92
+ cbnz x0, G_M59229_IG91
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -1972,14 +1972,14 @@ G_M59229_IG88: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M59229_IG93
+ cbz x0, G_M59229_IG92
add x14, x0, #52
; byrRegs +[x14]
ldapr w14, [x14]
; byrRegs -[x14]
mov w13, #0xD1FFAB1E
tst w14, w13
- bne G_M59229_IG98
+ bne G_M59229_IG97
;; size=44 bbWeight=4 PerfScore 38.00
G_M59229_IG89: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x0 x19]
@@ -2018,16 +2018,7 @@ G_M59229_IG89: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; gcr arg pop 0
b G_M59229_IG135
;; size=92 bbWeight=1 PerfScore 22.50
-G_M59229_IG90: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
- movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcr arg pop 0
- brk_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M59229_IG91: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=100000 {x20}, byref
+G_M59229_IG90: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=100000 {x20}, byref
; gcrRegs +[x0]
mov w1, wzr
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -2039,12 +2030,12 @@ G_M59229_IG91: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=100000 {x2
; gcr arg pop 0
b G_M59229_IG86
;; size=28 bbWeight=0.00 PerfScore 0.01
-G_M59229_IG92: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG91: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs +[x19]
cbnz x19, G_M59229_IG88
- b G_M59229_IG98
+ b G_M59229_IG97
;; size=8 bbWeight=4 PerfScore 8.00
-G_M59229_IG93: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG92: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
mov x0, x19
; gcrRegs +[x0]
ldrsh w1, [fp, #0xDC] // [V20 loc19+0x0c]
@@ -2055,32 +2046,32 @@ G_M59229_IG93: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
blr x2
; gcrRegs -[x0 x19]
; gcr arg pop 0
- cbnz w0, G_M59229_IG98
+ cbnz w0, G_M59229_IG97
;; size=32 bbWeight=4 PerfScore 36.00
-G_M59229_IG94: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+G_M59229_IG93: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
b G_M59229_IG89
;; size=4 bbWeight=1 PerfScore 1.00
-G_M59229_IG95: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+G_M59229_IG94: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
add x14, x20, #184
; byrRegs +[x14]
;; size=4 bbWeight=1 PerfScore 0.50
-G_M59229_IG96: ; bbWeight=1, nogc, extend
+G_M59229_IG95: ; bbWeight=1, nogc, extend
ldp x0, x1, [x14]
stp x0, x1, [fp, #0xD0]
;; size=8 bbWeight=1 PerfScore 5.00
-G_M59229_IG97: ; bbWeight=1, extend
+G_M59229_IG96: ; bbWeight=1, extend
stp xzr, xzr, [x14]
movn w14, #0
; byrRegs -[x14]
str w14, [fp, #0xD1FFAB1E] // [V01 loc0]
str w14, [x20, #0x70]
;; size=16 bbWeight=1 PerfScore 3.50
-G_M59229_IG98: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG97: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
ldr x19, [fp, #0xD0] // [V20 loc19]
; gcrRegs +[x19]
- cbz x19, G_M59229_IG100
+ cbz x19, G_M59229_IG99
;; size=8 bbWeight=8 PerfScore 24.00
-G_M59229_IG99: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG98: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -2089,7 +2080,7 @@ G_M59229_IG99: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M59229_IG100
+ cbnz x0, G_M59229_IG99
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -2103,7 +2094,7 @@ G_M59229_IG99: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
cset x0, ne
; gcrRegs -[x0]
tst w0, #255
- bne G_M59229_IG102
+ bne G_M59229_IG101
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -2116,17 +2107,17 @@ G_M59229_IG99: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M59229_IG102
+ b G_M59229_IG101
;; size=100 bbWeight=4 PerfScore 72.00
-G_M59229_IG100: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- cbnz x19, G_M59229_IG102
+G_M59229_IG99: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+ cbnz x19, G_M59229_IG101
;; size=4 bbWeight=8 PerfScore 8.00
-G_M59229_IG101: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+G_M59229_IG100: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x19]
ldr w21, [fp, #0xD8] // [V20 loc19+0x08]
- b G_M59229_IG107
+ b G_M59229_IG106
;; size=8 bbWeight=4 PerfScore 12.00
-G_M59229_IG102: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG101: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs +[x19]
mov x1, x19
; gcrRegs +[x1]
@@ -2138,7 +2129,7 @@ G_M59229_IG102: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x2
; gcr arg pop 0
mov x21, x0
; gcrRegs +[x21]
- cbz x21, G_M59229_IG106
+ cbz x21, G_M59229_IG105
add x0, x21, #52
; gcrRegs -[x0]
; byrRegs +[x0]
@@ -2148,9 +2139,9 @@ G_M59229_IG102: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x2
and w0, w0, w1
mov w1, #0xD1FFAB1E
cmp w0, w1
- bne G_M59229_IG105
+ bne G_M59229_IG104
;; size=56 bbWeight=4 PerfScore 44.00
-G_M59229_IG103: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG102: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x19]
add x0, x21, #52
; byrRegs +[x0]
@@ -2160,7 +2151,7 @@ G_M59229_IG103: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x
and w0, w0, w1
mov w1, #0xD1FFAB1E
cmp w0, w1
- beq G_M59229_IG104
+ beq G_M59229_IG103
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -2174,12 +2165,12 @@ G_M59229_IG103: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x
blr x2
; gcr arg pop 0
;; size=72 bbWeight=4 PerfScore 60.00
-G_M59229_IG104: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref
+G_M59229_IG103: ; bbWeight=4, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref
ldr w21, [x21, #0x38]
; gcrRegs -[x21]
- b G_M59229_IG107
+ b G_M59229_IG106
;; size=8 bbWeight=4 PerfScore 16.00
-G_M59229_IG105: ; bbWeight=0.00, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref
+G_M59229_IG104: ; bbWeight=0.00, gcrefRegs=200000 {x21}, byrefRegs=100000 {x20}, byref
; gcrRegs +[x21]
mov x0, x21
; gcrRegs +[x0]
@@ -2191,9 +2182,9 @@ G_M59229_IG105: ; bbWeight=0.00, gcrefRegs=200000 {x21}, byrefRegs=100000
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M59229_IG103
+ b G_M59229_IG102
;; size=32 bbWeight=0.00 PerfScore 0.03
-G_M59229_IG106: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M59229_IG105: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x21] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -2207,7 +2198,7 @@ G_M59229_IG106: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x2
; gcr arg pop 0
sxtw w21, w0
;; size=32 bbWeight=4 PerfScore 34.00
-G_M59229_IG107: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+G_M59229_IG106: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
movz x0, #0xD1FFAB1E
...
+0 (0.00%) : 301096.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5886_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -71,11 +71,11 @@
;* V60 tmp48 [V60 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
; V61 tmp49 [V61,T45] ( 4, 2 ) int -> x0 single-def "Inline stloc first use temp"
; V62 tmp50 [V62,T41] ( 3, 3 ) ref -> x3 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V63 tmp51 [V63,T33] ( 3, 6 ) int -> x0 "Inline stloc first use temp"
-; V64 tmp52 [V64,T27] ( 4, 8 ) int -> x1 "Inline stloc first use temp"
-; V65 tmp53 [V65,T17] ( 3, 12 ) ref -> x0 class-hnd "impAppendStmt" <<unknown class>>
+; V63 tmp51 [V63,T33] ( 3, 6 ) int -> x1 "Inline stloc first use temp"
+; V64 tmp52 [V64,T27] ( 4, 8 ) int -> x2 "Inline stloc first use temp"
+; V65 tmp53 [V65,T17] ( 3, 12 ) ref -> x1 class-hnd "impAppendStmt" <<unknown class>>
;* V66 tmp54 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.RegularExpressions.Match>
-; V67 tmp55 [V67,T18] ( 3, 12 ) byref -> x0 "dup spill"
+; V67 tmp55 [V67,T18] ( 3, 12 ) byref -> x1 "dup spill"
; V68 tmp56 [V68,T39] ( 2, 2 ) byref -> x1 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V69 tmp57 [V69,T40] ( 2, 2 ) int -> x2 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V70 tmp58 [V70,T31] ( 3, 6 ) byref -> x20 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
@@ -100,9 +100,9 @@
; V89 tmp77 [V89,T42] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V90 tmp78 [V90,T43] ( 3, 3 ) ref -> x0 single-def "arr expr"
; V91 tmp79 [V91,T09] ( 3, 24 ) ref -> x3 "arr expr"
-; V92 tmp80 [V92,T19] ( 3, 12 ) ref -> x1 "arr expr"
+; V92 tmp80 [V92,T19] ( 3, 12 ) ref -> x2 "arr expr"
; V93 cse0 [V93,T26] ( 4, 9 ) ref -> x1 "CSE - moderate"
-; V94 cse1 [V94,T30] ( 3, 7 ) ref -> x20 hoist "CSE - moderate"
+; V94 cse1 [V94,T30] ( 3, 7 ) ref -> x0 hoist "CSE - moderate"
; V95 cse2 [V95,T20] ( 2, 8 ) ref -> x0 "CSE - moderate"
; V96 cse3 [V96,T13] ( 4, 16 ) int -> x24 "CSE - aggressive"
; V97 cse4 [V97,T23] ( 3, 12 ) int -> x2 "CSE - moderate"
@@ -155,7 +155,7 @@ G_M58324_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1100000
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M58324_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=1100000 {x20 x24}, byref, isz
cmp w25, #2
- bls G_M58324_IG22
+ bls G_M58324_IG27
;; size=8 bbWeight=1 PerfScore 1.50
G_M58324_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1100000 {x20 x24}, byref, isz
ldrh w0, [x24]
@@ -165,7 +165,7 @@ G_M58324_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1100000
ldr x1, [x1]
blr x1
; gcr arg pop 0
- cbz w0, G_M58324_IG22
+ cbz w0, G_M58324_IG27
ldrh w0, [x24, #0x02]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCharClass:IsWordChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -173,7 +173,7 @@ G_M58324_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1100000
ldr x1, [x1]
blr x1
; gcr arg pop 0
- cbz w0, G_M58324_IG22
+ cbz w0, G_M58324_IG27
ldrh w0, [x24, #0x04]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCharClass:IsWordChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -182,7 +182,7 @@ G_M58324_IG05: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=1100000
blr x1
; byrRegs -[x24]
; gcr arg pop 0
- cbz w0, G_M58324_IG22
+ cbz w0, G_M58324_IG27
add w0, w22, #3
sxtw w24, w0
cmp w24, w21
@@ -358,13 +358,13 @@ G_M58324_IG17: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
; gcrRegs -[x0]
; gcr arg pop 0
cmp w27, #8
- bge G_M58324_IG26
+ bge G_M58324_IG22
b G_M58324_IG08
;; size=92 bbWeight=4 PerfScore 118.00
G_M58324_IG18: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20]
sub w27, w27, #1
- tbnz w27, #31, G_M58324_IG22
+ tbnz w27, #31, G_M58324_IG27
sub w23, w23, #1
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
@@ -454,34 +454,10 @@ G_M58324_IG20: ; bbWeight=4, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {},
G_M58324_IG21: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
cmp w27, #6
- bge G_M58324_IG26
+ blt G_M58324_IG27
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M58324_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ldr x20, [x19, #0x20]
- ; gcrRegs +[x20]
- ;; size=4 bbWeight=1 PerfScore 3.00
-G_M58324_IG23: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ldr w0, [x20, #0x08]
- ldr w1, [x19, #0x58]
- sub w0, w0, w1
- cbnz w0, G_M58324_IG31
- ;; size=16 bbWeight=4 PerfScore 30.00
-G_M58324_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M58324_IG25: ; bbWeight=0.50, epilog, nogc, extend
- ldp x27, x28, [sp, #0x60]
- ldp x25, x26, [sp, #0x50]
- ldp x23, x24, [sp, #0x40]
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x70
- ret lr
- ;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M58324_IG26: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
- tbz w25, #31, G_M58324_IG27
+G_M58324_IG22: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ tbz w25, #31, G_M58324_IG23
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -495,18 +471,18 @@ G_M58324_IG26: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
; gcrRegs -[x0]
; gcr arg pop 0
;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M58324_IG27: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M58324_IG23: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
str w26, [x19, #0x4C]
sxtw w20, w22
sxtw w21, w26
cmp w21, w20
- bge G_M58324_IG28
+ bge G_M58324_IG24
sxtw w21, w22
sxtw w20, w26
;; size=28 bbWeight=0.50 PerfScore 2.25
-G_M58324_IG28: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M58324_IG24: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x58]
- cbnz w0, G_M58324_IG29
+ cbnz w0, G_M58324_IG25
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexRunner:DoubleCrawl():this
@@ -517,7 +493,7 @@ G_M58324_IG28: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcrRegs -[x0]
; gcr arg pop 0
;; size=32 bbWeight=0.50 PerfScore 5.00
-G_M58324_IG29: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M58324_IG25: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x3, [x19, #0x20]
; gcrRegs +[x3]
ldr w0, [x19, #0x58]
@@ -546,7 +522,7 @@ G_M58324_IG29: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcr arg pop 0
mov w0, #1
;; size=80 bbWeight=0.50 PerfScore 13.50
-G_M58324_IG30: ; bbWeight=0.50, epilog, nogc, extend
+G_M58324_IG26: ; bbWeight=0.50, epilog, nogc, extend
ldp x27, x28, [sp, #0x60]
ldp x25, x26, [sp, #0x50]
ldp x23, x24, [sp, #0x40]
@@ -555,42 +531,64 @@ G_M58324_IG30: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M58324_IG31: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19-x20]
- mov x0, x20
+G_M58324_IG27: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x19]
+ ldr x0, [x19, #0x20]
; gcrRegs +[x0]
- ldr w1, [x19, #0x58]
- add w2, w1, #1
- str w2, [x19, #0x58]
- ldr w2, [x0, #0x08]
- cmp w1, w2
- bhs G_M58324_IG32
- add x0, x0, #16
- ; gcrRegs -[x0]
- ; byrRegs +[x0]
- ldr w0, [x0, w1, UXTW #2]
- ; byrRegs -[x0]
- ldr x1, [x19, #0x28]
+ b G_M58324_IG29
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M58324_IG28: ; bbWeight=2, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ mov x1, x0
; gcrRegs +[x1]
- ldr x1, [x1, #0x50]
- ldr w2, [x1, #0x08]
- cmp w0, w2
+ ldr w2, [x19, #0x58]
+ add w3, w2, #1
+ str w3, [x19, #0x58]
+ ldr w3, [x1, #0x08]
+ cmp w2, w3
bhs G_M58324_IG32
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- ubfiz x0, x0, #2, #32
- add x0, x1, x0
- ; byrRegs +[x0]
- ldr w1, [x0]
+ ldr w1, [x1, w2, UXTW #2]
; byrRegs -[x1]
- sub w1, w1, #1
- str w1, [x0]
- b G_M58324_IG23
- ;; size=84 bbWeight=2 PerfScore 62.00
-G_M58324_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- ; byrRegs -[x0]
+ ldr x2, [x19, #0x28]
+ ; gcrRegs +[x2]
+ ldr x2, [x2, #0x50]
+ ldr w3, [x2, #0x08]
+ cmp w1, w3
+ bhs G_M58324_IG32
+ add x2, x2, #16
+ ; gcrRegs -[x2]
+ ; byrRegs +[x2]
+ ubfiz x1, x1, #2, #32
+ add x1, x2, x1
+ ; byrRegs +[x1]
+ ldr w2, [x1]
+ ; byrRegs -[x2]
+ sub w2, w2, #1
+ str w2, [x1]
+ ;; size=80 bbWeight=2 PerfScore 60.00
+G_M58324_IG29: ; bbWeight=4, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[x1]
+ ldr w1, [x0, #0x08]
+ ldr w2, [x19, #0x58]
+ sub w1, w1, w2
+ cbnz w1, G_M58324_IG28
+ ;; size=16 bbWeight=4 PerfScore 30.00
+G_M58324_IG30: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M58324_IG31: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x60]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x70
+ ret lr
+ ;; size=28 bbWeight=0.50 PerfScore 3.50
+G_M58324_IG32: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
...
realworld.run.windows.arm64.checked.mch
-28 (-20.59%) : 10125.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 6, 4.50) ref -> x19 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> x0 class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -37,29 +37,16 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M3270_IG04
+ cbz x0, G_M3270_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- cbnz x0, G_M3270_IG06
- b G_M3270_IG06
- ;; size=28 bbWeight=0.50 PerfScore 2.50
-G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x19]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M3270_IG06
+ cbz x0, G_M3270_IG05
ldr x1, [x19, #0x20]
; gcrRegs +[x1]
- cbnz x1, G_M3270_IG06
+ cbnz x1, G_M3270_IG05
ldr x0, [x0, #0x08]
ldr x1, [x19, #0x08]
movz x2, #0xD1FFAB1E // code for FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
@@ -67,23 +54,23 @@ G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
;; size=40 bbWeight=0.50 PerfScore 9.25
-G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3270_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x1 x19]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_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
-; Total bytes of code 136, prolog size 16, PerfScore 23.00, instruction count 34, allocated bytes for code 136 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 108, prolog size 16, PerfScore 20.50, instruction count 27, allocated bytes for code 108 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -94,7 +81,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ 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 (-8.93%) : 22468.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)
@@ -27,10 +27,10 @@
; V16 tmp12 [V16,T00] ( 5, 27 ) int -> x21 "field V01._index (fldOffset=0x8)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) ubyte -> zero-ref "V03.[004..005)"
;* V18 cse0 [V18,T11] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V19 cse1 [V19,T06] ( 2, 2 ) long -> x22 "CSE - aggressive"
-; V20 rat0 [V20,T07] ( 2, 4 ) long -> x0 "Spilling to split statement for tree"
+; V19 cse1 [V19,T06] ( 1, 1 ) long -> x22 "CSE - aggressive"
+;* V20 rat0 [V20,T07] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V21 rat1 [V21,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V22 rat2 [V22,T05] ( 2, 4 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V22 rat2 [V22,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V23 rat3 [V23,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V24 rat4 [V24,T01] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
@@ -49,7 +49,7 @@ G_M864_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {},
mov x19, x0
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
-G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this
@@ -62,15 +62,10 @@ G_M864_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byre
; gcrRegs +[x20]
mov w21, w1
ldr x22, [x19]
- mov x0, x22
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x30]
- cbnz x0, G_M864_IG04
b G_M864_IG04
- ;; size=64 bbWeight=1 PerfScore 27.00
+ ;; size=44 bbWeight=1 PerfScore 16.50
G_M864_IG03: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
add x8, fp, #24 // [V02 loc1]
@@ -118,7 +113,7 @@ G_M864_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 224, prolog size 36, PerfScore 138.50, instruction count 56, allocated bytes for code 224 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 204, prolog size 36, PerfScore 128.00, instruction count 51, allocated bytes for code 204 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -129,7 +124,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 56 (0x00038) Actual length = 224 (0x0000e0)
+ Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-7.94%) : 23926.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
@@ -25,10 +25,10 @@
; V14 tmp8 [V14,T05] ( 3, 6 ) ref -> x0 "Field obj"
; V15 tmp9 [V15,T01] ( 2, 8 ) byref -> x2 "argument with side effect"
;* V16 cse0 [V16,T12] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V17 cse1 [V17,T08] ( 3, 3 ) long -> x24 "CSE - aggressive"
-; V18 rat0 [V18,T10] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V17 cse1 [V17,T08] ( 2, 2.50) long -> x24 "CSE - aggressive"
+;* V18 rat0 [V18,T10] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V19 rat1 [V19,T11] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V20 rat2 [V20,T09] ( 2, 2 ) long -> x0 "fgMakeTemp is creating a new local variable"
+;* V20 rat2 [V20,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -62,7 +62,7 @@ G_M9562_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=100000 {x
; gcrRegs +[x21]
cbz x21, G_M9562_IG07
;; size=40 bbWeight=1 PerfScore 13.50
-G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref, isz
+G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=100000 {x20}, byref
; gcrRegs -[x0]
mov x0, x21
; gcrRegs +[x0]
@@ -75,15 +75,10 @@ G_M9562_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=1000
; gcrRegs +[x22]
mov w23, w1
ldr x24, [x19]
- mov x0, x24
- ; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x38]
- cbnz x0, G_M9562_IG05
b G_M9562_IG05
- ;; size=60 bbWeight=0.50 PerfScore 10.75
+ ;; size=40 bbWeight=0.50 PerfScore 5.50
G_M9562_IG04: ; bbWeight=2, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=100000 {x20}, byref
+ ; gcrRegs -[x0]
mov x0, x22
; gcrRegs +[x0]
mov w1, w23
@@ -133,7 +128,7 @@ G_M9562_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
ret lr
;; size=20 bbWeight=1 PerfScore 5.00
-; Total bytes of code 252, prolog size 24, PerfScore 106.75, instruction count 63, allocated bytes for code 252 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
+; Total bytes of code 232, prolog size 24, PerfScore 101.50, instruction count 58, allocated bytes for code 232 (MethodHash=57bfdaa5) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
; ============================================================
Unwind Info:
@@ -144,7 +139,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 252 (0x0000fc)
+ Function Length : 58 (0x0003a) Actual length = 232 (0x0000e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 21146.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -24,19 +24,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35943_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov w1, #0xD1FFAB1E
cmp w0, w1
- beq G_M35943_IG05
+ bne G_M35943_IG05
;; size=12 bbWeight=1 PerfScore 2.00
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, xzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x20
- ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -57,13 +47,21 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
mov x0, x20
; gcrRegs +[x0]
;; size=60 bbWeight=0.50 PerfScore 8.50
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
+ ret lr
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0 x20]
+ mov x0, xzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x20]
bl CORINFO_HELP_OVERFLOW
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
+0 (0.00%) : 3136.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption1[System.String]]:this (FullOpts)
@@ -22,11 +22,12 @@
; V11 tmp5 [V11,T00] ( 6, 10 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]>
-;* V14 tmp8 [V14,T09] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
-;* V15 tmp9 [V15,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
-; V16 cse0 [V16,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
-;* V17 cse1 [V17,T11] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V18 cse2 [V18,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
+;* V14 tmp8 [V14,T10] ( 0, 0 ) long -> zero-ref single-def "field V07.code1 (fldOffset=0x0)" P-INDEP
+;* V15 tmp9 [V15,T11] ( 0, 0 ) long -> zero-ref single-def "field V07.code2 (fldOffset=0x8)" P-INDEP
+; V16 tmp10 [V16,T09] ( 2, 1 ) ref -> x2 single-def "Field obj"
+; V17 cse0 [V17,T08] ( 3, 2.50) ref -> x2 "CSE - aggressive"
+;* V18 cse1 [V18,T12] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V19 cse2 [V19,T06] ( 3, 3 ) long -> x21 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -102,7 +103,7 @@ G_M10872_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbz x2, G_M10872_IG05
;; size=160 bbWeight=1 PerfScore 38.50
G_M10872_IG03: ; bbWeight=0.50, gcrefRegs=500005 {x0 x2 x20 x22}, byrefRegs=0000 {}, byref
- ldr xzr, [x2, #0x10]
+ ldrsb wzr, [x2]
ldr x2, [x0, #0x08]
mov x0, x20
mov x1, x22
+0 (0.00%) : 26724.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:LowerEvaluation(Microsoft.CodeAnalysis.CSharp.BoundDagEvaluation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
@@ -20,7 +20,7 @@
; V09 loc7 [V09,T44] ( 10, 5 ) ref -> x20 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
; V10 loc8 [V10,T45] ( 10, 5 ) ref -> x22 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V12 loc10 [V12,T130] ( 3, 1.50) ref -> x28 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V12 loc10 [V12,T130] ( 3, 1.50) ref -> x23 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V13 loc11 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V14 loc12 [V14,T84] ( 5, 2.50) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
;* V15 loc13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
@@ -50,8 +50,8 @@
; V39 loc37 [V39,T152] ( 2, 1 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V40 loc38 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V41 loc39 [V41,T134] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V42 loc40 [V42,T71] ( 6, 3 ) ref -> x27 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V43 loc41 [V43,T129] ( 4, 1.75) ref -> x28 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
+; V42 loc40 [V42,T71] ( 6, 3 ) ref -> x22 class-hnd <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V43 loc41 [V43,T129] ( 4, 1.75) ref -> x23 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
; V44 loc42 [V44,T153] ( 2, 1 ) ref -> x21 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V45 loc43 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
; V46 loc44 [V46,T135] ( 3, 1.50) ref -> x2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
@@ -60,7 +60,7 @@
;* V49 tmp2 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V50 tmp3 [V50,T98] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V51 tmp4 [V51,T22] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
-; V52 tmp5 [V52,T73] ( 3, 3 ) ref -> x27 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
+; V52 tmp5 [V52,T73] ( 3, 3 ) ref -> x26 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter>
; V53 tmp6 [V53,T50] ( 4, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
;* V54 tmp7 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagPropertyEvaluation>
; V55 tmp8 [V55,T99] ( 2, 2 ) ref -> x23 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
@@ -97,15 +97,15 @@
;* V86 tmp39 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
;* V87 tmp40 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagSliceEvaluation>
;* V88 tmp41 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundImplicitIndexerAccess>
-; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x22 class-hnd exact single-def "dup spill" <<unknown class>>
-; V90 tmp43 [V90,T106] ( 2, 2 ) ref -> x28 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
+; V89 tmp42 [V89,T28] ( 9, 9 ) ref -> x23 class-hnd exact single-def "dup spill" <<unknown class>>
+; V90 tmp43 [V90,T106] ( 2, 2 ) ref -> x21 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.BoundSlicePatternRangePlaceholder>
; V91 tmp44 [V91,T90] ( 3, 2.25) ref -> x1 single-def "CASTCLASS eval op1"
; V92 tmp45 [V92,T150] ( 3, 1.25) long -> x2 "fgMakeTemp is creating a new local variable"
; V93 tmp46 [V93,T68] ( 5, 3.75) ref -> x21 class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V94 tmp47 [V94,T107] ( 2, 2 ) ref -> x22 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
; V95 tmp48 [V95,T29] ( 8, 8 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
;* V96 tmp49 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter+DagTempAllocator>
-;* V97 tmp50 [V97,T197] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+;* V97 tmp50 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
; V98 tmp51 [V98 ] ( 3, 1.50) struct (24) [fp+0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
; V99 tmp52 [V99,T136] ( 3, 1.50) ref -> x26 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V100 tmp53 [V100,T52] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
@@ -122,11 +122,11 @@
;* V111 tmp64 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V112 tmp65 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V113 tmp66 [V113 ] ( 3, 1.50) struct (24) [fp+0xB8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-; V114 tmp67 [V114,T93] ( 4, 2 ) ref -> x23 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V114 tmp67 [V114,T93] ( 4, 2 ) ref -> x24 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V115 tmp68 [V115,T53] ( 4, 4 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V116 tmp69 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
; V117 tmp70 [V117,T86] ( 5, 2.50) ref -> x3 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
+; V118 tmp71 [V118,T13] ( 14, 14 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundFieldAccess>
;* V119 tmp72 [V119 ] ( 0, 0 ) ref -> zero-ref
; V120 tmp73 [V120,T137] ( 3, 1.50) ref -> x21 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
; V121 tmp74 [V121,T31] ( 8, 8 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundAddressOfOperator>
@@ -419,7 +419,7 @@ G_M26377_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
;; size=60 bbWeight=1 PerfScore 21.00
G_M26377_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- b G_M26377_IG18
+ b G_M26377_IG10
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
movz x8, #0xD1FFAB1E
@@ -429,7 +429,7 @@ G_M26377_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG05
mov x22, x20
; gcrRegs +[x22]
- b G_M26377_IG31
+ b G_M26377_IG23
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -440,7 +440,7 @@ G_M26377_IG05: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG06
mov x23, x20
; gcrRegs +[x23]
- b G_M26377_IG37
+ b G_M26377_IG29
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23]
@@ -451,7 +451,7 @@ G_M26377_IG06: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG07
mov x24, x20
; gcrRegs +[x24]
- b G_M26377_IG57
+ b G_M26377_IG49
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
@@ -462,7 +462,7 @@ G_M26377_IG07: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG08
mov x25, x20
; gcrRegs +[x25]
- b G_M26377_IG70
+ b G_M26377_IG62
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
@@ -473,7 +473,7 @@ G_M26377_IG08: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bne G_M26377_IG09
mov x26, x20
; gcrRegs +[x26]
- b G_M26377_IG72
+ b G_M26377_IG64
;; size=28 bbWeight=0.50 PerfScore 2.25
G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x26]
@@ -481,241 +481,10 @@ G_M26377_IG09: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x8, #0xD1FFAB1E LSL #16
movk x8, #0xD1FFAB1E LSL #32
cmp x1, x8
- bne G_M26377_IG86
- ldr x27, [x20, #0x30]
- ; gcrRegs +[x27]
- mov x28, x27
- ; gcrRegs +[x28]
- cbz x28, G_M26377_IG11
- ;; size=32 bbWeight=0.50 PerfScore 3.75
-G_M26377_IG10: ; bbWeight=0.25, gcrefRegs=18380000 {x19 x20 x21 x27 x28}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x28]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- cmp x0, x1
- beq G_M26377_IG82
- ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M26377_IG11: ; bbWeight=0.50, gcrefRegs=8380000 {x19 x20 x21 x27}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x28]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.PooledObjects.ObjectPool`1[System.__Canon]:Allocate():System.__Canon:this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ldr wzr, [x0]
- blr x1
- mov x22, x0
- ; gcrRegs +[x22]
- ldr x1, [x20, #0x38]
- ; gcrRegs +[x1]
- ldrsb wzr, [x22]
- mov x0, x22
- mov x2, x21
- ; gcrRegs +[x2]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x21]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ldr x28, [x20, #0x40]
- ; gcrRegs +[x28]
- mov x0, x19
- ; gcrRegs +[x0]
- mov x1, x20
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1]
- mov x2, x0
- ; gcrRegs +[x2]
- mov x0, x22
- mov x1, x28
- ; gcrRegs +[x1]
- mov w3, #2
- movz x4, #0xD1FFAB1E // code for <unknown method>
- movk x4, #0xD1FFAB1E LSL #16
- movk x4, #0xD1FFAB1E LSL #32
- ldr x4, [x4]
- blr x4
- ; gcrRegs -[x0-x2 x28]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- mov x0, x22
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter+PlaceholderReplacer:Replace(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.BoundEarlyValuePlaceholderBase,Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x27, x0
- ; gcrRegs +[x27]
- mov x0, x22
- movz x1, #0xD1FFAB1E // code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Clear():this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ; gcrRegs -[x0]
- ldr x0, [x22, #0x48]
- ; gcrRegs +[x0]
- cbz x0, G_M26377_IG12
- ldr x14, [x0, #0x08]
- ; gcrRegs +[x14]
- cbnz x14, G_M26377_IG83
- add x14, x0, #8
- ; gcrRegs -[x14]
- ; byrRegs +[x14]
- mov x15, x22
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x0 x15 x22]
- ; byrRegs -[x14]
- ;; size=296 bbWeight=0.50 PerfScore 40.25
-G_M26377_IG12: ; bbWeight=0.50, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
- mov x1, x27
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.LocalRewriter:Visit(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- ldr wzr, [x0]
- blr x2
- ; gcrRegs -[x1 x27]
- mov x1, x0
- ; gcrRegs +[x1]
...
smoke_tests.nativeaot.windows.arm64.checked.mch
-36 (-7.14%) : 13895.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -13,7 +13,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> x21 single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> x22 single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> x23
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> x23
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> x0
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> x0
@@ -24,19 +24,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> x0 "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> x0 "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> x1 "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> x1 "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> x2 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> x0 single-def "arr expr"
@@ -207,22 +207,7 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w0, w1
- bls G_M29651_IG14
- b G_M29651_IG14
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG15
- b G_M29651_IG15
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG16
- b G_M29651_IG16
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x2]
@@ -230,7 +215,7 @@ G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -239,7 +224,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -249,7 +234,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -260,7 +245,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 126 (0x0007e) Actual length = 504 (0x0001f8)
+ Function Length : 117 (0x00075) Actual length = 468 (0x0001d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-36 (-7.14%) : 8204.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -14,7 +14,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> x21 single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> x22 single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> x23
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> x23
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> x0
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> x0
@@ -25,19 +25,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> x0 "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> x0 "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> x0 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> x1 "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> x1 "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> x2 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> x1 "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> x1 "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> x0 single-def "arr expr"
@@ -208,22 +208,7 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w0, w1
- bls G_M29651_IG14
- b G_M29651_IG14
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG15
- b G_M29651_IG15
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w23, w1
- bls G_M29651_IG16
- b G_M29651_IG16
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x2]
@@ -231,7 +216,7 @@ G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -240,7 +225,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w23
adrp x2, [HIGH RELOC #0xD1FFAB1E]
add x2, x2, [LOW RELOC #0xD1FFAB1E]
@@ -250,7 +235,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 504, prolog size 20, PerfScore 278.50, instruction count 126, allocated bytes for code 504 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 468, prolog size 20, PerfScore 278.50, instruction count 117, allocated bytes for code 468 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -261,7 +246,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 126 (0x0007e) Actual length = 504 (0x0001f8)
+ Function Length : 117 (0x00075) Actual length = 468 (0x0001d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-6.25%) : 8182.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
@@ -17,7 +17,7 @@
; V06 loc1 [V06,T17] ( 5, 8.50) long -> registers
; V07 loc2 [V07,T15] ( 7, 11 ) long -> registers
; V08 loc3 [V08,T18] ( 6, 6 ) int -> x6
-; V09 loc4 [V09,T00] ( 18,102.50) int -> x7
+; V09 loc4 [V09,T00] ( 16,102.50) int -> x7
; V10 loc5 [V10,T20] ( 3, 6 ) int -> x11
; V11 loc6 [V11,T04] ( 7, 26 ) int -> x13
; V12 loc7 [V12,T12] ( 6, 12 ) long -> x2
@@ -26,10 +26,10 @@
; V15 tmp2 [V15,T13] ( 3, 12 ) long -> x3 "impSpillLclRefs"
; V16 tmp3 [V16,T14] ( 3, 12 ) long -> x13 "impSpillLclRefs"
;* V17 tmp4 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V18 tmp5 [V18,T10] ( 4, 16 ) int -> x9 "Inlining Arg"
+; V18 tmp5 [V18,T10] ( 3, 16 ) int -> x9 "Inlining Arg"
;* V19 tmp6 [V19,T24] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V21 tmp8 [V21,T01] ( 4, 64 ) int -> x14 "Inlining Arg"
+; V21 tmp8 [V21,T01] ( 3, 64 ) int -> x14 "Inlining Arg"
;* V22 tmp9 [V22,T11] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V23 tmp10 [V23,T05] ( 3, 24 ) ref -> x9 "arr expr"
;* V24 tmp11 [V24,T03] ( 0, 0 ) ref -> zero-ref "arr expr"
@@ -163,17 +163,7 @@ G_M50170_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w9
- bls G_M50170_IG21
- b G_M50170_IG21
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w7, w14
- bls G_M50170_IG22
- b G_M50170_IG22
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w9
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -184,7 +174,7 @@ G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w7
mov w1, w14
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -196,7 +186,7 @@ G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 384, prolog size 8, PerfScore 285.50, instruction count 96, allocated bytes for code 384 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 360, prolog size 8, PerfScore 285.50, instruction count 90, allocated bytes for code 360 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
; ============================================================
Unwind Info:
@@ -207,7 +197,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 96 (0x00060) Actual length = 384 (0x000180)
+ Function Length : 90 (0x0005a) Actual length = 360 (0x000168)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-0.44%) : 15089.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T20] ( 5, 16.50) int -> x25
; V10 loc9 [V10,T26] ( 4, 12.50) ref -> x27 class-hnd <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T02] ( 18, 83.08) int -> [fp+0x7C]
+; V12 loc11 [V12,T02] ( 17, 83.08) int -> [fp+0x7C]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [fp+0x18] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T18] ( 30, 20.31) int -> x25
@@ -82,7 +82,7 @@
; V72 tmp47 [V72,T53] ( 3, 3.59) int -> x1 "Inlining Arg"
;* V73 tmp48 [V73,T77] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T27] ( 4, 10.56) int -> x1 "Inlining Arg"
+; V75 tmp50 [V75,T27] ( 3, 10.56) int -> x1 "Inlining Arg"
;* V76 tmp51 [V76,T56] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -425,7 +425,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=9B80001 {x0 x19 x20 x21 x23 x24
ldr w1, [x0, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x0, [x0, #0x08]
ldr w1, [x0, #0x08]
cmp w5, w1
@@ -469,7 +469,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=9B80000 {x19 x20 x21 x23 x24 x2
ldr w1, [x23, #0x10]
ldr w5, [fp, #0x7C] // [V12 loc11]
cmp w5, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG111
ldr x0, [x23, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -544,7 +544,7 @@ G_M50704_IG41: ; bbWeight=4, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byr
;; size=12 bbWeight=4 PerfScore 8.00
G_M50704_IG42: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
- cbz x21, G_M50704_IG113
+ cbz x21, G_M50704_IG112
mov w1, w22
adrp x0, [HIGH RELOC #0xD1FFAB1E] // System.Object[]
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -708,7 +708,7 @@ G_M50704_IG60: ; bbWeight=0.44, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG61: ; bbWeight=0.22, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG114
+ bhs G_M50704_IG113
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -745,7 +745,7 @@ G_M50704_IG63: ; bbWeight=1.31, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG64: ; bbWeight=0.65, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG115
+ bhs G_M50704_IG114
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -806,7 +806,7 @@ G_M50704_IG69: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG114
+ bhs G_M50704_IG113
ldr x28, [x0, #0x08]
; gcrRegs +[x28]
ldr w0, [x28, #0x08]
@@ -845,7 +845,7 @@ G_M50704_IG73: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG115
+ bhs G_M50704_IG114
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -1337,11 +1337,16 @@ G_M50704_IG109: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w5, w1
- bls G_M50704_IG112
- b G_M50704_IG112
- ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w5
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w5
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1352,17 +1357,7 @@ G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w5
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_windows #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M50704_IG112: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -1392,6 +1387,16 @@ G_M50704_IG113: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=60 bbWeight=0 PerfScore 0.00
+G_M50704_IG113: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w25
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w25
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1402,17 +1407,7 @@ G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG115: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w25
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_windows #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG115: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16}
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
@@ -1421,10 +1416,10 @@ G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG116: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
ldr x0, [fp, #0x10] // [V16 loc15]
; gcrRegs +[x0]
- cbz x0, G_M50704_IG118
+ cbz x0, G_M50704_IG117
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -1433,7 +1428,7 @@ G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000002000000 {V1
; gcrRegs -[x0]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M50704_IG117: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
@@ -1443,7 +1438,7 @@ G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2740, prolog size 48, PerfScore 1905.16, instruction count 685, allocated bytes for code 2740 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2728, prolog size 48, PerfScore 1905.16, instruction count 682, allocated bytes for code 2728 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Unwind Info:
@@ -1454,7 +1449,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 666 (0x0029a) Actual length = 2664 (0x000a68)
+ Function Length : 663 (0x00297) Actual length = 2652 (0x000a5c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -1498,4 +1493,4 @@ Unwind Info:
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG82..G_M50704_IG107) handled by [G_M50704_IG116..END) (fault)
+EH#0: try [G_M50704_IG82..G_M50704_IG107) handled by [G_M50704_IG115..END) (fault)
-12 (-0.36%) : 8514.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -20,7 +20,7 @@
; V09 loc8 [V09,T27] ( 5, 16.50) int -> x25
; V10 loc9 [V10,T26] ( 4, 12.50) ref -> x27 class-hnd <System.Reflection.ConstructorInfo>
;* V11 loc10 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T04] ( 18, 83.08) int -> [fp+0x7C]
+; V12 loc11 [V12,T04] ( 17, 83.08) int -> [fp+0x7C]
; V13 loc12 [V13,T05] ( 4, 56 ) ref -> [fp+0x20] class-hnd spill-single-def <System.Type>
;* V14 loc13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T24] ( 30, 20.31) int -> x25
@@ -83,7 +83,7 @@
; V72 tmp47 [V72,T65] ( 3, 3.59) int -> x1 "Inlining Arg"
;* V73 tmp48 [V73,T94] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V74 tmp49 [V74 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V75 tmp50 [V75,T35] ( 4, 10.56) int -> x1 "Inlining Arg"
+; V75 tmp50 [V75,T35] ( 3, 10.56) int -> x1 "Inlining Arg"
;* V76 tmp51 [V76,T70] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V77 tmp52 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V78 tmp53 [V78 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "guarded devirt return temp" <System.Reflection.CustomAttributeTypedArgument>
@@ -473,7 +473,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=9B80001 {x0 x19 x20 x21 x23 x24
ldr w1, [x0, #0x10]
ldr w4, [fp, #0x7C] // [V12 loc11]
cmp w4, w1
- bhs G_M50704_IG107
+ bhs G_M50704_IG106
ldr x15, [x0, #0x08]
; gcrRegs +[x15]
ldr w9, [x15, #0x08]
@@ -524,7 +524,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=9B80000 {x19 x20 x21 x23 x24 x2
ldr w1, [x23, #0x10]
ldr w4, [fp, #0x7C] // [V12 loc11]
cmp w4, w1
- bhs G_M50704_IG106
+ bhs G_M50704_IG107
ldr x15, [x23, #0x08]
; gcrRegs +[x15]
ldr w9, [x15, #0x08]
@@ -610,7 +610,7 @@ G_M50704_IG41: ; bbWeight=4, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byr
;; size=12 bbWeight=4 PerfScore 8.00
G_M50704_IG42: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x24]
- cbz x21, G_M50704_IG109
+ cbz x21, G_M50704_IG108
mov w1, w22
adrp x0, [HIGH RELOC #0xD1FFAB1E] // System.Object[]
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -775,7 +775,7 @@ G_M50704_IG60: ; bbWeight=0.44, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG61: ; bbWeight=0.22, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG109
ldr x27, [x0, #0x08]
; gcrRegs +[x27]
ldr w15, [x27, #0x08]
@@ -817,7 +817,7 @@ G_M50704_IG63: ; bbWeight=1.31, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG64: ; bbWeight=0.65, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w15, [x2, #0x08]
@@ -886,7 +886,7 @@ G_M50704_IG69: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24
G_M50704_IG70: ; bbWeight=0.00, gcrefRegs=1B80001 {x0 x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x0, #0x10]
cmp w25, w1
- bhs G_M50704_IG110
+ bhs G_M50704_IG109
ldr x27, [x0, #0x08]
; gcrRegs +[x27]
ldr w15, [x27, #0x08]
@@ -930,7 +930,7 @@ G_M50704_IG73: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24},
G_M50704_IG74: ; bbWeight=0.01, gcrefRegs=1B80000 {x19 x20 x21 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr w1, [x23, #0x10]
cmp w25, w1
- bhs G_M50704_IG111
+ bhs G_M50704_IG110
ldr x2, [x23, #0x08]
; gcrRegs +[x2]
ldr w15, [x2, #0x08]
@@ -1466,11 +1466,16 @@ G_M50704_IG105: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M50704_IG106: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp w4, w1
- bls G_M50704_IG108
- b G_M50704_IG108
- ;; size=12 bbWeight=0 PerfScore 0.00
+G_M50704_IG106: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w4
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w4
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1481,17 +1486,7 @@ G_M50704_IG107: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG108: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w4
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_windows #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG109: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M50704_IG108: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20]
adrp x0, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x0, x0, [LOW RELOC #0xD1FFAB1E]
@@ -1526,6 +1521,16 @@ G_M50704_IG109: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=80 bbWeight=0 PerfScore 0.00
+G_M50704_IG109: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w0, w25
+ adrp x2, [HIGH RELOC #0xD1FFAB1E]
+ add x2, x2, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x2]
+ bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[x2]
+ ; gcr arg pop 0
+ brk_windows #0
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, w25
adrp x2, [HIGH RELOC #0xD1FFAB1E]
@@ -1536,17 +1541,7 @@ G_M50704_IG110: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG111: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, w25
- adrp x2, [HIGH RELOC #0xD1FFAB1E]
- add x2, x2, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x2]
- bl System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[x2]
- ; gcr arg pop 0
- brk_windows #0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG111: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V32}
stp fp, lr, [sp, #-0x60]!
stp x19, x20, [sp, #0x10]
@@ -1555,10 +1550,10 @@ G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V1
stp x25, x26, [sp, #0x40]
stp x27, x28, [sp, #0x50]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG112: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
ldr x0, [fp, #0x18] // [V16 loc15]
; gcrRegs +[x0]
- cbz x0, G_M50704_IG114
+ cbz x0, G_M50704_IG113
adrp x1, [HIGH RELOC #0xD1FFAB1E] // function address
add x1, x1, [LOW RELOC #0xD1FFAB1E]
ldr x15, [x1]
@@ -1573,7 +1568,7 @@ G_M50704_IG113: ; bbWeight=0, gcVars=00000000000000000000000100000000 {V1
; gcrRegs -[x0]
; gcr arg pop 0
;; size=48 bbWeight=0 PerfScore 0.00
-G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M50704_IG113: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
@@ -1583,7 +1578,7 @@ G_M50704_IG114: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ret lr
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3288, prolog size 48, PerfScore 2563.11, instruction count 822, allocated bytes for code 3288 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 3276, prolog size 48, PerfScore 2563.11, instruction count 819, allocated bytes for code 3276 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Unwind Info:
@@ -1594,7 +1589,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 797 (0x0031d) Actual length = 3188 (0x000c74)
+ Function Length : 794 (0x0031a) Actual length = 3176 (0x000c68)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -1638,4 +1633,4 @@ Unwind Info:
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG82..G_M50704_IG103) handled by [G_M50704_IG112..END) (fault)
+EH#0: try [G_M50704_IG82..G_M50704_IG103) handled by [G_M50704_IG111..END) (fault)
-4 (-0.18%) : 427.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
@@ -14,7 +14,7 @@
; V04 arg4 [V04,T36] ( 4, 4 ) int -> x23 single-def
; V05 arg5 [V05,T44] ( 4, 3 ) ref -> x24 class-hnd exact single-def <System.Text.DecoderNLS>
; V06 loc0 [V06,T63] ( 4, 2.50) ref -> x24 class-hnd exact single-def <<unknown class>>
-; V07 loc1 [V07,T11] ( 10, 16.50) int -> [fp+0x3C]
+; V07 loc1 [V07,T11] ( 9, 16 ) int -> [fp+0x3C]
; V08 loc2 [V08,T07] ( 21, 33.50) ushort -> x26
; V09 loc3 [V09,T04] ( 43, 49.25) ref -> x27 class-hnd <System.Text.DecoderFallbackBuffer>
; V10 loc4 [V10 ] ( 15, 21 ) long -> [fp+0x30] do-not-enreg[X] addr-exposed ld-addr-op
@@ -910,7 +910,7 @@ G_M8858_IG66: ; bbWeight=0.50, gcrefRegs=9600000 {x21 x22 x24 x27}, byref
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=92 bbWeight=0.50 PerfScore 11.25
-G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref, isz
+G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref
str xzr, [x27, #0x18]
mov x0, x27
; gcrRegs +[x0]
@@ -929,9 +929,8 @@ G_M8858_IG67: ; bbWeight=0.50, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs
bl System.Text.Encoding:ThrowCharsOverflow(System.Text.DecoderNLS,ubyte):this
; gcrRegs -[x0-x1 x21 x24]
; gcr arg pop 0
- tbnz w25, #31, G_M8858_IG74
b G_M8858_IG74
- ;; size=52 bbWeight=0.50 PerfScore 7.75
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
G_M8858_IG68: ; bbWeight=0.25, gcrefRegs=9200000 {x21 x24 x27}, byrefRegs=0000 {}, byref
; gcrRegs +[x21 x24]
b G_M8858_IG67
@@ -1076,7 +1075,7 @@ G_M8858_IG80: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, g
brk_windows #0
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2264, prolog size 52, PerfScore 821.00, instruction count 566, allocated bytes for code 2264 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
+; Total bytes of code 2260, prolog size 52, PerfScore 820.50, instruction count 565, allocated bytes for code 2260 (MethodHash=1564dd65) for method System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -1087,7 +1086,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 566 (0x00236) Actual length = 2264 (0x0008d8)
+ Function Length : 565 (0x00235) Actual length = 2260 (0x0008d4)
---- 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.windows.arm64.checked.mch |
25 |
25 |
0 |
0 |
-424 |
+0 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
250 |
178 |
3 |
69 |
-3,832 |
+28 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
10 |
8 |
0 |
2 |
-160 |
+0 |
| coreclr_tests.run.windows.arm64.checked.mch |
446 |
241 |
6 |
199 |
-5,164 |
+276 |
| libraries.crossgen2.windows.arm64.checked.mch |
61 |
55 |
0 |
6 |
-1,712 |
+0 |
| libraries.pmi.windows.arm64.checked.mch |
208 |
194 |
1 |
13 |
-3,648 |
+8 |
| libraries_tests.run.windows.arm64.Release.mch |
921 |
734 |
18 |
169 |
-16,372 |
+320 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
256 |
240 |
0 |
16 |
-3,932 |
+0 |
| realworld.run.windows.arm64.checked.mch |
61 |
57 |
0 |
4 |
-1,376 |
+0 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
15 |
15 |
0 |
0 |
-464 |
+0 |
|
2,253 |
1,747 |
28 |
478 |
-37,084 |
+632 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.arm64.checked.mch |
24,446 |
4 |
24,442 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
96,117 |
48,079 |
48,038 |
4 (0.00%) |
4 (0.00%) |
| benchmarks.run_tiered.windows.arm64.checked.mch |
49,359 |
36,713 |
12,646 |
1 (0.00%) |
1 (0.00%) |
| coreclr_tests.run.windows.arm64.checked.mch |
595,401 |
362,592 |
232,809 |
3 (0.00%) |
3 (0.00%) |
| libraries.crossgen2.windows.arm64.checked.mch |
244,152 |
15 |
244,137 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.windows.arm64.checked.mch |
305,578 |
6 |
305,572 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.windows.arm64.Release.mch |
651,606 |
469,431 |
182,175 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
317,077 |
21,598 |
295,479 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.arm64.checked.mch |
33,211 |
3 |
33,208 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
24,162 |
8 |
24,154 |
0 (0.00%) |
0 (0.00%) |
|
2,341,109 |
938,449 |
1,402,660 |
8 (0.00%) |
8 (0.00%) |
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: 10966124 (overridden on cmd)
Total bytes of diff: 10965700 (overridden on cmd)
Total bytes of delta: -424 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 8968.dasm (-0.24 % of base)
-28 : 10476.dasm (-3.72 % of base)
-28 : 1023.dasm (-6.73 % of base)
-28 : 1086.dasm (-6.73 % of base)
-24 : 14293.dasm (-3.92 % of base)
-24 : 14812.dasm (-0.66 % of base)
-24 : 18667.dasm (-0.36 % of base)
-24 : 21795.dasm (-12.50 % of base)
-20 : 6761.dasm (-3.29 % of base)
-20 : 22537.dasm (-5.26 % of base)
-16 : 10834.dasm (-0.98 % of base)
-16 : 10576.dasm (-2.60 % of base)
-16 : 18103.dasm (-4.00 % of base)
-12 : 8839.dasm (-2.10 % of base)
-12 : 1214.dasm (-1.95 % of base)
-12 : 14826.dasm (-0.60 % of base)
-12 : 14861.dasm (-7.14 % of base)
-12 : 18747.dasm (-0.80 % of base)
-12 : 2152.dasm (-3.57 % of base)
-12 : 7968.dasm (-2.24 % of base)
25 total files with Code Size differences (25 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 8968.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-6.73 % of base) : 1086.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-6.73 % of base) : 1023.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-3.72 % of base) : 10476.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-0.36 % of base) : 18667.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-12.50 % of base) : 21795.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-3.92 % of base) : 14293.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-0.66 % of base) : 14812.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-20 (-3.29 % of base) : 6761.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-20 (-5.26 % of base) : 22537.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-4.00 % of base) : 18103.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-2.60 % of base) : 10576.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-16 (-0.98 % of base) : 10834.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-12 (-1.95 % of base) : 1214.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
-12 (-0.80 % of base) : 18747.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-12 (-7.14 % of base) : 14861.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-12 (-0.60 % of base) : 14826.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
-12 (-2.10 % of base) : 8839.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-12 (-3.57 % of base) : 2152.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-12 (-2.24 % of base) : 7968.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
Top method improvements (percentages):
-24 (-12.50 % of base) : 21795.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-12 (-7.14 % of base) : 14861.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-28 (-6.73 % of base) : 1086.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-6.73 % of base) : 1023.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-20 (-5.26 % of base) : 22537.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-4.00 % of base) : 18103.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-24 (-3.92 % of base) : 14293.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-28 (-3.72 % of base) : 10476.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-12 (-3.57 % of base) : 2152.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.29 % of base) : 6761.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-16 (-2.60 % of base) : 10576.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-12 (-2.24 % of base) : 7968.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
-12 (-2.10 % of base) : 8839.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-12 (-1.95 % of base) : 1214.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
-16 (-0.98 % of base) : 10834.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.97 % of base) : 8264.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-8 (-0.88 % of base) : 16705.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
-12 (-0.80 % of base) : 18747.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-8 (-0.74 % of base) : 7415.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-24 (-0.66 % of base) : 14812.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
25 total methods with Code Size differences (25 improved, 0 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: 45570040 (overridden on cmd)
Total bytes of diff: 45566236 (overridden on cmd)
Total bytes of delta: -3804 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 83379.dasm (7.27 % of base)
8 : 72925.dasm (0.44 % of base)
4 : 71128.dasm (0.22 % of base)
Top file improvements (bytes):
-32 : 27633.dasm (-1.81 % of base)
-32 : 36105.dasm (-1.81 % of base)
-32 : 49593.dasm (-1.81 % of base)
-32 : 66830.dasm (-1.81 % of base)
-32 : 70762.dasm (-1.81 % of base)
-32 : 73509.dasm (-1.81 % of base)
-32 : 73561.dasm (-1.81 % of base)
-32 : 80653.dasm (-1.81 % of base)
-32 : 84205.dasm (-1.81 % of base)
-32 : 91229.dasm (-1.81 % of base)
-32 : 16793.dasm (-1.81 % of base)
-32 : 40618.dasm (-1.81 % of base)
-32 : 51357.dasm (-1.83 % of base)
-32 : 70110.dasm (-1.81 % of base)
-32 : 70925.dasm (-1.81 % of base)
-32 : 74149.dasm (-1.81 % of base)
-32 : 77110.dasm (-1.81 % of base)
-32 : 77189.dasm (-1.81 % of base)
-32 : 82938.dasm (-1.81 % of base)
-32 : 95853.dasm (-1.81 % of base)
52 total files with Code Size differences (49 improved, 3 regressed), 37 unchanged.
Top method regressions (bytes):
16 (7.27 % of base) : 83379.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
8 (0.44 % of base) : 72925.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 71128.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (bytes):
-32 (-1.81 % of base) : 27633.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 36105.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 49593.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 66830.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 70762.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 73509.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 73561.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 80653.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 84205.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 91229.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 16793.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 40618.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.83 % of base) : 51357.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 70110.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 70925.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 74149.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 77110.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 77189.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 82938.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-32 (-1.81 % of base) : 95853.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
Top method regressions (percentages):
16 (7.27 % of base) : 83379.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
8 (0.44 % of base) : 72925.dasm - LinqBenchmarks:Where00LinqMethodX():ubyte:this (Tier1-OSR)
4 (0.22 % of base) : 71128.dasm - LinqBenchmarks:Where00LinqQueryX():ubyte:this (Tier1-OSR)
Top method improvements (percentages):
-24 (-14.63 % of base) : 39334.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-14.63 % of base) : 41629.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-14.63 % of base) : 50211.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 39507.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-20 (-12.50 % of base) : 41623.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 48387.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 48689.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 73250.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 81304.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 21776.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.69 % of base) : 20345.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.59 % of base) : 95453.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.32 % of base) : 24593.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.32 % of base) : 89378.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 80541.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 87163.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 92838.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 65260.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 75919.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-7.23 % of base) : 90318.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
benchmarks.run_tiered.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15587136 (overridden on cmd)
Total bytes of diff: 15586976 (overridden on cmd)
Total bytes of delta: -160 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-32 : 19640.dasm (-0.24 % of base)
-28 : 14718.dasm (-6.67 % of base)
-28 : 15268.dasm (-6.67 % of base)
-28 : 27194.dasm (-3.72 % of base)
-12 : 43442.dasm (-1.24 % of base)
-12 : 45951.dasm (-1.87 % of base)
-12 : 44317.dasm (-2.78 % of base)
-8 : 40794.dasm (-0.74 % of base)
8 total files with Code Size differences (8 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-32 (-0.24 % of base) : 19640.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-28 (-6.67 % of base) : 14718.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-6.67 % of base) : 15268.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-3.72 % of base) : 27194.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-12 (-1.24 % of base) : 43442.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-12 (-2.78 % of base) : 44317.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-12 (-1.87 % of base) : 45951.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-8 (-0.74 % of base) : 40794.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier1)
Top method improvements (percentages):
-28 (-6.67 % of base) : 14718.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-6.67 % of base) : 15268.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-28 (-3.72 % of base) : 27194.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-12 (-2.78 % of base) : 44317.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-12 (-1.87 % of base) : 45951.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-12 (-1.24 % of base) : 43442.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-8 (-0.74 % of base) : 40794.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier1)
-32 (-0.24 % of base) : 19640.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
8 total methods with Code Size differences (8 improved, 0 regressed).
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: 495272272 (overridden on cmd)
Total bytes of diff: 495267384 (overridden on cmd)
Total bytes of delta: -4888 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
224 : 580174.dasm (2.01 % of base)
12 : 16168.dasm (6.25 % of base)
12 : 15827.dasm (6.00 % of base)
12 : 16244.dasm (6.00 % of base)
12 : 15751.dasm (6.25 % of base)
4 : 251288.dasm (7.14 % of base)
Top file improvements (bytes):
-1024 : 335691.dasm (-47.15 % of base)
-292 : 257464.dasm (-2.86 % of base)
-52 : 239741.dasm (-30.95 % of base)
-52 : 592840.dasm (-1.81 % of base)
-52 : 590493.dasm (-1.81 % of base)
-48 : 589043.dasm (-2.03 % of base)
-44 : 318249.dasm (-1.47 % of base)
-44 : 244389.dasm (-55.00 % of base)
-40 : 200343.dasm (-0.48 % of base)
-40 : 239319.dasm (-1.17 % of base)
-40 : 245743.dasm (-1.17 % of base)
-36 : 240292.dasm (-28.12 % of base)
-36 : 316084.dasm (-5.70 % of base)
-36 : 256811.dasm (-25.71 % of base)
-32 : 17537.dasm (-12.70 % of base)
-32 : 17611.dasm (-12.70 % of base)
-32 : 181520.dasm (-6.06 % of base)
-32 : 181527.dasm (-6.06 % of base)
-32 : 585523.dasm (-2.16 % of base)
-32 : 591258.dasm (-2.16 % of base)
45 total files with Code Size differences (39 improved, 6 regressed), 34 unchanged.
Top method regressions (bytes):
224 (2.01 % of base) : 580174.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
12 (6.25 % of base) : 16168.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 15751.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 15827.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 16244.dasm - testout1:Sub_Funclet_183():int (FullOpts)
4 (7.14 % of base) : 251288.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-1024 (-47.15 % of base) : 335691.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-292 (-2.86 % of base) : 257464.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
-52 (-1.81 % of base) : 592840.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
-52 (-1.81 % of base) : 590493.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.AttributePresenceFilterNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1-OSR)
-52 (-30.95 % of base) : 239741.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-48 (-2.03 % of base) : 589043.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+FieldForInstantiatedTypeKey,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-44 (-55.00 % of base) : 244389.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-44 (-1.47 % of base) : 318249.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<TEST_MultipleConnectPortsSuspend>d__2:MoveNext():this (FullOpts)
-40 (-0.48 % of base) : 200343.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-1.17 % of base) : 239319.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-40 (-1.17 % of base) : 245743.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-36 (-5.70 % of base) : 316084.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-36 (-25.71 % of base) : 256811.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-36 (-28.12 % of base) : 240292.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-32 (-2.16 % of base) : 585523.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[System.__Canon,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-32 (-2.16 % of base) : 591258.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[System.__Canon,System.__Canon]:Expand(System.__Canon[]):this (Tier1)
-32 (-6.06 % of base) : 181520.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-6.06 % of base) : 181527.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[uint](int,uint):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-12.70 % of base) : 17537.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 17611.dasm - testout1:Sub_Funclet_181():int (FullOpts)
Top method regressions (percentages):
4 (7.14 % of base) : 251288.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
12 (6.25 % of base) : 16168.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.25 % of base) : 15751.dasm - testout1:Sub_Funclet_106():int (FullOpts)
12 (6.00 % of base) : 15827.dasm - testout1:Sub_Funclet_183():int (FullOpts)
12 (6.00 % of base) : 16244.dasm - testout1:Sub_Funclet_183():int (FullOpts)
224 (2.01 % of base) : 580174.dasm - ILCompiler.NativeAotNameMangler:ComputeMangledTypeName(Internal.TypeSystem.TypeDesc):System.String:this (Tier1-OSR)
Top method improvements (percentages):
-44 (-55.00 % of base) : 244389.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-1024 (-47.15 % of base) : 335691.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-28 (-43.75 % of base) : 240251.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-43.75 % of base) : 244337.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-52 (-30.95 % of base) : 239741.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-36 (-28.12 % of base) : 240292.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-36 (-25.71 % of base) : 256811.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-20 (-20.00 % of base) : 21205.dasm - filter1:f4() (FullOpts)
-28 (-14.00 % of base) : 15862.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-28 (-14.00 % of base) : 16279.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-32 (-12.70 % of base) : 17537.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-32 (-12.70 % of base) : 17611.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-20 (-12.50 % of base) : 240249.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-20 (-12.50 % of base) : 244336.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-28 (-11.11 % of base) : 17121.dasm - testout1:Sub_Funclet_104():int (FullOpts)
-28 (-11.11 % of base) : 17195.dasm - testout1:Sub_Funclet_181():int (FullOpts)
-28 (-10.94 % of base) : 17233.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-28 (-10.94 % of base) : 17649.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-20 (-10.87 % of base) : 242395.dasm - BoxTest_enum_il.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
-24 (-10.00 % of base) : 238997.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
libraries.crossgen2.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 59070392 (overridden on cmd)
Total bytes of diff: 59068680 (overridden on cmd)
Total bytes of delta: -1712 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-660 : 184338.dasm (-88.24 % of base)
-144 : 34211.dasm (-18.46 % of base)
-112 : 29624.dasm (-5.27 % of base)
-56 : 142495.dasm (-0.21 % of base)
-36 : 124778.dasm (-2.17 % of base)
-36 : 66350.dasm (-8.18 % of base)
-32 : 243107.dasm (-12.70 % of base)
-28 : 38721.dasm (-1.29 % of base)
-28 : 39589.dasm (-9.86 % of base)
-28 : 67639.dasm (-11.48 % of base)
-24 : 148909.dasm (-2.08 % of base)
-24 : 143317.dasm (-2.09 % of base)
-24 : 221317.dasm (-30.00 % of base)
-24 : 228172.dasm (-1.20 % of base)
-24 : 228328.dasm (-3.53 % of base)
-24 : 37656.dasm (-0.53 % of base)
-20 : 209450.dasm (-3.14 % of base)
-20 : 242944.dasm (-8.62 % of base)
-20 : 46192.dasm (-3.65 % of base)
-20 : 92461.dasm (-6.58 % of base)
47 total files with Code Size differences (47 improved, 0 regressed), 6 unchanged.
Top method improvements (bytes):
-660 (-88.24 % of base) : 184338.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-144 (-18.46 % of base) : 34211.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-112 (-5.27 % of base) : 29624.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.21 % of base) : 142495.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-36 (-8.18 % of base) : 66350.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-2.17 % of base) : 124778.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-32 (-12.70 % of base) : 243107.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 67639.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-28 (-9.86 % of base) : 39589.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-1.29 % of base) : 38721.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-0.53 % of base) : 37656.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-2.09 % of base) : 143317.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-24 (-3.53 % of base) : 228328.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-24 (-1.20 % of base) : 228172.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-24 (-30.00 % of base) : 221317.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-24 (-2.08 % of base) : 148909.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-20 (-3.65 % of base) : 46192.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-20 (-6.58 % of base) : 92461.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-20 (-3.14 % of base) : 209450.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
-20 (-8.62 % of base) : 242944.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
Top method improvements (percentages):
-660 (-88.24 % of base) : 184338.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-24 (-30.00 % of base) : 221317.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-144 (-18.46 % of base) : 34211.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-32 (-12.70 % of base) : 243107.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-28 (-11.48 % of base) : 67639.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-12 (-10.00 % of base) : 212690.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-28 (-9.86 % of base) : 39589.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-20 (-8.62 % of base) : 242944.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-8.18 % of base) : 66350.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.02 % of base) : 243033.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-6.58 % of base) : 92461.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-16 (-5.48 % of base) : 209256.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
-112 (-5.27 % of base) : 29624.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-12 (-5.17 % of base) : 143519.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
-12 (-4.35 % of base) : 216957.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
-16 (-4.04 % of base) : 63072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-4.00 % of base) : 106155.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-12 (-3.95 % of base) : 201799.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-20 (-3.65 % of base) : 46192.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-8 (-3.64 % of base) : 243088.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (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: 79847816 (overridden on cmd)
Total bytes of diff: 79844176 (overridden on cmd)
Total bytes of delta: -3640 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 114148.dasm (0.28 % of base)
Top file improvements (bytes):
-660 : 205780.dasm (-87.30 % of base)
-108 : 60990.dasm (-2.29 % of base)
-72 : 29880.dasm (-4.46 % of base)
-64 : 126969.dasm (-4.10 % of base)
-64 : 158286.dasm (-4.10 % of base)
-56 : 140512.dasm (-0.19 % of base)
-48 : 90846.dasm (-2.12 % of base)
-40 : 96635.dasm (-0.40 % of base)
-40 : 173420.dasm (-2.33 % of base)
-36 : 64535.dasm (-7.89 % of base)
-36 : 150546.dasm (-5.70 % of base)
-36 : 150552.dasm (-3.70 % of base)
-32 : 250541.dasm (-6.90 % of base)
-32 : 279094.dasm (-13.33 % of base)
-32 : 12037.dasm (-5.48 % of base)
-32 : 96814.dasm (-0.66 % of base)
-32 : 12036.dasm (-5.48 % of base)
-32 : 157873.dasm (-0.90 % of base)
-32 : 12035.dasm (-5.48 % of base)
-28 : 33120.dasm (-5.56 % of base)
51 total files with Code Size differences (50 improved, 1 regressed), 13 unchanged.
Top method regressions (bytes):
8 (0.28 % of base) : 114148.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
Top method improvements (bytes):
-660 (-87.30 % of base) : 205780.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-108 (-2.29 % of base) : 60990.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.46 % of base) : 29880.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-4.10 % of base) : 126969.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-64 (-4.10 % of base) : 158286.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-56 (-0.19 % of base) : 140512.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-48 (-2.12 % of base) : 90846.dasm - System.Speech.Internal.SrgsParser.XmlParser:ProcessChildNodes(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IElement,System.Speech.Internal.SrgsParser.IRule,System.String):ubyte:this (FullOpts)
-40 (-0.40 % of base) : 96635.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
-40 (-2.33 % of base) : 173420.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-5.70 % of base) : 150546.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-36 (-3.70 % of base) : 150552.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:Scavenge():int:this (FullOpts)
-36 (-7.89 % of base) : 64535.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-0.90 % of base) : 157873.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-32 (-0.66 % of base) : 96814.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:AddGroupClassMembersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
-32 (-6.90 % of base) : 250541.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-32 (-13.33 % of base) : 279094.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-5.48 % of base) : 12037.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-5.48 % of base) : 12036.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[short](int,short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-32 (-5.48 % of base) : 12035.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[ubyte](int,ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-28 (-5.56 % of base) : 33120.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
Top method regressions (percentages):
8 (0.28 % of base) : 114148.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
Top method improvements (percentages):
-660 (-87.30 % of base) : 205780.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-24 (-30.00 % of base) : 276323.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-32 (-13.33 % of base) : 279094.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-12.00 % of base) : 4983.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-11.54 % of base) : 283482.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-4 (-11.11 % of base) : 267755.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
-12 (-11.11 % of base) : 283481.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
-12 (-11.11 % of base) : 4971.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-10.00 % of base) : 301212.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-12 (-9.68 % of base) : 283483.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-20 (-9.09 % of base) : 279113.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-8.11 % of base) : 283480.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 64535.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.41 % of base) : 279090.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-6.90 % of base) : 250541.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-20 (-6.41 % of base) : 133144.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-6.41 % of base) : 164389.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-20 (-5.88 % of base) : 91796.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-36 (-5.70 % of base) : 150546.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-24 (-5.66 % of base) : 250542.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):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: 330788744 (overridden on cmd)
Total bytes of diff: 330772692 (overridden on cmd)
Total bytes of delta: -16052 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
68 : 206021.dasm (3.53 % of base)
40 : 614362.dasm (2.11 % of base)
24 : 182681.dasm (1.15 % of base)
24 : 280225.dasm (0.15 % of base)
24 : 416473.dasm (0.43 % of base)
20 : 188062.dasm (2.87 % of base)
20 : 615638.dasm (1.18 % of base)
16 : 181346.dasm (5.97 % of base)
16 : 186721.dasm (2.16 % of base)
12 : 280044.dasm (1.69 % of base)
12 : 610574.dasm (1.05 % of base)
8 : 280043.dasm (0.83 % of base)
8 : 181667.dasm (0.55 % of base)
8 : 181696.dasm (0.35 % of base)
8 : 598454.dasm (0.38 % of base)
4 : 163403.dasm (0.11 % of base)
4 : 595819.dasm (0.66 % of base)
4 : 612787.dasm (1.18 % of base)
Top file improvements (bytes):
-192 : 33870.dasm (-1.21 % of base)
-176 : 23454.dasm (-2.54 % of base)
-176 : 71635.dasm (-2.51 % of base)
-156 : 31668.dasm (-2.33 % of base)
-148 : 76762.dasm (-0.94 % of base)
-144 : 619055.dasm (-2.16 % of base)
-136 : 68100.dasm (-1.26 % of base)
-132 : 76816.dasm (-1.96 % of base)
-132 : 34860.dasm (-1.95 % of base)
-124 : 76856.dasm (-1.83 % of base)
-116 : 37598.dasm (-1.73 % of base)
-116 : 619040.dasm (-2.30 % of base)
-112 : 619033.dasm (-0.86 % of base)
-108 : 55869.dasm (-0.53 % of base)
-100 : 71673.dasm (-1.42 % of base)
-92 : 324628.dasm (-1.17 % of base)
-92 : 197635.dasm (-5.18 % of base)
-92 : 18772.dasm (-0.57 % of base)
-92 : 70895.dasm (-0.57 % of base)
-76 : 577886.dasm (-0.84 % of base)
64 total files with Code Size differences (46 improved, 18 regressed), 21 unchanged.
Top method regressions (bytes):
68 (3.53 % of base) : 206021.dasm - System.ComponentModel.Composition.Hosting.TypeCatalog:CreateIndex():System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]]:this (Tier1-OSR)
40 (2.11 % of base) : 614362.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
24 (1.15 % of base) : 182681.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
24 (0.15 % of base) : 280225.dasm - System.IO.Compression.Tests.ZipFileTestBase+<CreateFromDir>d__25:MoveNext():this (Tier1)
24 (0.43 % of base) : 416473.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteItem(System.Xml.XPath.XPathItem):this (Tier1)
20 (1.18 % of base) : 615638.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
20 (2.87 % of base) : 188062.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.__Canon]):ubyte:this (Tier1-OSR)
16 (5.97 % of base) : 181346.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
16 (2.16 % of base) : 186721.dasm - System.Collections.Generic.HashSet`1[ulong]:UnionWith(System.Collections.Generic.IEnumerable`1[ulong]):this (Tier1-OSR)
12 (1.05 % of base) : 610574.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
12 (1.69 % of base) : 280044.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
8 (0.38 % of base) : 598454.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
8 (0.55 % of base) : 181667.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
8 (0.35 % of base) : 181696.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
8 (0.83 % of base) : 280043.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
4 (1.18 % of base) : 612787.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
4 (0.11 % of base) : 163403.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitPropertyAccess(Microsoft.CodeAnalysis.CSharp.BoundPropertyAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
4 (0.66 % of base) : 595819.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:GetAttributesBag(byref,ubyte):Microsoft.CodeAnalysis.CustomAttributesBag`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (Tier1)
Top method improvements (bytes):
-192 (-1.21 % of base) : 33870.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-176 (-2.54 % of base) : 23454.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-176 (-2.51 % of base) : 71635.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-156 (-2.33 % of base) : 31668.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-148 (-0.94 % of base) : 76762.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-144 (-2.16 % of base) : 619055.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-136 (-1.26 % of base) : 68100.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-132 (-1.96 % of base) : 76816.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-132 (-1.95 % of base) : 34860.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-124 (-1.83 % of base) : 76856.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-116 (-1.73 % of base) : 37598.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-116 (-2.30 % of base) : 619040.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitForStatement(Microsoft.CodeAnalysis.CSharp.BoundForStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
-112 (-0.86 % of base) : 619033.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-108 (-0.53 % of base) : 55869.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-100 (-1.42 % of base) : 71673.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-92 (-0.57 % of base) : 18772.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-92 (-0.57 % of base) : 70895.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-92 (-5.18 % of base) : 197635.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[int,int]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
-92 (-1.17 % of base) : 324628.dasm - System.SpanTests.SpanTests:TestMatchMany_Char() (Tier1-OSR)
-76 (-0.84 % of base) : 577886.dasm - System.Text.Json.Tests.JsonDocumentTests:ReadJson400KB(Newtonsoft.Json.Linq.JToken):System.String (Tier1-OSR)
Top method regressions (percentages):
16 (5.97 % of base) : 181346.dasm - System.Collections.Generic.HashSet`1[int]:IsSubsetOfHashSetWithSameComparer(System.Collections.Generic.HashSet`1[int]):ubyte:this (Tier1-OSR)
68 (3.53 % of base) : 206021.dasm - System.ComponentModel.Composition.Hosting.TypeCatalog:CreateIndex():System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]]:this (Tier1-OSR)
20 (2.87 % of base) : 188062.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.__Canon]):ubyte:this (Tier1-OSR)
16 (2.16 % of base) : 186721.dasm - System.Collections.Generic.HashSet`1[ulong]:UnionWith(System.Collections.Generic.IEnumerable`1[ulong]):this (Tier1-OSR)
40 (2.11 % of base) : 614362.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
12 (1.69 % of base) : 280044.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
20 (1.18 % of base) : 615638.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (Tier1)
4 (1.18 % of base) : 612787.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
24 (1.15 % of base) : 182681.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestGetOrAddOrUpdate(int,int,int,int,ubyte) (Tier1-OSR)
12 (1.05 % of base) : 610574.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:ConvertConditionalOperandOrSwitchExpressionArmResult(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
8 (0.83 % of base) : 280043.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
4 (0.66 % of base) : 595819.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:GetAttributesBag(byref,ubyte):Microsoft.CodeAnalysis.CustomAttributesBag`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (Tier1)
8 (0.55 % of base) : 181667.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
24 (0.43 % of base) : 416473.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteItem(System.Xml.XPath.XPathItem):this (Tier1)
8 (0.38 % of base) : 598454.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
8 (0.35 % of base) : 181696.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
24 (0.15 % of base) : 280225.dasm - System.IO.Compression.Tests.ZipFileTestBase+<CreateFromDir>d__25:MoveNext():this (Tier1)
4 (0.11 % of base) : 163403.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitPropertyAccess(Microsoft.CodeAnalysis.CSharp.BoundPropertyAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
Top method improvements (percentages):
-20 (-20.83 % of base) : 159320.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 89299.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 62482.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-20 (-20.83 % of base) : 52294.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
-12 (-20.00 % of base) : 421279.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-28 (-17.07 % of base) : 599481.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-24 (-16.67 % of base) : 620251.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier1)
-24 (-14.63 % of base) : 593410.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-12 (-14.29 % of base) : 335798.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[double](double,double,System.String) (Tier1)
-32 (-13.33 % of base) : 349097.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (Tier1)
-24 (-12.50 % of base) : 620202.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`2[uint,ushort],System.__Canon]:CopyToPairs(System.Collections.Generic.KeyValuePair`2[System.ValueTuple`2[uint,ushort],System.__Canon][],int):this (Tier1)
-20 (-12.50 % of base) : 593530.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-12.00 % of base) : 199878.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 49219.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 569088.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 82272.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 283480.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-12.00 % of base) : 334950.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-20 (-11.63 % of base) : 162708.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-24 (-11.32 % of base) : 57982.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 171581040 (overridden on cmd)
Total bytes of diff: 171577108 (overridden on cmd)
Total bytes of delta: -3932 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-108 : 19288.dasm (-2.39 % of base)
-72 : 118449.dasm (-4.57 % of base)
-56 : 59737.dasm (-0.19 % of base)
-48 : 210606.dasm (-1.63 % of base)
-48 : 240517.dasm (-2.20 % of base)
-48 : 210966.dasm (-1.63 % of base)
-48 : 210719.dasm (-1.66 % of base)
-48 : 210894.dasm (-1.66 % of base)
-40 : 49183.dasm (-0.48 % of base)
-40 : 97142.dasm (-2.42 % of base)
-40 : 5108.dasm (-0.48 % of base)
-40 : 43514.dasm (-0.48 % of base)
-36 : 78353.dasm (-10.59 % of base)
-36 : 56992.dasm (-7.89 % of base)
-32 : 12811.dasm (-1.77 % of base)
-32 : 13852.dasm (-7.92 % of base)
-32 : 5911.dasm (-0.97 % of base)
-32 : 157232.dasm (-13.33 % of base)
-32 : 169838.dasm (-1.20 % of base)
-32 : 195781.dasm (-6.06 % of base)
53 total files with Code Size differences (53 improved, 0 regressed), 16 unchanged.
Top method improvements (bytes):
-108 (-2.39 % of base) : 19288.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 118449.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-56 (-0.19 % of base) : 59737.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-48 (-2.20 % of base) : 240517.dasm - System.Speech.Internal.SrgsParser.XmlParser:ProcessChildNodes(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IElement,System.Speech.Internal.SrgsParser.IRule,System.String):ubyte:this (FullOpts)
-48 (-1.63 % of base) : 210966.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeNumberTest() (FullOpts)
-48 (-1.63 % of base) : 210606.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeTest() (FullOpts)
-48 (-1.66 % of base) : 210719.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
-48 (-1.66 % of base) : 210894.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
-40 (-0.48 % of base) : 49183.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-0.48 % of base) : 5108.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-0.48 % of base) : 43514.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-40 (-2.42 % of base) : 97142.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-36 (-7.89 % of base) : 56992.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-36 (-10.59 % of base) : 78353.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-32 (-7.92 % of base) : 13852.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-32 (-1.77 % of base) : 12811.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-32 (-0.97 % of base) : 5911.dasm - Microsoft.CodeAnalysis.SourceOutputNode`1[System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.ValueTuple`2[System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.GeneratedSourceText],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.Diagnostic]]]:this (FullOpts)
-32 (-1.20 % of base) : 169838.dasm - System.Collections.ObjectModel.Tests.KeyedCollectionTests`2[int,System.__Canon]:Threshold(int,System.Collections.ObjectModel.Tests.Named`1[System.__Canon]):this (FullOpts)
-32 (-13.33 % of base) : 157232.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-32 (-6.06 % of base) : 195793.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:CreateRaw[int](int,int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
Top method improvements (percentages):
-24 (-30.00 % of base) : 145928.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-24 (-17.14 % of base) : 49477.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 43769.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-24 (-17.14 % of base) : 5521.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-32 (-13.33 % of base) : 157232.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-36 (-10.59 % of base) : 78353.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-12 (-10.00 % of base) : 314143.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-20 (-9.09 % of base) : 157180.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-8.77 % of base) : 11227.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 15652.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-32 (-7.92 % of base) : 13852.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-36 (-7.89 % of base) : 56992.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-7.41 % of base) : 157185.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-7.35 % of base) : 278319.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-20 (-7.14 % of base) : 52316.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.94 % of base) : 45302.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-20 (-6.76 % of base) : 15092.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-28 (-6.67 % of base) : 21198.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-6.67 % of base) : 21185.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-20 (-6.41 % of base) : 13356.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (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: 15904856 (overridden on cmd)
Total bytes of diff: 15903480 (overridden on cmd)
Total bytes of delta: -1376 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-224 : 4500.dasm (-37.09 % of base)
-108 : 20884.dasm (-2.28 % of base)
-72 : 5210.dasm (-4.57 % of base)
-64 : 8600.dasm (-3.06 % of base)
-48 : 11542.dasm (-3.23 % of base)
-36 : 26195.dasm (-7.89 % of base)
-32 : 7278.dasm (-5.76 % of base)
-32 : 1487.dasm (-3.36 % of base)
-32 : 21037.dasm (-2.03 % of base)
-28 : 10125.dasm (-20.59 % of base)
-28 : 14004.dasm (-6.67 % of base)
-28 : 23904.dasm (-5.56 % of base)
-28 : 10128.dasm (-3.68 % of base)
-28 : 10083.dasm (-2.19 % of base)
-28 : 14046.dasm (-6.67 % of base)
-24 : 20690.dasm (-1.50 % of base)
-24 : 21598.dasm (-1.97 % of base)
-24 : 24439.dasm (-1.12 % of base)
-24 : 29698.dasm (-3.75 % of base)
-24 : 18448.dasm (-0.36 % of base)
49 total files with Code Size differences (49 improved, 0 regressed), 4 unchanged.
Top method improvements (bytes):
-224 (-37.09 % of base) : 4500.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-108 (-2.28 % of base) : 20884.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-72 (-4.57 % of base) : 5210.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-64 (-3.06 % of base) : 8600.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-48 (-3.23 % of base) : 11542.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-36 (-7.89 % of base) : 26195.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-3.36 % of base) : 1487.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-32 (-5.76 % of base) : 7278.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-32 (-2.03 % of base) : 21037.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-28 (-2.19 % of base) : 10083.dasm - FSharp.Compiler.AccessibilityLogic:IsPropInfoAccessible(FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.Infos+PropInfo):ubyte (FullOpts)
-28 (-20.59 % of base) : 10125.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-28 (-3.68 % of base) : 10128.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-28 (-5.56 % of base) : 23904.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-28 (-6.67 % of base) : 14046.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-6.67 % of base) : 14004.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-2.88 % of base) : 1094.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-24 (-1.50 % of base) : 20690.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
-24 (-0.36 % of base) : 18448.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-1.12 % of base) : 24439.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-24 (-1.97 % of base) : 21598.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:DecodeMemberNotNullWhenAttribute[System.__Canon](Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref) (FullOpts)
Top method improvements (percentages):
-224 (-37.09 % of base) : 4500.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-28 (-20.59 % of base) : 10125.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-20 (-8.93 % of base) : 22468.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-20 (-7.94 % of base) : 23926.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-36 (-7.89 % of base) : 26195.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-20 (-7.35 % of base) : 23842.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-28 (-6.67 % of base) : 14046.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-28 (-6.67 % of base) : 14004.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-32 (-5.76 % of base) : 7278.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-28 (-5.56 % of base) : 23904.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-12 (-4.84 % of base) : 27471.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-72 (-4.57 % of base) : 5210.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-16 (-4.00 % of base) : 19514.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-8 (-3.92 % of base) : 20923.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
-20 (-3.79 % of base) : 26131.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GetCorrespondingBinaryOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):int (FullOpts)
-24 (-3.75 % of base) : 29698.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
-28 (-3.68 % of base) : 10128.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-8 (-3.64 % of base) : 20924.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
-12 (-3.57 % of base) : 13792.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-32 (-3.36 % of base) : 1487.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (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: 3970816 (overridden on cmd)
Total bytes of diff: 3970352 (overridden on cmd)
Total bytes of delta: -464 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-96 : 12788.dasm (-4.47 % of base)
-96 : 7043.dasm (-4.47 % of base)
-40 : 12188.dasm (-3.38 % of base)
-36 : 8204.dasm (-7.14 % of base)
-36 : 13895.dasm (-7.14 % of base)
-24 : 13880.dasm (-6.25 % of base)
-24 : 8182.dasm (-6.25 % of base)
-24 : 13881.dasm (-5.31 % of base)
-24 : 8191.dasm (-5.31 % of base)
-12 : 11119.dasm (-0.77 % of base)
-12 : 15089.dasm (-0.44 % of base)
-12 : 11253.dasm (-0.44 % of base)
-12 : 7195.dasm (-0.62 % of base)
-12 : 8514.dasm (-0.36 % of base)
-4 : 427.dasm (-0.18 % of base)
15 total files with Code Size differences (15 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-96 (-4.47 % of base) : 12788.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-96 (-4.47 % of base) : 7043.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-40 (-3.38 % of base) : 12188.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-36 (-7.14 % of base) : 8204.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-36 (-7.14 % of base) : 13895.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-24 (-5.31 % of base) : 13881.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-24 (-5.31 % of base) : 8191.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-24 (-6.25 % of base) : 13880.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-24 (-6.25 % of base) : 8182.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-12 (-0.44 % of base) : 15089.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.44 % of base) : 11253.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.36 % of base) : 8514.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.77 % of base) : 11119.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-12 (-0.62 % of base) : 7195.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-4 (-0.18 % of base) : 427.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
Top method improvements (percentages):
-36 (-7.14 % of base) : 8204.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-36 (-7.14 % of base) : 13895.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-24 (-6.25 % of base) : 13880.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-24 (-6.25 % of base) : 8182.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-24 (-5.31 % of base) : 13881.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-24 (-5.31 % of base) : 8191.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-96 (-4.47 % of base) : 12788.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-96 (-4.47 % of base) : 7043.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-40 (-3.38 % of base) : 12188.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-12 (-0.77 % of base) : 11119.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-12 (-0.62 % of base) : 7195.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-12 (-0.44 % of base) : 11253.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.44 % of base) : 15089.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-12 (-0.36 % of base) : 8514.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-4 (-0.18 % of base) : 427.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
15 total methods with Code Size differences (15 improved, 0 regressed).
windows x64
Diffs are based on 2,512,204 contexts (997,391 MinOpts, 1,514,813 FullOpts).
MISSED contexts: 8 (0.00%)
Overall (-52,115 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| aspnet.run.windows.x64.checked.mch |
47,040,101 |
-7,282 |
| benchmarks.run.windows.x64.checked.mch |
8,742,530 |
-412 |
| benchmarks.run_pgo.windows.x64.checked.mch |
36,230,062 |
-5,079 |
| benchmarks.run_tiered.windows.x64.checked.mch |
12,416,181 |
-217 |
| coreclr_tests.run.windows.x64.checked.mch |
393,193,298 |
-5,849 |
| libraries.crossgen2.windows.x64.checked.mch |
39,486,354 |
-1,631 |
| libraries.pmi.windows.x64.checked.mch |
61,663,311 |
-3,447 |
| libraries_tests.run.windows.x64.Release.mch |
282,109,609 |
-22,885 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
137,066,325 |
-3,891 |
| realworld.run.windows.x64.checked.mch |
14,130,936 |
-1,130 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
5,083,247 |
-292 |
FullOpts (-52,115 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| aspnet.run.windows.x64.checked.mch |
28,549,052 |
-7,282 |
| benchmarks.run.windows.x64.checked.mch |
8,742,167 |
-412 |
| benchmarks.run_pgo.windows.x64.checked.mch |
22,059,406 |
-5,079 |
| benchmarks.run_tiered.windows.x64.checked.mch |
3,316,942 |
-217 |
| coreclr_tests.run.windows.x64.checked.mch |
120,404,444 |
-5,849 |
| libraries.crossgen2.windows.x64.checked.mch |
39,485,167 |
-1,631 |
| libraries.pmi.windows.x64.checked.mch |
61,549,790 |
-3,447 |
| libraries_tests.run.windows.x64.Release.mch |
106,251,291 |
-22,885 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
126,447,219 |
-3,891 |
| realworld.run.windows.x64.checked.mch |
13,744,327 |
-1,130 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
5,082,300 |
-292 |
Example diffs
aspnet.run.windows.x64.checked.mch
-24 (-18.90%) : 119069.dasm - System.Collections.Generic.Stack1[System.Collections.Generic.KeyValuePair2[System.Canon,System.Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 6.40) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 5.80) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> rdx single-def
; V02 loc0 [V02,T03] ( 4, 3.20) int -> rcx
; V03 loc1 [V03,T05] ( 3, 2.60) ref -> r8 class-hnd exact single-def <<unknown class>>
@@ -19,9 +19,9 @@
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.key (fldOffset=0x0)" P-INDEP
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.value (fldOffset=0x8)" P-INDEP
; V09 cse0 [V09,T06] ( 3, 1.80) byref -> rbp "CSE - moderate"
-; V10 rat0 [V10,T04] ( 2, 2.40) long -> rax "Spilling to split statement for tree"
+;* V10 rat0 [V10,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V11 rat1 [V11,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V12 rat2 [V12,T02] ( 2, 2.40) long -> rax "fgMakeTemp is creating a new local variable"
+;* V12 rat2 [V12,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -31,10 +31,9 @@ G_M7797_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
push rbp
push rbx
sub rsp, 40
- mov qword ptr [rsp+0x20], rcx
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=16 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M7797_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
; byrRegs +[rdx]
mov ecx, dword ptr [rbx+0x10]
@@ -42,7 +41,7 @@ G_M7797_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, b
mov r8, gword ptr [rbx+0x08]
; gcrRegs +[r8]
cmp dword ptr [r8+0x08], ecx
- jbe SHORT G_M7797_IG05
+ jbe SHORT G_M7797_IG04
;; size=15 bbWeight=1 PerfScore 8.25
G_M7797_IG03: ; bbWeight=0.60, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {rdx}, byref, isz
inc dword ptr [rbx+0x14]
@@ -59,24 +58,15 @@ G_M7797_IG03: ; bbWeight=0.60, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {r
; gcrRegs -[r8]
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_BYREF
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x20]
- test rax, rax
- jne SHORT G_M7797_IG07
- ;; size=52 bbWeight=0.60 PerfScore 10.52
-G_M7797_IG04: ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
- ; byrRegs -[rsi rdi]
- jmp SHORT G_M7797_IG07
- ;; size=2 bbWeight=0.12 PerfScore 0.24
-G_M7797_IG05: ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
- ; byrRegs -[rbp] +[rdx]
+ jmp SHORT G_M7797_IG06
+ ;; size=35 bbWeight=0.60 PerfScore 6.16
+G_M7797_IG04: ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+ ; byrRegs -[rbp rsi rdi] +[rdx]
xor eax, eax
mov qword ptr [rdx], rax
mov qword ptr [rdx+0x08], rax
;; size=9 bbWeight=0.40 PerfScore 0.90
-G_M7797_IG06: ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M7797_IG05: ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rdx]
add rsp, 40
pop rbx
@@ -85,14 +75,14 @@ G_M7797_IG06: ; bbWeight=0.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
pop rdi
ret
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M7797_IG07: ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M7797_IG06: ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
; byrRegs +[rbp]
xor eax, eax
mov qword ptr [rbp], rax
mov qword ptr [rbp+0x08], rax
mov eax, 1
;; size=15 bbWeight=0.60 PerfScore 1.50
-G_M7797_IG08: ; bbWeight=0.60, epilog, nogc, extend
+G_M7797_IG07: ; bbWeight=0.60, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -101,7 +91,7 @@ G_M7797_IG08: ; bbWeight=0.60, epilog, nogc, extend
ret
;; size=9 bbWeight=0.60 PerfScore 1.95
-; Total bytes of code 127, prolog size 13, PerfScore 30.16, instruction count 47, allocated bytes for code 127 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 103, prolog size 8, PerfScore 24.56, instruction count 40, allocated bytes for code 103 (MethodHash=2125e18a) for method System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
-24 (-18.60%) : 11089.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 10, 9.09) ref -> rbx this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V00 this [V00,T00] ( 9, 8.08) ref -> rbx this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 7, 4.10) int -> r9 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,43 +21,34 @@
; V09 cse0 [V09,T06] ( 4, 3.06) int -> r8 "CSE - aggressive"
; V10 cse1 [V10,T07] ( 3, 3.01) int -> r8 "CSE - aggressive"
; V11 cse2 [V11,T09] ( 3, 0.09) ref -> rcx "CSE - conservative"
-; V12 rat0 [V12,T05] ( 2, 4.04) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T08] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T04] ( 2, 4.04) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T04] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 48
G_M30513_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbx
sub rsp, 48
- mov qword ptr [rsp+0x28], rcx
mov rbx, rcx
; gcrRegs +[rbx]
mov r9d, edx
- ;; size=16 bbWeight=1 PerfScore 2.75
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M30513_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rbx+0x10]
cmp r9d, r8d
- jae SHORT G_M30513_IG10
+ jae SHORT G_M30513_IG09
;; size=9 bbWeight=1 PerfScore 3.25
G_M30513_IG03: ; bbWeight=1.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
dec r8d
mov dword ptr [rbx+0x10], r8d
cmp r9d, r8d
- jl SHORT G_M30513_IG06
+ jl SHORT G_M30513_IG05
;; size=12 bbWeight=1.01 PerfScore 2.52
G_M30513_IG04: ; bbWeight=1.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x78]
- test rax, rax
- jne SHORT G_M30513_IG07
- ;; size=19 bbWeight=1.01 PerfScore 9.34
-G_M30513_IG05: ; bbWeight=0.20, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M30513_IG07
- ;; size=2 bbWeight=0.20 PerfScore 0.40
-G_M30513_IG06: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M30513_IG06
+ ;; size=2 bbWeight=1.01 PerfScore 2.02
+G_M30513_IG05: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
sub r8d, r9d
mov dword ptr [rsp+0x20], r8d
mov rcx, gword ptr [rbx+0x08]
@@ -70,35 +61,35 @@ G_M30513_IG06: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
jmp SHORT G_M30513_IG04
;; size=27 bbWeight=0.03 PerfScore 0.27
-G_M30513_IG07: ; bbWeight=1.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M30513_IG06: ; bbWeight=1.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbx+0x08]
; gcrRegs +[rax]
movsxd rcx, dword ptr [rbx+0x10]
mov edx, dword ptr [rax+0x08]
cmp rcx, rdx
- jae SHORT G_M30513_IG09
+ jae SHORT G_M30513_IG08
xor rdx, rdx
; gcrRegs +[rdx]
mov gword ptr [rax+8*rcx+0x10], rdx
inc dword ptr [rbx+0x14]
;; size=26 bbWeight=1.01 PerfScore 13.63
-G_M30513_IG08: ; bbWeight=1.01, epilog, nogc, extend
+G_M30513_IG07: ; bbWeight=1.01, epilog, nogc, extend
add rsp, 48
pop rbx
ret
;; size=6 bbWeight=1.01 PerfScore 1.77
-G_M30513_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M30513_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M30513_IG10: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M30513_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 129, prolog size 10, PerfScore 33.92, instruction count 40, allocated bytes for code 129 (MethodHash=744488ce) for method System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
+; Total bytes of code 105, prolog size 5, PerfScore 25.20, instruction count 33, allocated bytes for code 105 (MethodHash=744488ce) for method System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
; ============================================================
Unwind Info:
-24 (-17.39%) : 116049.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,63 +9,54 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 6, 4.65) ref -> rbx this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]>
+; V00 this [V00,T00] ( 5, 3.83) ref -> rbx this class-hnd single-def <System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]>
; V01 arg1 [V01,T02] ( 5, 3 ) byref -> rsi single-def
; V02 loc0 [V02,T01] ( 6, 5.31) ref -> rdi class-hnd exact single-def <<unknown class>>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V05 tmp2 [V05,T03] ( 3, 4.96) byref -> rcx single-def "Inlining Arg"
; V06 tmp3 [V06,T06] ( 2, 3.31) ref -> rdx class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V07 rat0 [V07,T05] ( 2, 3.31) long -> rcx "Spilling to split statement for tree"
+;* V07 rat0 [V07,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V08 rat1 [V08,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V09 rat2 [V09,T04] ( 2, 3.31) long -> rcx "fgMakeTemp is creating a new local variable"
+;* V09 rat2 [V09,T04] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M23155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rdi
push rsi
push rbx
- sub rsp, 48
- mov qword ptr [rsp+0x28], rcx
+ sub rsp, 32
mov rbx, rcx
; gcrRegs +[rbx]
mov rsi, rdx
; byrRegs +[rsi]
- ;; size=18 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M23155_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M23155_IG05
+ je SHORT G_M23155_IG04
;; size=9 bbWeight=1 PerfScore 3.25
G_M23155_IG03: ; bbWeight=0.83, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
- mov rcx, qword ptr [rbx]
- mov rcx, qword ptr [rcx+0x30]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x28]
- test rcx, rcx
- jne SHORT G_M23155_IG07
- ;; size=19 bbWeight=0.83 PerfScore 7.65
-G_M23155_IG04: ; bbWeight=0.17, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
- jmp SHORT G_M23155_IG07
- ;; size=2 bbWeight=0.17 PerfScore 0.33
-G_M23155_IG05: ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+ jmp SHORT G_M23155_IG06
+ ;; size=2 bbWeight=0.83 PerfScore 1.65
+G_M23155_IG04: ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rsi], rax
;; size=5 bbWeight=0.17 PerfScore 0.22
-G_M23155_IG06: ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M23155_IG05: ; bbWeight=0.17, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rax]
; byrRegs -[rsi]
- add rsp, 48
+ add rsp, 32
pop rbx
pop rsi
pop rdi
ret
;; size=8 bbWeight=0.17 PerfScore 0.48
-G_M23155_IG07: ; bbWeight=0.83, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, gcvars, byref, isz
+G_M23155_IG06: ; bbWeight=0.83, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, gcvars, byref, isz
; gcrRegs +[rdi]
; byrRegs +[rsi]
lea rcx, bword ptr [rbx+0x08]
@@ -73,7 +64,7 @@ G_M23155_IG07: ; bbWeight=0.83, gcVars=0000000000000000 {}, gcrefRegs=008
mov rdx, gword ptr [rdi+0x10]
; gcrRegs +[rdx]
test rcx, rcx
- je SHORT G_M23155_IG12
+ je SHORT G_M23155_IG11
mov r8, rdi
; gcrRegs +[r8]
call <unknown method>
@@ -81,9 +72,9 @@ G_M23155_IG07: ; bbWeight=0.83, gcVars=0000000000000000 {}, gcrefRegs=008
; byrRegs -[rcx]
; gcr arg pop 0
cmp rax, rdi
- jne SHORT G_M23155_IG10
+ jne SHORT G_M23155_IG09
;; size=26 bbWeight=0.83 PerfScore 5.17
-G_M23155_IG08: ; bbWeight=0.83, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+G_M23155_IG07: ; bbWeight=0.83, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rax]
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
@@ -94,29 +85,29 @@ G_M23155_IG08: ; bbWeight=0.83, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040
; byrRegs -[rcx rsi]
mov eax, 1
;; size=17 bbWeight=0.83 PerfScore 2.89
-G_M23155_IG09: ; bbWeight=0.83, epilog, nogc, extend
- add rsp, 48
+G_M23155_IG08: ; bbWeight=0.83, epilog, nogc, extend
+ add rsp, 32
pop rbx
pop rsi
pop rdi
ret
;; size=8 bbWeight=0.83 PerfScore 2.27
-G_M23155_IG10: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref
+G_M23155_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, gcvars, byref
; byrRegs +[rsi]
mov rcx, rbx
; gcrRegs +[rcx]
mov rdx, rsi
; byrRegs +[rdx]
;; size=6 bbWeight=0.00 PerfScore 0.00
-G_M23155_IG11: ; bbWeight=0.00, epilog, nogc, extend
- add rsp, 48
+G_M23155_IG10: ; bbWeight=0.00, epilog, nogc, extend
+ add rsp, 32
pop rbx
pop rsi
pop rdi
tail.jmp [System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPopCore(byref):ubyte:this]
; gcr arg pop 0
;; size=13 bbWeight=0.00 PerfScore 0.00
-G_M23155_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M23155_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx]
; byrRegs -[rdx rsi]
call [System.ThrowHelper:ThrowNullReferenceException()]
@@ -124,7 +115,7 @@ G_M23155_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 138, prolog size 18, PerfScore 27.01, instruction count 50, allocated bytes for code 138 (MethodHash=4aafa58c) for method System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 114, prolog size 13, PerfScore 19.68, instruction count 43, allocated bytes for code 114 (MethodHash=4aafa58c) for method System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -137,7 +128,7 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
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)
+4 (+0.32%) : 20529.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryGetValue(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref):ubyte:this (Tier1)
@@ -8,7 +8,7 @@
; 14 inlinees with PGO data; 20 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T14] ( 4, 3.50) ref -> [rsp+0x120] this class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]>
+; V00 this [V00,T14] ( 3, 3 ) ref -> [rsp+0x120] this class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]>
; V01 arg1 [V01,T00] ( 24, 41 ) byref -> rbx ld-addr-op single-def
; V02 arg2 [V02,T17] ( 5, 3.50) byref -> [rsp+0x130] single-def
; V03 loc0 [V03,T27] ( 6, 4 ) ref -> rbp class-hnd exact single-def <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]>
@@ -53,7 +53,7 @@
;* V42 tmp33 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V43 tmp34 [V43,T26] ( 2, 4.38) byref -> rcx "impAppendStmt"
; V44 tmp35 [V44,T48] ( 2, 1 ) int -> r12 "Inline return value spill temp"
-; V45 tmp36 [V45 ] ( 3, 3 ) struct (40) [rsp+0xA8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
+; V45 tmp36 [V45 ] ( 3, 3 ) struct (40) [rsp+0xB0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V47 tmp38 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V48 tmp39 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
@@ -68,28 +68,28 @@
; V57 tmp48 [V57,T07] ( 5, 9.45) ref -> r12 "V23.[008..016)"
; V58 tmp49 [V58,T05] ( 5, 9.64) ref -> rbp "V23.[016..024)"
; V59 tmp50 [V59,T04] ( 6, 9.64) ref -> r14 "V23.[024..032)"
-; V60 tmp51 [V60,T30] ( 2, 4 ) int -> [rsp+0xA4] spill-single-def "V23.[032..036)"
+; V60 tmp51 [V60,T30] ( 2, 4 ) int -> [rsp+0xAC] spill-single-def "V23.[032..036)"
; V61 tmp52 [V61,T31] ( 2, 4 ) ubyte -> rdx "V23.[036..037)"
; V62 tmp53 [V62,T08] ( 5, 9.44) ref -> r8 "V24.[000..008)"
-; V63 tmp54 [V63,T09] ( 5, 9.44) ref -> [rsp+0x48] "V24.[008..016)"
-; V64 tmp55 [V64,T13] ( 4, 7.64) ref -> [rsp+0x40] "V24.[016..024)"
-; V65 tmp56 [V65,T10] ( 5, 8.53) ref -> [rsp+0x38] "V24.[024..032)"
-; V66 tmp57 [V66,T32] ( 2, 4 ) int -> rdi "V24.[032..036)"
-; V67 tmp58 [V67,T33] ( 2, 4 ) ubyte -> rsi "V24.[036..037)"
+; V63 tmp54 [V63,T09] ( 5, 9.44) ref -> [rsp+0x50] "V24.[008..016)"
+; V64 tmp55 [V64,T13] ( 4, 7.64) ref -> [rsp+0x48] "V24.[016..024)"
+; V65 tmp56 [V65,T10] ( 5, 8.53) ref -> [rsp+0x40] "V24.[024..032)"
+; V66 tmp57 [V66,T32] ( 2, 4 ) int -> rsi "V24.[032..036)"
+; V67 tmp58 [V67,T33] ( 2, 4 ) ubyte -> rdi "V24.[036..037)"
; V68 tmp59 [V68,T47] ( 2, 1 ) ref -> rdx single-def "V45.[000..008)"
; V69 tmp60 [V69,T01] ( 7, 28 ) byref -> rdx "Spilling address for field-by-field copy"
-; V70 tmp61 [V70 ] ( 2, 8 ) struct (40) [rsp+0x78] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
-; V71 tmp62 [V71 ] ( 2, 8 ) struct (40) [rsp+0x50] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
+; V70 tmp61 [V70 ] ( 2, 8 ) struct (40) [rsp+0x80] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
+; V71 tmp62 [V71 ] ( 2, 8 ) struct (40) [rsp+0x58] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
; V72 cse0 [V72,T43] ( 3, 1.50) int -> rcx "CSE - conservative"
; V73 cse1 [V73,T44] ( 3, 1.50) int -> rcx "CSE - conservative"
-; V74 cse2 [V74,T18] ( 3, 5.44) int -> rsi "CSE - moderate"
+; V74 cse2 [V74,T18] ( 3, 5.44) int -> rdi "CSE - moderate"
; V75 cse3 [V75,T19] ( 3, 5.44) int -> r8 "CSE - moderate"
;* V76 rat0 [V76,T36] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V77 rat1 [V77,T49] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V78 rat2 [V78,T34] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V79 rat3 [V79,T37] ( 2, 2 ) long -> r8 "Spilling to split statement for tree"
+;* V79 rat3 [V79,T37] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V80 rat4 [V80,T50] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V81 rat5 [V81,T35] ( 2, 2 ) long -> r8 "fgMakeTemp is creating a new local variable"
+;* V81 rat5 [V81,T35] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 216
@@ -104,17 +104,21 @@ G_M37364_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 216
vzeroupper
+ xor eax, eax
+ mov qword ptr [rsp+0x58], rax
vxorps xmm4, xmm4, xmm4
- vmovdqu32 zmmword ptr [rsp+0x50], zmm4
- vmovdqu32 zmmword ptr [rsp+0x90], zmm4
- mov qword ptr [rsp+0xD0], rcx
+ vmovdqu32 zmmword ptr [rsp+0x60], zmm4
+ vmovdqa xmmword ptr [rsp+0xA0], xmm4
+ vmovdqa xmmword ptr [rsp+0xB0], xmm4
+ vmovdqa xmmword ptr [rsp+0xC0], xmm4
+ mov qword ptr [rsp+0xD0], rax
mov bword ptr [rsp+0x130], r8
; GC ptr vars +{V02}
mov rsi, rcx
; gcrRegs +[rsi]
mov rbx, rdx
; byrRegs +[rbx]
- ;; size=70 bbWeight=1 PerfScore 16.08
+ ;; size=93 bbWeight=1 PerfScore 21.33
G_M37364_IG02: ; bbWeight=1, gcVars=0000000000020000 {V02}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref
mov gword ptr [rsp+0x120], rsi
; GC ptr vars +{V00}
@@ -123,7 +127,7 @@ G_M37364_IG02: ; bbWeight=1, gcVars=0000000000020000 {V02}, gcrefRegs=004
mov r14, gword ptr [rbp+0x08]
; gcrRegs +[r14]
test r14, r14
- jne G_M37364_IG53
+ jne G_M37364_IG55
;; size=25 bbWeight=1 PerfScore 6.25
G_M37364_IG03: ; bbWeight=0.50, gcVars=0000000000024000 {V00 V02}, gcrefRegs=0020 {rbp}, byrefRegs=0008 {rbx}, gcvars, byref, isz
; gcrRegs -[rsi r14]
@@ -136,16 +140,16 @@ G_M37364_IG03: ; bbWeight=0.50, gcVars=0000000000024000 {V00 V02}, gcrefR
;; size=12 bbWeight=0.50 PerfScore 2.63
G_M37364_IG04: ; bbWeight=0.43, gcrefRegs=0124 {rdx rbp r8}, byrefRegs=0008 {rbx}, byref
test r8, r8
- je G_M37364_IG60
+ je G_M37364_IG61
;; size=9 bbWeight=0.43 PerfScore 0.54
G_M37364_IG05: ; bbWeight=0.43, gcrefRegs=0124 {rdx rbp r8}, byrefRegs=0008 {rbx}, byref
test rdx, rdx
- je G_M37364_IG60
+ je G_M37364_IG61
;; size=9 bbWeight=0.43 PerfScore 0.54
G_M37364_IG06: ; bbWeight=0.43, gcrefRegs=0124 {rdx rbp r8}, byrefRegs=0008 {rbx}, byref
mov ecx, dword ptr [r8+0x08]
cmp ecx, dword ptr [rdx+0x08]
- jne G_M37364_IG60
+ jne G_M37364_IG61
;; size=13 bbWeight=0.43 PerfScore 2.58
G_M37364_IG07: ; bbWeight=0.50, gcrefRegs=0124 {rdx rbp r8}, byrefRegs=0008 {rbx}, byref
lea rcx, bword ptr [r8+0x0C]
@@ -160,7 +164,7 @@ G_M37364_IG07: ; bbWeight=0.50, gcrefRegs=0124 {rdx rbp r8}, byrefRegs=00
; byrRegs -[rcx rdx]
; gcr arg pop 0
test eax, eax
- je G_M37364_IG60
+ je G_M37364_IG61
;; size=29 bbWeight=0.50 PerfScore 3.63
G_M37364_IG08: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0008 {rbx}, byref
mov rdx, gword ptr [rbx+0x10]
@@ -193,19 +197,19 @@ G_M37364_IG09: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0008 {rbx
imul r8, rax
shr r8, 32
cmp r8d, ecx
- jae G_M37364_IG59
+ jae G_M37364_IG60
mov r8d, r8d
mov r13, gword ptr [rdx+8*r8+0x10]
; gcrRegs +[r13]
test r13, r13
- je G_M37364_IG30
+ je G_M37364_IG51
;; size=58 bbWeight=0.50 PerfScore 8.75
G_M37364_IG10: ; bbWeight=4, gcrefRegs=2000 {r13}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rdx rbp]
cmp r15d, dword ptr [r13+0x18]
- jne G_M37364_IG33
+ jne G_M37364_IG35
;; size=10 bbWeight=4 PerfScore 16.00
-G_M37364_IG11: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0008 {rbx}, byref, isz
+G_M37364_IG11: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0008 {rbx}, byref
lea rdx, bword ptr [r13+0x20]
; byrRegs +[rdx]
mov rcx, gword ptr [rdx]
@@ -217,43 +221,43 @@ G_M37364_IG11: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0008 {rbx},
mov r14, gword ptr [rdx+0x18]
; gcrRegs +[r14]
mov eax, dword ptr [rdx+0x20]
- mov dword ptr [rsp+0xA4], eax
+ mov dword ptr [rsp+0xAC], eax
movzx rdx, byte ptr [rdx+0x24]
; byrRegs -[rdx]
mov r8, gword ptr [rbx]
; gcrRegs +[r8]
mov r10, gword ptr [rbx+0x08]
; gcrRegs +[r10]
- mov gword ptr [rsp+0x48], r10
+ mov gword ptr [rsp+0x50], r10
; GC ptr vars +{V63}
mov r9, gword ptr [rbx+0x10]
; gcrRegs +[r9]
- mov gword ptr [rsp+0x40], r9
+ mov gword ptr [rsp+0x48], r9
; GC ptr vars +{V64}
mov r11, gword ptr [rbx+0x18]
; gcrRegs +[r11]
- mov gword ptr [rsp+0x38], r11
+ mov gword ptr [rsp+0x40], r11
; GC ptr vars +{V65}
- mov edi, dword ptr [rbx+0x20]
- movzx rsi, byte ptr [rbx+0x24]
- cmp dl, sil
- jne G_M37364_IG33
+ mov esi, dword ptr [rbx+0x20]
+ movzx rdi, byte ptr [rbx+0x24]
+ cmp dl, dil
+ jne G_M37364_IG35
cmp rcx, r8
- je SHORT G_M37364_IG16
- ;; size=85 bbWeight=2 PerfScore 62.00
+ je G_M37364_IG32
+ ;; size=89 bbWeight=2 PerfScore 62.00
G_M37364_IG12: ; bbWeight=1.73, gcVars=0000000000026600 {V00 V02 V63 V64 V65}, gcrefRegs=7122 {rcx rbp r8 r12 r13 r14}, byrefRegs=0008 {rbx}, gcvars, byref
; gcrRegs -[r9-r11]
test rcx, rcx
- je G_M37364_IG33
+ je G_M37364_IG35
;; size=9 bbWeight=1.73 PerfScore 2.16
G_M37364_IG13: ; bbWeight=1.72, gcrefRegs=7122 {rcx rbp r8 r12 r13 r14}, byrefRegs=0008 {rbx}, byref
test r8, r8
- je G_M37364_IG33
+ je G_M37364_IG35
;; size=9 bbWeight=1.72 PerfScore 2.15
G_M37364_IG14: ; bbWeight=1.72, gcrefRegs=7122 {rcx rbp r8 r12 r13 r14}, byrefRegs=0008 {rbx}, byref
- mov esi, dword ptr [rcx+0x08]
- cmp esi, dword ptr [r8+0x08]
- jne G_M37364_IG33
+ mov edi, dword ptr [rcx+0x08]
+ cmp edi, dword ptr [r8+0x08]
+ jne G_M37364_IG35
;; size=13 bbWeight=1.72 PerfScore 10.31
G_M37364_IG15: ; bbWeight=2, gcrefRegs=7122 {rcx rbp r8 r12 r13 r14}, byrefRegs=0008 {rbx}, byref
add rcx, 12
@@ -261,42 +265,45 @@ G_M37364_IG15: ; bbWeight=2, gcrefRegs=7122 {rcx rbp r8 r12 r13 r14}, byr
; byrRegs +[rcx]
lea rdx, bword ptr [r8+0x0C]
; byrRegs +[rdx]
- add esi, esi
- mov r8d, esi
+ add edi, edi
+ mov r8d, edi
; gcrRegs -[r8]
call [<unknown method>]
; byrRegs -[rcx rdx]
; gcr arg pop 0
test eax, eax
- je G_M37364_IG33
+ je G_M37364_IG35
;; size=27 bbWeight=2 PerfScore 11.00
-G_M37364_IG16: ; bbWeight=2, gcrefRegs=7020 {rbp r12 r13 r14}, byrefRegs=0008 {rbx}, byref, isz
- mov eax, dword ptr [rsp+0xA4]
- cmp eax, edi
- jne G_M37364_IG33
+G_M37364_IG16: ; bbWeight=1, gcrefRegs=7020 {rbp r12 r13 r14}, byrefRegs=0008 {rbx}, byref
mov rdi, bword ptr [rsp+0x130]
; byrRegs +[rdi]
- mov r9, gword ptr [rsp+0x40]
+ ;; size=8 bbWeight=1 PerfScore 1.00
+G_M37364_IG17: ; bbWeight=2, gcVars=0000000000006600 {V00 V63 V64 V65}, gcrefRegs=7020 {rbp r12 r13 r14}, byrefRegs=0088 {rbx rdi}, gcvars, byref, isz
+ ; GC ptr vars -{V02}
+ mov eax, dword ptr [rsp+0xAC]
+ cmp eax, esi
+ jne G_M37364_IG31
+ mov r9, gword ptr [rsp+0x48]
; gcrRegs +[r9]
- mov r10, gword ptr [rsp+0x48]
+ mov r10, gword ptr [rsp+0x50]
; gcrRegs +[r10]
- mov r11, gword ptr [rsp+0x38]
+ mov r11, gword ptr [rsp+0x40]
; gcrRegs +[r11]
cmp rbp, r9
- je SHORT G_M37364_IG19
- ;; size=43 bbWeight=2 PerfScore 15.00
-G_M37364_IG17: ; bbWeight=1.64, gcVars=0000000000004000 {V00}, gcrefRegs=7E20 {rbp r9 r10 r11 r12 r13 r14}, byrefRegs=0088 {rbx rdi}, gcvars, byref
- ; GC ptr vars -{V02 V63 V64 V65}
+ je SHORT G_M37364_IG20
+ ;; size=35 bbWeight=2 PerfScore 13.00
...
+21 (+2.71%) : 69175.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
@@ -6,164 +6,164 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 0.01
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 0.01
; 0 inlinees with PGO data; 53 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 6, 2 ) ref -> rbx class-hnd single-def <Microsoft.AspNetCore.Builder.EndpointBuilder>
-;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor>
-;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
-;* V04 arg4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
-;* V05 arg5 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def
-;* V06 arg6 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def
-;* V07 arg7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V08 arg8 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V09 arg9 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V10 arg10 [V10,T09] ( 1, 0 ) ref -> [rbp+0x6A0] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V11 arg11 [V11,T10] ( 1, 0 ) ref -> [rbp+0x6A8] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V12 arg12 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V13 loc0 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor>
-;* V14 loc1 [V14 ] ( 0, 0 ) int -> zero-ref
-;* V15 loc2 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[System.Object]>
-;* V16 loc3 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Object>
-;* V17 loc4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V18 loc5 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata>
-;* V19 loc6 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V20 loc7 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata>
-;* V21 loc8 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint>
-;* V22 loc9 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ConsumesAttribute>
-;* V23 loc10 [V23 ] ( 0, 0 ) int -> zero-ref
-;* V24 loc11 [V24 ] ( 0, 0 ) int -> zero-ref
-;* V25 loc12 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-;* V26 loc13 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V27 loc14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
-;* V28 loc15 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V29 loc16 [V29 ] ( 0, 0 ) int -> zero-ref
-; V30 loc17 [V30,T00] ( 27,30102 ) ref -> [rbp+0x580] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V31 OutArgs [V31 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V32 tmp1 [V32 ] ( 0, 0 ) ref -> zero-ref
-;* V33 tmp2 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V34 tmp3 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.RouteNameMetadata>
-;* V35 tmp4 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V36 tmp5 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-;* V37 tmp6 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V38 tmp7 [V38 ] ( 0, 0 ) ref -> zero-ref
-;* V39 tmp8 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
-;* V40 tmp9 [V40 ] ( 0, 0 ) ref -> zero-ref
-;* V41 tmp10 [V41 ] ( 0, 0 ) ref -> zero-ref
-;* V42 tmp11 [V42 ] ( 0, 0 ) ref -> zero-ref
-;* V43 tmp12 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V44 tmp13 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressMatchingMetadata>
-;* V45 tmp14 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V46 tmp15 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata>
-;* V47 tmp16 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V48 tmp17 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V49 tmp18 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V50 tmp19 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V51 tmp20 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V52 tmp21 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V53 tmp22 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.Metadata.AcceptsMetadata>
-;* V54 tmp23 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V55 tmp24 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.HttpMethodMetadata>
-;* V56 tmp25 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V57 tmp26 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V58 tmp27 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V59 tmp28 [V59 ] ( 0, 0 ) ref -> zero-ref
-;* V60 tmp29 [V60 ] ( 0, 0 ) ref -> zero-ref
-;* V61 tmp30 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V62 tmp31 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
-;* V63 tmp32 [V63 ] ( 0, 0 ) ref -> zero-ref
-;* V64 tmp33 [V64 ] ( 0, 0 ) ref -> zero-ref
-;* V65 tmp34 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V66 tmp35 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V67 tmp36 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V68 tmp37 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V69 tmp38 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.DataTokensMetadata>
-;* V70 tmp39 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V71 tmp40 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V72 tmp41 [V72 ] ( 0, 0 ) ref -> zero-ref
-;* V73 tmp42 [V73 ] ( 0, 0 ) ref -> zero-ref
-;* V74 tmp43 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.EndpointNameMetadata>
-;* V75 tmp44 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V76 tmp45 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V77 tmp46 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V78 tmp47 [V78 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V79 tmp48 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V80 tmp49 [V80 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V81 tmp50 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V82 tmp51 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V83 tmp52 [V83 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V84 tmp53 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V85 tmp54 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V86 tmp55 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V87 tmp56 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V88 tmp57 [V88 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V89 tmp58 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V90 tmp59 [V90 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V91 tmp60 [V91 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V92 tmp61 [V92 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V93 tmp62 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V94 tmp63 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V95 tmp64 [V95 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V96 tmp65 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V97 tmp66 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V98 tmp67 [V98 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V99 tmp68 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V100 tmp69 [V100 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V101 tmp70 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V102 tmp71 [V102 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V103 tmp72 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V104 tmp73 [V104 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V105 tmp74 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V106 tmp75 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V107 tmp76 [V107 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V108 tmp77 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V109 tmp78 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V110 tmp79 [V110 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V111 tmp80 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V112 tmp81 [V112 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V113 tmp82 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-; V114 tmp83 [V114,T02] ( 5,20002 ) int -> rax "guarded devirt return temp"
-;* V115 tmp84 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V116 tmp85 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V117 tmp86 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V118 tmp87 [V118,T04] ( 0, 0 ) int -> zero-ref single-def "OSR entry state var"
-;* V119 tmp88 [V119 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V120 tmp89 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V121 tmp90 [V121 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V122 tmp91 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V123 tmp92 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V124 tmp93 [V124 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V125 tmp94 [V125 ] ( 0, 0 ) int -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V126 tmp95 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-;* V127 tmp96 [V127 ] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V128 tmp97 [V128 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V129 tmp98 [V129 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V130 tmp99 [V130 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
-;* V131 tmp100 [V131 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
-;* V132 tmp101 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V133 tmp102 [V133 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V134 tmp103 [V134 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V135 tmp104 [V135 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <<unknown class>>
-;* V136 tmp105 [V136 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V137 tmp106 [V137 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V138 tmp107 [V138 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V139 tmp108 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
-;* V140 tmp109 [V140 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IServiceProvider>
-;* V141 tmp110 [V141 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V142 tmp111 [V142 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V143 tmp112 [V143 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V144 tmp113 [V144 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V145 tmp114 [V145 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V146 tmp115 [V146 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V147 tmp116 [V147 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V148 tmp117 [V148 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V149 tmp118 [V149,T06] ( 6, 0 ) ref -> rax "argument with side effect"
-; V150 tmp119 [V150,T07] ( 3, 0 ) ref -> rax "argument with side effect"
-; V151 tmp120 [V151,T08] ( 3, 0 ) ref -> rax "argument with side effect"
-; V152 PSPSym [V152,T05] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
-; V153 cse0 [V153,T01] ( 10,20101 ) long -> rsi hoist multi-def "CSE - aggressive"
+; V00 arg0 [V00,T03] ( 6, 2 ) ref -> rbx class-hnd single-def <Microsoft.AspNetCore.Builder.EndpointBuilder>
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor>
+;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
+;* V04 arg4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
+;* V05 arg5 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def
+;* V06 arg6 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def
+;* V07 arg7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V08 arg8 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V09 arg9 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V10 arg10 [V10,T08] ( 1, 0 ) ref -> [rbp+0x6A0] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V11 arg11 [V11,T09] ( 1, 0 ) ref -> [rbp+0x6A8] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V12 arg12 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V13 loc0 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor>
+;* V14 loc1 [V14 ] ( 0, 0 ) int -> zero-ref
+;* V15 loc2 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[System.Object]>
+;* V16 loc3 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Object>
+;* V17 loc4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
+;* V18 loc5 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata>
+;* V19 loc6 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V20 loc7 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata>
+;* V21 loc8 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint>
+;* V22 loc9 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ConsumesAttribute>
+;* V23 loc10 [V23 ] ( 0, 0 ) int -> zero-ref
+;* V24 loc11 [V24 ] ( 0, 0 ) int -> zero-ref
+;* V25 loc12 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
+;* V26 loc13 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V27 loc14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
+;* V28 loc15 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V29 loc16 [V29 ] ( 0, 0 ) int -> zero-ref
+; V30 loc17 [V30,T00] ( 28,303 ) ref -> [rbp+0x580] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V31 OutArgs [V31 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V32 tmp1 [V32 ] ( 0, 0 ) ref -> zero-ref
+;* V33 tmp2 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V34 tmp3 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.RouteNameMetadata>
+;* V35 tmp4 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V36 tmp5 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
+;* V37 tmp6 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V38 tmp7 [V38 ] ( 0, 0 ) ref -> zero-ref
+;* V39 tmp8 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
+;* V40 tmp9 [V40 ] ( 0, 0 ) ref -> zero-ref
+;* V41 tmp10 [V41 ] ( 0, 0 ) ref -> zero-ref
+;* V42 tmp11 [V42 ] ( 0, 0 ) ref -> zero-ref
+;* V43 tmp12 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V44 tmp13 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressMatchingMetadata>
+;* V45 tmp14 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V46 tmp15 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata>
+;* V47 tmp16 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V48 tmp17 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V49 tmp18 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V50 tmp19 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V51 tmp20 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V52 tmp21 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V53 tmp22 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.Metadata.AcceptsMetadata>
+;* V54 tmp23 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V55 tmp24 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.HttpMethodMetadata>
+;* V56 tmp25 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
+;* V57 tmp26 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V58 tmp27 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
+;* V59 tmp28 [V59 ] ( 0, 0 ) ref -> zero-ref
+;* V60 tmp29 [V60 ] ( 0, 0 ) ref -> zero-ref
+;* V61 tmp30 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V62 tmp31 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
+;* V63 tmp32 [V63 ] ( 0, 0 ) ref -> zero-ref
+;* V64 tmp33 [V64 ] ( 0, 0 ) ref -> zero-ref
+;* V65 tmp34 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
+;* V66 tmp35 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V67 tmp36 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V68 tmp37 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V69 tmp38 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.DataTokensMetadata>
+;* V70 tmp39 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V71 tmp40 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V72 tmp41 [V72 ] ( 0, 0 ) ref -> zero-ref
+;* V73 tmp42 [V73 ] ( 0, 0 ) ref -> zero-ref
+;* V74 tmp43 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.EndpointNameMetadata>
+;* V75 tmp44 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V76 tmp45 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V77 tmp46 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V78 tmp47 [V78 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
+;* V79 tmp48 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
+;* V80 tmp49 [V80 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
+;* V81 tmp50 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V82 tmp51 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
+;* V83 tmp52 [V83 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
+;* V84 tmp53 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V85 tmp54 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V86 tmp55 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
...
+21 (+2.71%) : 78263.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
@@ -6,164 +6,164 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 0.01
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 0.01
; 0 inlinees with PGO data; 53 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 6, 2 ) ref -> rbx class-hnd single-def <Microsoft.AspNetCore.Builder.EndpointBuilder>
-;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor>
-;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
-;* V04 arg4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
-;* V05 arg5 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def
-;* V06 arg6 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def
-;* V07 arg7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V08 arg8 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V09 arg9 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V10 arg10 [V10,T09] ( 1, 0 ) ref -> [rbp+0x6A0] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V11 arg11 [V11,T10] ( 1, 0 ) ref -> [rbp+0x6A8] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V12 arg12 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V13 loc0 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor>
-;* V14 loc1 [V14 ] ( 0, 0 ) int -> zero-ref
-;* V15 loc2 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[System.Object]>
-;* V16 loc3 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Object>
-;* V17 loc4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V18 loc5 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata>
-;* V19 loc6 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V20 loc7 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata>
-;* V21 loc8 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint>
-;* V22 loc9 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ConsumesAttribute>
-;* V23 loc10 [V23 ] ( 0, 0 ) int -> zero-ref
-;* V24 loc11 [V24 ] ( 0, 0 ) int -> zero-ref
-;* V25 loc12 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-;* V26 loc13 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V27 loc14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
-;* V28 loc15 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V29 loc16 [V29 ] ( 0, 0 ) int -> zero-ref
-; V30 loc17 [V30,T00] ( 27,30102 ) ref -> [rbp+0x580] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-; V31 OutArgs [V31 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V32 tmp1 [V32 ] ( 0, 0 ) ref -> zero-ref
-;* V33 tmp2 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V34 tmp3 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.RouteNameMetadata>
-;* V35 tmp4 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V36 tmp5 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-;* V37 tmp6 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V38 tmp7 [V38 ] ( 0, 0 ) ref -> zero-ref
-;* V39 tmp8 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
-;* V40 tmp9 [V40 ] ( 0, 0 ) ref -> zero-ref
-;* V41 tmp10 [V41 ] ( 0, 0 ) ref -> zero-ref
-;* V42 tmp11 [V42 ] ( 0, 0 ) ref -> zero-ref
-;* V43 tmp12 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
-;* V44 tmp13 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressMatchingMetadata>
-;* V45 tmp14 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V46 tmp15 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata>
-;* V47 tmp16 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V48 tmp17 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V49 tmp18 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V50 tmp19 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V51 tmp20 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V52 tmp21 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V53 tmp22 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.Metadata.AcceptsMetadata>
-;* V54 tmp23 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V55 tmp24 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.HttpMethodMetadata>
-;* V56 tmp25 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V57 tmp26 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V58 tmp27 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V59 tmp28 [V59 ] ( 0, 0 ) ref -> zero-ref
-;* V60 tmp29 [V60 ] ( 0, 0 ) ref -> zero-ref
-;* V61 tmp30 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V62 tmp31 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
-;* V63 tmp32 [V63 ] ( 0, 0 ) ref -> zero-ref
-;* V64 tmp33 [V64 ] ( 0, 0 ) ref -> zero-ref
-;* V65 tmp34 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V66 tmp35 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V67 tmp36 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V68 tmp37 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V69 tmp38 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.DataTokensMetadata>
-;* V70 tmp39 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V71 tmp40 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
-;* V72 tmp41 [V72 ] ( 0, 0 ) ref -> zero-ref
-;* V73 tmp42 [V73 ] ( 0, 0 ) ref -> zero-ref
-;* V74 tmp43 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.EndpointNameMetadata>
-;* V75 tmp44 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
-;* V76 tmp45 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V77 tmp46 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
-;* V78 tmp47 [V78 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V79 tmp48 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V80 tmp49 [V80 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V81 tmp50 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V82 tmp51 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V83 tmp52 [V83 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V84 tmp53 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V85 tmp54 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;* V86 tmp55 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V87 tmp56 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V88 tmp57 [V88 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V89 tmp58 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
-;* V90 tmp59 [V90 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V91 tmp60 [V91 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V92 tmp61 [V92 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V93 tmp62 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V94 tmp63 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V95 tmp64 [V95 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V96 tmp65 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V97 tmp66 [V97 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+SelectIPartitionIterator`2[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
-;* V98 tmp67 [V98 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V99 tmp68 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V100 tmp69 [V100 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V101 tmp70 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V102 tmp71 [V102 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
-;* V103 tmp72 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V104 tmp73 [V104 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V105 tmp74 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V106 tmp75 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
-;* V107 tmp76 [V107 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V108 tmp77 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V109 tmp78 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
-;* V110 tmp79 [V110 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V111 tmp80 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V112 tmp81 [V112 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
-;* V113 tmp82 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
-; V114 tmp83 [V114,T02] ( 5,20002 ) int -> rax "guarded devirt return temp"
-;* V115 tmp84 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V116 tmp85 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V117 tmp86 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
-;* V118 tmp87 [V118,T04] ( 0, 0 ) int -> zero-ref single-def "OSR entry state var"
-;* V119 tmp88 [V119 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V120 tmp89 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V121 tmp90 [V121 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V122 tmp91 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V123 tmp92 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V124 tmp93 [V124 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V125 tmp94 [V125 ] ( 0, 0 ) int -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V126 tmp95 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-;* V127 tmp96 [V127 ] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V128 tmp97 [V128 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V129 tmp98 [V129 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V130 tmp99 [V130 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
-;* V131 tmp100 [V131 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
-;* V132 tmp101 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V133 tmp102 [V133 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V134 tmp103 [V134 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V135 tmp104 [V135 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <<unknown class>>
-;* V136 tmp105 [V136 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V137 tmp106 [V137 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V138 tmp107 [V138 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V139 tmp108 [V139 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
-;* V140 tmp109 [V140 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IServiceProvider>
-;* V141 tmp110 [V141 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V142 tmp111 [V142 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V143 tmp112 [V143 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V144 tmp113 [V144 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V145 tmp114 [V145 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V146 tmp115 [V146 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V147 tmp116 [V147 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V148 tmp117 [V148 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V149 tmp118 [V149,T06] ( 6, 0 ) ref -> rax "argument with side effect"
-; V150 tmp119 [V150,T07] ( 3, 0 ) ref -> rax "argument with side effect"
-; V151 tmp120 [V151,T08] ( 3, 0 ) ref -> rax "argument with side effect"
-; V152 PSPSym [V152,T05] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
-; V153 cse0 [V153,T01] ( 10,20101 ) long -> rsi hoist multi-def "CSE - aggressive"
+; V00 arg0 [V00,T03] ( 6, 2 ) ref -> rbx class-hnd single-def <Microsoft.AspNetCore.Builder.EndpointBuilder>
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor>
+;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
+;* V04 arg4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.AspNetCore.Routing.RouteValueDictionary>
+;* V05 arg5 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def
+;* V06 arg6 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def
+;* V07 arg7 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V08 arg8 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V09 arg9 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V10 arg10 [V10,T08] ( 1, 0 ) ref -> [rbp+0x6A0] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V11 arg11 [V11,T09] ( 1, 0 ) ref -> [rbp+0x6A8] class-hnd single-def tier0-frame <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V12 arg12 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+;* V13 loc0 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor>
+;* V14 loc1 [V14 ] ( 0, 0 ) int -> zero-ref
+;* V15 loc2 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[System.Object]>
+;* V16 loc3 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Object>
+;* V17 loc4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
+;* V18 loc5 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata>
+;* V19 loc6 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IEnumerator`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V20 loc7 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata>
+;* V21 loc8 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint>
+;* V22 loc9 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Mvc.ConsumesAttribute>
+;* V23 loc10 [V23 ] ( 0, 0 ) int -> zero-ref
+;* V24 loc11 [V24 ] ( 0, 0 ) int -> zero-ref
+;* V25 loc12 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
+;* V26 loc13 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V27 loc14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
+;* V28 loc15 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V29 loc16 [V29 ] ( 0, 0 ) int -> zero-ref
+; V30 loc17 [V30,T00] ( 28,303 ) ref -> [rbp+0x580] do-not-enreg[Z] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]>
+; V31 OutArgs [V31 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V32 tmp1 [V32 ] ( 0, 0 ) ref -> zero-ref
+;* V33 tmp2 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V34 tmp3 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.RouteNameMetadata>
+;* V35 tmp4 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V36 tmp5 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Func`3[Microsoft.AspNetCore.Http.EndpointFilterFactoryContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,Microsoft.AspNetCore.Http.EndpointFilterDelegate]]>
+;* V37 tmp6 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V38 tmp7 [V38 ] ( 0, 0 ) ref -> zero-ref
+;* V39 tmp8 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterFactoryContext>
+;* V40 tmp9 [V40 ] ( 0, 0 ) ref -> zero-ref
+;* V41 tmp10 [V41 ] ( 0, 0 ) ref -> zero-ref
+;* V42 tmp11 [V42 ] ( 0, 0 ) ref -> zero-ref
+;* V43 tmp12 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.EndpointFilterDelegate>
+;* V44 tmp13 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressMatchingMetadata>
+;* V45 tmp14 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V46 tmp15 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata>
+;* V47 tmp16 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V48 tmp17 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V49 tmp18 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintMetadata]>
+;* V50 tmp19 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V51 tmp20 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V52 tmp21 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V53 tmp22 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Http.Metadata.AcceptsMetadata>
+;* V54 tmp23 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V55 tmp24 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.HttpMethodMetadata>
+;* V56 tmp25 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
+;* V57 tmp26 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V58 tmp27 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[Microsoft.AspNetCore.Mvc.Filters.FilterDescriptor]>
+;* V59 tmp28 [V59 ] ( 0, 0 ) ref -> zero-ref
+;* V60 tmp29 [V60 ] ( 0, 0 ) ref -> zero-ref
+;* V61 tmp30 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V62 tmp31 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
+;* V63 tmp32 [V63 ] ( 0, 0 ) ref -> zero-ref
+;* V64 tmp33 [V64 ] ( 0, 0 ) ref -> zero-ref
+;* V65 tmp34 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata]>
+;* V66 tmp35 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V67 tmp36 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V68 tmp37 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V69 tmp38 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.DataTokensMetadata>
+;* V70 tmp39 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V71 tmp40 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
+;* V72 tmp41 [V72 ] ( 0, 0 ) ref -> zero-ref
+;* V73 tmp42 [V73 ] ( 0, 0 ) ref -> zero-ref
+;* V74 tmp43 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Routing.EndpointNameMetadata>
+;* V75 tmp44 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.IList`1[System.Object]>
+;* V76 tmp45 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V77 tmp46 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Collections.Generic.IList`1[System.Object]>
+;* V78 tmp47 [V78 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
+;* V79 tmp48 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
+;* V80 tmp49 [V80 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
+;* V81 tmp50 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V82 tmp51 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
+;* V83 tmp52 [V83 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
+;* V84 tmp53 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V85 tmp54 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
+;* V86 tmp55 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.List`1[System.Object]>
...
benchmarks.run.windows.x64.checked.mch
-24 (-11.94%) : 24369.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 4, 4 ) ref -> rbx this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T02] ( 3, 3 ) ref -> rbx this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T05] ( 3, 4 ) ref -> rsi ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V03 loc2 [V03 ] ( 10, 31 ) struct (16) [rsp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
+; V03 loc2 [V03 ] ( 10, 31 ) struct (16) [rsp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.__Canon>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
@@ -20,12 +20,12 @@
;* V09 tmp4 [V09,T07] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V10 tmp5 [V10,T01] ( 2, 8 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V11 tmp6 [V11,T00] ( 2, 32 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [rsp+0x20] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x8)" P-DEP
+; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [rsp+0x30] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x8)" P-DEP
;* V14 cse0 [V14,T08] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V15 rat0 [V15,T04] ( 2, 4 ) long -> rcx "Spilling to split statement for tree"
+;* V15 rat0 [V15,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V16 rat1 [V16,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V17 rat2 [V17,T03] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"
+;* V17 rat2 [V17,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 56
@@ -34,35 +34,28 @@ G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 56
xor eax, eax
- mov qword ptr [rsp+0x20], rax
mov qword ptr [rsp+0x28], rax
- mov qword ptr [rsp+0x30], rcx
+ mov qword ptr [rsp+0x30], rax
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=26 bbWeight=1 PerfScore 5.75
+ ;; size=21 bbWeight=1 PerfScore 4.75
G_M64146_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
xor rsi, rsi
; gcrRegs +[rsi]
mov rcx, gword ptr [rbx+0xA0]
; gcrRegs +[rcx]
- lea rdx, [rsp+0x20]
+ lea rdx, [rsp+0x28]
cmp dword ptr [rcx], ecx
call [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov rcx, qword ptr [rbx]
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x20]
- test rcx, rcx
- jne SHORT G_M64146_IG04
jmp SHORT G_M64146_IG04
- ;; size=43 bbWeight=1 PerfScore 20.00
+ ;; size=24 bbWeight=1 PerfScore 10.75
G_M64146_IG03: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
- cmp gword ptr [rsp+0x28], 0
+ cmp gword ptr [rsp+0x30], 0
je SHORT G_M64146_IG10
- mov rcx, gword ptr [rsp+0x28]
+ mov rcx, gword ptr [rsp+0x30]
; gcrRegs +[rcx]
cmp dword ptr [rcx], ecx
call [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Peek():System.__Canon:this]
@@ -73,31 +66,31 @@ G_M64146_IG03: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=24 bbWeight=2 PerfScore 20.50
G_M64146_IG04: ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- cmp gword ptr [rsp+0x28], 0
+ cmp gword ptr [rsp+0x30], 0
jne SHORT G_M64146_IG06
;; size=8 bbWeight=8 PerfScore 24.00
G_M64146_IG05: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- mov rcx, gword ptr [rsp+0x20]
+ mov rcx, gword ptr [rsp+0x28]
; gcrRegs +[rcx]
- mov gword ptr [rsp+0x28], rcx
+ mov gword ptr [rsp+0x30], rcx
jmp SHORT G_M64146_IG07
;; size=12 bbWeight=2 PerfScore 8.00
G_M64146_IG06: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
- mov rcx, gword ptr [rsp+0x28]
+ mov rcx, gword ptr [rsp+0x30]
; gcrRegs +[rcx]
cmp gword ptr [rcx+0x10], 0
je SHORT G_M64146_IG07
- mov rcx, gword ptr [rsp+0x28]
+ mov rcx, gword ptr [rsp+0x30]
cmp dword ptr [rcx], ecx
call [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this]
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- mov gword ptr [rsp+0x28], rax
+ mov gword ptr [rsp+0x30], rax
;; size=30 bbWeight=2 PerfScore 26.00
G_M64146_IG07: ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- mov rcx, gword ptr [rsp+0x28]
+ mov rcx, gword ptr [rsp+0x30]
; gcrRegs +[rcx]
cmp gword ptr [rcx+0x10], 0
jne SHORT G_M64146_IG03
@@ -134,7 +127,7 @@ G_M64146_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
int3
;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 201, prolog size 23, PerfScore 146.75, instruction count 54, allocated bytes for code 201 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 177, prolog size 18, PerfScore 136.50, instruction count 47, allocated bytes for code 177 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
-24 (-7.69%) : 3787.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -43,9 +43,9 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 7.50
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rsi+0x68], 0
- jne G_M29540_IG11
+ jne G_M29540_IG10
test rbx, rbx
- je G_M29540_IG12
+ je G_M29540_IG11
lea rcx, bword ptr [rbx+0xF4]
; byrRegs +[rcx]
mov edx, 1
@@ -53,7 +53,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
lock
cmpxchg dword ptr [rcx], edx
test eax, eax
- jne G_M29540_IG13
+ jne G_M29540_IG12
mov dword ptr [rbx+0xDC], 7
lea rcx, bword ptr [rbx+0x60]
mov rdx, rsi
@@ -62,18 +62,9 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp byte ptr [rbx+0xFA], 0
- jne SHORT G_M29540_IG04
+ je SHORT G_M29540_IG04
;; size=76 bbWeight=1 PerfScore 32.25
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M29540_IG05
- jmp SHORT G_M29540_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -85,7 +76,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=18 bbWeight=0.50 PerfScore 2.38
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0xB0]
; gcrRegs +[rcx]
lea rcx, bword ptr [rcx+0x08]
@@ -98,22 +89,22 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; byrRegs -[rcx]
nop
;; size=20 bbWeight=1 PerfScore 4.00
-G_M29540_IG06: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M29540_IG08
+ je SHORT G_M29540_IG07
;; size=11 bbWeight=1 PerfScore 6.00
-G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG06: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi]
mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M29540_IG09
+ jmp SHORT G_M29540_IG08
;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
+G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rdi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -124,14 +115,14 @@ G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0
; gcr arg pop 0
nop
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M29540_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx]
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M29540_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG09: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rsi
@@ -139,7 +130,7 @@ G_M29540_IG10: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.25
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -148,7 +139,7 @@ G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 0x1BCE
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -161,7 +152,7 @@ G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
; GC ptr vars +{V00 V01}
mov rcx, rbx
@@ -173,7 +164,7 @@ G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push rdi
@@ -184,7 +175,7 @@ G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp+0x20], rbp
lea rbp, [rbp+0x40]
;; size=21 bbWeight=0 PerfScore 0.00
-G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
; GC ptr vars -{V00 V01}
@@ -196,7 +187,7 @@ G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 312, prolog size 30, PerfScore 65.50, instruction count 86, allocated bytes for code 312 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 288, prolog size 30, PerfScore 61.38, instruction count 81, allocated bytes for code 288 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -231,4 +222,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG06..G_M29540_IG09) handled by [G_M29540_IG14..END) (class: 1000001)
+EH#0: try [G_M29540_IG05..G_M29540_IG08) handled by [G_M29540_IG13..END) (class: 1000001)
-24 (-7.69%) : 3832.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -43,9 +43,9 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 7.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rsi+0x68], 0
- jne G_M23091_IG11
+ jne G_M23091_IG10
test rbx, rbx
- je G_M23091_IG12
+ je G_M23091_IG11
lea rcx, bword ptr [rbx+0xF4]
; byrRegs +[rcx]
mov edx, 1
@@ -53,7 +53,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
lock
cmpxchg dword ptr [rcx], edx
test eax, eax
- jne G_M23091_IG13
+ jne G_M23091_IG12
mov dword ptr [rbx+0xDC], 4
lea rcx, bword ptr [rbx+0x60]
mov rdx, rsi
@@ -62,18 +62,9 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp byte ptr [rbx+0xFA], 0
- jne SHORT G_M23091_IG04
+ je SHORT G_M23091_IG04
;; size=76 bbWeight=1 PerfScore 32.25
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M23091_IG05
- jmp SHORT G_M23091_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -85,7 +76,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=18 bbWeight=0.50 PerfScore 2.38
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0xB0]
; gcrRegs +[rcx]
lea rcx, bword ptr [rcx+0x08]
@@ -98,22 +89,22 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; byrRegs -[rcx]
nop
;; size=20 bbWeight=1 PerfScore 4.00
-G_M23091_IG06: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M23091_IG08
+ je SHORT G_M23091_IG07
;; size=11 bbWeight=1 PerfScore 6.00
-G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG06: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi]
mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M23091_IG09
+ jmp SHORT G_M23091_IG08
;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
+G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rdi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -124,14 +115,14 @@ G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0
; gcr arg pop 0
nop
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M23091_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx]
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG09: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rsi
@@ -139,7 +130,7 @@ G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.25
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -148,7 +139,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 0x1BCE
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -161,7 +152,7 @@ G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
; GC ptr vars +{V00 V01}
mov rcx, rbx
@@ -173,7 +164,7 @@ G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push rdi
@@ -184,7 +175,7 @@ G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp+0x20], rbp
lea rbp, [rbp+0x40]
;; size=21 bbWeight=0 PerfScore 0.00
-G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
; GC ptr vars -{V00 V01}
@@ -196,7 +187,7 @@ G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 312, prolog size 30, PerfScore 65.50, instruction count 86, allocated bytes for code 312 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 288, prolog size 30, PerfScore 61.38, instruction count 81, allocated bytes for code 288 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -231,4 +222,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG06..G_M23091_IG09) handled by [G_M23091_IG14..END) (class: 1000001)
+EH#0: try [G_M23091_IG05..G_M23091_IG08) handled by [G_M23091_IG13..END) (class: 1000001)
-3 (-0.34%) : 13420.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -180,22 +180,9 @@ G_M11429_IG06: ; bbWeight=1, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp byte ptr [rbx+0xFA], 0
- jne SHORT G_M11429_IG08
+ je SHORT G_M11429_IG08
;; size=69 bbWeight=1 PerfScore 28.75
-G_M11429_IG07: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- mov rcx, gword ptr [rbx+0xB0]
- ; gcrRegs +[rcx]
- lea rcx, bword ptr [rcx+0x08]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx]
- ; byrRegs -[rcx]
- jmp SHORT G_M11429_IG09
- ;; size=21 bbWeight=1 PerfScore 5.75
-G_M11429_IG08: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M11429_IG07: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -206,8 +193,20 @@ G_M11429_IG08: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
- jmp SHORT G_M11429_IG07
- ;; size=20 bbWeight=0.50 PerfScore 3.38
+ ;; size=18 bbWeight=0.50 PerfScore 2.38
+G_M11429_IG08: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ mov rcx, gword ptr [rbx+0xB0]
+ ; gcrRegs +[rcx]
+ lea rcx, bword ptr [rcx+0x08]
+ ; gcrRegs -[rcx]
+ ; byrRegs +[rcx]
+ mov rdx, rbx
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ nop
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M11429_IG09: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rsi+0x08]
mov rcx, rbx
@@ -468,7 +467,7 @@ G_M11429_IG21: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 885, prolog size 36, PerfScore 104.12, instruction count 216, allocated bytes for code 885 (MethodHash=8b1ad35a) for method System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
+; Total bytes of code 882, prolog size 36, PerfScore 101.38, instruction count 215, allocated bytes for code 882 (MethodHash=8b1ad35a) for method System.Net.Sockets.Socket:ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-11 (-0.32%) : 16023.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts)
@@ -30,13 +30,13 @@
; V19 OutArgs [V19 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V21 tmp2 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-; V22 tmp3 [V22,T33] ( 3, 6 ) ref -> rcx class-hnd single-def "impAppendStmt" <<unknown class>>
-; V23 tmp4 [V23,T41] ( 3, 6 ) int -> rbx "impAppendStmt"
+; V22 tmp3 [V22,T32] ( 3, 6 ) ref -> rcx class-hnd single-def "impAppendStmt" <<unknown class>>
+; V23 tmp4 [V23,T40] ( 3, 6 ) int -> rbx "impAppendStmt"
;* V24 tmp5 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V25 tmp6 [V25 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V26 tmp7 [V26 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V27 tmp8 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V28 tmp9 [V28,T34] ( 3, 6 ) ref -> rcx class-hnd single-def "impAppendStmt" <<unknown class>>
+; V28 tmp9 [V28,T33] ( 3, 6 ) ref -> rcx class-hnd single-def "impAppendStmt" <<unknown class>>
;* V29 tmp10 [V29 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V30 tmp11 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V31 tmp12 [V31 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -45,7 +45,7 @@
; V34 tmp15 [V34,T124] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V35 tmp16 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp17 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp18 [V37,T35] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V37 tmp18 [V37,T34] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V38 tmp19 [V38 ] ( 0, 0 ) ref -> zero-ref
; V39 tmp20 [V39,T94] ( 2, 2 ) ref -> rcx single-def
;* V40 tmp21 [V40,T113] ( 0, 0 ) int -> zero-ref
@@ -63,14 +63,14 @@
;* V52 tmp33 [V52 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V53 tmp34 [V53 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V54 tmp35 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-; V55 tmp36 [V55,T36] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V55 tmp36 [V55,T35] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V56 tmp37 [V56,T62] ( 2, 4 ) int -> rdx "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V58 tmp39 [V58,T04] ( 12, 12 ) int -> rbx "Inline return value spill temp"
-; V59 tmp40 [V59,T42] ( 3, 6 ) int -> rbx "Inlining Arg"
-; V60 tmp41 [V60,T43] ( 3, 6 ) int -> rdx "Inlining Arg"
+; V59 tmp40 [V59,T41] ( 3, 6 ) int -> rbx "Inlining Arg"
+; V60 tmp41 [V60,T42] ( 3, 6 ) int -> rdx "Inlining Arg"
; V61 tmp42 [V61,T11] ( 4, 8 ) ref -> rdx class-hnd single-def "Inlining Arg" <ubyte[]>
-; V62 tmp43 [V62,T32] ( 4, 6 ) int -> r8 "Inlining Arg"
+; V62 tmp43 [V62,T43] ( 3, 6 ) int -> rcx "Inlining Arg"
;* V63 tmp44 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V64 tmp45 [V64 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[ubyte]>
; V65 tmp46 [V65,T27] ( 6, 6 ) byref -> registers "Inline stloc first use temp"
@@ -191,8 +191,8 @@
; V180 tmp161 [V180,T71] ( 2, 4 ) long -> r8 "Inlining Arg"
; V181 tmp162 [V181,T05] ( 6, 12 ) ref -> rcx class-hnd "Inlining Arg" <System.Threading.SemaphoreSlim>
; V182 tmp163 [V182,T08] ( 5, 10 ) byref -> rsi single-def "Inlining Arg"
-; V183 tmp164 [V183,T37] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
-; V184 tmp165 [V184,T38] ( 3, 6 ) byref -> rcx single-def "Inlining Arg"
+; V183 tmp164 [V183,T36] ( 3, 6 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1+StateMachineBox[int]>
+; V184 tmp165 [V184,T37] ( 3, 6 ) byref -> rcx single-def "Inlining Arg"
; V185 tmp166 [V185 ] ( 6, 6 ) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V186 tmp167 [V186 ] ( 6, 6 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V187 tmp168 [V187 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -257,17 +257,17 @@
;* V246 tmp227 [V246 ] ( 0, 0 ) int -> zero-ref "field V176._length (fldOffset=0x8)" P-INDEP
;* V247 tmp228 [V247 ] ( 0, 0 ) byref -> zero-ref single-def "field V177._reference (fldOffset=0x0)" P-INDEP
;* V248 tmp229 [V248 ] ( 0, 0 ) int -> zero-ref "field V177._length (fldOffset=0x8)" P-INDEP
-; V249 tmp230 [V249,T39] ( 3, 6 ) ref -> rcx single-def "argument with side effect"
+; V249 tmp230 [V249,T38] ( 3, 6 ) ref -> rcx single-def "argument with side effect"
; V250 tmp231 [V250 ] ( 4, 8 ) struct (16) [rbp-0xE0] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlyMemory`1[ubyte]>
; V251 tmp232 [V251,T58] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V252 tmp233 [V252 ] ( 6, 12 ) struct (16) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Memory`1[ubyte]>
; V253 tmp234 [V253,T59] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
-; V254 tmp235 [V254,T40] ( 3, 6 ) ref -> rcx single-def "argument with side effect"
+; V254 tmp235 [V254,T39] ( 3, 6 ) ref -> rcx single-def "argument with side effect"
; V255 tmp236 [V255,T60] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V256 tmp237 [V256,T61] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V257 PSPSym [V257,T123] ( 1, 1 ) long -> [rbp-0x110] do-not-enreg[V] "PSPSym"
; V258 cse0 [V258,T90] ( 3, 3 ) int -> rdx "CSE - conservative"
-; V259 cse1 [V259,T91] ( 3, 3 ) int -> r8 "CSE - conservative"
+; V259 cse1 [V259,T91] ( 3, 3 ) int -> rcx "CSE - conservative"
; V260 cse2 [V260,T92] ( 3, 3 ) int -> r14 "CSE - conservative"
; V261 cse3 [V261,T93] ( 3, 3 ) int -> rax "CSE - conservative"
; V262 cse4 [V262,T03] ( 12, 12 ) ref -> rdx multi-def "CSE - aggressive"
@@ -387,7 +387,7 @@ G_M33324_IG06: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
call [<unknown method>]
; gcrRegs -[rax rdx]
; gcr arg pop 0
- jmp G_M33324_IG94
+ jmp G_M33324_IG93
;; size=55 bbWeight=1 PerfScore 15.25
G_M33324_IG07: ; bbWeight=1, gcVars=00000000000000000000000000000003 {V00 V02}, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, gcvars, byref, nogc
; gcrRegs +[rdi]
@@ -431,8 +431,8 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
xor edx, edx
mov dword ptr [rsi+0x14], edx
mov edx, dword ptr [rdi+0x34]
- mov r8d, dword ptr [rdi+0x30]
- sub edx, r8d
+ mov ecx, dword ptr [rdi+0x30]
+ sub edx, ecx
test edx, edx
jle G_M33324_IG18
mov ebx, dword ptr [rsi+0x34]
@@ -443,14 +443,13 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
mov rdx, gword ptr [rdi+0x20]
; gcrRegs +[rdx]
test rdx, rdx
- je G_M33324_IG77
- mov ecx, r8d
- mov eax, ebx
- add rcx, rax
- mov eax, dword ptr [rdx+0x08]
- cmp rcx, rax
+ je G_M33324_IG76
+ mov eax, ecx
+ mov r8d, ebx
+ add rax, r8
+ mov r8d, dword ptr [rdx+0x08]
+ cmp rax, r8
ja G_M33324_IG76
- mov ecx, r8d
lea r14, bword ptr [rdx+rcx+0x10]
; byrRegs +[r14]
mov r15d, ebx
@@ -494,7 +493,7 @@ G_M33324_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
mov r12d, edx
; gcrRegs -[r12]
jmp SHORT G_M33324_IG13
- ;; size=180 bbWeight=1 PerfScore 42.50
+ ;; size=176 bbWeight=1 PerfScore 42.25
G_M33324_IG12: ; bbWeight=1, gcrefRegs=0180 {rdi r8}, byrefRegs=6040 {rsi r13 r14}, byref
; gcrRegs +[r8]
; byrRegs -[rax]
@@ -560,7 +559,7 @@ G_M33324_IG14: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=5040 {rsi r1
; gcr arg pop 0
mov r13d, dword ptr [rbp-0xA4]
cmp r15d, r13d
- ja G_M33324_IG78
+ ja G_M33324_IG77
mov r8d, r15d
mov rcx, r12
; byrRegs +[rcx]
@@ -575,7 +574,7 @@ G_M33324_IG15: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
cmp ebx, dword ptr [rsi+0x34]
jne SHORT G_M33324_IG16
mov dword ptr [rbp-0x40], ebx
- jmp G_M33324_IG82
+ jmp G_M33324_IG81
;; size=13 bbWeight=1 PerfScore 7.00
G_M33324_IG16: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
test ebx, ebx
@@ -584,7 +583,7 @@ G_M33324_IG16: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
; byrRegs +[rdx]
mov r14d, dword ptr [rdx+0x0C]
cmp ebx, r14d
- ja G_M33324_IG79
+ ja G_M33324_IG78
mov r15, gword ptr [rdx]
; gcrRegs +[r15]
mov r13d, ebx
@@ -850,7 +849,7 @@ G_M33324_IG30: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
; gcrRegs -[r14]
add ebx, dword ptr [rsi+0x14]
mov dword ptr [rbp-0x40], ebx
- jmp G_M33324_IG88
+ jmp G_M33324_IG87
;; size=11 bbWeight=1 PerfScore 6.00
G_M33324_IG31: ; bbWeight=1, gcrefRegs=8080 {rdi r15}, byrefRegs=0040 {rsi}, byref
; gcrRegs +[rdi r15]
@@ -911,7 +910,7 @@ G_M33324_IG35: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
call [<unknown method>]
; gcrRegs -[rax rdx]
; gcr arg pop 0
- jmp G_M33324_IG84
+ jmp G_M33324_IG83
;; size=64 bbWeight=1 PerfScore 15.50
G_M33324_IG36: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, nogc
; gcrRegs +[rdi]
@@ -997,7 +996,7 @@ G_M33324_IG43: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
call [<unknown method>]
; gcrRegs -[rax rdx]
; gcr arg pop 0
- jmp G_M33324_IG86
+ jmp G_M33324_IG85
;; size=67 bbWeight=1 PerfScore 15.75
G_M33324_IG44: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
; gcrRegs +[rdi]
@@ -1212,7 +1211,7 @@ G_M33324_IG59: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
call [<unknown method>]
; gcrRegs -[rax rdx]
; gcr arg pop 0
- jmp G_M33324_IG90
+ jmp G_M33324_IG89
;; size=73 bbWeight=1 PerfScore 15.75
G_M33324_IG60: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
; gcrRegs +[rdi]
@@ -1453,7 +1452,7 @@ G_M33324_IG75: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=9040 {rsi r1
; gcr arg pop 0
mov r14d, dword ptr [rbp-0xBC]
cmp r13d, r14d
- ja SHORT G_M33324_IG78
+ ja SHORT G_M33324_IG77
mov r8d, r13d
mov rcx, r12
; byrRegs +[rcx]
@@ -1462,7 +1461,7 @@ G_M33324_IG75: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=9040 {rsi r1
call [<unknown method>]
; byrRegs -[rcx rdx r12 r15]
; gcr arg pop 0
- jmp SHORT G_M33324_IG80
+ jmp SHORT G_M33324_IG79
;; size=48 bbWeight=1 PerfScore 13.00
G_M33324_IG76: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
@@ -1472,30 +1471,25 @@ G_M33324_IG76: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
; gcr arg pop 0
int3
;; size=14 bbWeight=0 PerfScore 0.00
-G_M33324_IG77: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
- test r8d, r8d
- jne SHORT G_M33324_IG76
- jmp SHORT G_M33324_IG76
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M33324_IG78: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+G_M33324_IG77: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M33324_IG79: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+G_M33324_IG78: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
mov ecx, 33
call [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M33324_IG80: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+G_M33324_IG79: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
add dword ptr [rdi+0x30], ebx
add ebx, dword ptr [rsi+0x14]
mov dword ptr [rbp-0x40], ebx
;; size=9 bbWeight=1 PerfScore 7.00
-G_M33324_IG81: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
+G_M33324_IG80: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
cmp dword ptr [rbp-0x3C], 0
- jge SHORT G_M33324_IG92
+ jge SHORT G_M33324_IG91
mov rcx, gword ptr [rdi+0x08]
; gcrRegs +[rcx]
cmp byte ptr [rcx], cl
@@ -1504,63 +1498,63 @@ G_M33324_IG81: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi},
call [<unknown method>]
; gcrRegs -[rcx rdi]
; gcr arg pop 0
- jmp SHORT G_M33324_IG92
+ jmp SHORT G_M33324_IG91
...
-34 (-0.28%) : 14893.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T166] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T167] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T168] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T348] ( 3, 1.50) long -> rcx single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T348] ( 2, 1 ) long -> rcx single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T349] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -109,7 +109,7 @@
;* V98 tmp85 [V98 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V99 tmp86 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V100 tmp87 [V100 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V101 tmp88 [V101,T120] ( 3, 10 ) long -> rdx "Inline stloc first use temp"
+; V101 tmp88 [V101,T120] ( 2, 8 ) long -> rdx "Inline stloc first use temp"
;* V102 tmp89 [V102,T127] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V104 tmp91 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -537,7 +537,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [r14+0x10]<unknown method>
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
- jmp G_M11467_IG266
+ jmp G_M11467_IG264
;; size=32 bbWeight=0.50 PerfScore 5.75
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rsi rdi]
@@ -585,12 +585,12 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcr arg pop 0
mov ecx, dword ptr [r15+0x08]
test ecx, ecx
- jl G_M11467_IG269
+ jl G_M11467_IG267
mov r13d, ecx
test ecx, ecx
jle G_M11467_IG45
cmp dword ptr [r15+0x08], 0
- jbe G_M11467_IG268
+ jbe G_M11467_IG266
movzx r12, byte ptr [r15+0x10]
cmp r12d, 0xD1FFAB1E
jne SHORT G_M11467_IG06
@@ -749,7 +749,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov eax, r8d
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -761,7 +761,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea eax, [r8+0x01]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea eax, [r8+0x01]
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -773,7 +773,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea eax, [r8+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r8d, 2
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x16], r8w
@@ -784,7 +784,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r8d, r9d
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x18], r8w
@@ -796,7 +796,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea r8d, [r9+0x01]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r8d, [r9+0x01]
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x1A], r8w
@@ -810,7 +810,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[r8]
lea eax, [r9+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r9d, 2
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -818,7 +818,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov r8, rdx
; gcrRegs +[r8]
cmp ecx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r9d, ecx
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -827,7 +827,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[r8]
lea r9d, [rcx+0x01]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r9d, [rcx+0x01]
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -837,7 +837,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
lea edx, [rcx+0x02]
; gcrRegs -[rdx]
cmp edx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add ecx, 2
movzx r8, word ptr [r8+2*rcx+0x10]
; gcrRegs -[r8]
@@ -862,7 +862,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
cmp r13d, r12d
je G_M11467_IG45
cmp r12d, dword ptr [r15+0x08]
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov edx, r12d
movzx rax, byte ptr [r15+rdx+0x10]
mov dword ptr [rsp+0xF4], eax
@@ -1040,7 +1040,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov eax, r8d
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -1052,7 +1052,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea eax, [r8+0x01]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea eax, [r8+0x01]
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -1064,7 +1064,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea eax, [r8+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r8d, 2
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x16], r8w
@@ -1075,7 +1075,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r8d, r9d
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x18], r8w
@@ -1087,7 +1087,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea r8d, [r9+0x01]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r8d, [r9+0x01]
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x1A], r8w
@@ -1101,7 +1101,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[r8]
lea eax, [r9+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r9d, 2
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1109,7 +1109,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov r8, rdx
; gcrRegs +[r8]
cmp ecx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r9d, ecx
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1118,7 +1118,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[r8]
lea r9d, [rcx+0x01]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r9d, [rcx+0x01]
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1128,7 +1128,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
lea edx, [rcx+0x02]
; gcrRegs -[rdx]
cmp edx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add ecx, 2
movzx r8, word ptr [r8+2*rcx+0x10]
; gcrRegs -[r8]
@@ -1187,7 +1187,7 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
call [r14+0x10]<unknown method>
; gcrRegs -[rcx rdx rsi r15]
; gcr arg pop 0
- jmp G_M11467_IG97
+ jmp G_M11467_IG95
;; size=67 bbWeight=0.50 PerfScore 9.12
G_M11467_IG47: ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000400000000000000000200000000000000000000000000000 {V01 V07}, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r15]
@@ -1202,38 +1202,32 @@ G_M11467_IG47: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
; gcr arg pop 0
mov ecx, dword ptr [r15+0x08]
test ecx, ecx
- jl G_M11467_IG269
+ jl G_M11467_IG267
mov r12d, ecx
test ecx, ecx
- jle G_M11467_IG96
+ jle G_M11467_IG94
cmp dword ptr [r15+0x08], 0
- jbe G_M11467_IG268
+ jbe G_M11467_IG266
mov r13, qword ptr [r15+0x10]
mov rcx, 0xD1FFAB1E
and rcx, r13
- je SHORT G_M11467_IG48
- mov rax, 0xD1FFAB1E
- cmp rcx, rax
- je SHORT G_M11467_IG49
- jmp SHORT G_M11467_IG49
- ;; size=90 bbWeight=0.50 PerfScore 10.62
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+ jne SHORT G_M11467_IG48
mov rcx, 0xD1FFAB1E
and r13, rcx
mov rcx, 0xD1FFAB1E
or r13, rcx
...
benchmarks.run_pgo.windows.x64.checked.mch
-24 (-17.78%) : 36954.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.66) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.75) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> [rsp+0x58] single-def
; V02 loc0 [V02,T01] ( 6, 5.66) int -> rsi
; V03 loc1 [V03,T05] ( 4, 3.83) ref -> rdi class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> rbp "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.66) long -> rax "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.66) long -> rax "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -29,10 +29,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
push rbx
sub rsp, 40
- mov qword ptr [rsp+0x20], rcx
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=16 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
; byrRegs +[rdx]
mov esi, dword ptr [rbx+0x10]
@@ -41,7 +40,7 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx},
; gcrRegs +[rdi]
mov ebp, dword ptr [rdi+0x08]
cmp ebp, esi
- jbe SHORT G_M49890_IG05
+ jbe SHORT G_M49890_IG04
;; size=16 bbWeight=1 PerfScore 7.50
G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=0088 {rbx rdi}, byrefRegs=0004 {rdx}, byref, isz
mov bword ptr [rsp+0x58], rdx
@@ -58,24 +57,16 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=0088 {rbx rdi}, byrefRegs=0004
call CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x18]
- test rax, rax
- jne SHORT G_M49890_IG07
- ;; size=47 bbWeight=0.92 PerfScore 16.95
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M49890_IG07
- ;; size=2 bbWeight=0.18 PerfScore 0.37
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+ jmp SHORT G_M49890_IG06
+ ;; size=30 bbWeight=0.92 PerfScore 10.31
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
; gcrRegs -[rdi]
; byrRegs +[rdx]
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rdx], rax
;; size=5 bbWeight=0.08 PerfScore 0.10
-G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rax]
; byrRegs -[rdx]
add rsp, 40
@@ -85,19 +76,19 @@ G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
pop rdi
ret
;; size=9 bbWeight=0.08 PerfScore 0.27
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdi]
movsxd rax, esi
mov ecx, ebp
cmp rax, rcx
- jae SHORT G_M49890_IG09
+ jae SHORT G_M49890_IG08
movsxd rax, esi
xor rcx, rcx
; gcrRegs +[rcx]
mov gword ptr [rdi+8*rax+0x10], rcx
mov eax, 1
;; size=25 bbWeight=0.92 PerfScore 3.21
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -105,14 +96,14 @@ G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
pop rdi
ret
;; size=9 bbWeight=0.92 PerfScore 2.98
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdi]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 135, prolog size 13, PerfScore 36.88, instruction count 51, allocated bytes for code 135 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 111, prolog size 8, PerfScore 28.87, instruction count 44, allocated bytes for code 111 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
-24 (-17.78%) : 39787.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7.69) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6.77) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.__Canon]>
; V01 arg1 [V01,T03] ( 4, 3 ) byref -> [rsp+0x58] single-def
; V02 loc0 [V02,T01] ( 6, 5.69) int -> rsi
; V03 loc1 [V03,T05] ( 4, 3.85) ref -> rdi class-hnd single-def <<unknown class>>
@@ -17,9 +17,9 @@
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V07 cse0 [V07,T06] ( 3, 2.92) int -> rbp "CSE - aggressive"
-; V08 rat0 [V08,T04] ( 2, 3.69) long -> rax "Spilling to split statement for tree"
+;* V08 rat0 [V08,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V09 rat1 [V09,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V10 rat2 [V10,T02] ( 2, 3.69) long -> rax "fgMakeTemp is creating a new local variable"
+;* V10 rat2 [V10,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -29,10 +29,9 @@ G_M49890_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
push rbx
sub rsp, 40
- mov qword ptr [rsp+0x20], rcx
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=16 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
; byrRegs +[rdx]
mov esi, dword ptr [rbx+0x10]
@@ -41,7 +40,7 @@ G_M49890_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx},
; gcrRegs +[rdi]
mov ebp, dword ptr [rdi+0x08]
cmp ebp, esi
- jbe SHORT G_M49890_IG05
+ jbe SHORT G_M49890_IG04
;; size=16 bbWeight=1 PerfScore 7.50
G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=0088 {rbx rdi}, byrefRegs=0004 {rdx}, byref, isz
mov bword ptr [rsp+0x58], rdx
@@ -58,24 +57,16 @@ G_M49890_IG03: ; bbWeight=0.92, gcrefRegs=0088 {rbx rdi}, byrefRegs=0004
call CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x18]
- test rax, rax
- jne SHORT G_M49890_IG07
- ;; size=47 bbWeight=0.92 PerfScore 17.09
-G_M49890_IG04: ; bbWeight=0.18, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M49890_IG07
- ;; size=2 bbWeight=0.18 PerfScore 0.37
-G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+ jmp SHORT G_M49890_IG06
+ ;; size=30 bbWeight=0.92 PerfScore 10.39
+G_M49890_IG04: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
; gcrRegs -[rdi]
; byrRegs +[rdx]
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rdx], rax
;; size=5 bbWeight=0.08 PerfScore 0.10
-G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M49890_IG05: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rax]
; byrRegs -[rdx]
add rsp, 40
@@ -85,19 +76,19 @@ G_M49890_IG06: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
pop rdi
ret
;; size=9 bbWeight=0.08 PerfScore 0.25
-G_M49890_IG07: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49890_IG06: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdi]
movsxd rax, esi
mov ecx, ebp
cmp rax, rcx
- jae SHORT G_M49890_IG09
+ jae SHORT G_M49890_IG08
movsxd rax, esi
xor rcx, rcx
; gcrRegs +[rcx]
mov gword ptr [rdi+8*rax+0x10], rcx
mov eax, 1
;; size=25 bbWeight=0.92 PerfScore 3.23
-G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
+G_M49890_IG07: ; bbWeight=0.92, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -105,14 +96,14 @@ G_M49890_IG08: ; bbWeight=0.92, epilog, nogc, extend
pop rdi
ret
;; size=9 bbWeight=0.92 PerfScore 3.00
-G_M49890_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M49890_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdi]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 135, prolog size 13, PerfScore 37.04, instruction count 51, allocated bytes for code 135 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 111, prolog size 8, PerfScore 28.97, instruction count 44, allocated bytes for code 111 (MethodHash=37eb3d1d) for method System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
-24 (-17.14%) : 37053.dasm - System.Collections.Generic.Stack1[System.ValueTuple3[System.Canon,System.Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 7 ) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
+; V00 this [V00,T00] ( 7, 6.25) ref -> rbx this class-hnd single-def <System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]>
; V01 arg1 [V01,T01] ( 4, 3 ) byref -> rdx single-def
; V02 loc0 [V02,T03] ( 4, 3.50) int -> rcx
; V03 loc1 [V03,T05] ( 3, 2.75) ref -> r8 class-hnd exact single-def <<unknown class>>
@@ -20,9 +20,9 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item2 (fldOffset=0x8)" P-INDEP
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "field V04.Item3 (fldOffset=0x10)" P-INDEP
; V10 cse0 [V10,T06] ( 3, 2.25) byref -> rbp "CSE - aggressive"
-; V11 rat0 [V11,T04] ( 2, 3 ) long -> rax "Spilling to split statement for tree"
+;* V11 rat0 [V11,T04] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V12 rat1 [V12,T07] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V13 rat2 [V13,T02] ( 2, 3 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -32,10 +32,9 @@ G_M60687_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
push rbp
push rbx
sub rsp, 40
- mov qword ptr [rsp+0x20], rcx
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=16 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
; byrRegs +[rdx]
mov ecx, dword ptr [rbx+0x10]
@@ -43,7 +42,7 @@ G_M60687_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx},
mov r8, gword ptr [rbx+0x08]
; gcrRegs +[r8]
cmp dword ptr [r8+0x08], ecx
- jbe SHORT G_M60687_IG05
+ jbe SHORT G_M60687_IG04
;; size=15 bbWeight=1 PerfScore 8.25
G_M60687_IG03: ; bbWeight=0.75, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {rdx}, byref, isz
inc dword ptr [rbx+0x14]
@@ -61,25 +60,16 @@ G_M60687_IG03: ; bbWeight=0.75, gcrefRegs=0108 {rbx r8}, byrefRegs=0004 {
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x20]
- test rax, rax
- jne SHORT G_M60687_IG07
- ;; size=57 bbWeight=0.75 PerfScore 13.88
-G_M60687_IG04: ; bbWeight=0.15, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
- ; byrRegs -[rsi rdi]
- jmp SHORT G_M60687_IG07
- ;; size=2 bbWeight=0.15 PerfScore 0.30
-G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
- ; byrRegs -[rbp] +[rdx]
+ jmp SHORT G_M60687_IG06
+ ;; size=40 bbWeight=0.75 PerfScore 8.44
+G_M60687_IG04: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
+ ; byrRegs -[rbp rsi rdi] +[rdx]
xor eax, eax
mov qword ptr [rdx], rax
mov qword ptr [rdx+0x08], rax
mov qword ptr [rdx+0x10], rax
;; size=13 bbWeight=0.25 PerfScore 0.81
-G_M60687_IG06: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M60687_IG05: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rdx]
add rsp, 40
pop rbx
@@ -88,7 +78,7 @@ G_M60687_IG06: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
pop rdi
ret
;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M60687_IG06: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
; byrRegs +[rbp]
xor eax, eax
mov qword ptr [rbp], rax
@@ -96,7 +86,7 @@ G_M60687_IG07: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=000
mov qword ptr [rbp+0x10], rax
mov eax, 1
;; size=19 bbWeight=0.75 PerfScore 2.62
-G_M60687_IG08: ; bbWeight=0.75, epilog, nogc, extend
+G_M60687_IG07: ; bbWeight=0.75, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -105,7 +95,7 @@ G_M60687_IG08: ; bbWeight=0.75, epilog, nogc, extend
ret
;; size=9 bbWeight=0.75 PerfScore 2.44
-; Total bytes of code 140, prolog size 13, PerfScore 34.61, instruction count 50, allocated bytes for code 140 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
+; Total bytes of code 116, prolog size 8, PerfScore 27.88, instruction count 43, allocated bytes for code 116 (MethodHash=056e12f0) for method System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
; ============================================================
Unwind Info:
+3 (+0.49%) : 30564.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 14, 6.01) ref -> [rbp+0x10] this class-hnd EH-live single-def <System.Net.Sockets.Socket>
-; V01 arg1 [V01,T00] ( 18, 13.03) ref -> [rbp+0x18] class-hnd EH-live single-def <System.Net.Sockets.SocketAsyncEventArgs>
+; V01 arg1 [V01,T00] ( 18, 13.02) ref -> [rbp+0x18] class-hnd EH-live single-def <System.Net.Sockets.SocketAsyncEventArgs>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
; V03 loc0 [V03 ] ( 4, 1 ) ref -> [rbp-0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
; V04 loc1 [V04,T09] ( 3, 0 ) ref -> [rbp-0x28] class-hnd EH-live single-def <System.Net.EndPoint>
@@ -21,7 +21,7 @@
;* V09 tmp3 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V10 tmp4 [V10,T06] ( 3, 2 ) int -> rax "Inline stloc first use temp"
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <<unknown class>>
-; V12 tmp6 [V12,T05] ( 6, 3.00) int -> rdi "Inline return value spill temp"
+; V12 tmp6 [V12,T04] ( 6, 3.00) int -> rdi "Inline return value spill temp"
; V13 tmp7 [V13,T02] ( 3, 4 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Net.Sockets.SafeSocketHandle>
;* V14 tmp8 [V14,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V15 tmp9 [V15,T03] ( 2, 2 ) ref -> rsi single-def "field V02._source (fldOffset=0x0)" P-INDEP
@@ -30,7 +30,7 @@
; V18 tmp12 [V18,T13] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V19 tmp13 [V19,T14] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V20 PSPSym [V20,T08] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
-; V21 cse0 [V21,T04] ( 3, 3.02) ref -> rax "CSE - aggressive"
+; V21 cse0 [V21,T05] ( 3, 3 ) ref -> rcx "CSE - aggressive"
;
; Lcl frame size = 56
@@ -56,14 +56,14 @@ G_M38239_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M38239_IG02: ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rcx]
cmp dword ptr [rcx+0x68], 0
- jne G_M38239_IG14
+ jne G_M38239_IG13
test rbx, rbx
- je G_M38239_IG15
+ je G_M38239_IG14
mov rax, gword ptr [rbx+0x28]
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
cmp gword ptr [rbx+0x50], 0
- je G_M38239_IG16
+ je G_M38239_IG15
;; size=38 bbWeight=1 PerfScore 12.25
G_M38239_IG03: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rcx]
@@ -74,7 +74,7 @@ G_M38239_IG03: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
lock
cmpxchg dword ptr [rdx], r8d
test eax, eax
- jne G_M38239_IG18
+ jne G_M38239_IG17
;; size=28 bbWeight=1 PerfScore 20.25
G_M38239_IG04: ; bbWeight=1.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; byrRegs -[rdx]
@@ -89,7 +89,7 @@ G_M38239_IG04: ; bbWeight=1.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
cmp byte ptr [rbx+0xFA], 0
jne SHORT G_M38239_IG12
;; size=32 bbWeight=1.01 PerfScore 7.55
-G_M38239_IG05: ; bbWeight=1.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M38239_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0xB0]
; gcrRegs +[rcx]
lea rcx, bword ptr [rcx+0x08]
@@ -102,22 +102,20 @@ G_M38239_IG05: ; bbWeight=1.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; byrRegs -[rcx]
mov rdx, gword ptr [rbp+0x10]
; gcrRegs +[rdx]
- mov rax, gword ptr [rdx+0x10]
- ; gcrRegs +[rax]
- mov gword ptr [rbp-0x28], rax
+ mov rcx, gword ptr [rdx+0x10]
+ ; gcrRegs +[rcx]
+ mov gword ptr [rbp-0x28], rcx
; GC ptr vars +{V04}
- test rax, rax
- je SHORT G_M38239_IG13
- ;; size=36 bbWeight=1.01 PerfScore 9.05
-G_M38239_IG06: ; bbWeight=1, gcVars=0000000000000203 {V00 V01 V04}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax rdx]
- mov rdx, gword ptr [rbp+0x10]
- ; gcrRegs +[rdx]
+ test rcx, rcx
+ je G_M38239_IG18
+ ;; size=40 bbWeight=1 PerfScore 9.00
+G_M38239_IG06: ; bbWeight=1, gcVars=0000000000000203 {V00 V01 V04}, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rcx]
mov rax, gword ptr [rdx+0x08]
; gcrRegs +[rax]
cmp gword ptr [rbx+0x18], 0
je SHORT G_M38239_IG08
- ;; size=15 bbWeight=1 PerfScore 7.00
+ ;; size=11 bbWeight=1 PerfScore 6.00
G_M38239_IG07: ; bbWeight=0, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx rsi]
mov rcx, rbx
@@ -178,21 +176,9 @@ G_M38239_IG12: ; bbWeight=0.00, gcVars=0000000000000003 {V00 V01}, gcrefR
; byrRegs -[rcx]
jmp G_M38239_IG05
;; size=23 bbWeight=0.00 PerfScore 0.01
-G_M38239_IG13: ; bbWeight=0, gcVars=0000000000000203 {V00 V01 V04}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars +{V04}
- mov rdx, gword ptr [rbp+0x10]
- ; gcrRegs +[rdx]
- lea rcx, bword ptr [rdx+0x10]
- ; byrRegs +[rcx]
- mov rdx, gword ptr [rbp-0x20]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx]
- ; byrRegs -[rcx]
- jmp SHORT G_M38239_IG06
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M38239_IG14: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG13: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rsi]
- ; GC ptr vars -{V00 V01 V04}
+ ; GC ptr vars -{V00 V01}
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
call [System.ThrowHelper:ThrowObjectDisposedException(System.Object)]
@@ -200,7 +186,7 @@ G_M38239_IG14: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=11 bbWeight=0 PerfScore 0.00
-G_M38239_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M38239_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 0x1BCE
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -213,11 +199,11 @@ G_M38239_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M38239_IG15: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx rsi]
; GC ptr vars +{V00 V01}
cmp gword ptr [rbp-0x20], 0
- jne SHORT G_M38239_IG17
+ jne SHORT G_M38239_IG16
mov rcx, 0xD1FFAB1E ; <unknown class>
; GC ptr vars -{V00 V01}
call CORINFO_HELP_NEWSFAST
@@ -261,7 +247,7 @@ G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=112 bbWeight=0 PerfScore 0.00
-G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG16: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx rsi]
; GC ptr vars +{V00 V01}
lea rdx, [rbp-0x20]
@@ -279,7 +265,7 @@ G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs
; byrRegs -[rcx]
jmp G_M38239_IG03
;; size=31 bbWeight=0 PerfScore 0.00
-G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG17: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rsi]
; GC ptr vars -{V00 V01}
mov rcx, rbx
@@ -290,8 +276,22 @@ G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000202 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M38239_IG18: ; bbWeight=0, gcVars=0000000000000203 {V00 V01 V04}, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rdx rbx rsi]
; GC ptr vars +{V00 V01 V04}
+ lea rcx, bword ptr [rdx+0x10]
+ ; byrRegs +[rcx]
+ mov rdx, gword ptr [rbp-0x20]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ ; byrRegs -[rcx]
+ mov rdx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rdx]
+ jmp G_M38239_IG06
+ ;; size=22 bbWeight=0 PerfScore 0.00
+G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000202 {V00 V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdx rbx rsi]
+ ; GC ptr vars -{V00 V01}
cmp edi, 997
je G_M38239_IG10
mov rcx, gword ptr [rbp+0x10]
@@ -308,7 +308,7 @@ G_M38239_IG19: ; bbWeight=0, gcVars=0000000000000202 {V00 V04}, gcrefRegs
; byrRegs +[rcx]
mov rdx, gword ptr [rbp-0x28]
; gcrRegs +[rdx]
- ; GC ptr vars -{V01 V04}
+ ; GC ptr vars -{V04} +{V00}
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
@@ -357,7 +357,7 @@ G_M38239_IG21: ; bbWeight=0, gcVars=0000000000000203 {V00 V01 V04}, gcref
int3
;; size=43 bbWeight=0 PerfScore 0.00
-; Total bytes of code 611, prolog size 37, PerfScore 75.60, instruction count 154, allocated bytes for code 611 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 614, prolog size 37, PerfScore 74.55, instruction count 153, allocated bytes for code 614 (MethodHash=86656aa0) for method System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
+30 (+0.50%) : 39829.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
@@ -9,13 +9,13 @@
; 36 inlinees with PGO data; 63 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] (198, 82.82) byref -> rbx this single-def
+; V00 this [V00,T00] (198, 82.78) byref -> rbx this single-def
; V01 loc0 [V01,T08] ( 26, 25.31) ushort -> r15
; V02 loc1 [V02,T60] ( 8, 5.04) ubyte -> [rsp+0xB4]
; V03 loc2 [V03,T93] ( 3, 2.01) ubyte -> [rsp+0xB0]
-; V04 loc3 [V04,T51] ( 16, 7.93) int -> r14
+; V04 loc3 [V04,T51] ( 14, 7.92) int -> r14
; V05 loc4 [V05,T77] ( 5, 3.02) int -> r13
-; V06 loc5 [V06,T47] ( 9, 7.90) int -> r12
+; V06 loc5 [V06,T47] ( 9, 7.88) int -> r12
; V07 loc6 [V07,T161] ( 3, 0.01) ref -> r15 class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V08 loc7 [V08,T216] ( 2, 0 ) ref -> r15 class-hnd exact <System.String>
; V09 loc8 [V09,T155] ( 8, 0.01) int -> registers
@@ -71,9 +71,9 @@
; V59 tmp46 [V59,T182] ( 3, 0 ) ref -> rcx class-hnd exact "Inlining Arg" <System.String>
; V60 tmp47 [V60,T204] ( 3, 0 ) int -> r8 "Inlining Arg"
;* V61 tmp48 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V62 tmp49 [V62,T67] ( 2, 3.93) ref -> [rsp+0x80] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
-; V63 tmp50 [V63,T69] ( 2, 3.93) int -> [rsp+0xAC] spill-single-def "impAppendStmt"
-; V64 tmp51 [V64,T45] ( 5, 9.84) ref -> [rsp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V62 tmp49 [V62,T67] ( 2, 3.88) ref -> [rsp+0x80] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V63 tmp50 [V63,T69] ( 2, 3.88) int -> [rsp+0xAC] spill-single-def "impAppendStmt"
+; V64 tmp51 [V64,T45] ( 5, 9.69) ref -> [rsp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
;* V65 tmp52 [V65 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp53 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
; V67 tmp54 [V67,T09] ( 6, 28.37) int -> [rsp+0xA8] "Inline stloc first use temp"
@@ -95,9 +95,9 @@
;* V83 tmp70 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
; V84 tmp71 [V84,T57] ( 6, 6.11) int -> [rsp+0xA0] "Inline stloc first use temp"
;* V85 tmp72 [V85 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-; V86 tmp73 [V86,T68] ( 2, 3.93) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V86 tmp73 [V86,T68] ( 2, 3.88) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V87 tmp74 [V87 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V88 tmp75 [V88,T53] ( 4, 7.76) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V88 tmp75 [V88,T53] ( 4, 7.76) ref -> rcx class-hnd exact "Inlining Arg" <System.String>
;* V89 tmp76 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V90 tmp77 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V91 tmp78 [V91,T70] ( 2, 3.88) byref -> r14 "Inlining Arg"
@@ -198,35 +198,35 @@
; V186 tmp173 [V186,T149] ( 3, 0.01) byref -> rcx "Span.get_Item ptrToSpan"
;* V187 tmp174 [V187 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V188 tmp175 [V188,T115] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V189 tmp176 [V189,T28] ( 9, 13.26) ref -> rsi class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V189 tmp176 [V189,T28] ( 9, 13.26) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
;* V190 tmp177 [V190 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
;* V191 tmp178 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
;* V192 tmp179 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V193 tmp180 [V193,T48] ( 7, 8 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V193 tmp180 [V193,T48] ( 7, 8 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
; V194 tmp181 [V194,T185] ( 3, 0 ) ref -> rax class-hnd single-def "Inlining Arg" <<unknown class>>
-; V195 tmp182 [V195,T58] ( 7, 6 ) ref -> rbp class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V196 tmp183 [V196,T85] ( 2, 2.51) ref -> r14 single-def "CASTCLASS eval op1"
+; V195 tmp182 [V195,T58] ( 7, 6 ) ref -> r14 class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V196 tmp183 [V196,T85] ( 2, 2.51) ref -> rsi single-def "CASTCLASS eval op1"
;* V197 tmp184 [V197 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
-; V198 tmp185 [V198,T110] ( 4, 1.38) ref -> r14 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V198 tmp185 [V198,T110] ( 4, 1.38) ref -> rsi class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V199 tmp186 [V199,T87] ( 3, 2.27) ref -> rdx single-def "CASTCLASS eval op1"
; V200 tmp187 [V200,T89] ( 3, 2.27) long -> rax "fgMakeTemp is creating a new local variable"
; V201 tmp188 [V201,T54] ( 9, 7.31) ref -> rcx class-hnd "spilling QMark2" <<unknown class>>
-; V202 tmp189 [V202,T74] ( 15, 3.22) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V202 tmp189 [V202,T74] ( 15, 3.22) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V203 tmp190 [V203,T133] ( 3, 0.34) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V204 tmp191 [V204,T123] ( 5, 0.52) int -> rdx "Inline stloc first use temp"
; V205 tmp192 [V205,T127] ( 4, 0.43) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V206 tmp193 [V206,T124] ( 5, 0.52) int -> rdx "Inline stloc first use temp"
; V207 tmp194 [V207,T106] ( 4, 1.74) ref -> rdx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V208 tmp195 [V208,T91] ( 5, 2.10) int -> rax "Inline stloc first use temp"
-; V209 tmp196 [V209,T34] ( 10, 12 ) ref -> r12 class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V210 tmp197 [V210,T29] ( 9, 13.26) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V211 tmp198 [V211,T86] ( 2, 2.51) ref -> r13 single-def "CASTCLASS eval op1"
+; V209 tmp196 [V209,T34] ( 10, 12 ) ref -> rbp class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V210 tmp197 [V210,T29] ( 9, 13.26) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V211 tmp198 [V211,T86] ( 2, 2.51) ref -> r15 single-def "CASTCLASS eval op1"
;* V212 tmp199 [V212 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
-; V213 tmp200 [V213,T111] ( 4, 1.38) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V213 tmp200 [V213,T111] ( 4, 1.38) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V214 tmp201 [V214,T88] ( 3, 2.27) ref -> rdx single-def "CASTCLASS eval op1"
; V215 tmp202 [V215,T90] ( 3, 2.27) long -> rax "fgMakeTemp is creating a new local variable"
; V216 tmp203 [V216,T55] ( 9, 7.31) ref -> rcx class-hnd "spilling QMark2" <<unknown class>>
-; V217 tmp204 [V217,T75] ( 15, 3.22) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V217 tmp204 [V217,T75] ( 15, 3.22) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V218 tmp205 [V218,T134] ( 3, 0.34) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V219 tmp206 [V219,T125] ( 5, 0.52) int -> rdx "Inline stloc first use temp"
; V220 tmp207 [V220,T128] ( 4, 0.43) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -343,7 +343,7 @@
; V331 tmp318 [V331,T150] ( 3, 0.01) ref -> rcx "arr expr"
; V332 tmp319 [V332,T153] ( 3, 0.01) int -> r8 "index expr"
; V333 tmp320 [V333,T157] ( 2, 0.01) ref -> rdx "argument with side effect"
-; V334 tmp321 [V334,T158] ( 2, 0.01) ref -> rsi "argument with side effect"
+; V334 tmp321 [V334,T158] ( 2, 0.01) ref -> r13 "argument with side effect"
; V335 tmp322 [V335,T228] ( 2, 0 ) ref -> r8 "argument with side effect"
; V336 tmp323 [V336,T229] ( 2, 0 ) ref -> r8 "argument with side effect"
; V337 tmp324 [V337,T230] ( 2, 0 ) ref -> r8 "argument with side effect"
@@ -351,9 +351,9 @@
; V339 tmp326 [V339,T232] ( 2, 0 ) ref -> rbp single-def "argument with side effect"
; V340 tmp327 [V340,T233] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V341 tmp328 [V341,T234] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V342 tmp329 [V342,T61] ( 4, 4.03) int -> r8 "fgMakeTemp is creating a new local variable"
+; V342 tmp329 [V342,T61] ( 4, 4.03) int -> r14 "fgMakeTemp is creating a new local variable"
; V343 cse0 [V343,T76] ( 5, 3.03) int -> rax "CSE - conservative"
-; V344 cse1 [V344,T84] ( 9, 2.52) int -> registers multi-def "CSE - conservative"
+; V344 cse1 [V344,T84] ( 9, 2.52) int -> r8 multi-def "CSE - conservative"
; V345 cse2 [V345,T105] ( 3, 1.85) int -> r8 "CSE - conservative"
; V346 cse3 [V346,T17] ( 4, 17.16) ref -> rdx "CSE - moderate"
; V347 cse4 [V347,T14] ( 3, 18.68) ref -> rax "CSE - moderate"
@@ -363,10 +363,12 @@
; V351 cse8 [V351,T73] ( 11, 3.48) int -> r14 multi-def "CSE - conservative"
; V352 cse9 [V352,T162] ( 3, 0.01) ref -> rcx "CSE - conservative"
; V353 cse10 [V353,T160] ( 4, 0.01) int -> rax "CSE - conservative"
-; V354 cse11 [V354,T24] ( 16, 15.16) long -> rdi "CSE - moderate"
-; V355 rat0 [V355,T144] ( 3, 0.04) int -> r10 "ReplaceWithLclVar is creating a new local variable"
+; V354 cse11 [V354,T24] ( 16, 15.15) long -> rdi "CSE - moderate"
+; V355 rat0 [V355,T144] ( 3, 0.04) int -> r12 "ReplaceWithLclVar is creating a new local variable"
+; TEMP_02 ref -> [rsp+0xC0]
+; TEMP_01 long -> [rsp+0xB8]
;
-; Lcl frame size = 184
+; Lcl frame size = 200
G_M39122_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push r15
@@ -377,12 +379,16 @@ G_M39122_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rsi
push rbp
push rbx
- sub rsp, 184
+ sub rsp, 200
xor eax, eax
mov qword ptr [rsp+0x88], rax
+ vxorps xmm4, xmm4, xmm4
+ vmovdqu ymmword ptr [rsp+0x90], ymm4
+ vmovdqa xmmword ptr [rsp+0xB0], xmm4
+ mov qword ptr [rsp+0xC0], rax
mov rbx, rcx
; byrRegs +[rbx]
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=62 bbWeight=1 PerfScore 15.08
G_M39122_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
xor esi, esi
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
@@ -435,7 +441,7 @@ G_M39122_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
mov rax, gword ptr [rbx+0x28]
; gcrRegs +[rax]
cmp ecx, dword ptr [rax+0x08]
- jge G_M39122_IG27
+ jge G_M39122_IG28
;; size=135 bbWeight=1 PerfScore 31.00
G_M39122_IG03: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rax]
@@ -444,12 +450,12 @@ G_M39122_IG03: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=4 bbWeight=1.01 PerfScore 0.50
G_M39122_IG04: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG129
+ jne G_M39122_IG128
;; size=10 bbWeight=1.01 PerfScore 4.04
G_M39122_IG05: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov eax, dword ptr [rbx+0x70]
and eax, 32
- jne G_M39122_IG130
+ jne G_M39122_IG129
;; size=12 bbWeight=1.01 PerfScore 3.28
G_M39122_IG06: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov r14d, dword ptr [rbx+0x58]
@@ -465,14 +471,14 @@ G_M39122_IG07: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
; gcrRegs +[rcx]
lea edx, [r14+0x02]
cmp edx, dword ptr [rcx+0x08]
- jae G_M39122_IG127
+ jae G_M39122_IG126
cmp word ptr [rcx+2*rdx+0x0C], 35
- je G_M39122_IG131
+ je G_M39122_IG130
;; size=29 bbWeight=0.45 PerfScore 4.75
G_M39122_IG08: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rcx]
test eax, eax
- jne G_M39122_IG133
+ jne G_M39122_IG132
;; size=8 bbWeight=1.01 PerfScore 1.26
G_M39122_IG09: ; bbWeight=6.56, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov ecx, dword ptr [rbx+0x58]
@@ -483,7 +489,7 @@ G_M39122_IG09: ; bbWeight=6.56, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=12 bbWeight=6.56 PerfScore 52.47
G_M39122_IG10: ; bbWeight=5.56, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref
cmp ecx, dword ptr [rax+0x08]
- jae G_M39122_IG127
+ jae G_M39122_IG126
mov ecx, ecx
movzx r15, word ptr [rax+2*rcx+0x0C]
cmp r15d, 124
@@ -494,18 +500,18 @@ G_M39122_IG10: ; bbWeight=5.56, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx
cmp byte ptr [rcx+rax], 3
jb G_M39122_IG36
cmp r15d, 123
- je G_M39122_IG136
+ je G_M39122_IG135
;; size=60 bbWeight=5.56 PerfScore 73.69
G_M39122_IG11: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov r13d, dword ptr [rbx+0x58]
;; size=4 bbWeight=1.01 PerfScore 2.02
G_M39122_IG12: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG138
+ jne G_M39122_IG137
;; size=10 bbWeight=1.01 PerfScore 4.04
G_M39122_IG13: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG139
+ jne G_M39122_IG138
;; size=10 bbWeight=1.01 PerfScore 4.04
G_M39122_IG14: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov r12d, dword ptr [rbx+0x58]
@@ -520,9 +526,9 @@ G_M39122_IG15: ; bbWeight=0.45, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx
; gcrRegs +[rcx]
lea edx, [r12+0x02]
cmp edx, dword ptr [rcx+0x08]
- jae G_M39122_IG127
+ jae G_M39122_IG126
cmp word ptr [rcx+2*rdx+0x0C], 35
- je G_M39122_IG140
+ je G_M39122_IG139
;; size=29 bbWeight=0.45 PerfScore 3.96
G_M39122_IG16: ; bbWeight=1.01, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rcx]
@@ -535,7 +541,7 @@ G_M39122_IG17: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=6 bbWeight=1.00 PerfScore 0.25
G_M39122_IG18: ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
cmp r14d, r13d
- jge G_M39122_IG25
+ jge G_M39122_IG26
;; size=9 bbWeight=1.01 PerfScore 1.26
G_M39122_IG19: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov r12d, r13d
@@ -547,23 +553,23 @@ G_M39122_IG19: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
xor esi, esi
mov dword ptr [rsp+0xB0], esi
test r12d, r12d
- jle G_M39122_IG24
+ jle G_M39122_IG25
cmp r12d, 1
- jle G_M39122_IG35
+ jle G_M39122_IG24
;; size=44 bbWeight=1.00 PerfScore 5.99
-G_M39122_IG20: ; bbWeight=0.98, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
...
+42 (+0.70%) : 26967.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
@@ -9,18 +9,18 @@
; 36 inlinees with PGO data; 63 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] (198, 88.87) byref -> rbx this single-def
+; V00 this [V00,T00] (198, 88.86) byref -> rbx this single-def
; V01 loc0 [V01,T08] ( 26, 28.25) ushort -> r15
; V02 loc1 [V02,T60] ( 8, 5.01) ubyte -> [rsp+0xB4]
; V03 loc2 [V03,T98] ( 3, 2.00) ubyte -> [rsp+0xB0]
-; V04 loc3 [V04,T51] ( 16, 7.97) int -> r14
+; V04 loc3 [V04,T51] ( 14, 7.97) int -> r14
; V05 loc4 [V05,T79] ( 5, 3.00) int -> r13
; V06 loc5 [V06,T47] ( 9, 7.96) int -> r12
; V07 loc6 [V07,T164] ( 3, 0.00) ref -> r15 class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V08 loc7 [V08,T218] ( 2, 0 ) ref -> r15 class-hnd exact <System.String>
; V09 loc8 [V09,T158] ( 8, 0.00) int -> registers
-; V10 loc9 [V10,T159] ( 6, 0.00) int -> r12
-; V11 loc10 [V11,T162] ( 7, 0.00) int -> registers
+; V10 loc9 [V10,T159] ( 6, 0.00) int -> registers
+; V11 loc10 [V11,T162] ( 7, 0.00) int -> r12
; V12 loc11 [V12,T166] ( 3, 0.00) ubyte -> rdx
; V13 OutArgs [V13 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T45] ( 5, 10 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
@@ -37,9 +37,9 @@
; V25 tmp12 [V25,T149] ( 2, 0.00) int -> rbp "dup spill"
; V26 tmp13 [V26,T151] ( 3, 0.00) ref -> rcx class-hnd exact "impAppendStmt" <System.String>
;* V27 tmp14 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
-; V28 tmp15 [V28,T237] ( 2, 0 ) int -> r12 "dup spill"
+; V28 tmp15 [V28,T237] ( 2, 0 ) int -> rax "dup spill"
; V29 tmp16 [V29,T175] ( 3, 0 ) ref -> rcx class-hnd exact "impAppendStmt" <System.String>
-; V30 tmp17 [V30,T201] ( 3, 0 ) int -> rsi
+; V30 tmp17 [V30,T201] ( 3, 0 ) int -> r12
; V31 tmp18 [V31,T176] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
;* V32 tmp19 [V32 ] ( 0, 0 ) byref -> zero-ref
; V33 tmp20 [V33,T177] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
@@ -71,9 +71,9 @@
; V59 tmp46 [V59,T185] ( 3, 0 ) ref -> rcx class-hnd exact "Inlining Arg" <System.String>
; V60 tmp47 [V60,T206] ( 3, 0 ) int -> r8 "Inlining Arg"
;* V61 tmp48 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V62 tmp49 [V62,T67] ( 2, 3.97) ref -> [rsp+0x80] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
-; V63 tmp50 [V63,T70] ( 2, 3.97) int -> [rsp+0xAC] spill-single-def "impAppendStmt"
-; V64 tmp51 [V64,T46] ( 5, 9.94) ref -> [rsp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V62 tmp49 [V62,T67] ( 2, 3.96) ref -> [rsp+0x80] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V63 tmp50 [V63,T70] ( 2, 3.96) int -> [rsp+0xAC] spill-single-def "impAppendStmt"
+; V64 tmp51 [V64,T46] ( 5, 9.90) ref -> [rsp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
;* V65 tmp52 [V65 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V66 tmp53 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
; V67 tmp54 [V67,T09] ( 6, 32.39) int -> [rsp+0xA8] "Inline stloc first use temp"
@@ -95,9 +95,9 @@
;* V83 tmp70 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
; V84 tmp71 [V84,T58] ( 6, 6.01) int -> [rsp+0xA0] "Inline stloc first use temp"
;* V85 tmp72 [V85 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-; V86 tmp73 [V86,T68] ( 2, 3.97) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V86 tmp73 [V86,T68] ( 2, 3.96) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V87 tmp74 [V87 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V88 tmp75 [V88,T53] ( 4, 7.92) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+; V88 tmp75 [V88,T53] ( 4, 7.92) ref -> rcx class-hnd exact "Inlining Arg" <System.String>
;* V89 tmp76 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V90 tmp77 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
; V91 tmp78 [V91,T69] ( 2, 3.96) byref -> r14 "Inlining Arg"
@@ -198,25 +198,25 @@
; V186 tmp173 [V186,T152] ( 3, 0.00) byref -> rcx "Span.get_Item ptrToSpan"
;* V187 tmp174 [V187 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V188 tmp175 [V188,T117] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V189 tmp176 [V189,T33] ( 9, 13.29) ref -> rsi class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V189 tmp176 [V189,T33] ( 9, 13.29) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
;* V190 tmp177 [V190 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
;* V191 tmp178 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
;* V192 tmp179 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V193 tmp180 [V193,T48] ( 7, 8 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V193 tmp180 [V193,T48] ( 7, 8 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
; V194 tmp181 [V194,T187] ( 3, 0 ) ref -> rax class-hnd single-def "Inlining Arg" <<unknown class>>
-; V195 tmp182 [V195,T59] ( 7, 6 ) ref -> rbp class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-; V196 tmp183 [V196,T85] ( 2, 2.59) ref -> r14 single-def "CASTCLASS eval op1"
+; V195 tmp182 [V195,T59] ( 7, 6 ) ref -> rsi class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
+; V196 tmp183 [V196,T85] ( 2, 2.59) ref -> rbp single-def "CASTCLASS eval op1"
;* V197 tmp184 [V197 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
-; V198 tmp185 [V198,T110] ( 4, 1.41) ref -> r14 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
+; V198 tmp185 [V198,T108] ( 4, 1.41) ref -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V199 tmp186 [V199,T89] ( 3, 2.38) ref -> rdx single-def "CASTCLASS eval op1"
; V200 tmp187 [V200,T91] ( 3, 2.38) long -> rax "fgMakeTemp is creating a new local variable"
; V201 tmp188 [V201,T54] ( 9, 7.68) ref -> rcx class-hnd "spilling QMark2" <<unknown class>>
-; V202 tmp189 [V202,T74] ( 15, 3.04) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V202 tmp189 [V202,T74] ( 15, 3.04) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V203 tmp190 [V203,T135] ( 3, 0.32) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V204 tmp191 [V204,T125] ( 5, 0.50) int -> rdx "Inline stloc first use temp"
; V205 tmp192 [V205,T133] ( 4, 0.41) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V206 tmp193 [V206,T126] ( 5, 0.50) int -> rdx "Inline stloc first use temp"
-; V207 tmp194 [V207,T108] ( 4, 1.85) ref -> rdx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V207 tmp194 [V207,T109] ( 4, 1.85) ref -> rdx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V208 tmp195 [V208,T93] ( 5, 2.25) int -> rax "Inline stloc first use temp"
; V209 tmp196 [V209,T41] ( 10, 12 ) ref -> r12 class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
; V210 tmp197 [V210,T34] ( 9, 13.29) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -231,7 +231,7 @@
; V219 tmp206 [V219,T127] ( 5, 0.50) int -> rdx "Inline stloc first use temp"
; V220 tmp207 [V220,T134] ( 4, 0.41) ref -> rcx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V221 tmp208 [V221,T128] ( 5, 0.50) int -> rdx "Inline stloc first use temp"
-; V222 tmp209 [V222,T109] ( 4, 1.85) ref -> rdx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V222 tmp209 [V222,T110] ( 4, 1.85) ref -> rdx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V223 tmp210 [V223,T94] ( 5, 2.25) int -> rax "Inline stloc first use temp"
;* V224 tmp211 [V224 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
;* V225 tmp212 [V225 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
@@ -343,7 +343,7 @@
; V331 tmp318 [V331,T153] ( 3, 0.00) ref -> rcx "arr expr"
; V332 tmp319 [V332,T156] ( 3, 0.00) int -> r8 "index expr"
; V333 tmp320 [V333,T160] ( 2, 0.00) ref -> rdx "argument with side effect"
-; V334 tmp321 [V334,T161] ( 2, 0.00) ref -> rsi "argument with side effect"
+; V334 tmp321 [V334,T161] ( 2, 0.00) ref -> r13 "argument with side effect"
; V335 tmp322 [V335,T230] ( 2, 0 ) ref -> r8 "argument with side effect"
; V336 tmp323 [V336,T231] ( 2, 0 ) ref -> r8 "argument with side effect"
; V337 tmp324 [V337,T232] ( 2, 0 ) ref -> r8 "argument with side effect"
@@ -351,11 +351,11 @@
; V339 tmp326 [V339,T234] ( 2, 0 ) ref -> rbp single-def "argument with side effect"
; V340 tmp327 [V340,T235] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V341 tmp328 [V341,T236] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V342 tmp329 [V342,T61] ( 4, 4.00) int -> r8 "fgMakeTemp is creating a new local variable"
+; V342 tmp329 [V342,T61] ( 4, 4.00) int -> r14 "fgMakeTemp is creating a new local variable"
; V343 cse0 [V343,T78] ( 5, 3.00) int -> rax "CSE - conservative"
; V344 cse1 [V344,T87] ( 3, 2.49) int -> rcx "CSE - conservative"
; V345 cse2 [V345,T88] ( 3, 2.49) int -> rcx "CSE - conservative"
-; V346 cse3 [V346,T84] ( 9, 2.66) int -> registers multi-def "CSE - conservative"
+; V346 cse3 [V346,T84] ( 9, 2.66) int -> r8 multi-def "CSE - conservative"
; V347 cse4 [V347,T97] ( 3, 2.02) int -> r8 "CSE - conservative"
; V348 cse5 [V348,T16] ( 4, 19.94) ref -> rdx "CSE - moderate"
; V349 cse6 [V349,T14] ( 3, 20.94) ref -> rax "CSE - moderate"
@@ -366,9 +366,11 @@
; V354 cse11 [V354,T165] ( 3, 0.00) ref -> rcx "CSE - conservative"
; V355 cse12 [V355,T163] ( 4, 0.00) int -> rax "CSE - conservative"
; V356 cse13 [V356,T24] ( 16, 16.62) long -> rdi "CSE - moderate"
-; V357 rat0 [V357,T147] ( 3, 0.01) int -> r10 "ReplaceWithLclVar is creating a new local variable"
+; V357 rat0 [V357,T147] ( 3, 0.01) int -> r12 "ReplaceWithLclVar is creating a new local variable"
+; TEMP_02 ref -> [rsp+0xC0]
+; TEMP_01 long -> [rsp+0xB8]
;
-; Lcl frame size = 184
+; Lcl frame size = 200
G_M39122_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push r15
@@ -379,12 +381,16 @@ G_M39122_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rsi
push rbp
push rbx
- sub rsp, 184
+ sub rsp, 200
xor eax, eax
mov qword ptr [rsp+0x88], rax
+ vxorps xmm4, xmm4, xmm4
+ vmovdqu ymmword ptr [rsp+0x90], ymm4
+ vmovdqa xmmword ptr [rsp+0xB0], xmm4
+ mov qword ptr [rsp+0xC0], rax
mov rbx, rcx
; byrRegs +[rbx]
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=62 bbWeight=1 PerfScore 15.08
G_M39122_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
xor esi, esi
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
@@ -437,7 +443,7 @@ G_M39122_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
mov rax, gword ptr [rbx+0x28]
; gcrRegs +[rax]
cmp ecx, dword ptr [rax+0x08]
- jge G_M39122_IG28
+ jge G_M39122_IG29
;; size=135 bbWeight=1 PerfScore 31.00
G_M39122_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rax]
@@ -446,12 +452,12 @@ G_M39122_IG03: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M39122_IG04: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG136
+ jne G_M39122_IG133
;; size=10 bbWeight=1.00 PerfScore 4.00
G_M39122_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov eax, dword ptr [rbx+0x70]
and eax, 32
- jne G_M39122_IG137
+ jne G_M39122_IG134
;; size=12 bbWeight=1.00 PerfScore 3.25
G_M39122_IG06: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov r14d, dword ptr [rbx+0x58]
@@ -466,15 +472,15 @@ G_M39122_IG07: ; bbWeight=0.48, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
mov rdx, gword ptr [rbx+0x28]
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae G_M39122_IG134
+ jae G_M39122_IG131
mov ecx, ecx
cmp word ptr [rdx+2*rcx+0x0C], 35
- je G_M39122_IG138
+ je G_M39122_IG135
;; size=27 bbWeight=0.48 PerfScore 4.97
G_M39122_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rdx]
test eax, eax
- jne G_M39122_IG140
+ jne G_M39122_IG137
;; size=8 bbWeight=1.00 PerfScore 1.25
G_M39122_IG09: ; bbWeight=7.31, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov ecx, dword ptr [rbx+0x58]
@@ -485,7 +491,7 @@ G_M39122_IG09: ; bbWeight=7.31, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=12 bbWeight=7.31 PerfScore 58.50
G_M39122_IG10: ; bbWeight=6.31, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref
cmp ecx, dword ptr [rax+0x08]
- jae G_M39122_IG134
+ jae G_M39122_IG131
mov ecx, ecx
movzx r15, word ptr [rax+2*rcx+0x0C]
cmp r15d, 124
@@ -498,18 +504,18 @@ G_M39122_IG11: ; bbWeight=6.31, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
cmp byte ptr [rcx+rax], 3
jb G_M39122_IG37
cmp r15d, 123
- je G_M39122_IG142
+ je G_M39122_IG139
;; size=33 bbWeight=6.31 PerfScore 36.29
G_M39122_IG12: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov r13d, dword ptr [rbx+0x58]
;; size=4 bbWeight=1.00 PerfScore 2.00
G_M39122_IG13: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG144
+ jne G_M39122_IG141
;; size=10 bbWeight=1.00 PerfScore 4.00
G_M39122_IG14: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test byte ptr [rbx+0x70], 32
- jne G_M39122_IG145
+ jne G_M39122_IG142
;; size=10 bbWeight=1.00 PerfScore 4.00
G_M39122_IG15: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov r12d, dword ptr [rbx+0x58]
@@ -523,10 +529,10 @@ G_M39122_IG16: ; bbWeight=0.48, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx
mov rdx, rax
; gcrRegs +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae G_M39122_IG134
+ jae G_M39122_IG131
mov ecx, ecx
cmp word ptr [rdx+2*rcx+0x0C], 35
- je G_M39122_IG146
+ je G_M39122_IG143
;; size=26 bbWeight=0.48 PerfScore 4.12
G_M39122_IG17: ; bbWeight=1.00, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[rdx]
@@ -539,7 +545,7 @@ G_M39122_IG18: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
;; size=6 bbWeight=1.00 PerfScore 0.25
G_M39122_IG19: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
cmp r14d, r13d
- jge G_M39122_IG26
...
benchmarks.run_tiered.windows.x64.checked.mch
-18 (-10.34%) : 31358.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
@@ -10,116 +10,110 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <PerfLabTests.LowLevelPerf>
-; V01 loc0 [V01,T11] ( 2, 4 ) ref -> rdx class-hnd <System.Collections.Generic.List`1[int]>
-; V02 loc1 [V02,T10] ( 2, 9 ) int -> rcx
-; V03 loc2 [V03,T07] ( 3, 24 ) int -> rax
-; V04 loc3 [V04,T13] ( 4, 1.03) struct (24) [rsp+0x80] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
+; V01 loc0 [V01,T09] ( 2, 4 ) ref -> rdx class-hnd <System.Collections.Generic.List`1[int]>
+; V02 loc1 [V02,T08] ( 2, 9 ) int -> rcx
+; V03 loc2 [V03,T05] ( 3, 24 ) int -> rax
+; V04 loc3 [V04,T11] ( 4, 1.03) struct (24) [rsp+0x70] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Generic.List`1+Enumerator[int]>
;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1 [V07,T03] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[int]>
-; V09 tmp3 [V09,T00] ( 3, 80 ) ubyte -> rsi "Inline return value spill temp"
+; V09 tmp3 [V09,T01] ( 3, 80 ) ubyte -> rbx "Inline return value spill temp"
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref "field V08._list (fldOffset=0x0)" P-INDEP
;* V12 tmp6 [V12 ] ( 0, 0 ) int -> zero-ref "field V08._index (fldOffset=0x8)" P-INDEP
-; V13 tmp7 [V13,T12] ( 2, 4 ) int -> r9 "field V08._version (fldOffset=0xc)" P-INDEP
+; V13 tmp7 [V13,T10] ( 2, 4 ) int -> r9 "field V08._version (fldOffset=0xc)" P-INDEP
;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "field V08._current (fldOffset=0x10)" P-INDEP
-; V15 tmp9 [V15,T06] ( 5, 26.01) ref -> r8 "V04.[000..008)"
-; V16 tmp10 [V16,T04] ( 8, 50.01) int -> r10 "V04.[008..012)"
+; V15 tmp9 [V15,T00] ( 5, 82.01) ref -> r8 "V04.[000..008)"
+; V16 tmp10 [V16,T03] ( 8, 50.01) int -> r10 "V04.[008..012)"
; V17 tmp11 [V17,T02] ( 3, 66.01) int -> r9 "V04.[012..016)"
-; V18 tmp12 [V18,T08] ( 3, 24 ) int -> rbx "V04.[016..020)"
-; V19 tmp13 [V19,T05] ( 3, 48 ) ref -> rbx "arr expr"
-; V20 cse0 [V20,T01] ( 2, 72 ) int -> r11 hoist "CSE - aggressive"
-; V21 cse1 [V21,T09] ( 3, 24 ) int -> rbx "CSE - aggressive"
+; V18 tmp12 [V18,T06] ( 3, 24 ) int -> r11 "V04.[016..020)"
+; V19 tmp13 [V19,T04] ( 3, 48 ) ref -> r11 "arr expr"
+; V20 cse0 [V20,T07] ( 3, 24 ) int -> r11 "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M6486_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 56
- mov qword ptr [rsp+0xD8], rsi
- mov qword ptr [rsp+0xD0], rbx
- mov rdx, gword ptr [rsp+0xA0]
+ sub rsp, 40
+ mov qword ptr [rsp+0xC8], rbx
+ mov rdx, gword ptr [rsp+0x90]
; gcrRegs +[rdx]
- mov ecx, dword ptr [rsp+0x9C]
- mov eax, dword ptr [rsp+0x98]
- ;; size=42 bbWeight=0.01 PerfScore 0.08
+ mov ecx, dword ptr [rsp+0x8C]
+ mov eax, dword ptr [rsp+0x88]
+ ;; size=34 bbWeight=0.01 PerfScore 0.07
G_M6486_IG02: ; bbWeight=0.01, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
- mov r8, gword ptr [rsp+0x80]
+ mov r8, gword ptr [rsp+0x70]
; gcrRegs +[r8]
- mov r10d, dword ptr [rsp+0x88]
- mov r9d, dword ptr [rsp+0x8C]
- jmp SHORT G_M6486_IG04
- ;; size=26 bbWeight=0.01 PerfScore 0.05
-G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+ mov r10d, dword ptr [rsp+0x78]
+ mov r9d, dword ptr [rsp+0x7C]
+ jmp SHORT G_M6486_IG05
+ ;; size=17 bbWeight=0.01 PerfScore 0.05
+G_M6486_IG03: ; bbWeight=2, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8]
mov r9d, dword ptr [rdx+0x14]
mov r8, rdx
; gcrRegs +[r8]
xor r10d, r10d
- ;; size=10 bbWeight=2 PerfScore 5.00
-G_M6486_IG04: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
- mov r11d, dword ptr [r8+0x14]
- jmp SHORT G_M6486_IG06
- ;; size=6 bbWeight=8 PerfScore 32.00
-G_M6486_IG05: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
- mov ecx, ebx
- ;; size=2 bbWeight=8 PerfScore 2.00
-G_M6486_IG06: ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
- cmp r9d, r11d
- jne SHORT G_M6486_IG14
- ;; size=5 bbWeight=64 PerfScore 80.00
-G_M6486_IG07: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
- mov ebx, dword ptr [r8+0x10]
- cmp r10d, ebx
- jae SHORT G_M6486_IG08
- mov rbx, gword ptr [r8+0x08]
- ; gcrRegs +[rbx]
- cmp r10d, dword ptr [rbx+0x08]
- jae SHORT G_M6486_IG13
- mov esi, r10d
- mov ebx, dword ptr [rbx+4*rsi+0x10]
- ; gcrRegs -[rbx]
+ jmp SHORT G_M6486_IG05
+ ;; size=12 bbWeight=2 PerfScore 9.00
+G_M6486_IG04: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+ mov ecx, r11d
+ ;; size=3 bbWeight=8 PerfScore 2.00
+G_M6486_IG05: ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+ cmp r9d, dword ptr [r8+0x14]
+ jne SHORT G_M6486_IG13
+ ;; size=6 bbWeight=64 PerfScore 256.00
+G_M6486_IG06: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+ mov r11d, dword ptr [r8+0x10]
+ cmp r10d, r11d
+ jae SHORT G_M6486_IG07
+ mov r11, gword ptr [r8+0x08]
+ ; gcrRegs +[r11]
+ cmp r10d, dword ptr [r11+0x08]
+ jae SHORT G_M6486_IG12
+ mov ebx, r10d
+ mov r11d, dword ptr [r11+4*rbx+0x10]
+ ; gcrRegs -[r11]
inc r10d
- mov esi, 1
- jmp SHORT G_M6486_IG09
- ;; size=36 bbWeight=8 PerfScore 112.00
-G_M6486_IG08: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
- lea r10d, [rbx+0x01]
+ mov ebx, 1
+ jmp SHORT G_M6486_IG08
+ ;; size=37 bbWeight=8 PerfScore 112.00
+G_M6486_IG07: ; bbWeight=8, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+ lea r10d, [r11+0x01]
+ xor r11d, r11d
xor ebx, ebx
- xor esi, esi
- ;; size=8 bbWeight=8 PerfScore 8.00
-G_M6486_IG09: ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
- test esi, esi
- jne SHORT G_M6486_IG05
+ ;; size=9 bbWeight=8 PerfScore 8.00
+G_M6486_IG08: ; bbWeight=64, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+ test ebx, ebx
+ jne SHORT G_M6486_IG04
;; size=4 bbWeight=64 PerfScore 80.00
-G_M6486_IG10: ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+G_M6486_IG09: ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8]
inc eax
cmp eax, dword ptr [(reloc)] ; static handle
jl SHORT G_M6486_IG03
;; size=10 bbWeight=8 PerfScore 34.00
-G_M6486_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
mov eax, ecx
;; size=2 bbWeight=1 PerfScore 0.25
-G_M6486_IG12: ; bbWeight=1, epilog, nogc, extend
- add rsp, 208
+G_M6486_IG11: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 200
pop rbx
- pop rsi
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 2.75
-G_M6486_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=10 bbWeight=1 PerfScore 2.25
+G_M6486_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M6486_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6486_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 174, prolog size 42, PerfScore 356.13, instruction count 46, allocated bytes for code 174 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
+; Total bytes of code 156, prolog size 34, PerfScore 503.62, instruction count 43, allocated bytes for code 156 (MethodHash=b0f1e6a9) for method PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -127,16 +121,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x14
- CountOfUnwindCodes: 8
+ SizeOfProlog : 0x0C
+ CountOfUnwindCodes: 6
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
- Scaled Small Offset: 26 * 8 = 208 = 0x000D0
- CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rsi (6)
- Scaled Small Offset: 27 * 8 = 216 = 0x000D8
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 6 * 8 + 8 = 56 = 0x38
+ CodeOffset: 0x0C UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
+ Scaled Small Offset: 25 * 8 = 200 = 0x000C8
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
CodeOffset: 0x00 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
Size: 21 * 8 = 168 = 0x000A8
CodeOffset: 0x00 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-24 (-7.69%) : 45753.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -43,9 +43,9 @@ G_M23091_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 7.50
G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rsi+0x68], 0
- jne G_M23091_IG11
+ jne G_M23091_IG10
test rbx, rbx
- je G_M23091_IG12
+ je G_M23091_IG11
lea rcx, bword ptr [rbx+0xF4]
; byrRegs +[rcx]
mov edx, 1
@@ -53,7 +53,7 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
lock
cmpxchg dword ptr [rcx], edx
test eax, eax
- jne G_M23091_IG13
+ jne G_M23091_IG12
mov dword ptr [rbx+0xDC], 4
lea rcx, bword ptr [rbx+0x60]
mov rdx, rsi
@@ -62,18 +62,9 @@ G_M23091_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp byte ptr [rbx+0xFA], 0
- jne SHORT G_M23091_IG04
+ je SHORT G_M23091_IG04
;; size=76 bbWeight=1 PerfScore 32.25
-G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M23091_IG05
- jmp SHORT G_M23091_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+G_M23091_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -85,7 +76,7 @@ G_M23091_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=18 bbWeight=0.50 PerfScore 2.38
-G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M23091_IG04: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0xB0]
; gcrRegs +[rcx]
lea rcx, bword ptr [rcx+0x08]
@@ -98,22 +89,22 @@ G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; byrRegs -[rcx]
nop
;; size=20 bbWeight=1 PerfScore 4.00
-G_M23091_IG06: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M23091_IG08
+ je SHORT G_M23091_IG07
;; size=11 bbWeight=1 PerfScore 6.00
-G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+G_M23091_IG06: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi]
mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M23091_IG09
+ jmp SHORT G_M23091_IG08
;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
+G_M23091_IG07: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rdi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -124,14 +115,14 @@ G_M23091_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0
; gcr arg pop 0
nop
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M23091_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx]
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M23091_IG09: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rsi
@@ -139,7 +130,7 @@ G_M23091_IG10: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.25
-G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -148,7 +139,7 @@ G_M23091_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23091_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 0x1BCE
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -161,7 +152,7 @@ G_M23091_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
; GC ptr vars +{V00 V01}
mov rcx, rbx
@@ -173,7 +164,7 @@ G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M23091_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push rdi
@@ -184,7 +175,7 @@ G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp+0x20], rbp
lea rbp, [rbp+0x40]
;; size=21 bbWeight=0 PerfScore 0.00
-G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23091_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
; GC ptr vars -{V00 V01}
@@ -196,7 +187,7 @@ G_M23091_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 312, prolog size 30, PerfScore 65.50, instruction count 86, allocated bytes for code 312 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 288, prolog size 30, PerfScore 61.38, instruction count 81, allocated bytes for code 288 (MethodHash=03bba5cc) for method System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -231,4 +222,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M23091_IG06..G_M23091_IG09) handled by [G_M23091_IG14..END) (class: 1000001)
+EH#0: try [G_M23091_IG05..G_M23091_IG08) handled by [G_M23091_IG13..END) (class: 1000001)
-24 (-7.69%) : 45844.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
@@ -43,9 +43,9 @@ G_M29540_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=30 bbWeight=1 PerfScore 7.50
G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
cmp dword ptr [rsi+0x68], 0
- jne G_M29540_IG11
+ jne G_M29540_IG10
test rbx, rbx
- je G_M29540_IG12
+ je G_M29540_IG11
lea rcx, bword ptr [rbx+0xF4]
; byrRegs +[rcx]
mov edx, 1
@@ -53,7 +53,7 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
lock
cmpxchg dword ptr [rcx], edx
test eax, eax
- jne G_M29540_IG13
+ jne G_M29540_IG12
mov dword ptr [rbx+0xDC], 7
lea rcx, bword ptr [rbx+0x60]
mov rdx, rsi
@@ -62,18 +62,9 @@ G_M29540_IG02: ; bbWeight=1, gcVars=0000000000000001 {V01}, gcrefRegs=00C
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp byte ptr [rbx+0xFA], 0
- jne SHORT G_M29540_IG04
+ je SHORT G_M29540_IG04
;; size=76 bbWeight=1 PerfScore 32.25
-G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- mov rax, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rax]
- ; gcrRegs +[rax]
- cmp byte ptr [rax+0x9D], 0
- je SHORT G_M29540_IG05
- jmp SHORT G_M29540_IG05
- ;; size=24 bbWeight=0.50 PerfScore 4.12
-G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+G_M29540_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
call [System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -85,7 +76,7 @@ G_M29540_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=18 bbWeight=0.50 PerfScore 2.38
-G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29540_IG04: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0xB0]
; gcrRegs +[rcx]
lea rcx, bword ptr [rcx+0x08]
@@ -98,22 +89,22 @@ G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; byrRegs -[rcx]
nop
;; size=20 bbWeight=1 PerfScore 4.00
-G_M29540_IG06: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG05: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M29540_IG08
+ je SHORT G_M29540_IG07
;; size=11 bbWeight=1 PerfScore 6.00
-G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
+G_M29540_IG06: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi]
mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M29540_IG09
+ jmp SHORT G_M29540_IG08
;; size=11 bbWeight=0.50 PerfScore 2.62
-G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
+G_M29540_IG07: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rdi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -124,14 +115,14 @@ G_M29540_IG08: ; bbWeight=0.50, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=0
; gcr arg pop 0
nop
;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M29540_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx]
; GC ptr vars -{V01}
cmp eax, 997
sete al
movzx rax, al
;; size=11 bbWeight=1 PerfScore 1.50
-G_M29540_IG10: ; bbWeight=1, epilog, nogc, extend
+G_M29540_IG09: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rsi
@@ -139,7 +130,7 @@ G_M29540_IG10: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.25
-G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -148,7 +139,7 @@ G_M29540_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
; gcr arg pop 0
int3
;; size=10 bbWeight=0 PerfScore 0.00
-G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29540_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 0x1BCE
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -161,7 +152,7 @@ G_M29540_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG12: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
; GC ptr vars +{V00 V01}
mov rcx, rbx
@@ -173,7 +164,7 @@ G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
; gcr arg pop 0
int3
;; size=12 bbWeight=0 PerfScore 0.00
-G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M29540_IG13: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
push rbp
push rdi
@@ -184,7 +175,7 @@ G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
mov qword ptr [rsp+0x20], rbp
lea rbp, [rbp+0x40]
;; size=21 bbWeight=0 PerfScore 0.00
-G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M29540_IG14: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
; GC ptr vars -{V00 V01}
@@ -196,7 +187,7 @@ G_M29540_IG15: ; bbWeight=0, gcVars=0000000000000001 {V01}, gcrefRegs=000
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 312, prolog size 30, PerfScore 65.50, instruction count 86, allocated bytes for code 312 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
+; Total bytes of code 288, prolog size 30, PerfScore 61.38, instruction count 81, allocated bytes for code 288 (MethodHash=4c998c9b) for method System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -231,4 +222,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M29540_IG06..G_M29540_IG09) handled by [G_M29540_IG14..END) (class: 1000001)
+EH#0: try [G_M29540_IG05..G_M29540_IG08) handled by [G_M29540_IG13..END) (class: 1000001)
-7 (-1.84%) : 24571.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T03] ( 5, 4.50) ref -> rsi class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 6, 6 ) int -> rbx single-def
-; V02 arg2 [V02,T04] ( 4, 3.50) int -> rdi single-def
+; V02 arg2 [V02,T04] ( 3, 3 ) int -> rdi single-def
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T09] ( 6, 2.50) ref -> rbp
;* V05 tmp2 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -81,7 +81,7 @@ G_M2230_IG05: ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {},
; gcrRegs -[rax]
mov ecx, dword ptr [rsi+0x08]
cmp ebx, ecx
- jae G_M2230_IG15
+ jae G_M2230_IG14
mov edx, ebx
movzx rdx, word ptr [rsi+2*rdx+0x0C]
inc ebx
@@ -96,7 +96,7 @@ G_M2230_IG06: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, b
G_M2230_IG07: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
cmp ebx, ecx
- jae G_M2230_IG15
+ jae G_M2230_IG14
mov eax, ebx
movzx rax, word ptr [rsi+2*rax+0x0C]
;; size=15 bbWeight=0.50 PerfScore 1.75
@@ -110,17 +110,12 @@ G_M2230_IG08: ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byre
mov rsi, rax
; gcrRegs +[rsi]
test edi, edi
- je SHORT G_M2230_IG10
+ jne SHORT G_M2230_IG10
;; size=17 bbWeight=1 PerfScore 5.00
G_M2230_IG09: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- cmp edi, 1
- je SHORT G_M2230_IG11
- jmp SHORT G_M2230_IG11
- ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M2230_IG10: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
test rsi, rsi
- je G_M2230_IG16
+ je G_M2230_IG15
lea rbx, bword ptr [rsi+0x10]
; byrRegs +[rbx]
mov esi, dword ptr [rsi+0x08]
@@ -149,9 +144,9 @@ G_M2230_IG10: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M2230_IG13
+ jmp SHORT G_M2230_IG12
;; size=73 bbWeight=0.50 PerfScore 8.38
-G_M2230_IG11: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
+G_M2230_IG10: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] +[rbp rsi]
mov rcx, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
@@ -200,16 +195,16 @@ G_M2230_IG11: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {
; gcrRegs +[rax]
mov gword ptr [rdi+0x88], rax
;; size=111 bbWeight=0.50 PerfScore 7.75
-G_M2230_IG12: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M2230_IG11: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov dword ptr [rdi+0x98], eax
mov dword ptr [rdi+0x9C], ebx
;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M2230_IG13: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M2230_IG12: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov rax, rdi
; gcrRegs +[rax]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M2230_IG14: ; bbWeight=1, epilog, nogc, extend
+G_M2230_IG13: ; bbWeight=1, epilog, nogc, extend
add rsp, 56
pop rbx
pop rbp
@@ -217,12 +212,12 @@ G_M2230_IG14: ; bbWeight=1, epilog, nogc, extend
pop rdi
ret
;; size=9 bbWeight=1 PerfScore 3.25
-G_M2230_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M2230_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdi]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M2230_IG16: ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M2230_IG15: ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
; gcrRegs +[rbp]
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -236,7 +231,7 @@ G_M2230_IG16: ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byre
int3
;; size=34 bbWeight=0 PerfScore 0.00
-; Total bytes of code 381, prolog size 15, PerfScore 49.12, instruction count 99, allocated bytes for code 381 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
+; Total bytes of code 374, prolog size 15, PerfScore 47.50, instruction count 96, allocated bytes for code 374 (MethodHash=55e8f749) for method System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
; ============================================================
Unwind Info:
-34 (-0.28%) : 27595.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
@@ -60,7 +60,7 @@
; V49 tmp36 [V49,T166] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
; V50 tmp37 [V50,T167] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
; V51 tmp38 [V51,T168] ( 2, 8 ) int -> r8 "Strict ordering of exceptions for Array store"
-; V52 tmp39 [V52,T348] ( 3, 1.50) long -> rcx single-def "Inline stloc first use temp"
+; V52 tmp39 [V52,T348] ( 2, 1 ) long -> rcx single-def "Inline stloc first use temp"
;* V53 tmp40 [V53,T349] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp41 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V55 tmp42 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -109,7 +109,7 @@
;* V98 tmp85 [V98 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V99 tmp86 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V100 tmp87 [V100 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V101 tmp88 [V101,T120] ( 3, 10 ) long -> rdx "Inline stloc first use temp"
+; V101 tmp88 [V101,T120] ( 2, 8 ) long -> rdx "Inline stloc first use temp"
;* V102 tmp89 [V102,T127] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V103 tmp90 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V104 tmp91 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
@@ -537,7 +537,7 @@ G_M11467_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [r14+0x10]<unknown method>
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
- jmp G_M11467_IG266
+ jmp G_M11467_IG264
;; size=32 bbWeight=0.50 PerfScore 5.75
G_M11467_IG04: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rsi rdi]
@@ -585,12 +585,12 @@ G_M11467_IG05: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcr arg pop 0
mov ecx, dword ptr [r15+0x08]
test ecx, ecx
- jl G_M11467_IG269
+ jl G_M11467_IG267
mov r13d, ecx
test ecx, ecx
jle G_M11467_IG45
cmp dword ptr [r15+0x08], 0
- jbe G_M11467_IG268
+ jbe G_M11467_IG266
movzx r12, byte ptr [r15+0x10]
cmp r12d, 0xD1FFAB1E
jne SHORT G_M11467_IG06
@@ -749,7 +749,7 @@ G_M11467_IG17: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov eax, r8d
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -761,7 +761,7 @@ G_M11467_IG18: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea eax, [r8+0x01]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea eax, [r8+0x01]
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -773,7 +773,7 @@ G_M11467_IG19: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea eax, [r8+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r8d, 2
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x16], r8w
@@ -784,7 +784,7 @@ G_M11467_IG20: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r8d, r9d
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x18], r8w
@@ -796,7 +796,7 @@ G_M11467_IG21: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[rdx]
lea r8d, [r9+0x01]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r8d, [r9+0x01]
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x1A], r8w
@@ -810,7 +810,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[r8]
lea eax, [r9+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r9d, 2
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -818,7 +818,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
mov r8, rdx
; gcrRegs +[r8]
cmp ecx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r9d, ecx
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -827,7 +827,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; gcrRegs +[r8]
lea r9d, [rcx+0x01]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r9d, [rcx+0x01]
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -837,7 +837,7 @@ G_M11467_IG22: ; bbWeight=0.50, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
lea edx, [rcx+0x02]
; gcrRegs -[rdx]
cmp edx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add ecx, 2
movzx r8, word ptr [r8+2*rcx+0x10]
; gcrRegs -[r8]
@@ -862,7 +862,7 @@ G_M11467_IG24: ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
cmp r13d, r12d
je G_M11467_IG45
cmp r12d, dword ptr [r15+0x08]
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov edx, r12d
movzx rax, byte ptr [r15+rdx+0x10]
mov dword ptr [rsp+0xF4], eax
@@ -1040,7 +1040,7 @@ G_M11467_IG38: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov eax, r8d
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -1052,7 +1052,7 @@ G_M11467_IG39: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea eax, [r8+0x01]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea eax, [r8+0x01]
movzx rdx, word ptr [rdx+2*rax+0x10]
; gcrRegs -[rdx]
@@ -1064,7 +1064,7 @@ G_M11467_IG40: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea eax, [r8+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r8d, 2
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x16], r8w
@@ -1075,7 +1075,7 @@ G_M11467_IG41: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov rdx, gword ptr [r8]
; gcrRegs +[rdx]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r8d, r9d
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x18], r8w
@@ -1087,7 +1087,7 @@ G_M11467_IG42: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[rdx]
lea r8d, [r9+0x01]
cmp r8d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r8d, [r9+0x01]
movzx r8, word ptr [rdx+2*r8+0x10]
mov word ptr [rdi+0x1A], r8w
@@ -1101,7 +1101,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[r8]
lea eax, [r9+0x02]
cmp eax, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add r9d, 2
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1109,7 +1109,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
mov r8, rdx
; gcrRegs +[r8]
cmp ecx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
mov r9d, ecx
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1118,7 +1118,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
; gcrRegs +[r8]
lea r9d, [rcx+0x01]
cmp r9d, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
lea r9d, [rcx+0x01]
movzx r8, word ptr [r8+2*r9+0x10]
; gcrRegs -[r8]
@@ -1128,7 +1128,7 @@ G_M11467_IG43: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
lea edx, [rcx+0x02]
; gcrRegs -[rdx]
cmp edx, 0xBB8
- jae G_M11467_IG268
+ jae G_M11467_IG266
add ecx, 2
movzx r8, word ptr [r8+2*rcx+0x10]
; gcrRegs -[r8]
@@ -1187,7 +1187,7 @@ G_M11467_IG46: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
call [r14+0x10]<unknown method>
; gcrRegs -[rcx rdx rsi r15]
; gcr arg pop 0
- jmp G_M11467_IG97
+ jmp G_M11467_IG95
;; size=67 bbWeight=0.50 PerfScore 9.12
G_M11467_IG47: ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000400000000000000000200000000000000000000000000000 {V01 V07}, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r15]
@@ -1202,38 +1202,32 @@ G_M11467_IG47: ; bbWeight=0.50, gcVars=0000000000000000000000000000000000
; gcr arg pop 0
mov ecx, dword ptr [r15+0x08]
test ecx, ecx
- jl G_M11467_IG269
+ jl G_M11467_IG267
mov r12d, ecx
test ecx, ecx
- jle G_M11467_IG96
+ jle G_M11467_IG94
cmp dword ptr [r15+0x08], 0
- jbe G_M11467_IG268
+ jbe G_M11467_IG266
mov r13, qword ptr [r15+0x10]
mov rcx, 0xD1FFAB1E
and rcx, r13
- je SHORT G_M11467_IG48
- mov rax, 0xD1FFAB1E
- cmp rcx, rax
- je SHORT G_M11467_IG49
- jmp SHORT G_M11467_IG49
- ;; size=90 bbWeight=0.50 PerfScore 10.62
-G_M11467_IG48: ; bbWeight=0.50, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+ jne SHORT G_M11467_IG48
mov rcx, 0xD1FFAB1E
and r13, rcx
mov rcx, 0xD1FFAB1E
or r13, rcx
...
+0 (0.00%) : 48396.dasm - LinqBenchmarks:Where01LinqMethodNestedX():ubyte:this (Tier1-OSR)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <LinqBenchmarks>
-; V01 loc0 [V01,T13] ( 1, 2 ) ref -> rdi class-hnd <System.Collections.Generic.List`1[Product]>
+; V01 loc0 [V01,T15] ( 1, 2 ) ref -> rdi class-hnd <System.Collections.Generic.List`1[Product]>
; V02 loc1 [V02,T01] ( 3, 33 ) int -> rbx
; V03 loc2 [V03,T02] ( 3, 24 ) int -> rsi
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
@@ -24,40 +24,43 @@
; V12 tmp5 [V12,T09] ( 2, 8 ) ref -> r14 class-hnd "impAppendStmt" <<unknown class>>
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref
; V14 tmp7 [V14,T06] ( 4, 8 ) ref -> r8
-; V15 tmp8 [V15,T03] ( 5, 20 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V16 tmp9 [V16,T04] ( 5, 20 ) ref -> r14 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V15 tmp8 [V15,T03] ( 5, 20 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V16 tmp9 [V16,T04] ( 5, 20 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V17 tmp10 [V17 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V18 tmp11 [V18,T10] ( 2, 8 ) ref -> rdx class-hnd exact "Inlining Arg" <<unknown class>>
; V19 tmp12 [V19,T11] ( 2, 8 ) ref -> rdx class-hnd exact "Inlining Arg" <<unknown class>>
; V20 tmp13 [V20,T12] ( 2, 8 ) ref -> rcx "argument with side effect"
-; V21 PSPSym [V21,T14] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V21 PSPSym [V21,T16] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
+; V22 cse0 [V22,T13] ( 3, 6 ) long -> r14 "CSE - aggressive"
+; V23 cse1 [V23,T14] ( 3, 6 ) long -> r15 "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M19194_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
push rax
- sub rsp, 80
- mov qword ptr [rsp+0x148], r15
- mov qword ptr [rsp+0x140], r14
- mov qword ptr [rsp+0x138], rdi
- mov qword ptr [rsp+0x130], rsi
- mov qword ptr [rsp+0x128], rbx
- lea rbp, [rsp+0x50]
- mov qword ptr [rbp-0x30], rsp
+ sub rsp, 96
+ mov qword ptr [rsp+0x158], r15
+ mov qword ptr [rsp+0x150], r14
+ mov qword ptr [rsp+0x148], r13
+ mov qword ptr [rsp+0x140], rdi
+ mov qword ptr [rsp+0x138], rsi
+ mov qword ptr [rsp+0x130], rbx
+ lea rbp, [rsp+0x60]
+ mov qword ptr [rbp-0x40], rsp
mov rdi, gword ptr [rbp+0xC0]
; gcrRegs +[rdi]
mov ebx, dword ptr [rbp+0xBC]
mov esi, dword ptr [rbp+0xB8]
- ;; size=77 bbWeight=0.01 PerfScore 0.16
+ ;; size=85 bbWeight=0.01 PerfScore 0.17
G_M19194_IG02: ; bbWeight=0.01, gcVars=0000000000000001 {V05}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V05}
jmp G_M19194_IG06
;; size=5 bbWeight=0.01 PerfScore 0.02
G_M19194_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V05}
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov r8, gword ptr [rcx]
+ mov r14, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov r8, gword ptr [r14]
; gcrRegs +[r8]
test r8, r8
jne SHORT G_M19194_IG04
@@ -65,45 +68,6 @@ G_M19194_IG03: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0080 {
call CORINFO_HELP_NEWSFAST
; gcrRegs -[r8] +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rdx, gword ptr [rcx]
- ; gcrRegs +[rdx]
- lea rcx, bword ptr [r14+0x08]
- ; byrRegs +[rcx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, 0xD1FFAB1E ; code for <unknown method>
- mov qword ptr [r14+0x18], rcx
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov rdx, r14
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx]
- mov r8, r14
- ; gcrRegs +[r8]
- ;; size=93 bbWeight=2 PerfScore 23.50
-G_M19194_IG04: ; bbWeight=2, gcrefRegs=0180 {rdi r8}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r14]
- mov rdx, rdi
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown method>
- call [System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon]]
- ; gcrRegs -[rdx r8] +[rax]
- ; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov r8, gword ptr [rcx]
- ; gcrRegs +[r8]
- test r8, r8
- jne SHORT G_M19194_IG05
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_NEWSFAST
- ; gcrRegs -[r8]
- ; gcr arg pop 0
mov r15, rax
; gcrRegs +[r15]
mov rcx, 0xD1FFAB1E ; const ptr
@@ -116,16 +80,55 @@ G_M19194_IG04: ; bbWeight=2, gcrefRegs=0180 {rdi r8}, byrefRegs=0000 {},
; byrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; code for <unknown method>
mov qword ptr [r15+0x18], rcx
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov rcx, r14
mov rdx, r15
; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
mov r8, r15
; gcrRegs +[r8]
- ;; size=115 bbWeight=2 PerfScore 31.00
-G_M19194_IG05: ; bbWeight=2, gcrefRegs=4180 {rdi r8 r14}, byrefRegs=0000 {}, byref
+ ;; size=86 bbWeight=2 PerfScore 23.50
+G_M19194_IG04: ; bbWeight=2, gcrefRegs=0180 {rdi r8}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15]
+ mov rdx, rdi
+ ; gcrRegs +[rdx]
+ mov rcx, 0xD1FFAB1E ; <unknown method>
+ call [System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon]]
+ ; gcrRegs -[rdx r8] +[rax]
+ ; gcr arg pop 0
+ mov r14, rax
+ ; gcrRegs +[r14]
+ mov r15, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov r8, gword ptr [r15]
+ ; gcrRegs +[r8]
+ test r8, r8
+ jne SHORT G_M19194_IG05
+ mov rcx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_NEWSFAST
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ mov r13, rax
+ ; gcrRegs +[r13]
+ mov rcx, 0xD1FFAB1E ; const ptr
+ mov rdx, gword ptr [rcx]
+ ; gcrRegs +[rdx]
+ lea rcx, bword ptr [r13+0x08]
+ ; byrRegs +[rcx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rax rdx]
+ ; byrRegs -[rcx]
+ mov rcx, 0xD1FFAB1E ; code for <unknown method>
+ mov qword ptr [r13+0x18], rcx
+ mov rcx, r15
+ mov rdx, r13
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx]
+ mov r8, r13
+ ; gcrRegs +[r8]
+ ;; size=108 bbWeight=2 PerfScore 31.00
+G_M19194_IG05: ; bbWeight=2, gcrefRegs=4180 {rdi r8 r14}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r13]
mov rdx, r14
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown method>
@@ -188,28 +191,30 @@ G_M19194_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sete al
;; size=11 bbWeight=1 PerfScore 1.50
G_M19194_IG10: ; bbWeight=1, epilog, nogc, extend
- add rsp, 296
+ add rsp, 304
pop rbx
pop rsi
pop rdi
+ pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=16 bbWeight=1 PerfScore 4.25
+ ;; size=18 bbWeight=1 PerfScore 4.75
G_M19194_IG11: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V05}
push rbp
push r15
push r14
+ push r13
push rdi
push rsi
push rbx
- sub rsp, 40
+ sub rsp, 48
mov rbp, qword ptr [rcx+0x20]
mov qword ptr [rsp+0x20], rbp
- lea rbp, [rbp+0x50]
- ;; size=25 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x60]
+ ;; size=27 bbWeight=0 PerfScore 0.00
G_M19194_IG12: ; bbWeight=0, gcVars=0000000000000001 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp+0xA8], 0
je SHORT G_M19194_IG13
@@ -225,17 +230,18 @@ G_M19194_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M19194_IG14: ; bbWeight=0, funclet epilog, nogc, extend
- add rsp, 40
+ add rsp, 48
pop rbx
pop rsi
pop rdi
+ pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 532, prolog size 77, PerfScore 326.43, instruction count 114, allocated bytes for code 532 (MethodHash=717bb505) for method LinqBenchmarks:Where01LinqMethodNestedX():ubyte:this (Tier1-OSR)
+; Total bytes of code 532, prolog size 85, PerfScore 326.94, instruction count 118, allocated bytes for code 532 (MethodHash=717bb505) for method LinqBenchmarks:Where01LinqMethodNestedX():ubyte:this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -243,22 +249,24 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x31
- CountOfUnwindCodes: 15
+ SizeOfProlog : 0x39
+ CountOfUnwindCodes: 17
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
- Scaled Small Offset: 37 * 8 = 296 = 0x00128
- CodeOffset: 0x29 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rsi (6)
+ CodeOffset: 0x39 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rbx (3)
Scaled Small Offset: 38 * 8 = 304 = 0x00130
- CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rdi (7)
+ CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4) OpInfo: rsi (6)
Scaled Small Offset: 39 * 8 = 312 = 0x00138
...
coreclr_tests.run.windows.x64.checked.mch
-37 (-66.07%) : 507742.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,10 +8,9 @@
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 6, 4.50) float -> mm0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02,T01] ( 2, 4 ) float -> mm0 "Single return block return value"
-; V03 cse0 [V03,T02] ( 5, 3.50) float -> mm1 "CSE - aggressive"
+; V02 tmp1 [V02,T00] ( 2, 4 ) float -> mm0 "Single return block return value"
;
; Lcl frame size = 40
@@ -19,34 +18,17 @@ G_M53791_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
vzeroupper
;; size=7 bbWeight=1 PerfScore 1.25
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
; gcr arg pop 0
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm0, xmm1
- jbe SHORT G_M53791_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53791_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M53791_IG05
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vucomiss xmm1, xmm0
- ja SHORT G_M53791_IG03
- vucomiss xmm0, xmm1
- jp SHORT G_M53791_IG03
- jne SHORT G_M53791_IG03
- vucomiss xmm1, xmm0
- jbe SHORT G_M53791_IG03
- jmp SHORT G_M53791_IG03
- ;; size=22 bbWeight=0.50 PerfScore 6.00
-G_M53791_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-RWD00 dd 41200000h ; 10
-
-; Total bytes of code 56, prolog size 7, PerfScore 19.50, instruction count 17, allocated bytes for code 56 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
-29 (-60.42%) : 503746.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 5, 4 ) float -> mm0 single-def
+; V00 loc0 [V00,T00] ( 2, 2 ) float -> mm0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T01] ( 4, 3 ) float -> mm1 "CSE - aggressive"
+;* V04 cse0 [V04,T01] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 40
@@ -20,29 +20,17 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
vzeroupper
;; size=7 bbWeight=1 PerfScore 1.25
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
; gcr arg pop 0
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm1, xmm0
- jbe SHORT G_M53663_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vucomiss xmm0, xmm1
- jp SHORT G_M53663_IG03
- jne SHORT G_M53663_IG03
- vucomiss xmm0, xmm1
- jbe SHORT G_M53663_IG03
- jmp SHORT G_M53663_IG03
- ;; size=16 bbWeight=0.50 PerfScore 4.50
-RWD00 dd 41200000h ; 10
-
-; Total bytes of code 48, prolog size 7, PerfScore 16.00, instruction count 14, allocated bytes for code 48 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
-23 (-54.76%) : 507690.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,9 +8,8 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 4, 3.50) float -> mm0 single-def
+;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 cse0 [V02,T01] ( 3, 2.50) float -> mm1 "CSE - aggressive"
;
; Lcl frame size = 40
@@ -18,27 +17,17 @@ G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
vzeroupper
;; size=7 bbWeight=1 PerfScore 1.25
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
; gcr arg pop 0
- vmovss xmm1, dword ptr [reloc @RWD00]
- vucomiss xmm1, xmm0
- jbe SHORT G_M53663_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ nop
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M53663_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- vucomiss xmm0, xmm1
- jp SHORT G_M53663_IG03
- jne SHORT G_M53663_IG03
- jmp SHORT G_M53663_IG03
- ;; size=10 bbWeight=0.50 PerfScore 3.00
-RWD00 dd 41200000h ; 10
-
-; Total bytes of code 42, prolog size 7, PerfScore 14.50, instruction count 12, allocated bytes for code 42 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 19, prolog size 7, PerfScore 5.75, instruction count 6, allocated bytes for code 19 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
+10 (+5.92%) : 385780.dasm - testout1:SubFunclet183():int (FullOpts)
@@ -18,49 +18,49 @@
;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref single-def
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref
-; V10 tmp6 [V10,T10] ( 2, 2 ) int -> rcx single-def
+; V10 tmp6 [V10,T11] ( 2, 2 ) int -> rdx single-def
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref
-; V13 tmp9 [V13,T11] ( 2, 2 ) int -> rcx single-def
+; V13 tmp9 [V13,T12] ( 2, 2 ) int -> rdx single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref
-; V16 tmp12 [V16,T12] ( 2, 2 ) int -> rcx single-def
+; V16 tmp12 [V16,T13] ( 2, 2 ) int -> rdx single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref
-; V19 tmp15 [V19,T13] ( 2, 2 ) int -> rcx single-def
+;* V19 tmp15 [V19,T14] ( 0, 0 ) int -> zero-ref single-def
;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref
;* V21 tmp17 [V21 ] ( 0, 0 ) int -> zero-ref
-; V22 tmp18 [V22,T14] ( 2, 2 ) int -> rcx single-def
+;* V22 tmp18 [V22,T15] ( 0, 0 ) int -> zero-ref single-def
;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref
-;* V25 tmp21 [V25,T15] ( 0, 0 ) int -> zero-ref single-def
+;* V25 tmp21 [V25 ] ( 0, 0 ) int -> zero-ref
;* V26 tmp22 [V26 ] ( 0, 0 ) int -> zero-ref
;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp24 [V28,T24] ( 0, 0 ) int -> zero-ref single-def
;* V29 tmp25 [V29 ] ( 0, 0 ) int -> zero-ref
;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref
-;* V31 tmp27 [V31,T16] ( 0, 0 ) int -> zero-ref single-def
+; V31 tmp27 [V31,T16] ( 2, 2 ) int -> rdx single-def
;* V32 tmp28 [V32 ] ( 0, 0 ) int -> zero-ref
;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref
-;* V34 tmp30 [V34,T17] ( 0, 0 ) int -> zero-ref single-def
+; V34 tmp30 [V34,T17] ( 2, 2 ) int -> rcx single-def
;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref
;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref
-;* V37 tmp33 [V37,T18] ( 0, 0 ) int -> zero-ref single-def
+; V37 tmp33 [V37,T18] ( 2, 2 ) int -> rcx single-def
;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref
-;* V40 tmp36 [V40,T25] ( 0, 0 ) int -> zero-ref single-def
+; V40 tmp36 [V40,T19] ( 2, 2 ) int -> rcx single-def
;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref
-; V43 tmp39 [V43,T19] ( 2, 2 ) int -> rcx single-def
+; V43 tmp39 [V43,T20] ( 2, 2 ) int -> rax single-def
;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref
;* V45 tmp41 [V45 ] ( 0, 0 ) int -> zero-ref
-; V46 tmp42 [V46,T20] ( 2, 2 ) int -> rcx single-def
+; V46 tmp42 [V46,T21] ( 2, 2 ) int -> rax single-def
;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref
;* V48 tmp44 [V48 ] ( 0, 0 ) int -> zero-ref
-;* V49 tmp45 [V49,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V49 tmp45 [V49,T25] ( 0, 0 ) int -> zero-ref single-def
;* V50 tmp46 [V50 ] ( 0, 0 ) int -> zero-ref
;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref
-;* V52 tmp48 [V52,T26] ( 0, 0 ) int -> zero-ref single-def
+;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref
;* V53 tmp49 [V53 ] ( 0, 0 ) int -> zero-ref
;* V54 tmp50 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp51 [V55,T22] ( 0, 0 ) int -> zero-ref single-def
@@ -69,19 +69,20 @@
;* V58 tmp54 [V58,T23] ( 0, 0 ) int -> zero-ref single-def
;* V59 tmp55 [V59 ] ( 0, 0 ) int -> zero-ref
;* V60 tmp56 [V60 ] ( 0, 0 ) int -> zero-ref
-;* V61 tmp57 [V61,T27] ( 0, 0 ) int -> zero-ref single-def
+;* V61 tmp57 [V61,T26] ( 0, 0 ) int -> zero-ref single-def
;* V62 tmp58 [V62 ] ( 0, 0 ) int -> zero-ref
;* V63 tmp59 [V63 ] ( 0, 0 ) int -> zero-ref
-;* V64 tmp60 [V64,T28] ( 0, 0 ) int -> zero-ref single-def
+;* V64 tmp60 [V64,T27] ( 0, 0 ) int -> zero-ref single-def
;* V65 tmp61 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp62 [V66 ] ( 0, 0 ) int -> zero-ref
-; V67 cse0 [V67,T06] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V68 cse1 [V68,T03] ( 2, 2 ) int -> rcx "CSE - aggressive"
+; V67 cse0 [V67,T05] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V68 cse1 [V68,T06] ( 2, 2 ) int -> rax "CSE - aggressive"
; V69 cse2 [V69,T07] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V70 cse3 [V70,T04] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V71 cse4 [V71,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V72 cse5 [V72,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V70 cse3 [V70,T03] ( 3, 3 ) int -> r8 "CSE - aggressive"
+; V71 cse4 [V71,T04] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V72 cse5 [V72,T08] ( 3, 3 ) int -> rax "CSE - aggressive"
; V73 cse6 [V73,T09] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V74 cse7 [V74,T10] ( 2, 2 ) long -> rcx "CSE - aggressive"
;
; Lcl frame size = 32
@@ -116,23 +117,27 @@ G_M39164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- add ecx, -5
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov r8d, dword ptr [rax+0x14]
+ add edx, r8d
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=158 bbWeight=1 PerfScore 22.75
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, r8d
+ add eax, ecx
+ add eax, 3
+ add eax, -5
+ ;; size=168 bbWeight=1 PerfScore 22.50
G_M39164_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 5, PerfScore 25.75, instruction count 34, allocated bytes for code 169 (MethodHash=17766703) for method testout1:Sub_Funclet_183():int (FullOpts)
+; Total bytes of code 179, prolog size 5, PerfScore 25.50, instruction count 38, allocated bytes for code 179 (MethodHash=17766703) for method testout1:Sub_Funclet_183():int (FullOpts)
; ============================================================
Unwind Info:
+10 (+6.13%) : 385287.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -15,14 +15,14 @@
;* V04 loc4 [V04 ] ( 0, 0 ) ubyte -> zero-ref
; V05 loc5 [V05,T01] ( 4, 4 ) ref -> rbx class-hnd exact single-def <testout1>
;* V06 loc6 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
-; V07 loc7 [V07,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def <<unknown class>>
+; V07 loc7 [V07,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def <<unknown class>>
; V08 loc8 [V08,T00] ( 5, 5 ) ref -> rax class-hnd exact single-def <<unknown class>>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <testout1>
;* V11 tmp2 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref single-def
+;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref single-def
@@ -31,60 +31,60 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-;* V23 tmp14 [V23,T21] ( 0, 0 ) int -> zero-ref single-def
+;* V23 tmp14 [V23,T20] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp15 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp17 [V26,T08] ( 2, 2 ) int -> rcx single-def
+; V26 tmp17 [V26,T09] ( 2, 2 ) int -> rdx single-def
;* V27 tmp18 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp20 [V29,T09] ( 2, 2 ) int -> rcx single-def
+; V29 tmp20 [V29,T10] ( 2, 2 ) int -> rdx single-def
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp23 [V32,T10] ( 2, 2 ) int -> rcx single-def
+; V32 tmp23 [V32,T11] ( 2, 2 ) int -> rdx single-def
;* V33 tmp24 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp26 [V35,T11] ( 2, 2 ) int -> rcx single-def
+;* V35 tmp26 [V35,T12] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) int -> zero-ref
-; V38 tmp29 [V38,T12] ( 2, 2 ) int -> rcx single-def
+;* V38 tmp29 [V38,T13] ( 0, 0 ) int -> zero-ref single-def
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp32 [V41,T13] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp32 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp35 [V44,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V44 tmp35 [V44,T21] ( 0, 0 ) int -> zero-ref single-def
;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp38 [V47,T14] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp38 [V47,T14] ( 2, 2 ) int -> rdx single-def
;* V48 tmp39 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp41 [V50,T15] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp41 [V50,T15] ( 2, 2 ) int -> rcx single-def
;* V51 tmp42 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp44 [V53,T16] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp44 [V53,T16] ( 2, 2 ) int -> rcx single-def
;* V54 tmp45 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp46 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp47 [V56,T23] ( 0, 0 ) int -> zero-ref single-def
+; V56 tmp47 [V56,T17] ( 2, 2 ) int -> rcx single-def
;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp50 [V59,T17] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp50 [V59,T18] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp53 [V62,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp53 [V62,T19] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp56 [V65,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp56 [V65,T22] ( 0, 0 ) int -> zero-ref single-def
;* V66 tmp57 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp58 [V67 ] ( 0, 0 ) int -> zero-ref
-;* V68 tmp59 [V68,T24] ( 0, 0 ) int -> zero-ref single-def
+;* V68 tmp59 [V68 ] ( 0, 0 ) int -> zero-ref
;* V69 tmp60 [V69 ] ( 0, 0 ) int -> zero-ref
;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref
-; V71 cse0 [V71,T04] ( 2, 2 ) int -> rcx "CSE - aggressive"
-;* V72 cse1 [V72,T20] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V73 cse2 [V73,T02] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V74 cse3 [V74,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V75 cse4 [V75,T06] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V76 cse5 [V76,T07] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V71 cse0 [V71,T03] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V72 cse1 [V72,T04] ( 2, 2 ) int -> rax "CSE - aggressive"
+; V73 cse2 [V73,T05] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V74 cse3 [V74,T06] ( 3, 3 ) int -> r8 "CSE - aggressive"
+; V75 cse4 [V75,T07] ( 3, 3 ) int -> rax "CSE - aggressive"
+; V76 cse5 [V76,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
;
; Lcl frame size = 32
@@ -119,21 +119,25 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov r8d, dword ptr [rax+0x14]
+ add edx, r8d
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=152 bbWeight=1 PerfScore 22.25
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, r8d
+ add eax, ecx
+ ;; size=162 bbWeight=1 PerfScore 22.00
G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 163, prolog size 5, PerfScore 25.25, instruction count 32, allocated bytes for code 163 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 173, prolog size 5, PerfScore 25.00, instruction count 36, allocated bytes for code 173 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
+10 (+6.13%) : 385704.dasm - testout1:SubFunclet106():int (FullOpts)
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref
-;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref single-def
+;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref single-def
@@ -28,61 +28,61 @@
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref
;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref
-;* V20 tmp15 [V20,T22] ( 0, 0 ) int -> zero-ref single-def
+;* V20 tmp15 [V20,T21] ( 0, 0 ) int -> zero-ref single-def
;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp18 [V23,T09] ( 2, 2 ) int -> rcx single-def
+; V23 tmp18 [V23,T10] ( 2, 2 ) int -> rdx single-def
;* V24 tmp19 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp21 [V26,T10] ( 2, 2 ) int -> rcx single-def
+; V26 tmp21 [V26,T11] ( 2, 2 ) int -> rdx single-def
;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref
-; V29 tmp24 [V29,T11] ( 2, 2 ) int -> rcx single-def
+; V29 tmp24 [V29,T12] ( 2, 2 ) int -> rdx single-def
;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref
-; V32 tmp27 [V32,T12] ( 2, 2 ) int -> rcx single-def
+;* V32 tmp27 [V32,T13] ( 0, 0 ) int -> zero-ref single-def
;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref
-; V35 tmp30 [V35,T13] ( 2, 2 ) int -> rcx single-def
+;* V35 tmp30 [V35,T14] ( 0, 0 ) int -> zero-ref single-def
;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref
;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref
-;* V38 tmp33 [V38,T14] ( 0, 0 ) int -> zero-ref single-def
+;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref
;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref
-;* V41 tmp36 [V41,T23] ( 0, 0 ) int -> zero-ref single-def
+;* V41 tmp36 [V41,T22] ( 0, 0 ) int -> zero-ref single-def
;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref
-;* V44 tmp39 [V44,T15] ( 0, 0 ) int -> zero-ref single-def
+; V44 tmp39 [V44,T15] ( 2, 2 ) int -> rdx single-def
;* V45 tmp40 [V45 ] ( 0, 0 ) int -> zero-ref
;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref
-;* V47 tmp42 [V47,T16] ( 0, 0 ) int -> zero-ref single-def
+; V47 tmp42 [V47,T16] ( 2, 2 ) int -> rcx single-def
;* V48 tmp43 [V48 ] ( 0, 0 ) int -> zero-ref
;* V49 tmp44 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp45 [V50,T17] ( 0, 0 ) int -> zero-ref single-def
+; V50 tmp45 [V50,T17] ( 2, 2 ) int -> rcx single-def
;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref
-;* V53 tmp48 [V53,T24] ( 0, 0 ) int -> zero-ref single-def
+; V53 tmp48 [V53,T18] ( 2, 2 ) int -> rcx single-def
;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref
;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref
-;* V56 tmp51 [V56,T18] ( 0, 0 ) int -> zero-ref single-def
+;* V56 tmp51 [V56,T19] ( 0, 0 ) int -> zero-ref single-def
;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref
;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref
-;* V59 tmp54 [V59,T19] ( 0, 0 ) int -> zero-ref single-def
+;* V59 tmp54 [V59,T20] ( 0, 0 ) int -> zero-ref single-def
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref
-;* V62 tmp57 [V62,T20] ( 0, 0 ) int -> zero-ref single-def
+;* V62 tmp57 [V62,T23] ( 0, 0 ) int -> zero-ref single-def
;* V63 tmp58 [V63 ] ( 0, 0 ) int -> zero-ref
;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref
-;* V65 tmp60 [V65,T25] ( 0, 0 ) int -> zero-ref single-def
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref
;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref
-; V68 cse0 [V68,T04] ( 2, 2 ) int -> rcx "CSE - aggressive"
-;* V69 cse1 [V69,T21] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V70 cse2 [V70,T03] ( 2, 2 ) int -> rax "CSE - aggressive"
-; V71 cse3 [V71,T05] ( 2, 2 ) int -> rcx "CSE - aggressive"
-; V72 cse4 [V72,T06] ( 2, 2 ) int -> rdx "CSE - aggressive"
-; V73 cse5 [V73,T07] ( 2, 2 ) long -> rcx "CSE - aggressive"
-; V74 cse6 [V74,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V68 cse0 [V68,T03] ( 2, 2 ) int -> rdx "CSE - aggressive"
+; V69 cse1 [V69,T04] ( 2, 2 ) int -> rax "CSE - aggressive"
+; V70 cse2 [V70,T05] ( 3, 3 ) int -> rcx "CSE - aggressive"
+; V71 cse3 [V71,T06] ( 3, 3 ) int -> r8 "CSE - aggressive"
+; V72 cse4 [V72,T07] ( 3, 3 ) int -> rax "CSE - aggressive"
+; V73 cse5 [V73,T08] ( 2, 2 ) long -> rcx "CSE - aggressive"
+; V74 cse6 [V74,T09] ( 2, 2 ) long -> rcx "CSE - aggressive"
;
; Lcl frame size = 32
@@ -117,21 +117,25 @@ G_M50161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x08], -13
mov word ptr [rbx+0x0C], 256
mov ecx, dword ptr [rbx+0x08]
- add ecx, 17
- mov edx, dword ptr [rax+0x14]
- add ecx, edx
- add ecx, dword ptr [rax+0x10]
- add ecx, 3
- lea eax, [rcx-0x05]
+ mov edx, ecx
+ add edx, 17
+ mov r8d, dword ptr [rax+0x14]
+ add edx, r8d
+ mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=152 bbWeight=1 PerfScore 22.25
+ add edx, eax
+ add ecx, edx
+ add ecx, 17
+ add ecx, r8d
+ add eax, ecx
+ ;; size=162 bbWeight=1 PerfScore 22.00
G_M50161_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 163, prolog size 5, PerfScore 25.25, instruction count 32, allocated bytes for code 163 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
+; Total bytes of code 173, prolog size 5, PerfScore 25.00, instruction count 36, allocated bytes for code 173 (MethodHash=55db3c0e) for method testout1:Sub_Funclet_106():int (FullOpts)
; ============================================================
Unwind Info:
libraries.crossgen2.windows.x64.checked.mch
-22 (-44.00%) : 151542.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -8,64 +8,35 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> rcx single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> rcx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> rax
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea eax, [rcx-0x02]
- cmp eax, 19
- ja SHORT G_M3102_IG03
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M3102_IG02
- add rcx, rdx
- jmp rcx
- ;; size=30 bbWeight=1 PerfScore 7.50
+ add ecx, -2
+ cmp ecx, 19
+ ja SHORT G_M3102_IG04
+ mov eax, 0x3C003
+ bt eax, ecx
+ jae SHORT G_M3102_IG04
+ ;; size=18 bbWeight=1 PerfScore 3.25
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add ecx, -101
- cmp ecx, 2
- jbe SHORT G_M3102_IG05
- jmp SHORT G_M3102_IG05
- ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 1
- jmp SHORT G_M3102_IG06
+ jmp SHORT G_M3102_IG05
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret
;; size=1 bbWeight=1 PerfScore 1.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
-30 (-19.74%) : 239206.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> rsi class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,9 +28,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 3.75
G_M20631_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
cmp ebx, 452
- jg SHORT G_M20631_IG07
+ jg SHORT G_M20631_IG04
cmp ebx, 250
- jne SHORT G_M20631_IG06
+ jne SHORT G_M20631_IG04
;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
@@ -85,23 +85,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
call [CORINFO_HELP_THROW]
; gcrRegs -[rcx rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rsi]
- lea eax, [rbx-0x1C3]
- cmp eax, 1
- jbe SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- cmp ebx, 552
- je SHORT G_M20631_IG04
- cmp ebx, 554
- je SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=18 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=39 bbWeight=0 PerfScore 0.00
-; Total bytes of code 152, prolog size 7, PerfScore 9.00, instruction count 44, allocated bytes for code 152 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 122, prolog size 7, PerfScore 9.00, instruction count 36, allocated bytes for code 122 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
-20 (-14.93%) : 239043.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 7, 3 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 5, 3 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> rsi class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,7 +28,7 @@ G_M8758_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 3.75
G_M8758_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
cmp ebx, 250
- jne SHORT G_M8758_IG06
+ jne SHORT G_M8758_IG04
;; size=8 bbWeight=1 PerfScore 1.25
G_M8758_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
@@ -83,18 +83,10 @@ G_M8758_IG05: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byre
call [CORINFO_HELP_THROW]
; gcrRegs -[rcx rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
-G_M8758_IG06: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rsi]
- lea eax, [rbx-0x1C3]
- cmp eax, 1
- jbe SHORT G_M8758_IG04
- cmp ebx, 552
- je SHORT G_M8758_IG04
- jmp SHORT G_M8758_IG04
- ;; size=21 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=39 bbWeight=0 PerfScore 0.00
-; Total bytes of code 134, prolog size 7, PerfScore 7.75, instruction count 39, allocated bytes for code 134 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 114, prolog size 7, PerfScore 7.75, instruction count 34, allocated bytes for code 114 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 176032.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String,int,int,int):System.Exception (FullOpts)
@@ -15,8 +15,8 @@
; V03 arg3 [V03,T03] ( 3, 2.50) int -> rdi single-def
; V04 arg4 [V04,T08] ( 1, 0.50) int -> [rsp+0x90] single-def
; V05 OutArgs [V05 ] ( 1, 1 ) struct (56) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V07 tmp2 [V07,T07] ( 2, 2 ) ref -> rbx class-hnd single-def "finalizable newobj spill" <System.String>
+; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V07 tmp2 [V07,T07] ( 2, 2 ) ref -> rsi class-hnd single-def "finalizable newobj spill" <System.String>
; V08 tmp3 [V08,T05] ( 3, 3 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V09 tmp4 [V09,T06] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String[]>
;
@@ -37,9 +37,43 @@ G_M23253_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=19 bbWeight=1 PerfScore 6.00
G_M23253_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
test r8d, r8d
- je SHORT G_M23253_IG05
+ jne SHORT G_M23253_IG05
;; size=5 bbWeight=1 PerfScore 1.25
G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ mov rdx, rsi
+ ; gcrRegs +[rdx]
+ call [<unknown method>]
+ ; gcrRegs -[rcx rdx rbx rsi] +[rax]
+ ; gcr arg pop 0
+ mov rsi, rax
+ ; gcrRegs +[rsi]
+ call [CORINFO_HELP_READYTORUN_NEW]
+ ; gcr arg pop 0
+ mov rdi, rax
+ ; gcrRegs +[rdi]
+ mov rcx, rdi
+ ; gcrRegs +[rcx]
+ mov rdx, rsi
+ ; gcrRegs +[rdx]
+ call [<unknown method>]
+ ; gcrRegs -[rax rcx rdx rsi]
+ ; gcr arg pop 0
+ mov rax, rdi
+ ; gcrRegs +[rax]
+ ;; size=39 bbWeight=0.50 PerfScore 5.38
+G_M23253_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 64
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ pop r14
+ ret
+ ;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax rdi] +[rbx rsi]
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -77,40 +111,6 @@ G_M23253_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rax, rbp
; gcrRegs +[rax]
;; size=79 bbWeight=0.50 PerfScore 9.50
-G_M23253_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 64
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M23253_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rbp] +[rbx rsi]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- mov rdx, rsi
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi] +[rax]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- call [CORINFO_HELP_READYTORUN_NEW]
- ; gcr arg pop 0
- mov rsi, rax
- ; gcrRegs +[rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rax rcx rdx rbx]
- ; gcr arg pop 0
- mov rax, rsi
- ; gcrRegs +[rax]
- ;; size=39 bbWeight=0.50 PerfScore 5.38
G_M23253_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 64
pop rbx
+12 (+2.23%) : 168046.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -45,16 +45,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=22 bbWeight=1 PerfScore 6.25
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea r11, [reloc @RWD00]
mov r11d, dword ptr [r11+4*rcx]
lea rax, G_M11729_IG02
add r11, rax
jmp r11
- ;; size=32 bbWeight=1 PerfScore 9.00
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -73,34 +73,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov ecx, eax
lea r11, [reloc @RWD44]
mov r11d, dword ptr [r11+4*rcx]
lea rax, G_M11729_IG02
add r11, rax
jmp r11
- ;; size=33 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; 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_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=37 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -109,7 +95,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -118,20 +104,20 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov r14, gword ptr [rbx+0x38]
; gcrRegs +[r14]
test r14, r14
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rcx, r14
; gcrRegs +[rcx]
call [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rcx, r14
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -139,9 +125,9 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
call [r11]<unknown method>
; gcrRegs -[rax rcx r14]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=98 bbWeight=0.50 PerfScore 19.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 19.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -153,13 +139,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=19 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov r9, gword ptr [rbx+0x40]
; gcrRegs +[r9]
mov r9, gword ptr [r9+0x28]
cmp ecx, dword ptr [r9+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov r9d, esi
@@ -195,7 +181,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
lea r11, [(reloc)] ; function address
cmp dword ptr [rcx], ecx
;; size=106 bbWeight=0.50 PerfScore 22.75
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -204,7 +190,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop r14
tail.jmp [r11]<unknown method>
;; size=13 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -215,7 +201,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
lea r11, [(reloc)] ; function address
cmp dword ptr [rcx], ecx
;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -224,11 +210,11 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop r14
tail.jmp [r11]<unknown method>
;; size=13 bbWeight=0.50 PerfScore 2.38
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov r9d, esi
@@ -242,7 +228,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -250,9 +236,21 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=47 bbWeight=0.50 PerfScore 7.50
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; 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_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
@@ -302,23 +300,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 537, prolog size 22, PerfScore 93.88, instruction count 161, allocated bytes for code 537 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 549, prolog size 22, PerfScore 93.88, instruction count 161, allocated bytes for code 549 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.23%) : 168048.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -45,16 +45,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=22 bbWeight=1 PerfScore 6.25
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea r11, [reloc @RWD00]
mov r11d, dword ptr [r11+4*rcx]
lea rax, G_M57654_IG02
add r11, rax
jmp r11
- ;; size=32 bbWeight=1 PerfScore 9.00
+ ;; size=36 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -73,34 +73,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov ecx, eax
lea r11, [reloc @RWD44]
mov r11d, dword ptr [r11+4*rcx]
lea rax, G_M57654_IG02
add r11, rax
jmp r11
- ;; size=33 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; 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_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=37 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -109,7 +95,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -118,20 +104,20 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov r14, gword ptr [rbx+0x38]
; gcrRegs +[r14]
test r14, r14
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rcx, r14
; gcrRegs +[rcx]
call [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rcx, r14
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -139,9 +125,9 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
call [r11]<unknown method>
; gcrRegs -[rax rcx r14]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=98 bbWeight=0.50 PerfScore 19.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 19.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[rax]
; gcr arg pop 0
@@ -153,13 +139,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=19 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov r9, gword ptr [rbx+0x40]
; gcrRegs +[r9]
mov r9, gword ptr [r9+0x28]
cmp ecx, dword ptr [r9+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov r9d, esi
@@ -195,7 +181,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
lea r11, [(reloc)] ; function address
cmp dword ptr [rcx], ecx
;; size=106 bbWeight=0.50 PerfScore 22.75
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -204,7 +190,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop r14
tail.jmp [r11]<unknown method>
;; size=13 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -215,7 +201,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
lea r11, [(reloc)] ; function address
cmp dword ptr [rcx], ecx
;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
pop rbp
@@ -224,11 +210,11 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop r14
tail.jmp [r11]<unknown method>
;; size=13 bbWeight=0.50 PerfScore 2.38
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov r9d, esi
@@ -242,7 +228,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -250,9 +236,21 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=47 bbWeight=0.50 PerfScore 7.50
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; 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_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
@@ -302,23 +300,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
-; Total bytes of code 537, prolog size 22, PerfScore 93.88, instruction count 161, allocated bytes for code 537 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 549, prolog size 22, PerfScore 93.88, instruction count 161, allocated bytes for code 549 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
-22 (-44.00%) : 196404.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,64 +7,35 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> rcx single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> rcx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> rax
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea eax, [rcx-0x02]
- cmp eax, 19
- ja SHORT G_M3102_IG03
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M3102_IG02
- add rcx, rdx
- jmp rcx
- ;; size=30 bbWeight=1 PerfScore 7.50
+ add ecx, -2
+ cmp ecx, 19
+ ja SHORT G_M3102_IG04
+ mov eax, 0x3C003
+ bt eax, ecx
+ jae SHORT G_M3102_IG04
+ ;; size=18 bbWeight=1 PerfScore 3.25
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add ecx, -101
- cmp ecx, 2
- jbe SHORT G_M3102_IG05
- jmp SHORT G_M3102_IG05
- ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 1
- jmp SHORT G_M3102_IG06
+ jmp SHORT G_M3102_IG05
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret
;; size=1 bbWeight=1 PerfScore 1.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
-4 (-28.57%) : 275343.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
@@ -28,12 +28,11 @@ G_M40773_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=1 bbWeight=1 PerfScore 1.00
G_M40773_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rcx]
- cmp gword ptr [rcx+0x10], 0
- je SHORT G_M40773_IG03
+ mov eax, dword ptr [rcx+0x10]
jmp SHORT G_M40773_IG03
- ;; size=9 bbWeight=0.50 PerfScore 3.00
+ ;; size=5 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 14, prolog size 0, PerfScore 5.25, instruction count 6, allocated bytes for code 14 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 10, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 10 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
; ============================================================
Unwind Info:
-41 (-22.91%) : 286465.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 9, 4 ) int -> rbx single-def
+; V00 arg0 [V00,T00] ( 6, 4 ) int -> rbx single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> rsi class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,10 +27,10 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 3.75
G_M20631_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
cmp ebx, 452
- jg G_M20631_IG07
+ jg SHORT G_M20631_IG04
cmp ebx, 250
- jne SHORT G_M20631_IG06
- ;; size=20 bbWeight=1 PerfScore 2.50
+ jne SHORT G_M20631_IG04
+ ;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -86,23 +86,10 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
call CORINFO_HELP_THROW
; gcrRegs -[rcx rdi]
; gcr arg pop 0
- ;; size=46 bbWeight=0 PerfScore 0.00
-G_M20631_IG06: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rsi]
- lea ecx, [rbx-0x1C3]
- cmp ecx, 1
- jbe SHORT G_M20631_IG04
- jmp SHORT G_M20631_IG04
- ;; size=13 bbWeight=0 PerfScore 0.00
-G_M20631_IG07: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- cmp ebx, 552
- je SHORT G_M20631_IG04
- cmp ebx, 554
- je G_M20631_IG04
- jmp G_M20631_IG04
- ;; size=25 bbWeight=0 PerfScore 0.00
+ int3
+ ;; size=47 bbWeight=0 PerfScore 0.00
-; Total bytes of code 179, prolog size 7, PerfScore 9.00, instruction count 46, allocated bytes for code 179 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 138, prolog size 7, PerfScore 9.00, instruction count 38, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.21%) : 209505.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -54,16 +54,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=20 bbWeight=1 PerfScore 5.25
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M11729_IG02
add rax, rdx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -82,33 +82,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov ecx, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M11729_IG02
add rax, rdx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rax, qword ptr [rcx]
@@ -117,7 +104,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -126,27 +113,27 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rax, rcx
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rdx, 0xD1FFAB1E ; System.Xml.Base64Decoder
cmp rax, rdx
- jne SHORT G_M11729_IG09
+ jne SHORT G_M11729_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=98 bbWeight=0.50 PerfScore 18.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 18.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.Base64Decoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -159,13 +146,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov rdx, gword ptr [rbx+0x40]
; gcrRegs +[rdx]
mov rdx, gword ptr [rdx+0x28]
cmp ecx, dword ptr [rdx+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -199,7 +186,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x48]
;; size=98 bbWeight=0.50 PerfScore 23.50
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -207,7 +194,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -218,7 +205,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -226,11 +213,11 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -244,7 +231,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -252,9 +239,20 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=48 bbWeight=0.50 PerfScore 7.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -306,23 +304,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 542, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 542 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 554, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 554 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.21%) : 209507.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -54,16 +54,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=20 bbWeight=1 PerfScore 5.25
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M57654_IG02
add rax, rdx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -82,33 +82,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov ecx, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M57654_IG02
add rax, rdx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rax, qword ptr [rcx]
@@ -117,7 +104,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -126,27 +113,27 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rax, rcx
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rdx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
cmp rax, rdx
- jne SHORT G_M57654_IG09
+ jne SHORT G_M57654_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=98 bbWeight=0.50 PerfScore 18.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 18.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -159,13 +146,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov rdx, gword ptr [rbx+0x40]
; gcrRegs +[rdx]
mov rdx, gword ptr [rdx+0x28]
cmp ecx, dword ptr [rdx+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -199,7 +186,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x48]
;; size=98 bbWeight=0.50 PerfScore 23.50
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -207,7 +194,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -218,7 +205,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -226,11 +213,11 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x30]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -244,7 +231,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -252,9 +239,20 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=48 bbWeight=0.50 PerfScore 7.75
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -306,23 +304,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
-; Total bytes of code 542, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 542 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 554, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 554 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+1 (+5.56%) : 51432.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
@@ -14,7 +14,7 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V04 tmp2 [V04 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V06 tmp4 [V06,T01] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -25,13 +25,13 @@ G_M32950_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
mov rax, qword ptr [rcx+0x58]
movsx rax, word ptr [rax+0x0C]
mov rax, qword ptr [rcx+0x50]
- movzx rax, byte ptr [rax+0x04]
- ;; size=17 bbWeight=1 PerfScore 10.00
+ movsx rax, word ptr [rax+0x04]
+ ;; size=18 bbWeight=1 PerfScore 12.00
G_M32950_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 18, prolog size 0, PerfScore 11.00, instruction count 5, allocated bytes for code 18 (MethodHash=f47e7f49) for method Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 13.00, instruction count 5, allocated bytes for code 19 (MethodHash=f47e7f49) for method Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-37 (-33.04%) : 84807.dasm - Roslyn.Utilities.AsyncLazy1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[System.Canon]):System.Threading.Tasks.Task`1[System.Canon]:this (Tier1)
@@ -12,21 +12,20 @@
; V00 this [V00,T00] ( 6, 4.68) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
; V01 arg1 [V01,T01] ( 5, 3.68) ref -> rsi class-hnd single-def <System.Threading.Tasks.Task`1[System.__Canon]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T03] ( 8, 2.27) int -> rdi "Inline stloc first use temp"
+; V03 tmp1 [V03,T03] ( 4, 2.24) int -> rcx "Inline stloc first use temp"
;* V04 tmp2 [V04,T04] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V05 cse0 [V05,T02] ( 3, 2.44) ref -> rax "CSE - aggressive"
;
; Lcl frame size = 0
-G_M21386_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
+G_M21386_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rsi
push rbx
mov rbx, rcx
; gcrRegs +[rbx]
mov rsi, rdx
; gcrRegs +[rsi]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 2.50
G_M21386_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbx+0x18]
; gcrRegs +[rax]
@@ -35,13 +34,13 @@ G_M21386_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
;; size=9 bbWeight=1 PerfScore 3.25
G_M21386_IG03: ; bbWeight=0.56, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- mov edi, dword ptr [rsi+0x34]
- test edi, 0xD1FFAB1E
+ mov ecx, dword ptr [rsi+0x34]
+ test ecx, 0xD1FFAB1E
jne SHORT G_M21386_IG05
- test edi, 0xD1FFAB1E
+ test ecx, 0xD1FFAB1E
jne SHORT G_M21386_IG05
- test edi, 0xD1FFAB1E
- je SHORT G_M21386_IG08
+ test ecx, 0xD1FFAB1E
+ je SHORT G_M21386_IG05
lea rcx, bword ptr [rbx+0x18]
; byrRegs +[rcx]
mov rdx, rsi
@@ -65,30 +64,16 @@ G_M21386_IG05: ; bbWeight=0.56, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
G_M21386_IG06: ; bbWeight=0.56, epilog, nogc, extend
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=0.56 PerfScore 1.40
+ ;; size=3 bbWeight=0.56 PerfScore 1.12
G_M21386_IG07: ; bbWeight=0.44, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rsi]
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=0.44 PerfScore 1.10
-G_M21386_IG08: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rsi]
- test edi, 0xD1FFAB1E
- jne SHORT G_M21386_IG05
- test edi, 0x20000
- jne SHORT G_M21386_IG05
- test edi, 0x10000
- jne SHORT G_M21386_IG05
- test edi, 0xD1FFAB1E
- je SHORT G_M21386_IG05
- jmp SHORT G_M21386_IG05
- ;; size=34 bbWeight=0.01 PerfScore 0.05
+ ;; size=3 bbWeight=0.44 PerfScore 0.88
-; Total bytes of code 112, prolog size 3, PerfScore 14.90, instruction count 39, allocated bytes for code 112 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
+; Total bytes of code 75, prolog size 2, PerfScore 13.35, instruction count 27, allocated bytes for code 75 (MethodHash=7308ac75) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
; ============================================================
Unwind Info:
@@ -96,11 +81,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x02
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- 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)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
-37 (-32.46%) : 169325.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,30 +12,29 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> rsi class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4 ) int -> rdi "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> rcx "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rsi
push rbx
mov rbx, rcx
; gcrRegs +[rbx]
mov rsi, rdx
; gcrRegs +[rsi]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 2.50
G_M46606_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M46606_IG06
- mov edi, dword ptr [rsi+0x34]
- test edi, 0xD1FFAB1E
+ mov ecx, dword ptr [rsi+0x34]
+ test ecx, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
+ test ecx, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
- je SHORT G_M46606_IG08
+ test ecx, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
lea rcx, bword ptr [rbx+0x18]
; byrRegs +[rcx]
mov rdx, rsi
@@ -59,9 +58,8 @@ G_M46606_IG04: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
G_M46606_IG05: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=1 PerfScore 2.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
G_M46606_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rsi] +[rbx]
mov rax, gword ptr [rbx+0x18]
@@ -70,23 +68,10 @@ G_M46606_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax rbx] +[rsi]
- test edi, 0xD1FFAB1E
- jne SHORT G_M46606_IG04
- test edi, 0x20000
- jne SHORT G_M46606_IG04
- test edi, 0x10000
- jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
- je SHORT G_M46606_IG04
- jmp SHORT G_M46606_IG04
- ;; size=34 bbWeight=0 PerfScore 0.00
+ ;; size=3 bbWeight=0 PerfScore 0.00
-; Total bytes of code 114, prolog size 3, PerfScore 20.00, instruction count 39, allocated bytes for code 114 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 77, prolog size 2, PerfScore 18.50, instruction count 27, allocated bytes for code 77 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -94,11 +79,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x02
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- 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)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
-37 (-32.46%) : 643790.dasm - Roslyn.Utilities.AsyncLazy1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
@@ -12,30 +12,29 @@
; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> rsi class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 8, 4 ) int -> rdi "Inline stloc first use temp"
+; V03 tmp1 [V03,T02] ( 4, 4 ) int -> rcx "Inline stloc first use temp"
;* V04 tmp2 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rdi
+G_M46606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rsi
push rbx
mov rbx, rcx
; gcrRegs +[rbx]
mov rsi, rdx
; gcrRegs +[rsi]
- ;; size=9 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 2.50
G_M46606_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
jne SHORT G_M46606_IG06
- mov edi, dword ptr [rsi+0x34]
- test edi, 0xD1FFAB1E
+ mov ecx, dword ptr [rsi+0x34]
+ test ecx, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
+ test ecx, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
- je SHORT G_M46606_IG08
+ test ecx, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
lea rcx, bword ptr [rbx+0x18]
; byrRegs +[rcx]
mov rdx, rsi
@@ -59,9 +58,8 @@ G_M46606_IG04: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
G_M46606_IG05: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=1 PerfScore 2.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
G_M46606_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rsi] +[rbx]
mov rax, gword ptr [rbx+0x18]
@@ -70,23 +68,10 @@ G_M46606_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
pop rbx
pop rsi
- pop rdi
ret
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M46606_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax rbx] +[rsi]
- test edi, 0xD1FFAB1E
- jne SHORT G_M46606_IG04
- test edi, 0x20000
- jne SHORT G_M46606_IG04
- test edi, 0x10000
- jne SHORT G_M46606_IG04
- test edi, 0xD1FFAB1E
- je SHORT G_M46606_IG04
- jmp SHORT G_M46606_IG04
- ;; size=34 bbWeight=0 PerfScore 0.00
+ ;; size=3 bbWeight=0 PerfScore 0.00
-; Total bytes of code 114, prolog size 3, PerfScore 20.00, instruction count 39, allocated bytes for code 114 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 77, prolog size 2, PerfScore 18.50, instruction count 27, allocated bytes for code 77 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
Unwind Info:
@@ -94,11 +79,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x02
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- 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)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+13 (+4.56%) : 628414.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
@@ -43,14 +43,14 @@ G_M40875_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=17 bbWeight=1 PerfScore 6.75
G_M40875_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
test esi, esi
- je G_M40875_IG12
+ je G_M40875_IG10
lea ebp, [rsi-0x01]
sar ebp, 6
xor ecx, ecx
test esi, esi
cmovle ebp, ecx
test ebp, ebp
- jne G_M40875_IG14
+ jne G_M40875_IG12
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
;; size=39 bbWeight=1 PerfScore 4.50
@@ -59,21 +59,34 @@ G_M40875_IG03: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx},
mov rdi, -1
xor ecx, ecx
test r14d, r14d
- jg SHORT G_M40875_IG07
+ jg SHORT G_M40875_IG05
;; size=21 bbWeight=1 PerfScore 2.25
G_M40875_IG04: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
mov ecx, esi
and ecx, 63
- jle SHORT G_M40875_IG10
+ jle G_M40875_IG14
mov rax, -1
shlx rcx, rax, rcx
mov r15, rcx
not r15
test r14d, r14d
- jge SHORT G_M40875_IG09
+ jge G_M40875_IG13
mov rdi, r15
- ;; size=36 bbWeight=1 PerfScore 4.25
-G_M40875_IG05: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref
+ jmp SHORT G_M40875_IG07
+ ;; size=46 bbWeight=1 PerfScore 6.25
+G_M40875_IG05: ; bbWeight=0.04, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
+ cmp ecx, dword ptr [rdx+0x08]
+ jae SHORT G_M40875_IG09
+ mov eax, ecx
+ mov qword ptr [rdx+8*rax+0x10], -1
+ inc ecx
+ cmp ecx, r14d
+ jl SHORT G_M40875_IG05
+ ;; size=23 bbWeight=0.04 PerfScore 0.26
+G_M40875_IG06: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
+ jmp SHORT G_M40875_IG04
+ ;; size=2 bbWeight=1 PerfScore 2.00
+G_M40875_IG07: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref
mov rcx, rbx
; byrRegs +[rcx]
call CORINFO_HELP_CHECKED_ASSIGN_REF
@@ -84,7 +97,7 @@ G_M40875_IG05: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx},
mov rax, rbx
; byrRegs +[rax]
;; size=18 bbWeight=1 PerfScore 3.50
-G_M40875_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M40875_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -94,43 +107,12 @@ G_M40875_IG06: ; bbWeight=1, epilog, nogc, extend
pop r15
ret
;; size=13 bbWeight=1 PerfScore 4.25
-G_M40875_IG07: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, gcvars, byref, isz
- ; gcrRegs +[rdx]
- ; byrRegs -[rax]
- cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M40875_IG11
- mov eax, ecx
- mov qword ptr [rdx+8*rax+0x10], -1
- inc ecx
- cmp ecx, r14d
- jl SHORT G_M40875_IG07
- ;; size=23 bbWeight=0.04 PerfScore 0.26
-G_M40875_IG08: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
- jmp SHORT G_M40875_IG04
- ;; size=2 bbWeight=1 PerfScore 2.00
-G_M40875_IG09: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
- cmp r14d, dword ptr [rdx+0x08]
- jae SHORT G_M40875_IG11
- mov eax, r14d
- mov qword ptr [rdx+8*rax+0x10], r15
- jmp SHORT G_M40875_IG05
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M40875_IG10: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
- test ebp, ebp
- jle SHORT G_M40875_IG05
- cmp r14d, dword ptr [rdx+0x08]
- jae SHORT G_M40875_IG11
- mov eax, r14d
- mov qword ptr [rdx+8*rax+0x10], -1
- jmp SHORT G_M40875_IG05
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M40875_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx]
- ; byrRegs -[rbx]
+G_M40875_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; byrRegs -[rax rbx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M40875_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M40875_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; byrRegs +[rbx]
mov rax, 0xD1FFAB1E ; box for <unknown class>:<unknown field>
mov rsi, gword ptr [rax]
@@ -146,7 +128,7 @@ G_M40875_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
mov rax, rbx
; byrRegs +[rax]
;; size=32 bbWeight=0 PerfScore 0.00
-G_M40875_IG13: ; bbWeight=0, epilog, nogc, extend
+G_M40875_IG11: ; bbWeight=0, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -156,7 +138,7 @@ G_M40875_IG13: ; bbWeight=0, epilog, nogc, extend
pop r15
ret
;; size=13 bbWeight=0 PerfScore 0.00
-G_M40875_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+G_M40875_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs -[rax rsi rdi]
movsxd rdx, ebp
mov rcx, 0xD1FFAB1E ; ulong[]
@@ -167,8 +149,25 @@ G_M40875_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs +[rdx]
jmp G_M40875_IG03
;; size=26 bbWeight=0 PerfScore 0.00
+G_M40875_IG13: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
+ ; gcrRegs -[rax]
+ cmp r14d, dword ptr [rdx+0x08]
+ jae SHORT G_M40875_IG09
+ mov eax, r14d
+ mov qword ptr [rdx+8*rax+0x10], r15
+ jmp SHORT G_M40875_IG07
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M40875_IG14: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
+ test ebp, ebp
+ jle SHORT G_M40875_IG07
+ cmp r14d, dword ptr [rdx+0x08]
+ jae SHORT G_M40875_IG09
+ mov eax, r14d
+ mov qword ptr [rdx+8*rax+0x10], -1
+ jmp G_M40875_IG07
+ ;; size=27 bbWeight=0 PerfScore 0.00
-; Total bytes of code 285, prolog size 17, PerfScore 27.76, instruction count 89, allocated bytes for code 285 (MethodHash=4a676054) for method Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
+; Total bytes of code 298, prolog size 17, PerfScore 29.76, instruction count 90, allocated bytes for code 298 (MethodHash=4a676054) for method Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
; ============================================================
Unwind Info:
+7 (+4.76%) : 473576.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThanfloat (Instrumented Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 8, 3.32) float -> [rsp+0x30] ld-addr-op single-def
-; V01 arg1 [V01,T03] ( 8, 3.32) float -> [rsp+0x38] single-def
+; V01 arg1 [V01,T03] ( 6, 3.32) float -> [rsp+0x38] single-def
; V02 arg2 [V02,T00] ( 3, 2 ) ref -> rbx class-hnd single-def <System.String>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04,T01] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
@@ -68,27 +68,24 @@ G_M56262_IG07: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=52 bbWeight=0 PerfScore 0.00
G_M56262_IG08: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx]
+ vmovss dword ptr [rsp+0x38], xmm1
vucomiss xmm0, xmm1
jp SHORT G_M56262_IG09
je SHORT G_M56262_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M56262_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ vmovss xmm1, dword ptr [rsp+0x38]
vmovss dword ptr [rsp+0x30], xmm0
vucomiss xmm0, xmm0
- jp SHORT G_M56262_IG10
- je SHORT G_M56262_IG11
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M56262_IG10: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- vucomiss xmm1, xmm1
- jp SHORT G_M56262_IG03
- jmp SHORT G_M56262_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M56262_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
vmovss dword ptr [rsp+0x38], xmm1
- jmp SHORT G_M56262_IG07
- ;; size=8 bbWeight=0 PerfScore 0.00
+ jp SHORT G_M56262_IG10
+ je SHORT G_M56262_IG07
+ ;; size=26 bbWeight=0 PerfScore 0.00
+G_M56262_IG10: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp G_M56262_IG03
+ ;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 147, prolog size 8, PerfScore 10.03, instruction count 37, allocated bytes for code 147 (MethodHash=c4652439) for method System.ArgumentOutOfRangeException:ThrowIfGreaterThan[float](float,float,System.String) (Instrumented Tier1)
+; Total bytes of code 154, prolog size 8, PerfScore 10.03, instruction count 36, allocated bytes for code 154 (MethodHash=c4652439) for method System.ArgumentOutOfRangeException:ThrowIfGreaterThan[float](float,float,System.String) (Instrumented Tier1)
; ============================================================
Unwind Info:
+36 (+5.68%) : 203353.dasm - System.Collections.Frozen.FrozenSetInternalBase2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable1[System.__Canon]):ubyte:this (Tier1-OSR)
@@ -12,73 +12,76 @@
;
; V00 this [V00,T09] ( 6, 200.30) ref -> [rbp+0x110] this class-hnd EH-live single-def tier0-frame <System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]>
;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-; V02 loc0 [V02,T08] ( 14, 202.66) ref -> [rbp+0xB8] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
+; V02 loc0 [V02,T08] ( 14, 203.00) ref -> [rbp+0xB8] do-not-enreg[H] class-hnd EH-live tier0-frame <System.Collections.Generic.IEnumerator`1[System.__Canon]>
; V03 loc1 [V03,T10] ( 4, 198.30) ref -> rax class-hnd <System.__Canon>
-; V04 loc2 [V04,T15] ( 1, 1 ) struct ( 8) [rbp+0xA8] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Frozen.OrdinalStringFrozenSet+GSW>
-; V05 loc3 [V05,T18] ( 2, 0 ) ubyte -> [rbp+0xA4] do-not-enreg[Z] EH-live tier0-frame
+; V04 loc2 [V04,T17] ( 1, 1 ) struct ( 8) [rbp+0xA8] do-not-enreg[SF] ld-addr-op tier0-frame <System.Collections.Frozen.OrdinalStringFrozenSet+GSW>
+; V05 loc3 [V05,T19] ( 2, 0 ) ubyte -> [rbp+0xA4] do-not-enreg[Z] EH-live tier0-frame
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V08 tmp2 [V08 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
;* V09 tmp3 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V10 tmp4 [V10,T02] ( 8, 594.91) long -> r11 "VirtualCall with runtime lookup"
-; V11 tmp5 [V11,T01] ( 5, 200 ) int -> rbx "guarded devirt return temp"
+; V11 tmp5 [V11,T01] ( 5, 200 ) int -> rdi "guarded devirt return temp"
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-;* V14 tmp8 [V14,T16] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V14 tmp8 [V14 ] ( 0, 0 ) int -> zero-ref "OSR entry state var"
; V15 tmp9 [V15,T00] ( 12,1200 ) byref -> rax "Inlining Arg"
;* V16 tmp10 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref "V04.[000..008)"
; V18 tmp12 [V18,T03] ( 6, 594.91) ref -> r8 "argument with side effect"
-; V19 PSPSym [V19,T17] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[V] "PSPSym"
+; V19 PSPSym [V19,T18] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[V] "PSPSym"
; V20 cse0 [V20,T07] ( 3, 297 ) ref -> r8 "CSE - aggressive"
-; V21 cse1 [V21,T14] ( 3, 3.00) ref -> rbx "CSE - aggressive"
-; V22 rat0 [V22,T05] ( 3, 463.32) long -> rdx "Spilling to split statement for tree"
-; V23 rat1 [V23,T04] ( 3, 549.70) long -> rax "spilling expr"
-; V24 rat2 [V24,T06] ( 3, 439.76) long -> r11 "fgMakeTemp is creating a new local variable"
-; V25 rat3 [V25,T12] ( 3, 4.68) long -> rdx "Spilling to split statement for tree"
-; V26 rat4 [V26,T11] ( 3, 5.55) long -> rax "spilling expr"
-; V27 rat5 [V27,T13] ( 3, 4.44) long -> r11 "fgMakeTemp is creating a new local variable"
+; V21 cse1 [V21,T16] ( 3, 3.00) ref -> rdi "CSE - aggressive"
+; V22 cse2 [V22,T15] ( 4, 3.70) long -> rsi hoist multi-def "CSE - aggressive"
+; V23 cse3 [V23,T12] ( 8, 5.38) long -> rbx hoist multi-def "CSE - aggressive"
+; V24 rat0 [V24,T05] ( 3, 463.32) long -> rdx "Spilling to split statement for tree"
+; V25 rat1 [V25,T04] ( 3, 549.70) long -> rax "spilling expr"
+; V26 rat2 [V26,T06] ( 3, 439.76) long -> r11 "fgMakeTemp is creating a new local variable"
+; V27 rat3 [V27,T13] ( 3, 4.68) long -> rdx "Spilling to split statement for tree"
+; V28 rat4 [V28,T11] ( 3, 5.55) long -> rax "spilling expr"
+; V29 rat5 [V29,T14] ( 3, 4.44) long -> r11 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
G_M25692_IG01: ; bbWeight=0.85, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
push rax
- sub rsp, 48
+ sub rsp, 64
+ mov qword ptr [rsp+0x138], rdi
+ mov qword ptr [rsp+0x130], rsi
mov qword ptr [rsp+0x128], rbx
- lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rsp
+ lea rbp, [rsp+0x40]
+ mov qword ptr [rbp-0x20], rsp
mov rcx, gword ptr [rbp+0x110]
; gcrRegs +[rcx]
- ;; size=33 bbWeight=0.85 PerfScore 6.57
-G_M25692_IG02: ; bbWeight=0.85, gcVars=0000000000000300 {V00 V02}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=49 bbWeight=0.85 PerfScore 8.27
+G_M25692_IG02: ; bbWeight=0.85, gcVars=0000000000000300 {V00 V02}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V02}
cmp gword ptr [rbp+0xB8], 0
- je G_M25692_IG10
- ;; size=14 bbWeight=0.85 PerfScore 2.55
-G_M25692_IG03: ; bbWeight=0.52, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+ je G_M25692_IG09
mov rdx, gword ptr [rbp+0xB8]
; gcrRegs +[rdx]
- mov rax, 0xD1FFAB1E ; System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]
- cmp qword ptr [rdx], rax
- jne G_M25692_IG10
- jmp SHORT G_M25692_IG07
- ;; size=28 bbWeight=0.52 PerfScore 3.75
-G_M25692_IG04: ; bbWeight=98.16, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+ mov rbx, qword ptr [rdx]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]
+ cmp rbx, rsi
+ jne G_M25692_IG09
+ jmp SHORT G_M25692_IG06
+ ;; size=45 bbWeight=0.85 PerfScore 8.06
+G_M25692_IG03: ; bbWeight=98.16, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx]
mov rdx, qword ptr [rcx]
mov rax, qword ptr [rdx+0x38]
mov rax, qword ptr [rax+0x08]
cmp qword ptr [rax+0x10], 128
- jle SHORT G_M25692_IG09
+ jle SHORT G_M25692_IG08
;; size=21 bbWeight=98.16 PerfScore 981.60
-G_M25692_IG05: ; bbWeight=78.53, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG04: ; bbWeight=78.53, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov r11, qword ptr [rax+0x80]
test r11, r11
- je SHORT G_M25692_IG09
+ je SHORT G_M25692_IG08
;; size=12 bbWeight=78.53 PerfScore 255.22
-G_M25692_IG06: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25692_IG05: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp+0xB8]
; gcrRegs +[rcx]
call [r11]
@@ -98,9 +101,9 @@ G_M25692_IG06: ; bbWeight=98.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
; gcrRegs -[rcx rdx r8]
; gcr arg pop 0
test eax, eax
- jl G_M25692_IG19
+ jl G_M25692_IG18
;; size=45 bbWeight=98.16 PerfScore 1546.02
-G_M25692_IG07: ; bbWeight=99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG06: ; bbWeight=99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x110]
; gcrRegs +[rcx]
mov rax, gword ptr [rbp+0xB8]
@@ -113,48 +116,48 @@ G_M25692_IG07: ; bbWeight=99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov r8, gword ptr [rax]
; gcrRegs +[r8]
cmp edx, dword ptr [r8+0x08]
- jb SHORT G_M25692_IG04
+ jb SHORT G_M25692_IG03
mov edx, dword ptr [r8+0x08]
mov dword ptr [rax+0x08], edx
- xor ebx, ebx
- jne SHORT G_M25692_IG04
+ xor edi, edi
+ jne SHORT G_M25692_IG03
;; size=44 bbWeight=99 PerfScore 1732.50
-G_M25692_IG08: ; bbWeight=0.84, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M25692_IG07: ; bbWeight=0.84, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[r8]
; byrRegs -[rax]
- jmp G_M25692_IG20
+ jmp G_M25692_IG19
;; size=5 bbWeight=0.84 PerfScore 1.69
-G_M25692_IG09: ; bbWeight=35.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG08: ; bbWeight=35.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rcx, rdx
mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r11, rax
- jmp SHORT G_M25692_IG06
+ jmp SHORT G_M25692_IG05
;; size=23 bbWeight=35.34 PerfScore 132.52
-G_M25692_IG10: ; bbWeight=0.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG09: ; bbWeight=0.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0xB8]
; gcrRegs +[rdx]
cmp dword ptr [rdx], edx
- jmp SHORT G_M25692_IG14
- ;; size=11 bbWeight=0.01 PerfScore 0.03
-G_M25692_IG11: ; bbWeight=0.99, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M25692_IG13
+ ;; size=11 bbWeight=0.01 PerfScore 0.05
+G_M25692_IG10: ; bbWeight=0.99, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
mov rdx, qword ptr [rcx]
mov rax, qword ptr [rdx+0x38]
mov rax, qword ptr [rax+0x08]
cmp qword ptr [rax+0x10], 128
- jle G_M25692_IG15
+ jle G_M25692_IG14
;; size=25 bbWeight=0.99 PerfScore 9.92
-G_M25692_IG12: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG11: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov r11, qword ptr [rax+0x80]
test r11, r11
- je SHORT G_M25692_IG15
+ je SHORT G_M25692_IG14
;; size=12 bbWeight=0.79 PerfScore 2.58
-G_M25692_IG13: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25692_IG12: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp+0xB8]
; gcrRegs +[rcx]
call [r11]
@@ -174,16 +177,17 @@ G_M25692_IG13: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx rdx r8]
; gcr arg pop 0
test eax, eax
- jl G_M25692_IG19
+ jl G_M25692_IG18
;; size=45 bbWeight=0.99 PerfScore 15.62
-G_M25692_IG14: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25692_IG13: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x110]
; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0xB8]
; gcrRegs +[rdx]
- mov rax, 0xD1FFAB1E ; System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]
- cmp qword ptr [rdx], rax
- jne SHORT G_M25692_IG18
+ mov rbx, qword ptr [rdx]
+ mov rsi, 0xD1FFAB1E ; System.Collections.Frozen.FrozenSet`1+Enumerator[System.String]
+ cmp rbx, rsi
+ jne SHORT G_M25692_IG17
mov rax, gword ptr [rbp+0xB8]
; gcrRegs +[rax]
add rax, 8
@@ -192,17 +196,17 @@ G_M25692_IG14: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
inc dword ptr [rax+0x08]
mov edx, dword ptr [rax+0x08]
; gcrRegs -[rdx]
- mov rbx, gword ptr [rax]
- ; gcrRegs +[rbx]
- cmp edx, dword ptr [rbx+0x08]
- jb G_M25692_IG11
- mov r11d, dword ptr [rbx+0x08]
+ mov rdi, gword ptr [rax]
+ ; gcrRegs +[rdi]
+ cmp edx, dword ptr [rdi+0x08]
+ jb G_M25692_IG10
+ mov r11d, dword ptr [rdi+0x08]
mov dword ptr [rax+0x08], r11d
- xor ebx, ebx
- ; gcrRegs -[rbx]
- jmp SHORT G_M25692_IG16
- ;; size=70 bbWeight=1.00 PerfScore 23.75
-G_M25692_IG15: ; bbWeight=0.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor edi, edi
+ ; gcrRegs -[rdi]
+ jmp SHORT G_M25692_IG15
+ ;; size=73 bbWeight=1.00 PerfScore 23.00
+G_M25692_IG14: ; bbWeight=0.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
; byrRegs -[rax]
mov rcx, rdx
@@ -210,17 +214,17 @@ G_M25692_IG15: ; bbWeight=0.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r11, rax
- jmp G_M25692_IG13
+ jmp G_M25692_IG12
;; size=26 bbWeight=0.36 PerfScore 1.34
-G_M25692_IG16: ; bbWeight=1.00, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M25692_IG15: ; bbWeight=1.00, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
- test ebx, ebx
- jne G_M25692_IG11
+ test edi, edi
+ jne G_M25692_IG10
;; size=8 bbWeight=1.00 PerfScore 1.25
...
librariestestsnotieredcompilation.run.windows.x64.Release.mch
-22 (-44.00%) : 149324.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,64 +7,35 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) int -> rcx single-def
+; V00 arg0 [V00,T01] ( 3, 3 ) int -> rcx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> rax
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T00] ( 3, 6 ) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V03 rat0 [V03,T00] ( 3, 6 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M3102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M3102_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea eax, [rcx-0x02]
- cmp eax, 19
- ja SHORT G_M3102_IG03
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M3102_IG02
- add rcx, rdx
- jmp rcx
- ;; size=30 bbWeight=1 PerfScore 7.50
+ add ecx, -2
+ cmp ecx, 19
+ ja SHORT G_M3102_IG04
+ mov eax, 0x3C003
+ bt eax, ecx
+ jae SHORT G_M3102_IG04
+ ;; size=18 bbWeight=1 PerfScore 3.25
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add ecx, -101
- cmp ecx, 2
- jbe SHORT G_M3102_IG05
- jmp SHORT G_M3102_IG05
- ;; size=10 bbWeight=0.50 PerfScore 1.75
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, 1
- jmp SHORT G_M3102_IG06
+ jmp SHORT G_M3102_IG05
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3102_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret
;; size=1 bbWeight=1 PerfScore 1.00
-RWD00 dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG04 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
- dd G_M3102_IG05 - G_M3102_IG02
-
-; Total bytes of code 50, prolog size 0, PerfScore 11.50, instruction count 16, allocated bytes for code 50 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+; Total bytes of code 28, prolog size 0, PerfScore 5.50, instruction count 10, allocated bytes for code 28 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
-27 (-28.42%) : 5614.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> rcx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,19 +20,18 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> rdx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbx
- sub rsp, 48
- mov qword ptr [rsp+0x28], rcx
+ sub rsp, 32
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M43979_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx]
mov rcx, gword ptr [rbx+0x20]
@@ -43,54 +42,46 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
; byrRegs +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M43979_IG05
+ je SHORT G_M43979_IG04
;; size=17 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
mov ecx, dword ptr [rax]
mov rdx, gword ptr [rbx+0x80]
; gcrRegs +[rdx]
- mov rax, qword ptr [rbx]
- ; byrRegs -[rax]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x108]
- test rax, rax
- jne SHORT G_M43979_IG07
- ;; size=31 bbWeight=0.50 PerfScore 6.62
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M43979_IG07
- ;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M43979_IG06
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
+ ; byrRegs -[rax]
xor rax, rax
; gcrRegs +[rax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 48
+G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M43979_IG09
+ jae SHORT G_M43979_IG08
mov eax, ecx
mov rax, gword ptr [rdx+8*rax+0x10]
; gcrRegs +[rax]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 48
+G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 95, prolog size 10, PerfScore 23.57, instruction count 31, allocated bytes for code 95 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 68, prolog size 5, PerfScore 18.75, instruction count 24, allocated bytes for code 68 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -103,5 +94,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-27 (-28.42%) : 44051.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> rcx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,19 +20,18 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> rax single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> rdx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-; V12 rat0 [V12,T05] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V12 rat0 [V12,T05] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V14 rat2 [V14,T03] ( 2, 2 ) long -> rax "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T03] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbx
- sub rsp, 48
- mov qword ptr [rsp+0x28], rcx
+ sub rsp, 32
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M43979_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx]
mov rcx, gword ptr [rbx+0x20]
@@ -43,54 +42,46 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
; byrRegs +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M43979_IG05
+ je SHORT G_M43979_IG04
;; size=17 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
mov ecx, dword ptr [rax]
mov rdx, gword ptr [rbx+0x80]
; gcrRegs +[rdx]
- mov rax, qword ptr [rbx]
- ; byrRegs -[rax]
- mov rax, qword ptr [rax+0x38]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0xC0]
- test rax, rax
- jne SHORT G_M43979_IG07
- ;; size=31 bbWeight=0.50 PerfScore 6.62
-G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M43979_IG07
- ;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M43979_IG06
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
+ ; byrRegs -[rax]
xor rax, rax
; gcrRegs +[rax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 48
+G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax] +[rdx]
cmp ecx, dword ptr [rdx+0x08]
- jae SHORT G_M43979_IG09
+ jae SHORT G_M43979_IG08
mov eax, ecx
mov rax, gword ptr [rdx+8*rax+0x10]
; gcrRegs +[rax]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 48
+G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M43979_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 95, prolog size 10, PerfScore 23.57, instruction count 31, allocated bytes for code 95 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 68, prolog size 5, PerfScore 18.75, instruction count 24, allocated bytes for code 68 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -103,5 +94,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+1 (+0.35%) : 33230.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 11, 25 ) ref -> rbx class-hnd <System.Linq.Expressions.Expression>
-; V01 loc0 [V01,T00] ( 12, 29 ) int -> rax
+; V01 loc0 [V01,T00] ( 11, 28.50) int -> rax
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Linq.Expressions.BinaryExpression>
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Linq.Expressions.InvocationExpression>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Linq.Expressions.MemberExpression>
@@ -21,7 +21,7 @@
; V10 tmp5 [V10,T08] ( 3, 2.50) long -> rcx "fgMakeTemp is creating a new local variable"
; V11 tmp6 [V11,T10] ( 3, 2 ) ref -> rax class-hnd "spilling QMark2" <System.Linq.Expressions.InvocationExpression>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.RuntimeType>
-; V13 tmp8 [V13,T13] ( 2, 2 ) int -> rax "Single return block return value"
+; V13 tmp8 [V13,T13] ( 2, 2 ) int -> rcx "Single return block return value"
; V14 tmp9 [V14,T04] ( 2, 16 ) ref -> rbx single-def "arg temp"
; V15 tmp10 [V15,T11] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
; V16 tmp11 [V16,T06] ( 3, 3 ) ref -> rcx single-def "argument with side effect"
@@ -58,14 +58,14 @@ G_M33341_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=2 PerfScore 2.50
G_M33341_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- jmp G_M33341_IG17
+ jmp G_M33341_IG20
;; size=5 bbWeight=0.50 PerfScore 1.00
G_M33341_IG06: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx]
cmp eax, 63
je SHORT G_M33341_IG07
cmp eax, 73
- jne G_M33341_IG25
+ jne G_M33341_IG23
;; size=14 bbWeight=2 PerfScore 5.00
G_M33341_IG07: ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; System.Linq.Expressions.BinaryExpression
@@ -96,13 +96,13 @@ G_M33341_IG11: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
cmp eax, 17
jg SHORT G_M33341_IG16
cmp eax, 6
- je SHORT G_M33341_IG18
+ je G_M33341_IG21
cmp eax, 17
- jne G_M33341_IG25
+ jne G_M33341_IG23
mov rcx, 0xD1FFAB1E ; System.Linq.Expressions.InvocationExpression
cmp rsi, rcx
je SHORT G_M33341_IG13
- ;; size=34 bbWeight=0.50 PerfScore 2.62
+ ;; size=38 bbWeight=0.50 PerfScore 2.62
G_M33341_IG12: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdx, rbx
; gcrRegs +[rdx]
@@ -141,45 +141,25 @@ G_M33341_IG15: ; bbWeight=0.50, epilog, nogc, extend
G_M33341_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax rcx rdx] +[rbx]
cmp eax, 23
- je SHORT G_M33341_IG20
- cmp eax, 38
- je SHORT G_M33341_IG25
- jmp SHORT G_M33341_IG25
- ;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M33341_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbx]
- cmp eax, 55
- jne SHORT G_M33341_IG25
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M33341_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M33341_IG19: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rsi
- ret
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M33341_IG20: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx]
+ jne SHORT G_M33341_IG23
mov rcx, 0xD1FFAB1E ; System.Linq.Expressions.MemberExpression
cmp rsi, rcx
- je SHORT G_M33341_IG22
- ;; size=15 bbWeight=0.50 PerfScore 0.75
-G_M33341_IG21: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ je SHORT G_M33341_IG18
+ ;; size=20 bbWeight=0.50 PerfScore 1.38
+G_M33341_IG17: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdx, rbx
; gcrRegs +[rdx]
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx rbx] +[rax]
; gcr arg pop 0
- jmp SHORT G_M33341_IG23
+ jmp SHORT G_M33341_IG19
;; size=10 bbWeight=0.25 PerfScore 0.81
-G_M33341_IG22: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M33341_IG18: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rbx]
mov rax, rbx
; gcrRegs +[rax]
;; size=3 bbWeight=0.25 PerfScore 0.06
-G_M33341_IG23: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+G_M33341_IG19: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx]
mov rcx, rax
; gcrRegs +[rcx]
@@ -194,11 +174,28 @@ G_M33341_IG23: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
call CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[rdx]
; gcr arg pop 0
+ xor ecx, ecx
test rax, rax
- setne al
+ setne cl
+ jmp SHORT G_M33341_IG25
+ ;; size=38 bbWeight=0.50 PerfScore 5.12
+G_M33341_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- movzx rax, al
- ;; size=37 bbWeight=0.50 PerfScore 4.12
+ cmp eax, 55
+ jne SHORT G_M33341_IG23
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M33341_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, 1
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M33341_IG22: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rsi
+ ret
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M33341_IG23: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M33341_IG24: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -206,8 +203,8 @@ G_M33341_IG24: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M33341_IG25: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
+ movzx rax, cl
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
G_M33341_IG26: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -215,7 +212,7 @@ G_M33341_IG26: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 286, prolog size 6, PerfScore 131.62, instruction count 88, allocated bytes for code 286 (MethodHash=33537dc2) for method Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
+; Total bytes of code 287, prolog size 6, PerfScore 131.12, instruction count 87, allocated bytes for code 287 (MethodHash=33537dc2) for method Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.21%) : 185066.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -54,16 +54,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=20 bbWeight=1 PerfScore 5.25
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M11729_IG02
add rax, rdx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M11729_IG04
@@ -82,33 +82,20 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M11729_IG06
+ ja G_M11729_IG16
mov ecx, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M11729_IG02
add rax, rdx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rax, qword ptr [rcx]
@@ -117,7 +104,7 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M11729_IG12
+ je G_M11729_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -126,27 +113,27 @@ G_M11729_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M11729_IG06
+ je G_M11729_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M11729_IG10
+ jne SHORT G_M11729_IG08
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M11729_IG09
+ je SHORT G_M11729_IG07
mov rax, rcx
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rdx, 0xD1FFAB1E ; System.Xml.Base64Decoder
cmp rax, rdx
- jne SHORT G_M11729_IG09
+ jne SHORT G_M11729_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- jmp SHORT G_M11729_IG10
- ;; size=98 bbWeight=0.50 PerfScore 18.62
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M11729_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 18.62
+G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.Base64Decoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -159,13 +146,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov rdx, gword ptr [rbx+0x40]
; gcrRegs +[rdx]
mov rdx, gword ptr [rdx+0x28]
cmp ecx, dword ptr [rdx+0x08]
- je G_M11729_IG06
+ je G_M11729_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -199,7 +186,7 @@ G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x48]
;; size=98 bbWeight=0.50 PerfScore 23.50
-G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -207,7 +194,7 @@ G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -218,7 +205,7 @@ G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11729_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -226,11 +213,11 @@ G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M11729_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M11729_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -244,7 +231,7 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M11729_IG16
+ jne SHORT G_M11729_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -252,9 +239,20 @@ G_M11729_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=48 bbWeight=0.50 PerfScore 7.75
-G_M11729_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M11729_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -306,23 +304,23 @@ G_M11729_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
+RWD00 dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
+ dd G_M11729_IG16 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
- dd G_M11729_IG15 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG19 - G_M11729_IG02
RWD44 dd G_M11729_IG18 - G_M11729_IG02
- dd G_M11729_IG08 - G_M11729_IG02
- dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG10 - G_M11729_IG02
-; Total bytes of code 542, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 542 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 554, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 554 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
+12 (+2.21%) : 185068.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
@@ -54,16 +54,16 @@ G_M57654_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ebp, r8d
mov esi, r9d
;; size=20 bbWeight=1 PerfScore 5.25
-G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x54]
cmp ecx, 10
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M57654_IG02
add rax, rdx
jmp rax
- ;; size=30 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M57654_IG03: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rbx+0x68], 0
jne SHORT G_M57654_IG04
@@ -82,33 +82,20 @@ G_M57654_IG04: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov eax, dword ptr [rax+0x30]
; gcrRegs -[rax]
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
dec eax
cmp eax, 2
- ja SHORT G_M57654_IG06
+ ja G_M57654_IG16
mov ecx, eax
lea rax, [reloc @RWD44]
mov eax, dword ptr [rax+4*rcx]
lea rdx, G_M57654_IG02
add rax, rdx
jmp rax
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rdi]
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57654_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
+ ;; size=35 bbWeight=0.50 PerfScore 3.75
+G_M57654_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x5C], -1
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rax, qword ptr [rcx]
@@ -117,7 +104,7 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
- je G_M57654_IG12
+ je G_M57654_IG10
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, ebp
@@ -126,27 +113,27 @@ G_M57654_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
; gcrRegs -[rcx]
; gcr arg pop 0
test esi, esi
- je SHORT G_M57654_IG06
+ je G_M57654_IG16
cmp dword ptr [rbx+0x60], 0
- jne SHORT G_M57654_IG10
+ jne SHORT G_M57654_IG08
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M57654_IG09
+ je SHORT G_M57654_IG07
mov rax, rcx
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rdx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
cmp rax, rdx
- jne SHORT G_M57654_IG09
+ jne SHORT G_M57654_IG07
mov rax, qword ptr [rax+0x50]
call [rax+0x08]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- jmp SHORT G_M57654_IG10
- ;; size=98 bbWeight=0.50 PerfScore 18.62
-G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M57654_IG08
+ ;; size=102 bbWeight=0.50 PerfScore 18.62
+G_M57654_IG07: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.BinHexDecoder
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -159,13 +146,13 @@ G_M57654_IG09: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M57654_IG08: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x60]
mov rdx, gword ptr [rbx+0x40]
; gcrRegs +[rdx]
mov rdx, gword ptr [rdx+0x28]
cmp ecx, dword ptr [rdx+0x08]
- je G_M57654_IG06
+ je G_M57654_IG16
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -199,7 +186,7 @@ G_M57654_IG10: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x48]
;; size=98 bbWeight=0.50 PerfScore 23.50
-G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -207,7 +194,7 @@ G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx] +[rdi]
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -218,7 +205,7 @@ G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x90]
;; size=23 bbWeight=0.50 PerfScore 3.38
-G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M57654_IG11: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -226,11 +213,11 @@ G_M57654_IG13: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x30]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M57654_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M57654_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx]
mov dword ptr [rbx+0x54], 10
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M57654_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -244,7 +231,7 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcr arg pop 0
mov edi, eax
test edi, edi
- jne SHORT G_M57654_IG16
+ jne SHORT G_M57654_IG14
mov dword ptr [rbx+0x54], 1
mov rcx, rbx
; gcrRegs +[rcx]
@@ -252,9 +239,20 @@ G_M57654_IG15: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=48 bbWeight=0.50 PerfScore 7.75
-G_M57654_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57654_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M57654_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M57654_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M57654_IG17: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -306,23 +304,23 @@ G_M57654_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=45 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG14 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG06 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG03 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG19 - G_M57654_IG02
- dd G_M57654_IG15 - G_M57654_IG02
-RWD44 dd G_M57654_IG18 - G_M57654_IG02
- dd G_M57654_IG08 - G_M57654_IG02
+RWD00 dd G_M57654_IG16 - G_M57654_IG02
dd G_M57654_IG12 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG16 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG03 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG19 - G_M57654_IG02
+ dd G_M57654_IG13 - G_M57654_IG02
+RWD44 dd G_M57654_IG18 - G_M57654_IG02
+ dd G_M57654_IG06 - G_M57654_IG02
+ dd G_M57654_IG10 - G_M57654_IG02
-; Total bytes of code 542, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 542 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 554, prolog size 20, PerfScore 90.50, instruction count 158, allocated bytes for code 554 (MethodHash=18cc1ec9) for method System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch
-25 (-25.25%) : 10062.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> rbx this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 6, 4.50) ref -> rbx this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> rcx class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -35,49 +35,37 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M3270_IG04
+ je SHORT G_M3270_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rdx rbx] +[rax]
- ; gcr arg pop 0
- test rax, rax
- jne SHORT G_M3270_IG06
- jmp SHORT G_M3270_IG06
- ;; size=25 bbWeight=0.50 PerfScore 2.38
-G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax] +[rbx]
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M3270_IG06
+ je SHORT G_M3270_IG05
cmp gword ptr [rbx+0x20], 0
- jne SHORT G_M3270_IG06
+ jne SHORT G_M3270_IG05
mov rcx, gword ptr [rcx+0x08]
mov rdx, gword ptr [rbx+0x08]
; gcrRegs +[rdx]
;; size=24 bbWeight=0.50 PerfScore 5.62
-G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
tail.jmp [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
; gcr arg pop 0
;; size=11 bbWeight=0.50 PerfScore 1.38
-G_M3270_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx rbx]
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-; Total bytes of code 99, prolog size 8, PerfScore 14.62, instruction count 28, allocated bytes for code 99 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 12.25, instruction count 22, allocated bytes for code 74 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-23 (-11.06%) : 27440.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
@@ -25,10 +25,10 @@
; V14 tmp7 [V14 ] ( 5, 14.50) int -> [rsp+0x38] do-not-enreg[X] addr-exposed "field V05._index (fldOffset=0x8)" P-DEP
; V15 tmp8 [V15,T02] ( 2, 8 ) ref -> rdx "argument with side effect"
;* V16 cse0 [V16,T11] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V17 cse1 [V17,T07] ( 3, 3 ) long -> r14 "CSE - aggressive"
-; V18 rat0 [V18,T09] ( 2, 2 ) long -> rcx "Spilling to split statement for tree"
+; V17 cse1 [V17,T07] ( 2, 2.50) long -> r14 "CSE - aggressive"
+;* V18 rat0 [V18,T09] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V19 rat1 [V19,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V20 rat2 [V20,T08] ( 2, 2 ) long -> rcx "fgMakeTemp is creating a new local variable"
+;* V20 rat2 [V20,T08] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 80
@@ -51,7 +51,7 @@ G_M39622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdi, r8
; gcrRegs +[rdi]
;; size=41 bbWeight=1 PerfScore 10.58
-G_M39622_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M39622_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x38]
; gcrRegs +[rcx]
mov rdx, rsi
@@ -63,8 +63,8 @@ G_M39622_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
test rbp, rbp
- je G_M39622_IG07
- ;; size=27 bbWeight=1 PerfScore 9.75
+ je SHORT G_M39622_IG07
+ ;; size=23 bbWeight=1 PerfScore 9.75
G_M39622_IG03: ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
lea rdx, [rsp+0x30]
@@ -74,14 +74,8 @@ G_M39622_IG03: ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
; gcrRegs -[rcx]
; gcr arg pop 0
mov r14, qword ptr [rbx]
- mov rcx, r14
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x48]
- test rcx, rcx
- jne SHORT G_M39622_IG05
jmp SHORT G_M39622_IG05
- ;; size=38 bbWeight=0.50 PerfScore 7.62
+ ;; size=19 bbWeight=0.50 PerfScore 3.88
G_M39622_IG04: ; bbWeight=2, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rsp+0x30]
; gcrRegs +[rcx]
@@ -138,7 +132,7 @@ G_M39622_IG08: ; bbWeight=1, epilog, nogc, extend
ret
;; size=11 bbWeight=1 PerfScore 3.75
-; Total bytes of code 208, prolog size 32, PerfScore 106.33, instruction count 62, allocated bytes for code 208 (MethodHash=40416539) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
+; Total bytes of code 185, prolog size 32, PerfScore 102.58, instruction count 56, allocated bytes for code 185 (MethodHash=40416539) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-19 (-10.92%) : 25481.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)
@@ -27,10 +27,10 @@
; V16 tmp12 [V16 ] ( 5, 27 ) int -> [rsp+0x68] do-not-enreg[X] addr-exposed "field V01._index (fldOffset=0x8)" P-DEP
;* V17 tmp13 [V17 ] ( 0, 0 ) ubyte -> zero-ref "V03.[004..005)"
;* V18 cse0 [V18,T13] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V19 cse1 [V19,T08] ( 2, 2 ) long -> rsi "CSE - aggressive"
-; V20 rat0 [V20,T09] ( 2, 4 ) long -> rcx "Spilling to split statement for tree"
+; V19 cse1 [V19,T08] ( 1, 1 ) long -> rsi "CSE - aggressive"
+;* V20 rat0 [V20,T09] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V21 rat1 [V21,T10] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V22 rat2 [V22,T07] ( 2, 4 ) long -> rcx "fgMakeTemp is creating a new local variable"
+;* V22 rat2 [V22,T07] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V23 rat3 [V23,T12] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V24 rat4 [V24,T02] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
@@ -57,14 +57,8 @@ G_M864_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
; gcr arg pop 0
mov rsi, qword ptr [rbx]
- mov rcx, rsi
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x30]
- test rcx, rcx
- jne SHORT G_M864_IG04
jmp SHORT G_M864_IG04
- ;; size=41 bbWeight=1 PerfScore 20.00
+ ;; size=22 bbWeight=1 PerfScore 12.50
G_M864_IG03: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rsp+0x60]
; gcrRegs +[rcx]
@@ -114,7 +108,7 @@ G_M864_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 174, prolog size 33, PerfScore 143.83, instruction count 52, allocated bytes for code 174 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 155, prolog size 33, PerfScore 136.33, instruction count 46, allocated bytes for code 155 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-5 (-0.08%) : 22166.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
@@ -2620,10 +2620,8 @@ G_M12170_IG173: ; bbWeight=2, gcrefRegs=1805 {rax rdx r11 r12}, byrefRegs
call [r11]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- cmp eax, 5
- jne SHORT G_M12170_IG177
jmp SHORT G_M12170_IG177
- ;; size=124 bbWeight=2 PerfScore 81.00
+ ;; size=119 bbWeight=2 PerfScore 78.50
G_M12170_IG174: ; bbWeight=2, gcrefRegs=1000 {r12}, byrefRegs=0040 {rsi}, byref, isz
mov rbx, gword ptr [rsp+0x78]
; gcrRegs +[rbx]
@@ -3248,7 +3246,7 @@ RWD00 dq 0070006100720057h, 0045006E006F004Eh, 0070006500630078h, 006E006F0069
RWD32 dq 006300780045006Eh, 0069007400700065h, 00680054006E006Fh, 00730077006F0072h
-; Total bytes of code 6655, prolog size 65, PerfScore 949.15, instruction count 1448, allocated bytes for code 6655 (MethodHash=068ad075) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
+; Total bytes of code 6650, prolog size 65, PerfScore 946.65, instruction count 1446, allocated bytes for code 6650 (MethodHash=068ad075) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 24421.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNativeIntegerOverflowingUnaryOperator(int,Microsoft.CodeAnalysis.ConstantValue):System.Object (FullOpts)
@@ -23,21 +23,9 @@ G_M35943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=9 bbWeight=1 PerfScore 2.50
G_M35943_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp ecx, 0x1509
- je SHORT G_M35943_IG05
+ jne SHORT G_M35943_IG05
;; size=8 bbWeight=1 PerfScore 1.25
-G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- xor rax, rax
- ; gcrRegs +[rax]
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop rsi
- ret
- ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rbx]
+G_M35943_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -59,6 +47,17 @@ G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, rsi
; gcrRegs +[rax]
;; size=43 bbWeight=0.50 PerfScore 5.75
+G_M35943_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rsi
+ ret
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M35943_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax rsi]
+ xor rax, rax
+ ; gcrRegs +[rax]
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -66,7 +65,7 @@ G_M35943_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M35943_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rsi]
+ ; gcrRegs -[rax]
call CORINFO_HELP_OVERFLOW
; gcr arg pop 0
int3
+0 (0.00%) : 18719.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rcx class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.String>
-; V02 loc0 [V02,T02] ( 2, 2 ) ref -> rax class-hnd single-def <System.String>
+;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 40
smoke_tests.nativeaot.windows.x64.checked.mch
-20 (-5.03%) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -14,7 +14,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> rdi single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> rbp single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> r14
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> r14
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> rcx
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> rcx
@@ -25,19 +25,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> rcx "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> rcx "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> rdx "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> rdx "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> rdx "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> rdx "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> rdx "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> rdx "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> rcx single-def "arr expr"
@@ -204,22 +204,7 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=17 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, edx
- jbe SHORT G_M29651_IG14
- jmp SHORT G_M29651_IG14
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r14d, edx
- jbe SHORT G_M29651_IG15
- jmp SHORT G_M29651_IG15
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r14d, edx
- jbe SHORT G_M29651_IG16
- jmp SHORT G_M29651_IG16
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
@@ -227,7 +212,7 @@ G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r14d
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
@@ -236,7 +221,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r14d
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
@@ -246,7 +231,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 398, prolog size 12, PerfScore 216.38, instruction count 120, allocated bytes for code 398 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 378, prolog size 12, PerfScore 216.38, instruction count 111, allocated bytes for code 378 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Unwind Info:
-20 (-5.03%) : 13919.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
@@ -13,7 +13,7 @@
; V03 loc0 [V03,T16] ( 3, 6 ) int -> rdi single-def
; V04 loc1 [V04,T13] ( 6, 9 ) int -> rbp single-def
;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc3 [V06,T00] ( 15, 35 ) int -> r14
+; V06 loc3 [V06,T00] ( 13, 35 ) int -> r14
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T24] ( 2, 1 ) int -> rcx
; V09 tmp2 [V09,T17] ( 2, 4 ) int -> rcx
@@ -24,19 +24,19 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
-; V17 tmp10 [V17,T01] ( 6, 32 ) int -> rcx "Inlining Arg"
+; V17 tmp10 [V17,T01] ( 5, 32 ) int -> rcx "Inlining Arg"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V19 tmp12 [V19,T07] ( 4, 16 ) int -> rdx "Inlining Arg"
+; V19 tmp12 [V19,T07] ( 3, 16 ) int -> rdx "Inlining Arg"
;* V20 tmp13 [V20,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V21 tmp14 [V21,T10] ( 3, 12 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V22 tmp15 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V23 tmp16 [V23,T14] ( 4, 8 ) int -> rdx "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 8 ) int -> rdx "Inlining Arg"
;* V24 tmp17 [V24,T22] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V27 tmp20 [V27,T02] ( 3, 24 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
;* V28 tmp21 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V29 tmp22 [V29,T08] ( 4, 16 ) int -> rdx "Inlining Arg"
+; V29 tmp22 [V29,T08] ( 3, 16 ) int -> rdx "Inlining Arg"
;* V30 tmp23 [V30,T19] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LowLevelList`1[ubyte]>
; V32 tmp25 [V32,T21] ( 3, 3 ) ref -> rcx single-def "arr expr"
@@ -203,22 +203,7 @@ G_M29651_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=17 bbWeight=0 PerfScore 0.00
-G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, edx
- jbe SHORT G_M29651_IG14
- jmp SHORT G_M29651_IG14
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r14d, edx
- jbe SHORT G_M29651_IG15
- jmp SHORT G_M29651_IG15
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r14d, edx
- jbe SHORT G_M29651_IG16
- jmp SHORT G_M29651_IG16
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
@@ -226,7 +211,7 @@ G_M29651_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r14d
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
@@ -235,7 +220,7 @@ G_M29651_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M29651_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r14d
lea r8, gword ptr [(reloc)]
; gcrRegs +[r8]
@@ -245,7 +230,7 @@ G_M29651_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 398, prolog size 12, PerfScore 216.38, instruction count 120, allocated bytes for code 398 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
+; Total bytes of code 378, prolog size 12, PerfScore 216.38, instruction count 111, allocated bytes for code 378 (MethodHash=0e6f8c2c) for method Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
; ============================================================
Unwind Info:
-14 (-3.80%) : 8201.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
@@ -17,7 +17,7 @@
; V06 loc1 [V06,T15] ( 5, 8.50) long -> registers
; V07 loc2 [V07,T14] ( 7, 11 ) long -> registers
; V08 loc3 [V08,T16] ( 6, 6 ) int -> rbx
-; V09 loc4 [V09,T00] ( 18,102.50) int -> r9
+; V09 loc4 [V09,T00] ( 16,102.50) int -> r9
; V10 loc5 [V10,T18] ( 3, 6 ) int -> rbp
; V11 loc6 [V11,T04] ( 7, 26 ) int -> r15
; V12 loc7 [V12,T11] ( 6, 12 ) long -> rax
@@ -26,10 +26,10 @@
; V15 tmp2 [V15,T12] ( 3, 12 ) long -> r8 "impSpillLclRefs"
; V16 tmp3 [V16,T13] ( 3, 12 ) long -> r8 "impSpillLclRefs"
;* V17 tmp4 [V17 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V18 tmp5 [V18,T09] ( 4, 16 ) int -> rdi "Inlining Arg"
+; V18 tmp5 [V18,T09] ( 3, 16 ) int -> rdi "Inlining Arg"
;* V19 tmp6 [V19,T23] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V21 tmp8 [V21,T01] ( 4, 64 ) int -> r13 "Inlining Arg"
+; V21 tmp8 [V21,T01] ( 3, 64 ) int -> r13 "Inlining Arg"
;* V22 tmp9 [V22,T10] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V23 tmp10 [V23,T05] ( 3, 24 ) ref -> rbp "arr expr"
; V24 tmp11 [V24,T02] ( 2, 64 ) ref -> r13 "arr expr"
@@ -195,17 +195,7 @@ G_M50170_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r9d, edi
- jbe SHORT G_M50170_IG22
- jmp SHORT G_M50170_IG22
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r9d, r13d
- jbe SHORT G_M50170_IG23
- jmp SHORT G_M50170_IG23
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r9d
mov edx, edi
lea r8, gword ptr [(reloc)]
@@ -215,7 +205,7 @@ G_M50170_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M50170_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50170_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r9d
mov edx, r13d
lea r8, gword ptr [(reloc)]
@@ -226,7 +216,7 @@ G_M50170_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=19 bbWeight=0 PerfScore 0.00
-; Total bytes of code 368, prolog size 24, PerfScore 267.38, instruction count 124, allocated bytes for code 368 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
+; Total bytes of code 354, prolog size 24, PerfScore 267.38, instruction count 118, allocated bytes for code 354 (MethodHash=70013c05) for method Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
; ============================================================
Unwind Info:
-7 (-0.27%) : 11256.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T16] ( 5, 16.50) int -> r12
; V10 loc9 [V10,T22] ( 4, 12.50) ref -> [rbp-0xD8] class-hnd spill-single-def <System.Reflection.ConstructorInfo>
; V11 loc10 [V11 ] ( 8, 60.50) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T01] ( 19, 99.08) int -> [rbp-0x4C]
+; V12 loc11 [V12,T01] ( 18, 99.08) int -> [rbp-0x4C]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [rbp-0xE0] class-hnd spill-single-def <System.Type>
; V14 loc13 [V14 ] ( 6, 24 ) struct (16) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T15] ( 30, 20.31) int -> r12
@@ -78,7 +78,7 @@
; V68 tmp43 [V68,T44] ( 3, 3.59) int -> rdx "Inlining Arg"
;* V69 tmp44 [V69,T63] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V70 tmp45 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V71 tmp46 [V71,T25] ( 4, 10.56) int -> rdx "Inlining Arg"
+; V71 tmp46 [V71,T25] ( 3, 10.56) int -> rdx "Inlining Arg"
;* V72 tmp47 [V72,T47] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V73 tmp48 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V74 tmp49 [V74,T38] ( 14, 5.43) ref -> rcx "guarded devirt arg temp"
@@ -410,7 +410,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=E08B {rax rcx rbx rdi r13 r14 r
mov edx, dword ptr [rcx+0x10]
mov r9d, dword ptr [rbp-0x4C]
cmp r9d, edx
- jae G_M50704_IG121
+ jae G_M50704_IG120
mov rdx, gword ptr [rcx+0x08]
; gcrRegs +[rdx]
cmp r9d, dword ptr [rdx+0x08]
@@ -453,7 +453,7 @@ G_M50704_IG36: ; bbWeight=2.64, gcrefRegs=E089 {rax rbx rdi r13 r14 r15},
mov edx, dword ptr [rdi+0x10]
mov r9d, dword ptr [rbp-0x4C]
cmp r9d, edx
- jae G_M50704_IG120
+ jae G_M50704_IG121
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp r9d, dword ptr [rdx+0x08]
@@ -523,7 +523,7 @@ G_M50704_IG44: ; bbWeight=4, gcVars=00000000000000000000000000000000 {},
G_M50704_IG45: ; bbWeight=0.50, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
test r15, r15
- je G_M50704_IG123
+ je G_M50704_IG122
mov edx, esi
lea rcx, [(reloc)] ; System.Object[]
call CORINFO_HELP_NEWARR_1_VC
@@ -681,7 +681,7 @@ G_M50704_IG64: ; bbWeight=0.44, gcVars=00000000000000000000000000000000 {
G_M50704_IG65: ; bbWeight=0.22, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG124
+ jae G_M50704_IG123
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
cmp r12d, dword ptr [rax+0x08]
@@ -714,7 +714,7 @@ G_M50704_IG69: ; bbWeight=1.31, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byr
G_M50704_IG70: ; bbWeight=0.65, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rdi+0x10]
cmp r12d, edx
- jae G_M50704_IG125
+ jae G_M50704_IG124
mov r9, gword ptr [rdi+0x08]
; gcrRegs +[r9]
cmp r12d, dword ptr [r9+0x08]
@@ -771,7 +771,7 @@ G_M50704_IG77: ; bbWeight=0.00, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15},
G_M50704_IG78: ; bbWeight=0.00, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG124
+ jae G_M50704_IG123
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
cmp r12d, dword ptr [rax+0x08]
@@ -804,7 +804,7 @@ G_M50704_IG82: ; bbWeight=0.01, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byr
G_M50704_IG83: ; bbWeight=0.01, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rdi+0x10]
cmp r12d, edx
- jae G_M50704_IG125
+ jae G_M50704_IG124
mov r9, gword ptr [rdi+0x08]
; gcrRegs +[r9]
cmp r12d, dword ptr [r9+0x08]
@@ -1270,11 +1270,15 @@ G_M50704_IG119: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50704_IG120: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r9d, edx
- jbe SHORT G_M50704_IG122
- jmp SHORT G_M50704_IG122
- ;; size=7 bbWeight=0 PerfScore 0.00
+G_M50704_IG120: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r9d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG121: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r9d
lea r8, gword ptr [(reloc)]
@@ -1284,16 +1288,7 @@ G_M50704_IG121: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG122: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r9d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG123: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M50704_IG122: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs +[r14]
lea rcx, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -1323,6 +1318,15 @@ G_M50704_IG123: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, by
; gcrRegs -[rcx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0 PerfScore 0.00
+G_M50704_IG123: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r12d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG124: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r12d
lea r8, gword ptr [(reloc)]
@@ -1332,16 +1336,7 @@ G_M50704_IG124: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG125: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r12d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG126: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG125: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V21}
push rbp
push r15
@@ -1353,9 +1348,9 @@ G_M50704_IG126: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V1
push rbx
sub rsp, 56
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG127: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG126: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp-0xE8], 0
- je SHORT G_M50704_IG128
+ je SHORT G_M50704_IG127
mov rcx, gword ptr [rbp-0xE8]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
@@ -1364,10 +1359,10 @@ G_M50704_IG127: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V1
; gcrRegs -[rcx]
; gcr arg pop 0
;; size=27 bbWeight=0 PerfScore 0.00
-G_M50704_IG128: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50704_IG127: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M50704_IG129: ; bbWeight=0, funclet epilog, nogc, extend
+G_M50704_IG128: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 56
pop rbx
pop rsi
@@ -1380,7 +1375,7 @@ G_M50704_IG129: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2592, prolog size 91, PerfScore 1685.74, instruction count 643, allocated bytes for code 2592 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2585, prolog size 91, PerfScore 1685.74, instruction count 640, allocated bytes for code 2585 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Unwind Info:
@@ -1424,4 +1419,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG94..G_M50704_IG117) handled by [G_M50704_IG126..END) (fault)
+EH#0: try [G_M50704_IG94..G_M50704_IG117) handled by [G_M50704_IG125..END) (fault)
-7 (-0.27%) : 15116.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -19,7 +19,7 @@
; V09 loc8 [V09,T16] ( 5, 16.50) int -> r12
; V10 loc9 [V10,T22] ( 4, 12.50) ref -> [rbp-0xD8] class-hnd spill-single-def <System.Reflection.ConstructorInfo>
; V11 loc10 [V11 ] ( 8, 60.50) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T01] ( 19, 99.08) int -> [rbp-0x4C]
+; V12 loc11 [V12,T01] ( 18, 99.08) int -> [rbp-0x4C]
; V13 loc12 [V13,T03] ( 4, 56 ) ref -> [rbp-0xE0] class-hnd spill-single-def <System.Type>
; V14 loc13 [V14 ] ( 6, 24 ) struct (16) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T15] ( 30, 20.31) int -> r12
@@ -78,7 +78,7 @@
; V68 tmp43 [V68,T44] ( 3, 3.59) int -> rdx "Inlining Arg"
;* V69 tmp44 [V69,T63] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V70 tmp45 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V71 tmp46 [V71,T25] ( 4, 10.56) int -> rdx "Inlining Arg"
+; V71 tmp46 [V71,T25] ( 3, 10.56) int -> rdx "Inlining Arg"
;* V72 tmp47 [V72,T47] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V73 tmp48 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V74 tmp49 [V74,T38] ( 14, 5.43) ref -> rcx "guarded devirt arg temp"
@@ -412,7 +412,7 @@ G_M50704_IG31: ; bbWeight=0.90, gcrefRegs=E08B {rax rcx rbx rdi r13 r14 r
mov edx, dword ptr [rcx+0x10]
mov r9d, dword ptr [rbp-0x4C]
cmp r9d, edx
- jae G_M50704_IG125
+ jae G_M50704_IG124
mov rdx, gword ptr [rcx+0x08]
; gcrRegs +[rdx]
cmp r9d, dword ptr [rdx+0x08]
@@ -455,7 +455,7 @@ G_M50704_IG36: ; bbWeight=2.64, gcrefRegs=E089 {rax rbx rdi r13 r14 r15},
mov edx, dword ptr [rdi+0x10]
mov r9d, dword ptr [rbp-0x4C]
cmp r9d, edx
- jae G_M50704_IG124
+ jae G_M50704_IG125
mov rdx, gword ptr [rdi+0x08]
; gcrRegs +[rdx]
cmp r9d, dword ptr [rdx+0x08]
@@ -525,7 +525,7 @@ G_M50704_IG44: ; bbWeight=4, gcVars=00000000000000000000000000000000 {},
G_M50704_IG45: ; bbWeight=0.50, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
test r15, r15
- je G_M50704_IG127
+ je G_M50704_IG126
mov edx, esi
lea rcx, [(reloc)] ; System.Object[]
call CORINFO_HELP_NEWARR_1_VC
@@ -683,7 +683,7 @@ G_M50704_IG64: ; bbWeight=0.44, gcVars=00000000000000000000000000000000 {
G_M50704_IG65: ; bbWeight=0.22, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG128
+ jae G_M50704_IG127
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
cmp r12d, dword ptr [rax+0x08]
@@ -716,7 +716,7 @@ G_M50704_IG69: ; bbWeight=1.31, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byr
G_M50704_IG70: ; bbWeight=0.65, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rdi+0x10]
cmp r12d, edx
- jae G_M50704_IG129
+ jae G_M50704_IG128
mov r9, gword ptr [rdi+0x08]
; gcrRegs +[r9]
cmp r12d, dword ptr [r9+0x08]
@@ -773,7 +773,7 @@ G_M50704_IG77: ; bbWeight=0.00, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15},
G_M50704_IG78: ; bbWeight=0.00, gcrefRegs=E08A {rcx rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG128
+ jae G_M50704_IG127
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
cmp r12d, dword ptr [rax+0x08]
@@ -806,7 +806,7 @@ G_M50704_IG82: ; bbWeight=0.01, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byr
G_M50704_IG83: ; bbWeight=0.01, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rdi+0x10]
cmp r12d, edx
- jae G_M50704_IG129
+ jae G_M50704_IG128
mov r9, gword ptr [rdi+0x08]
; gcrRegs +[r9]
cmp r12d, dword ptr [r9+0x08]
@@ -1308,11 +1308,15 @@ G_M50704_IG123: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50704_IG124: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r9d, edx
- jbe SHORT G_M50704_IG126
- jmp SHORT G_M50704_IG126
- ;; size=7 bbWeight=0 PerfScore 0.00
+G_M50704_IG124: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r9d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG125: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r9d
lea r8, gword ptr [(reloc)]
@@ -1322,16 +1326,7 @@ G_M50704_IG125: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG126: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r9d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG127: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M50704_IG126: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs +[r14]
lea rcx, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -1361,6 +1356,15 @@ G_M50704_IG127: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, by
; gcrRegs -[rcx rdi]
; gcr arg pop 0
;; size=50 bbWeight=0 PerfScore 0.00
+G_M50704_IG127: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r12d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG128: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r12d
lea r8, gword ptr [(reloc)]
@@ -1370,16 +1374,7 @@ G_M50704_IG128: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG129: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r12d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG130: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG129: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V21}
push rbp
push r15
@@ -1391,9 +1386,9 @@ G_M50704_IG130: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V1
push rbx
sub rsp, 56
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG131: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG130: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp-0xE8], 0
- je SHORT G_M50704_IG132
+ je SHORT G_M50704_IG131
mov rcx, gword ptr [rbp-0xE8]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
@@ -1402,10 +1397,10 @@ G_M50704_IG131: ; bbWeight=0, gcVars=00000000000000000000000000200000 {V1
; gcrRegs -[rcx]
; gcr arg pop 0
;; size=27 bbWeight=0 PerfScore 0.00
-G_M50704_IG132: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50704_IG131: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M50704_IG133: ; bbWeight=0, funclet epilog, nogc, extend
+G_M50704_IG132: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 56
pop rbx
pop rsi
@@ -1418,7 +1413,7 @@ G_M50704_IG133: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2615, prolog size 91, PerfScore 1685.74, instruction count 653, allocated bytes for code 2615 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2608, prolog size 91, PerfScore 1685.74, instruction count 650, allocated bytes for code 2608 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Unwind Info:
@@ -1462,4 +1457,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG94..G_M50704_IG121) handled by [G_M50704_IG130..END) (fault)
+EH#0: try [G_M50704_IG94..G_M50704_IG121) handled by [G_M50704_IG129..END) (fault)
-7 (-0.24%) : 8507.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
@@ -20,7 +20,7 @@
; V09 loc8 [V09,T22] ( 5, 16.50) int -> r12
; V10 loc9 [V10,T21] ( 4, 12.50) ref -> [rbp-0xD8] class-hnd spill-single-def <System.Reflection.ConstructorInfo>
; V11 loc10 [V11 ] ( 8, 60.50) struct (16) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V12 loc11 [V12,T01] ( 19, 99.08) int -> [rbp-0x4C]
+; V12 loc11 [V12,T01] ( 18, 99.08) int -> [rbp-0x4C]
; V13 loc12 [V13,T07] ( 4, 56 ) ref -> [rbp-0xE0] class-hnd spill-single-def <System.Type>
; V14 loc13 [V14 ] ( 6, 24 ) struct (16) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.CustomAttributeTypedArgument>
; V15 loc14 [V15,T20] ( 30, 20.31) int -> r12
@@ -79,7 +79,7 @@
; V68 tmp43 [V68,T52] ( 3, 3.59) int -> rdx "Inlining Arg"
;* V69 tmp44 [V69,T73] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V70 tmp45 [V70 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V71 tmp46 [V71,T31] ( 4, 10.56) int -> rdx "Inlining Arg"
+; V71 tmp46 [V71,T31] ( 3, 10.56) int -> rdx "Inlining Arg"
;* V72 tmp47 [V72,T55] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V73 tmp48 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V74 tmp49 [V74,T46] ( 14, 5.43) ref -> [rbp-0xF8] "guarded devirt arg temp"
@@ -425,7 +425,7 @@ G_M50704_IG30: ; bbWeight=0.90, gcrefRegs=E04B {rax rcx rbx rsi r13 r14 r
mov edx, dword ptr [rcx+0x10]
mov r8d, dword ptr [rbp-0x4C]
cmp r8d, edx
- jae G_M50704_IG119
+ jae G_M50704_IG118
mov rcx, gword ptr [rcx+0x08]
cmp r8d, dword ptr [rcx+0x08]
jae G_M50704_IG117
@@ -471,7 +471,7 @@ G_M50704_IG35: ; bbWeight=2.64, gcrefRegs=E049 {rax rbx rsi r13 r14 r15},
mov edx, dword ptr [r15+0x10]
mov r8d, dword ptr [rbp-0x4C]
cmp r8d, edx
- jae G_M50704_IG118
+ jae G_M50704_IG119
mov rcx, gword ptr [r15+0x08]
; gcrRegs +[rcx]
cmp r8d, dword ptr [rcx+0x08]
@@ -545,7 +545,7 @@ G_M50704_IG43: ; bbWeight=4, gcVars=00000000000000000000000000000000 {},
G_M50704_IG44: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
test r14, r14
- je G_M50704_IG121
+ je G_M50704_IG120
mov edx, edi
lea rcx, [(reloc)] ; System.Object[]
call CORINFO_HELP_NEWARR_1_VC
@@ -699,7 +699,7 @@ G_M50704_IG62: ; bbWeight=0.44, gcVars=00000000000000000000000000000000 {
G_M50704_IG63: ; bbWeight=0.22, gcrefRegs=E04A {rcx rbx rsi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG122
+ jae G_M50704_IG121
mov r10, gword ptr [rcx+0x08]
; gcrRegs +[r10]
cmp r12d, dword ptr [r10+0x08]
@@ -742,7 +742,7 @@ G_M50704_IG67: ; bbWeight=1.31, gcrefRegs=E048 {rbx rsi r13 r14 r15}, byr
G_M50704_IG68: ; bbWeight=0.65, gcrefRegs=E048 {rbx rsi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [r15+0x10]
cmp r12d, edx
- jae G_M50704_IG123
+ jae G_M50704_IG122
mov r10, gword ptr [r15+0x08]
; gcrRegs +[r10]
cmp r12d, dword ptr [r10+0x08]
@@ -802,7 +802,7 @@ G_M50704_IG75: ; bbWeight=0.00, gcrefRegs=E04A {rcx rbx rsi r13 r14 r15},
G_M50704_IG76: ; bbWeight=0.00, gcrefRegs=E04A {rcx rbx rsi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rcx+0x10]
cmp r12d, edx
- jae G_M50704_IG122
+ jae G_M50704_IG121
mov r10, gword ptr [rcx+0x08]
; gcrRegs +[r10]
cmp r12d, dword ptr [r10+0x08]
@@ -845,7 +845,7 @@ G_M50704_IG80: ; bbWeight=0.01, gcrefRegs=E048 {rbx rsi r13 r14 r15}, byr
G_M50704_IG81: ; bbWeight=0.01, gcrefRegs=E048 {rbx rsi r13 r14 r15}, byrefRegs=0000 {}, byref
mov edx, dword ptr [r15+0x10]
cmp r12d, edx
- jae G_M50704_IG123
+ jae G_M50704_IG122
mov r10, gword ptr [r15+0x08]
; gcrRegs +[r10]
cmp r12d, dword ptr [r10+0x08]
@@ -1335,11 +1335,15 @@ G_M50704_IG117: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp r8d, edx
- jbe SHORT G_M50704_IG120
- jmp SHORT G_M50704_IG120
- ;; size=7 bbWeight=0 PerfScore 0.00
+G_M50704_IG118: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r8d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG119: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r8d
lea r8, gword ptr [(reloc)]
@@ -1349,16 +1353,7 @@ G_M50704_IG119: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG120: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r8d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG121: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M50704_IG120: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
lea rcx, [(reloc)] ; <unknown class>
call CORINFO_HELP_NEWSFAST
@@ -1389,6 +1384,15 @@ G_M50704_IG121: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, by
; gcrRegs -[rcx rsi]
; gcr arg pop 0
;; size=57 bbWeight=0 PerfScore 0.00
+G_M50704_IG121: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov ecx, r12d
+ lea r8, gword ptr [(reloc)]
+ ; gcrRegs +[r8]
+ call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
+ ; gcrRegs -[r8]
+ ; gcr arg pop 0
+ int3
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M50704_IG122: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, r12d
lea r8, gword ptr [(reloc)]
@@ -1398,16 +1402,7 @@ G_M50704_IG122: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG123: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, r12d
- lea r8, gword ptr [(reloc)]
- ; gcrRegs +[r8]
- call System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
- ; gcrRegs -[r8]
- ; gcr arg pop 0
- int3
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG124: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M50704_IG123: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V16 V26}
push rbp
push r15
@@ -1419,9 +1414,9 @@ G_M50704_IG124: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V1
push rbx
sub rsp, 56
;; size=16 bbWeight=0 PerfScore 0.00
-G_M50704_IG125: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M50704_IG124: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V16}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp gword ptr [rbp-0xE8], 0
- je SHORT G_M50704_IG126
+ je SHORT G_M50704_IG125
mov rcx, qword ptr [(reloc)]
call [CORINFO_HELP_VALIDATE_INDIRECT_CALL]
mov rax, rcx
@@ -1433,10 +1428,10 @@ G_M50704_IG125: ; bbWeight=0, gcVars=00000000000000000000000004000000 {V1
; gcrRegs -[rcx]
; gcr arg pop 0
;; size=42 bbWeight=0 PerfScore 0.00
-G_M50704_IG126: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50704_IG125: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M50704_IG127: ; bbWeight=0, funclet epilog, nogc, extend
+G_M50704_IG126: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 56
pop rbx
pop rsi
@@ -1449,7 +1444,7 @@ G_M50704_IG127: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2887, prolog size 91, PerfScore 2001.26, instruction count 689, allocated bytes for code 2887 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
+; Total bytes of code 2880, prolog size 91, PerfScore 2001.26, instruction count 686, allocated bytes for code 2880 (MethodHash=fa2e39ef) for method Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
; ============================================================
Unwind Info:
@@ -1493,4 +1488,4 @@ Unwind Info:
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
*************** EH table for Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute
1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M50704_IG92..G_M50704_IG115) handled by [G_M50704_IG124..END) (fault)
+EH#0: try [G_M50704_IG92..G_M50704_IG115) handled by [G_M50704_IG123..END) (fault)
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| aspnet.run.windows.x64.checked.mch |
461 |
322 |
5 |
134 |
-7,370 |
+88 |
| benchmarks.run.windows.x64.checked.mch |
25 |
25 |
0 |
0 |
-412 |
+0 |
| benchmarks.run_pgo.windows.x64.checked.mch |
271 |
173 |
3 |
95 |
-5,154 |
+75 |
| benchmarks.run_tiered.windows.x64.checked.mch |
12 |
11 |
0 |
1 |
-217 |
+0 |
| coreclr_tests.run.windows.x64.checked.mch |
449 |
252 |
10 |
187 |
-5,906 |
+57 |
| libraries.crossgen2.windows.x64.checked.mch |
61 |
55 |
2 |
4 |
-1,655 |
+24 |
| libraries.pmi.windows.x64.checked.mch |
202 |
191 |
4 |
7 |
-3,491 |
+44 |
| libraries_tests.run.windows.x64.Release.mch |
982 |
807 |
29 |
146 |
-23,477 |
+592 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
250 |
238 |
9 |
3 |
-3,993 |
+102 |
| realworld.run.windows.x64.checked.mch |
60 |
58 |
0 |
2 |
-1,130 |
+0 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
18 |
18 |
0 |
0 |
-292 |
+0 |
|
2,791 |
2,150 |
62 |
579 |
-53,097 |
+982 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| aspnet.run.windows.x64.checked.mch |
129,290 |
61,702 |
67,588 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run.windows.x64.checked.mch |
27,926 |
4 |
27,922 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.x64.checked.mch |
103,179 |
50,327 |
52,852 |
4 (0.00%) |
4 (0.00%) |
| benchmarks.run_tiered.windows.x64.checked.mch |
53,510 |
36,872 |
16,638 |
1 (0.00%) |
1 (0.00%) |
| coreclr_tests.run.windows.x64.checked.mch |
574,382 |
341,481 |
232,901 |
3 (0.00%) |
3 (0.00%) |
| libraries.crossgen2.windows.x64.checked.mch |
243,731 |
15 |
243,716 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.windows.x64.checked.mch |
309,228 |
6 |
309,222 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.windows.x64.Release.mch |
681,424 |
485,046 |
196,378 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
320,536 |
21,924 |
298,612 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.x64.checked.mch |
36,610 |
3 |
36,607 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.x64.checked.mch |
32,388 |
11 |
32,377 |
0 (0.00%) |
0 (0.00%) |
|
2,512,204 |
997,391 |
1,514,813 |
8 (0.00%) |
8 (0.00%) |
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: 47040101 (overridden on cmd)
Total bytes of diff: 47032819 (overridden on cmd)
Total bytes of delta: -7282 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
21 : 58900.dasm (0.18 % of base)
21 : 40664.dasm (0.18 % of base)
21 : 69175.dasm (2.71 % of base)
21 : 78263.dasm (2.71 % of base)
4 : 20529.dasm (0.32 % of base)
Top file improvements (bytes):
-108 : 114903.dasm (-1.12 % of base)
-108 : 126971.dasm (-1.12 % of base)
-80 : 115658.dasm (-1.16 % of base)
-80 : 127060.dasm (-1.13 % of base)
-76 : 28570.dasm (-22.22 % of base)
-76 : 64480.dasm (-22.22 % of base)
-76 : 68747.dasm (-22.22 % of base)
-76 : 54825.dasm (-22.22 % of base)
-72 : 113896.dasm (-13.61 % of base)
-61 : 96901.dasm (-8.64 % of base)
-57 : 58892.dasm (-4.22 % of base)
-56 : 24478.dasm (-1.15 % of base)
-55 : 126850.dasm (-0.55 % of base)
-51 : 128546.dasm (-8.61 % of base)
-51 : 127989.dasm (-5.62 % of base)
-50 : 113829.dasm (-8.62 % of base)
-50 : 96824.dasm (-6.36 % of base)
-48 : 93167.dasm (-5.01 % of base)
-39 : 46422.dasm (-1.02 % of base)
-39 : 60049.dasm (-1.02 % of base)
49 total files with Code Size differences (44 improved, 5 regressed), 32 unchanged.
Top method regressions (bytes):
21 (2.71 % of base) : 69175.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
21 (2.71 % of base) : 78263.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
21 (0.18 % of base) : 58900.dasm - Microsoft.EntityFrameworkCore.Metadata.Conventions.RuntimeModelConvention:Create(Microsoft.EntityFrameworkCore.Metadata.IModel):Microsoft.EntityFrameworkCore.Metadata.RuntimeModel:this (Tier1-OSR)
21 (0.18 % of base) : 40664.dasm - Microsoft.EntityFrameworkCore.Metadata.Conventions.RuntimeModelConvention:Create(Microsoft.EntityFrameworkCore.Metadata.IModel):Microsoft.EntityFrameworkCore.Metadata.RuntimeModel:this (Tier1-OSR)
4 (0.32 % of base) : 20529.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryGetValue(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref):ubyte:this (Tier1)
Top method improvements (bytes):
-108 (-1.12 % of base) : 126971.dasm - OrchardCore.Resources.Liquid.StyleTag+<WriteToAsync>d__1:MoveNext():this (FullOpts)
-108 (-1.12 % of base) : 114903.dasm - OrchardCore.Resources.Liquid.StyleTag+<WriteToAsync>d__1:MoveNext():this (Tier1)
-80 (-1.13 % of base) : 127060.dasm - OrchardCore.DisplayManagement.Liquid.Tags.ShapeTag+<WriteToAsync>d__1:MoveNext():this (FullOpts)
-80 (-1.16 % of base) : 115658.dasm - OrchardCore.DisplayManagement.Liquid.Tags.ShapeTag+<WriteToAsync>d__1:MoveNext():this (Tier1)
-76 (-22.22 % of base) : 28570.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 64480.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 68747.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 54825.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-72 (-13.61 % of base) : 113896.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
-61 (-8.64 % of base) : 96901.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (Instrumented Tier1)
-57 (-4.22 % of base) : 58892.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-56 (-1.15 % of base) : 24478.dasm - System.Net.WebSockets.ManagedWebSocket:SendFrameLockAcquiredNonCancelableAsync(ubyte,ubyte,ubyte,System.ReadOnlyMemory`1[ubyte]):System.Threading.Tasks.ValueTask:this (Tier1)
-55 (-0.55 % of base) : 126850.dasm - OrchardCore.Contents.Liquid.ContentAnchorTag+<WriteToAsync>d__3:MoveNext():this (FullOpts)
-51 (-5.62 % of base) : 127989.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-51 (-8.61 % of base) : 128546.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
-50 (-6.36 % of base) : 96824.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Remove(System.__Canon):ubyte:this (Instrumented Tier1)
-50 (-8.62 % of base) : 113829.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
-48 (-5.01 % of base) : 93167.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-39 (-1.02 % of base) : 46422.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (Tier1)
-39 (-1.02 % of base) : 60049.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (Tier1)
Top method regressions (percentages):
21 (2.71 % of base) : 69175.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
21 (2.71 % of base) : 78263.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddActionDataToBuilder(Microsoft.AspNetCore.Builder.EndpointBuilder,System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.String,Microsoft.AspNetCore.Routing.RouteValueDictionary,ubyte,ubyte,System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]]) (Tier1-OSR)
4 (0.32 % of base) : 20529.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryGetValue(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref):ubyte:this (Tier1)
21 (0.18 % of base) : 58900.dasm - Microsoft.EntityFrameworkCore.Metadata.Conventions.RuntimeModelConvention:Create(Microsoft.EntityFrameworkCore.Metadata.IModel):Microsoft.EntityFrameworkCore.Metadata.RuntimeModel:this (Tier1-OSR)
21 (0.18 % of base) : 40664.dasm - Microsoft.EntityFrameworkCore.Metadata.Conventions.RuntimeModelConvention:Create(Microsoft.EntityFrameworkCore.Metadata.IModel):Microsoft.EntityFrameworkCore.Metadata.RuntimeModel:this (Tier1-OSR)
Top method improvements (percentages):
-76 (-22.22 % of base) : 28570.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 64480.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 68747.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-76 (-22.22 % of base) : 54825.dasm - Dapper.SqlMapper:ExecuteReaderWithFlagsFallbackAsync(System.Data.Common.DbCommand,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader] (Tier1)
-24 (-18.90 % of base) : 119069.dasm - System.Collections.Generic.Stack`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-18.60 % of base) : 11089.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-17.39 % of base) : 116049.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-72 (-13.61 % of base) : 113896.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
-24 (-13.11 % of base) : 99618.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Instrumented Tier1)
-28 (-12.33 % of base) : 10245.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-12.31 % of base) : 1397.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
-24 (-11.16 % of base) : 10856.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.76 % of base) : 85271.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 18705.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 9922.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 15789.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 23181.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 60999.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 11719.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
-24 (-10.57 % of base) : 20681.dasm - System.Collections.Concurrent.ConcurrentDictionary`2+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier1)
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: 8742530 (overridden on cmd)
Total bytes of diff: 8742118 (overridden on cmd)
Total bytes of delta: -412 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-34 : 14893.dasm (-0.28 % of base)
-34 : 16028.dasm (-1.11 % of base)
-31 : 21029.dasm (-0.54 % of base)
-24 : 13426.dasm (-4.08 % of base)
-24 : 3787.dasm (-7.69 % of base)
-24 : 24369.dasm (-11.94 % of base)
-24 : 3832.dasm (-7.69 % of base)
-23 : 6535.dasm (-1.71 % of base)
-23 : 6099.dasm (-3.88 % of base)
-19 : 25420.dasm (-6.19 % of base)
-16 : 14285.dasm (-3.09 % of base)
-15 : 15771.dasm (-3.58 % of base)
-15 : 1653.dasm (-1.66 % of base)
-15 : 7800.dasm (-3.25 % of base)
-13 : 16042.dasm (-0.80 % of base)
-11 : 16023.dasm (-0.32 % of base)
-11 : 4736.dasm (-4.68 % of base)
-10 : 21109.dasm (-0.66 % of base)
-8 : 16242.dasm (-1.34 % of base)
-7 : 11963.dasm (-1.84 % of base)
25 total files with Code Size differences (25 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-34 (-0.28 % of base) : 14893.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-34 (-1.11 % of base) : 16028.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-31 (-0.54 % of base) : 21029.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-24 (-11.94 % of base) : 24369.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-7.69 % of base) : 3832.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-7.69 % of base) : 3787.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-4.08 % of base) : 13426.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-23 (-3.88 % of base) : 6099.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-23 (-1.71 % of base) : 6535.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-19 (-6.19 % of base) : 25420.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-16 (-3.09 % of base) : 14285.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-15 (-3.58 % of base) : 15771.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-15 (-3.25 % of base) : 7800.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-15 (-1.66 % of base) : 1653.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-13 (-0.80 % of base) : 16042.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
-11 (-0.32 % of base) : 16023.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (FullOpts)
-11 (-4.68 % of base) : 4736.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-10 (-0.66 % of base) : 21109.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__ensureAllUnderlyingConversionsChecked|210_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-8 (-1.34 % of base) : 16242.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-7 (-1.37 % of base) : 3922.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
Top method improvements (percentages):
-24 (-11.94 % of base) : 24369.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
-24 (-7.69 % of base) : 3832.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-7.69 % of base) : 3787.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-19 (-6.19 % of base) : 25420.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
-7 (-5.43 % of base) : 16656.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-11 (-4.68 % of base) : 4736.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-24 (-4.08 % of base) : 13426.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-23 (-3.88 % of base) : 6099.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
-15 (-3.58 % of base) : 15771.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-15 (-3.25 % of base) : 7800.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
-7 (-3.14 % of base) : 20460.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-16 (-3.09 % of base) : 14285.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
-7 (-2.83 % of base) : 12866.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveDownDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
-7 (-1.84 % of base) : 11963.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (FullOpts)
-23 (-1.71 % of base) : 6535.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-15 (-1.66 % of base) : 1653.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
-7 (-1.37 % of base) : 3922.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (FullOpts)
-8 (-1.34 % of base) : 16242.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:InitForReading(System.IO.Stream,System.Text.Encoding):this (FullOpts)
-34 (-1.11 % of base) : 16028.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-13 (-0.80 % of base) : 16042.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
25 total methods with Code Size differences (25 improved, 0 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: 36230062 (overridden on cmd)
Total bytes of diff: 36224983 (overridden on cmd)
Total bytes of delta: -5079 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
42 : 26967.dasm (0.70 % of base)
30 : 39829.dasm (0.50 % of base)
3 : 30564.dasm (0.49 % of base)
Top file improvements (bytes):
-67 : 102018.dasm (-3.55 % of base)
-67 : 24783.dasm (-3.55 % of base)
-67 : 53595.dasm (-3.55 % of base)
-67 : 71151.dasm (-3.55 % of base)
-67 : 76969.dasm (-3.55 % of base)
-67 : 78170.dasm (-3.55 % of base)
-67 : 81563.dasm (-3.55 % of base)
-67 : 85629.dasm (-3.55 % of base)
-67 : 90475.dasm (-3.55 % of base)
-67 : 98302.dasm (-3.55 % of base)
-67 : 102729.dasm (-3.55 % of base)
-67 : 102933.dasm (-3.55 % of base)
-67 : 24099.dasm (-3.55 % of base)
-67 : 36126.dasm (-3.55 % of base)
-67 : 43581.dasm (-3.55 % of base)
-67 : 48161.dasm (-3.55 % of base)
-67 : 50534.dasm (-3.55 % of base)
-67 : 53665.dasm (-3.57 % of base)
-67 : 87431.dasm (-3.55 % of base)
-67 : 94638.dasm (-3.55 % of base)
52 total files with Code Size differences (49 improved, 3 regressed), 36 unchanged.
Top method regressions (bytes):
42 (0.70 % of base) : 26967.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
30 (0.50 % of base) : 39829.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
3 (0.49 % of base) : 30564.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
Top method improvements (bytes):
-67 (-3.55 % of base) : 102018.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 24783.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 53595.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 71151.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 76969.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 78170.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 81563.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 85629.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 90475.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 98302.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 102729.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 102933.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 24099.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 36126.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 43581.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 48161.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 50534.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.57 % of base) : 53665.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 87431.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
-67 (-3.55 % of base) : 94638.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
Top method regressions (percentages):
42 (0.70 % of base) : 26967.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
30 (0.50 % of base) : 39829.dasm - System.Text.RegularExpressions.RegexParser:ScanRegex():System.Text.RegularExpressions.RegexNode:this (Tier1)
3 (0.49 % of base) : 30564.dasm - System.Net.Sockets.Socket:SendToAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
Top method improvements (percentages):
-24 (-17.78 % of base) : 36954.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-17.78 % of base) : 39787.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-17.14 % of base) : 37053.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-24 (-17.14 % of base) : 39783.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-27 (-10.51 % of base) : 91180.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-18 (-10.29 % of base) : 49270.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
-27 (-9.93 % of base) : 76571.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-9.34 % of base) : 18288.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-9.30 % of base) : 77253.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-9.20 % of base) : 100743.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 29511.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 37602.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 54414.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 79598.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 96715.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 43993.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 70859.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 81051.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.92 % of base) : 99104.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
-24 (-8.82 % of base) : 40997.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryDequeue(byref):ubyte:this (Tier1)
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: 12416181 (overridden on cmd)
Total bytes of diff: 12415964 (overridden on cmd)
Total bytes of delta: -217 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-34 : 27595.dasm (-0.28 % of base)
-29 : 45616.dasm (-3.59 % of base)
-24 : 46902.dasm (-6.17 % of base)
-24 : 45844.dasm (-7.69 % of base)
-24 : 45753.dasm (-7.69 % of base)
-23 : 46217.dasm (-3.88 % of base)
-18 : 31358.dasm (-10.34 % of base)
-13 : 16871.dasm (-6.88 % of base)
-13 : 49102.dasm (-2.28 % of base)
-8 : 24580.dasm (-2.66 % of base)
-7 : 24571.dasm (-1.84 % of base)
11 total files with Code Size differences (11 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-34 (-0.28 % of base) : 27595.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
-29 (-3.59 % of base) : 45616.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-24 (-6.17 % of base) : 46902.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-24 (-7.69 % of base) : 45753.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-7.69 % of base) : 45844.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-23 (-3.88 % of base) : 46217.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier1)
-18 (-10.34 % of base) : 31358.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
-13 (-6.88 % of base) : 16871.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
-13 (-2.28 % of base) : 49102.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-8 (-2.66 % of base) : 24580.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (Tier1)
-7 (-1.84 % of base) : 24571.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
Top method improvements (percentages):
-18 (-10.34 % of base) : 31358.dasm - PerfLabTests.LowLevelPerf:ForeachOverList100Elements():int:this (Tier1-OSR)
-24 (-7.69 % of base) : 45753.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-24 (-7.69 % of base) : 45844.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (Tier1)
-13 (-6.88 % of base) : 16871.dasm - LinqBenchmarks:Count00ForX():ubyte:this (Tier1-OSR)
-24 (-6.17 % of base) : 46902.dasm - LinqBenchmarks:Where00ForX():ubyte:this (Tier1-OSR)
-23 (-3.88 % of base) : 46217.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier1)
-29 (-3.59 % of base) : 45616.dasm - JetStream.Hands:playHands(System.Collections.Generic.List`1[JetStream.Player]) (Tier1-OSR)
-8 (-2.66 % of base) : 24580.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (Tier1)
-13 (-2.28 % of base) : 49102.dasm - LinqBenchmarks:Where01ForX():ubyte:this (Tier1-OSR)
-7 (-1.84 % of base) : 24571.dasm - System.Xml.XmlConvert:CreateInvalidNameCharException(System.String,int,int):System.Exception (Tier1)
-34 (-0.28 % of base) : 27595.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
11 total methods with Code Size differences (11 improved, 0 regressed).
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: 393193298 (overridden on cmd)
Total bytes of diff: 393187449 (overridden on cmd)
Total bytes of delta: -5849 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
10 : 385287.dasm (6.13 % of base)
10 : 385363.dasm (5.92 % of base)
10 : 385704.dasm (6.13 % of base)
10 : 385780.dasm (5.92 % of base)
6 : 386316.dasm (3.43 % of base)
4 : 368496.dasm (0.24 % of base)
2 : 370397.dasm (0.25 % of base)
2 : 372387.dasm (0.25 % of base)
2 : 378880.dasm (0.81 % of base)
1 : 513877.dasm (2.70 % of base)
Top file improvements (bytes):
-928 : 24752.dasm (-49.20 % of base)
-269 : 520029.dasm (-2.35 % of base)
-77 : 573972.dasm (-3.24 % of base)
-67 : 359987.dasm (-1.01 % of base)
-67 : 359595.dasm (-1.01 % of base)
-66 : 502876.dasm (-1.48 % of base)
-66 : 509096.dasm (-1.48 % of base)
-56 : 370466.dasm (-7.15 % of base)
-56 : 363249.dasm (-7.15 % of base)
-56 : 363186.dasm (-7.07 % of base)
-54 : 369178.dasm (-1.61 % of base)
-54 : 372019.dasm (-1.61 % of base)
-52 : 369095.dasm (-6.62 % of base)
-52 : 369156.dasm (-6.62 % of base)
-52 : 372012.dasm (-6.62 % of base)
-52 : 369096.dasm (-6.62 % of base)
-49 : 571704.dasm (-9.59 % of base)
-45 : 367735.dasm (-5.15 % of base)
-45 : 371343.dasm (-5.15 % of base)
-45 : 519379.dasm (-30.61 % of base)
50 total files with Code Size differences (40 improved, 10 regressed), 30 unchanged.
Top method regressions (bytes):
10 (6.13 % of base) : 385287.dasm - testout1:Sub_Funclet_106():int (FullOpts)
10 (6.13 % of base) : 385704.dasm - testout1:Sub_Funclet_106():int (FullOpts)
10 (5.92 % of base) : 385363.dasm - testout1:Sub_Funclet_183():int (FullOpts)
10 (5.92 % of base) : 385780.dasm - testout1:Sub_Funclet_183():int (FullOpts)
6 (3.43 % of base) : 386316.dasm - testout1:Sub_Funclet_220():int (FullOpts)
4 (0.24 % of base) : 368496.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.TypeAndMethod,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.TypeAndMethod,System.__Canon],ubyte,ubyte):this (Tier1)
2 (0.25 % of base) : 370397.dasm - Internal.NativeFormat.VertexArray:Save(Internal.NativeFormat.NativeWriter):this (Tier1-OSR)
2 (0.25 % of base) : 372387.dasm - Internal.NativeFormat.VertexArray:Save(Internal.NativeFormat.NativeWriter):this (Tier1-OSR)
2 (0.81 % of base) : 378880.dasm - testout1:Sub_Funclet_105():int (FullOpts)
1 (2.70 % of base) : 513877.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
Top method improvements (bytes):
-928 (-49.20 % of base) : 24752.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-269 (-2.35 % of base) : 520029.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,long,ushort,double,long,ulong):int (FullOpts)
-77 (-3.24 % of base) : 573972.dasm - Tracing.Tests.DiagnosticPortValidation.DiagnosticPortValidation+<TEST_MultipleConnectPortsSuspend>d__2:MoveNext():this (FullOpts)
-67 (-1.01 % of base) : 359987.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
-67 (-1.01 % of base) : 359595.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
-66 (-1.48 % of base) : 502876.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-66 (-1.48 % of base) : 509096.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
-56 (-7.07 % of base) : 363186.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-56 (-7.15 % of base) : 370466.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,ubyte]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,ubyte],ubyte,ubyte):this (Tier1-OSR)
-56 (-7.15 % of base) : 363249.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,ubyte]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,ubyte],ubyte,ubyte):this (Tier1-OSR)
-54 (-1.61 % of base) : 369178.dasm - ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2[ILCompiler.DependencyAnalysisFramework.NoLogStrategy`1[System.__Canon],System.__Canon]:ProcessMarkStack():this (Tier1)
-54 (-1.61 % of base) : 372019.dasm - ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2[ILCompiler.DependencyAnalysisFramework.NoLogStrategy`1[System.__Canon],System.__Canon]:ProcessMarkStack():this (Tier1)
-52 (-6.62 % of base) : 369095.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.NodeFactory+TypeFixupKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-52 (-6.62 % of base) : 369096.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRun.ModuleToken,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-52 (-6.62 % of base) : 369156.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-52 (-6.62 % of base) : 372012.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+ReadyToRunHelperKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-49 (-9.59 % of base) : 571704.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-45 (-5.15 % of base) : 367735.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-45 (-5.15 % of base) : 371343.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory+GenericLookupKey,System.__Canon],ubyte,ubyte):this (Tier1-OSR)
-45 (-30.61 % of base) : 519379.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
Top method regressions (percentages):
10 (6.13 % of base) : 385287.dasm - testout1:Sub_Funclet_106():int (FullOpts)
10 (6.13 % of base) : 385704.dasm - testout1:Sub_Funclet_106():int (FullOpts)
10 (5.92 % of base) : 385363.dasm - testout1:Sub_Funclet_183():int (FullOpts)
10 (5.92 % of base) : 385780.dasm - testout1:Sub_Funclet_183():int (FullOpts)
6 (3.43 % of base) : 386316.dasm - testout1:Sub_Funclet_220():int (FullOpts)
1 (2.70 % of base) : 513877.dasm - Runtime_56495:TestEntryPoint():int (FullOpts)
2 (0.81 % of base) : 378880.dasm - testout1:Sub_Funclet_105():int (FullOpts)
2 (0.25 % of base) : 370397.dasm - Internal.NativeFormat.VertexArray:Save(Internal.NativeFormat.NativeWriter):this (Tier1-OSR)
2 (0.25 % of base) : 372387.dasm - Internal.NativeFormat.VertexArray:Save(Internal.NativeFormat.NativeWriter):this (Tier1-OSR)
4 (0.24 % of base) : 368496.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[ILCompiler.DependencyAnalysis.TypeAndMethod,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[ILCompiler.DependencyAnalysis.TypeAndMethod,System.__Canon],ubyte,ubyte):this (Tier1)
Top method improvements (percentages):
-37 (-66.07 % of base) : 507742.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-29 (-60.42 % of base) : 503746.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-23 (-54.76 % of base) : 507690.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-928 (-49.20 % of base) : 24752.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Tier1-OSR)
-33 (-31.43 % of base) : 389491.dasm - filter1:f4() (FullOpts)
-45 (-30.61 % of base) : 519379.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
-36 (-28.35 % of base) : 503298.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
-22 (-26.19 % of base) : 503787.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-11 (-22.45 % of base) : 390779.dasm - try1:f4() (FullOpts)
-20 (-16.67 % of base) : 503744.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-20 (-16.67 % of base) : 507689.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-20 (-15.62 % of base) : 503784.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
-16 (-13.56 % of base) : 505768.dasm - BoxTest_enum_il.Test:Fibonacci(System.Object,System.Object):System.Object:this (FullOpts)
-20 (-12.50 % of base) : 502554.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
-24 (-12.31 % of base) : 1653.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Instrumented Tier1)
-19 (-10.92 % of base) : 510757.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-18 (-10.65 % of base) : 385398.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-18 (-10.65 % of base) : 385815.dasm - testout1:Sub_Funclet_221():int (FullOpts)
-20 (-10.20 % of base) : 386315.dasm - testout1:Sub_Funclet_219():int (FullOpts)
-20 (-10.20 % of base) : 386731.dasm - testout1:Sub_Funclet_219():int (FullOpts)
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: 39486354 (overridden on cmd)
Total bytes of diff: 39484723 (overridden on cmd)
Total bytes of delta: -1631 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
12 : 168046.dasm (2.23 % of base)
12 : 168048.dasm (2.23 % of base)
Top file improvements (bytes):
-659 : 172095.dasm (-92.43 % of base)
-90 : 37848.dasm (-0.35 % of base)
-72 : 13303.dasm (-17.87 % of base)
-72 : 8727.dasm (-5.08 % of base)
-60 : 123885.dasm (-3.86 % of base)
-41 : 4597.dasm (-3.45 % of base)
-37 : 88337.dasm (-10.00 % of base)
-34 : 38674.dasm (-4.29 % of base)
-32 : 60891.dasm (-1.89 % of base)
-31 : 59826.dasm (-0.88 % of base)
-30 : 239206.dasm (-19.74 % of base)
-24 : 148155.dasm (-2.10 % of base)
-22 : 124044.dasm (-4.90 % of base)
-22 : 151542.dasm (-44.00 % of base)
-22 : 61760.dasm (-7.77 % of base)
-20 : 239043.dasm (-14.93 % of base)
-18 : 96258.dasm (-9.63 % of base)
-17 : 176210.dasm (-0.62 % of base)
-17 : 239132.dasm (-12.98 % of base)
-16 : 89625.dasm (-9.94 % of base)
47 total files with Code Size differences (45 improved, 2 regressed), 4 unchanged.
Top method regressions (bytes):
12 (2.23 % of base) : 168046.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.23 % of base) : 168048.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
Top method improvements (bytes):
-659 (-92.43 % of base) : 172095.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-90 (-0.35 % of base) : 37848.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-72 (-17.87 % of base) : 13303.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-72 (-5.08 % of base) : 8727.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-60 (-3.86 % of base) : 123885.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-41 (-3.45 % of base) : 4597.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-37 (-10.00 % of base) : 88337.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-34 (-4.29 % of base) : 38674.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-32 (-1.89 % of base) : 60891.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-31 (-0.88 % of base) : 59826.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-30 (-19.74 % of base) : 239206.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-24 (-2.10 % of base) : 148155.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
-22 (-7.77 % of base) : 61760.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-22 (-4.90 % of base) : 124044.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-22 (-44.00 % of base) : 151542.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-20 (-14.93 % of base) : 239043.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-18 (-9.63 % of base) : 96258.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-17 (-12.98 % of base) : 239132.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-17 (-0.62 % of base) : 176210.dasm - System.Xml.Schema.XmlSchemaInference:RefineSimpleType(System.String,byref):System.Xml.XmlQualifiedName:this (FullOpts)
-16 (-9.94 % of base) : 89625.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
Top method regressions (percentages):
12 (2.23 % of base) : 168046.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.23 % of base) : 168048.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
Top method improvements (percentages):
-659 (-92.43 % of base) : 172095.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-22 (-44.00 % of base) : 151542.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-30 (-19.74 % of base) : 239206.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-72 (-17.87 % of base) : 13303.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
-20 (-14.93 % of base) : 239043.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-17 (-12.98 % of base) : 239132.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-10 (-11.11 % of base) : 152414.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-37 (-10.00 % of base) : 88337.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-16 (-9.94 % of base) : 89625.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-18 (-9.63 % of base) : 96258.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
-22 (-7.77 % of base) : 61760.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-9 (-7.32 % of base) : 239187.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-5.97 % of base) : 206648.dasm - Microsoft.Diagnostics.Tools.RuntimeClient.EventPipeClient:StopTracing(int,ulong):ulong (FullOpts)
-11 (-5.21 % of base) : 195521.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
-13 (-5.18 % of base) : 109956.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
-7 (-5.15 % of base) : 38876.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
-72 (-5.08 % of base) : 8727.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-11 (-4.98 % of base) : 225136.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-22 (-4.90 % of base) : 124044.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
-34 (-4.29 % of base) : 38674.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
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: 61663311 (overridden on cmd)
Total bytes of diff: 61659864 (overridden on cmd)
Total bytes of delta: -3447 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
19 : 121944.dasm (0.82 % of base)
12 : 209505.dasm (2.21 % of base)
12 : 209507.dasm (2.21 % of base)
1 : 51432.dasm (5.56 % of base)
Top file improvements (bytes):
-659 : 220167.dasm (-92.43 % of base)
-230 : 57942.dasm (-0.81 % of base)
-100 : 88818.dasm (-2.45 % of base)
-81 : 15687.dasm (-5.65 % of base)
-50 : 160699.dasm (-6.15 % of base)
-49 : 160693.dasm (-9.59 % of base)
-41 : 16793.dasm (-3.15 % of base)
-41 : 286465.dasm (-22.91 % of base)
-40 : 136765.dasm (-3.35 % of base)
-40 : 170589.dasm (-3.35 % of base)
-39 : 98186.dasm (-2.20 % of base)
-37 : 92363.dasm (-10.42 % of base)
-34 : 129322.dasm (-1.10 % of base)
-34 : 58564.dasm (-4.36 % of base)
-31 : 264345.dasm (-7.65 % of base)
-31 : 59170.dasm (-0.51 % of base)
-28 : 60246.dasm (-1.52 % of base)
-27 : 139693.dasm (-2.66 % of base)
-27 : 173512.dasm (-2.66 % of base)
-27 : 202491.dasm (-1.91 % of base)
55 total files with Code Size differences (51 improved, 4 regressed), 7 unchanged.
Top method regressions (bytes):
19 (0.82 % of base) : 121944.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
12 (2.21 % of base) : 209505.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.21 % of base) : 209507.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
1 (5.56 % of base) : 51432.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
Top method improvements (bytes):
-659 (-92.43 % of base) : 220167.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-230 (-0.81 % of base) : 57942.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-100 (-2.45 % of base) : 88818.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-81 (-5.65 % of base) : 15687.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-50 (-6.15 % of base) : 160699.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:Scavenge():int:this (FullOpts)
-49 (-9.59 % of base) : 160693.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-41 (-22.91 % of base) : 286465.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-41 (-3.15 % of base) : 16793.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-40 (-3.35 % of base) : 136765.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-40 (-3.35 % of base) : 170589.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeDecimalConstantValue():Microsoft.CodeAnalysis.ConstantValue:this (FullOpts)
-39 (-2.20 % of base) : 98186.dasm - System.Speech.Internal.SrgsParser.XmlParser:ProcessChildNodes(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IElement,System.Speech.Internal.SrgsParser.IRule,System.String):ubyte:this (FullOpts)
-37 (-10.42 % of base) : 92363.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-34 (-4.36 % of base) : 58564.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-34 (-1.10 % of base) : 129322.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-31 (-0.51 % of base) : 59170.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-31 (-7.65 % of base) : 264345.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-28 (-1.52 % of base) : 60246.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-27 (-2.66 % of base) : 139693.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():ubyte:this (FullOpts)
-27 (-2.66 % of base) : 173512.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():ubyte:this (FullOpts)
-27 (-1.91 % of base) : 202491.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
Top method regressions (percentages):
1 (5.56 % of base) : 51432.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
12 (2.21 % of base) : 209505.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.21 % of base) : 209507.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
19 (0.82 % of base) : 121944.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeCoverageInstrumenter:GetCreatePayloadStatement(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.SyntheticBoundNodeFactory,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider):Microsoft.CodeAnalysis.VisualBasic.BoundExpressionStatement (FullOpts)
Top method improvements (percentages):
-659 (-92.43 % of base) : 220167.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
-22 (-44.00 % of base) : 196404.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-4 (-28.57 % of base) : 275343.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
-41 (-22.91 % of base) : 286465.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-17.14 % of base) : 200422.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
-12 (-16.90 % of base) : 200423.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-20 (-13.33 % of base) : 286484.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-12 (-13.19 % of base) : 200424.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
-7 (-12.96 % of base) : 25349.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-7 (-12.50 % of base) : 25337.dasm - System.SpanHelpers:IndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
-12 (-12.24 % of base) : 200421.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
-17 (-11.56 % of base) : 286461.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-10 (-11.11 % of base) : 236803.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-37 (-10.42 % of base) : 92363.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-49 (-9.59 % of base) : 160693.dasm - Microsoft.Build.Collections.WeakValueDictionary`2[System.__Canon,System.__Canon]:get_Keys():System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
-19 (-7.88 % of base) : 143010.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-19 (-7.88 % of base) : 176764.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.__Canon,System.Nullable`1[int]]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]]:this (FullOpts)
-31 (-7.65 % of base) : 264345.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.Nullable`1[int]]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.Nullable`1[int]],int):this (FullOpts)
-25 (-6.60 % of base) : 61170.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-9 (-6.47 % of base) : 286479.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (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: 282109609 (overridden on cmd)
Total bytes of diff: 282086724 (overridden on cmd)
Total bytes of delta: -22885 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
104 : 630922.dasm (7.60 % of base)
77 : 611254.dasm (0.87 % of base)
69 : 223138.dasm (4.35 % of base)
37 : 620299.dasm (2.69 % of base)
36 : 203353.dasm (5.68 % of base)
27 : 92255.dasm (1.19 % of base)
21 : 215546.dasm (1.71 % of base)
21 : 486945.dasm (1.48 % of base)
21 : 194637.dasm (1.73 % of base)
21 : 218314.dasm (1.63 % of base)
20 : 194970.dasm (1.16 % of base)
19 : 65520.dasm (0.48 % of base)
18 : 195712.dasm (0.96 % of base)
16 : 304265.dasm (2.69 % of base)
14 : 195682.dasm (1.04 % of base)
13 : 628414.dasm (4.56 % of base)
12 : 200083.dasm (0.80 % of base)
10 : 304264.dasm (1.17 % of base)
7 : 473576.dasm (4.76 % of base)
7 : 596256.dasm (0.52 % of base)
Top file improvements (bytes):
-349 : 37565.dasm (-3.34 % of base)
-349 : 77828.dasm (-3.34 % of base)
-305 : 626788.dasm (-3.14 % of base)
-234 : 26174.dasm (-3.50 % of base)
-220 : 77837.dasm (-3.21 % of base)
-220 : 35453.dasm (-3.21 % of base)
-220 : 40985.dasm (-3.21 % of base)
-212 : 445215.dasm (-1.40 % of base)
-192 : 445202.dasm (-1.25 % of base)
-181 : 73083.dasm (-2.56 % of base)
-177 : 42201.dasm (-2.62 % of base)
-177 : 77884.dasm (-2.62 % of base)
-156 : 620295.dasm (-5.61 % of base)
-142 : 620294.dasm (-8.38 % of base)
-134 : 603513.dasm (-1.78 % of base)
-123 : 643639.dasm (-1.14 % of base)
-110 : 619353.dasm (-3.44 % of base)
-105 : 73014.dasm (-1.52 % of base)
-99 : 346750.dasm (-14.16 % of base)
-99 : 434162.dasm (-14.16 % of base)
68 total files with Code Size differences (48 improved, 20 regressed), 20 unchanged.
Top method regressions (bytes):
104 (7.60 % of base) : 630922.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
77 (0.87 % of base) : 611254.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:MergePartialMembers(byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1-OSR)
69 (4.35 % of base) : 223138.dasm - System.ComponentModel.Composition.Hosting.TypeCatalog:CreateIndex():System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]]:this (Tier1-OSR)
37 (2.69 % of base) : 620299.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier1-OSR)
36 (5.68 % of base) : 203353.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.__Canon]):ubyte:this (Tier1-OSR)
27 (1.19 % of base) : 92255.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
21 (1.71 % of base) : 215546.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.48 % of base) : 486945.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.73 % of base) : 194637.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.63 % of base) : 218314.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
20 (1.16 % of base) : 194970.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestAdd(int,int,int,int) (Tier1-OSR)
19 (0.48 % of base) : 65520.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
18 (0.96 % of base) : 195712.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
16 (2.69 % of base) : 304265.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
14 (1.04 % of base) : 195682.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
13 (4.56 % of base) : 628414.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
12 (0.80 % of base) : 200083.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
10 (1.17 % of base) : 304264.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
7 (4.76 % of base) : 473576.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[float](float,float,System.String) (Instrumented Tier1)
7 (0.52 % of base) : 596256.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:Deserialize(System.IO.Stream):System.__Canon:this (Tier1)
Top method improvements (bytes):
-349 (-3.34 % of base) : 37565.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-349 (-3.34 % of base) : 77828.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-305 (-3.14 % of base) : 626788.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodTableRows(int[]):this (Tier1)
-234 (-3.50 % of base) : 26174.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-220 (-3.21 % of base) : 77837.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-220 (-3.21 % of base) : 35453.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-220 (-3.21 % of base) : 40985.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-212 (-1.40 % of base) : 445215.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier1)
-192 (-1.25 % of base) : 445202.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier1)
-181 (-2.56 % of base) : 73083.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-177 (-2.62 % of base) : 42201.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-177 (-2.62 % of base) : 77884.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-156 (-5.61 % of base) : 620295.dasm - Microsoft.Cci.MetadataWriter:PopulateImplMapTableRows():this (Tier1-OSR)
-142 (-8.38 % of base) : 620294.dasm - Microsoft.Cci.MetadataWriter:PopulateDeclSecurityTableRows():this (Tier1-OSR)
-134 (-1.78 % of base) : 603513.dasm - System.Text.Json.Tests.JsonDocumentTests:ReadJson400KB(Newtonsoft.Json.Linq.JToken):System.String (Tier1-OSR)
-123 (-1.14 % of base) : 643639.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1)
-110 (-3.44 % of base) : 619353.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:GetOrCreateSlot(Microsoft.CodeAnalysis.CSharp.Symbol,int,ubyte,ubyte):int:this (Tier1)
-105 (-1.52 % of base) : 73014.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier1-OSR)
-99 (-14.16 % of base) : 346750.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
-99 (-14.16 % of base) : 434162.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:Remove(System.__Canon):ubyte:this (Tier1)
Top method regressions (percentages):
104 (7.60 % of base) : 630922.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeCustomAttributeTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier1-OSR)
36 (5.68 % of base) : 203353.dasm - System.Collections.Frozen.FrozenSetInternalBase`2[System.__Canon,System.Collections.Frozen.OrdinalStringFrozenSet+GSW]:ContainsAllElements(System.Collections.Generic.IEnumerable`1[System.__Canon]):ubyte:this (Tier1-OSR)
7 (4.76 % of base) : 473576.dasm - System.ArgumentOutOfRangeException:ThrowIfGreaterThan[float](float,float,System.String) (Instrumented Tier1)
13 (4.56 % of base) : 628414.dasm - Microsoft.CodeAnalysis.BitVector:AllSet(int):Microsoft.CodeAnalysis.BitVector (Tier1)
69 (4.35 % of base) : 223138.dasm - System.ComponentModel.Composition.Hosting.TypeCatalog:CreateIndex():System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ComposablePartDefinition]]:this (Tier1-OSR)
16 (2.69 % of base) : 304265.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (Tier1)
37 (2.69 % of base) : 620299.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier1-OSR)
21 (1.73 % of base) : 194637.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.71 % of base) : 215546.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.63 % of base) : 218314.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
21 (1.48 % of base) : 486945.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
27 (1.19 % of base) : 92255.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken):this (Tier1)
10 (1.17 % of base) : 304264.dasm - System.IO.Compression.ZipArchiveEntry:OpenInWriteMode():System.IO.Compression.WrappedStream:this (Tier1)
20 (1.16 % of base) : 194970.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryTests:TestAdd(int,int,int,int) (Tier1-OSR)
14 (1.04 % of base) : 195682.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:CheckGetDynamicPartitions(int,int) (Tier1-OSR)
18 (0.96 % of base) : 195712.dasm - System.Collections.Concurrent.Tests.IntRangePartitionerTests:GetOrderableDynamicPartitions(int,int) (Tier1-OSR)
77 (0.87 % of base) : 611254.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:MergePartialMembers(byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1-OSR)
12 (0.80 % of base) : 200083.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[int]:IEnumerable_Generic_GetEnumerator_ReturnsUniqueEnumerator(int):this (Tier1-OSR)
7 (0.52 % of base) : 596256.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:Deserialize(System.IO.Stream):System.__Canon:this (Tier1)
19 (0.48 % of base) : 65520.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
Top method improvements (percentages):
-51 (-49.04 % of base) : 592905.dasm - System.Text.Json.JsonSerializerOptions:ConfigureForJsonSerializer():this (Tier1)
-37 (-33.04 % of base) : 84807.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
-37 (-32.46 % of base) : 643790.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-37 (-32.46 % of base) : 64783.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-37 (-32.46 % of base) : 90963.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-37 (-32.46 % of base) : 169325.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
-6 (-23.08 % of base) : 438373.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
-29 (-23.02 % of base) : 619367.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:GetVariablesForMethodScope(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):Microsoft.CodeAnalysis.CSharp.NullableWalker+Variables:this (Tier1)
-41 (-22.91 % of base) : 376478.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (Tier1)
-27 (-20.45 % of base) : 117262.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-27 (-20.45 % of base) : 45771.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-27 (-20.45 % of base) : 584529.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-27 (-20.45 % of base) : 656170.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-27 (-20.45 % of base) : 81422.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-27 (-20.45 % of base) : 213503.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this (Tier1)
-24 (-18.90 % of base) : 219527.dasm - System.Collections.Generic.Stack`1[System.ValueTuple`2[System.__Canon,System.__Canon]]:TryPop(byref):ubyte:this (Tier1)
-39 (-17.89 % of base) : 613855.dasm - System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this (Tier1)
-24 (-17.78 % of base) : 613934.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-17.39 % of base) : 170045.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
-24 (-17.39 % of base) : 62207.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
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: 137066325 (overridden on cmd)
Total bytes of diff: 137062434 (overridden on cmd)
Total bytes of delta: -3891 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
66 : 159907.dasm (1.72 % of base)
12 : 185068.dasm (2.21 % of base)
12 : 185066.dasm (2.21 % of base)
3 : 292375.dasm (0.31 % of base)
2 : 301215.dasm (0.21 % of base)
2 : 301220.dasm (0.21 % of base)
2 : 301207.dasm (0.21 % of base)
2 : 301211.dasm (0.20 % of base)
1 : 33230.dasm (0.35 % of base)
Top file improvements (bytes):
-229 : 60087.dasm (-0.81 % of base)
-100 : 19345.dasm (-2.44 % of base)
-81 : 122351.dasm (-5.81 % of base)
-72 : 217933.dasm (-2.35 % of base)
-72 : 218331.dasm (-2.35 % of base)
-62 : 218019.dasm (-2.00 % of base)
-62 : 218201.dasm (-2.00 % of base)
-41 : 97399.dasm (-3.16 % of base)
-41 : 160695.dasm (-22.91 % of base)
-39 : 242319.dasm (-2.23 % of base)
-37 : 308527.dasm (-2.33 % of base)
-37 : 15548.dasm (-11.86 % of base)
-37 : 57254.dasm (-10.42 % of base)
-36 : 172401.dasm (-1.25 % of base)
-35 : 78294.dasm (-11.86 % of base)
-34 : 60326.dasm (-4.58 % of base)
-34 : 43796.dasm (-0.44 % of base)
-34 : 123411.dasm (-1.10 % of base)
-34 : 49469.dasm (-0.44 % of base)
-31 : 7131.dasm (-0.54 % of base)
68 total files with Code Size differences (59 improved, 9 regressed), 3 unchanged.
Top method regressions (bytes):
66 (1.72 % of base) : 159907.dasm - System.Net.WebSockets.WebSocketBase+<CloseAsyncCore>d__53:MoveNext():this (FullOpts)
12 (2.21 % of base) : 185066.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.21 % of base) : 185068.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
3 (0.31 % of base) : 292375.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2140_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301207.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7062_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.20 % of base) : 301211.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7065_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7068_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301220.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7071_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
1 (0.35 % of base) : 33230.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
Top method improvements (bytes):
-229 (-0.81 % of base) : 60087.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
-100 (-2.44 % of base) : 19345.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-81 (-5.81 % of base) : 122351.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-72 (-2.35 % of base) : 218331.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeNumberTest() (FullOpts)
-72 (-2.35 % of base) : 217933.dasm - System.Tests.DecimalTests_GenericMath:MaxMagnitudeTest() (FullOpts)
-62 (-2.00 % of base) : 218019.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
-62 (-2.00 % of base) : 218201.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
-41 (-22.91 % of base) : 160695.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-41 (-3.16 % of base) : 97399.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
-39 (-2.23 % of base) : 242319.dasm - System.Speech.Internal.SrgsParser.XmlParser:ProcessChildNodes(System.Xml.XmlReader,System.Speech.Internal.SrgsParser.IElement,System.Speech.Internal.SrgsParser.IRule,System.String):ubyte:this (FullOpts)
-37 (-10.42 % of base) : 57254.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-37 (-11.86 % of base) : 15548.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-37 (-2.33 % of base) : 308527.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.__Canon,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:this (FullOpts)
-36 (-1.25 % of base) : 172401.dasm - System.Collections.ObjectModel.Tests.KeyedCollectionTests`2[System.__Canon,int]:Threshold(int,System.Collections.ObjectModel.Tests.Named`1[System.__Canon]):this (FullOpts)
-35 (-11.86 % of base) : 78294.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-34 (-0.44 % of base) : 43796.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-34 (-0.44 % of base) : 49469.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
-34 (-4.58 % of base) : 60326.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
-34 (-1.10 % of base) : 123411.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
-31 (-0.54 % of base) : 7131.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
Top method regressions (percentages):
12 (2.21 % of base) : 185066.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
12 (2.21 % of base) : 185068.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
66 (1.72 % of base) : 159907.dasm - System.Net.WebSockets.WebSocketBase+<CloseAsyncCore>d__53:MoveNext():this (FullOpts)
1 (0.35 % of base) : 33230.dasm - Moq.ExpressionExtensions:CanSplit(System.Linq.Expressions.Expression):ubyte (FullOpts)
3 (0.31 % of base) : 292375.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2140_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301207.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7062_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7068_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.21 % of base) : 301220.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7071_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
2 (0.20 % of base) : 301211.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex7065_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
Top method improvements (percentages):
-22 (-44.00 % of base) : 149324.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
-27 (-28.42 % of base) : 49763.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-27 (-28.42 % of base) : 44051.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-27 (-28.42 % of base) : 5614.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
-41 (-22.91 % of base) : 160695.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
-20 (-13.33 % of base) : 160644.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
-35 (-11.86 % of base) : 78294.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
-37 (-11.86 % of base) : 15548.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator:GetAllowedModifiers(ushort):Microsoft.CodeAnalysis.Editing.DeclarationModifiers (FullOpts)
-17 (-11.56 % of base) : 160649.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
-10 (-11.11 % of base) : 317802.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
-23 (-11.06 % of base) : 281915.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-19 (-10.67 % of base) : 15298.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-37 (-10.42 % of base) : 57254.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-19 (-10.22 % of base) : 11451.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-19 (-7.88 % of base) : 13985.dasm - Microsoft.CodeAnalysis.Collections.CachingDictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:EnsureFullyPopulated():System.Collections.Generic.IDictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
-24 (-7.69 % of base) : 20903.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-7.69 % of base) : 20889.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-19 (-7.66 % of base) : 45596.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-19 (-7.51 % of base) : 52574.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:GetFirstMemberKind(ubyte):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (FullOpts)
-28 (-7.09 % of base) : 80243.dasm - System.Collections.Tests.List_Generic_Tests`1[System.__Canon]:Constructor_IEnumerable(int,int,int,int,int):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: 14130936 (overridden on cmd)
Total bytes of diff: 14129806 (overridden on cmd)
Total bytes of delta: -1130 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-118 : 4519.dasm (-30.97 % of base)
-100 : 24448.dasm (-2.43 % of base)
-81 : 5216.dasm (-5.81 % of base)
-54 : 15046.dasm (-2.81 % of base)
-37 : 29594.dasm (-10.42 % of base)
-32 : 9244.dasm (-1.72 % of base)
-31 : 21850.dasm (-0.54 % of base)
-28 : 27939.dasm (-1.52 % of base)
-26 : 1091.dasm (-3.48 % of base)
-26 : 16658.dasm (-1.55 % of base)
-25 : 10062.dasm (-25.25 % of base)
-25 : 27210.dasm (-6.60 % of base)
-24 : 17718.dasm (-7.69 % of base)
-24 : 17761.dasm (-7.69 % of base)
-24 : 24548.dasm (-1.52 % of base)
-23 : 27440.dasm (-11.06 % of base)
-23 : 1459.dasm (-2.80 % of base)
-22 : 6390.dasm (-1.32 % of base)
-22 : 7056.dasm (-5.67 % of base)
-19 : 25481.dasm (-10.92 % of base)
49 total files with Code Size differences (49 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-118 (-30.97 % of base) : 4519.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-100 (-2.43 % of base) : 24448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
-81 (-5.81 % of base) : 5216.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-54 (-2.81 % of base) : 15046.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
-37 (-10.42 % of base) : 29594.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-32 (-1.72 % of base) : 9244.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-31 (-0.54 % of base) : 21850.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
-28 (-1.52 % of base) : 27939.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
-26 (-3.48 % of base) : 1091.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-26 (-1.55 % of base) : 16658.dasm - Microsoft.ML.Data.EvaluatorBase`1[System.__Canon]:ProcessData(Microsoft.ML.IDataView,Microsoft.ML.Data.RoleMappedSchema,System.Func`2[int,ubyte],System.__Canon,System.__Canon[]):System.Collections.Generic.Dictionary`2[System.String,Microsoft.ML.IDataView]:this (FullOpts)
-25 (-25.25 % of base) : 10062.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-25 (-6.60 % of base) : 27210.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-24 (-1.52 % of base) : 24548.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsArray(byref,Microsoft.CodeAnalysis.CommonMessageProvider,ubyte) (FullOpts)
-24 (-7.69 % of base) : 17761.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-7.69 % of base) : 17718.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-23 (-2.80 % of base) : 1459.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
-23 (-11.06 % of base) : 27440.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-22 (-1.32 % of base) : 6390.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadConstant(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+HasConstantTag]):FSharp.Compiler.AbstractIL.IL+ILFieldInit (FullOpts)
-22 (-5.67 % of base) : 7056.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-19 (-10.67 % of base) : 26720.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
Top method improvements (percentages):
-118 (-30.97 % of base) : 4519.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
-25 (-25.25 % of base) : 10062.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
-23 (-11.06 % of base) : 27440.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
-19 (-10.92 % of base) : 25481.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
-19 (-10.67 % of base) : 26720.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
-37 (-10.42 % of base) : 29594.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
-24 (-7.69 % of base) : 17761.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-24 (-7.69 % of base) : 17718.dasm - System.Net.Sockets.Socket:SendAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts)
-25 (-6.60 % of base) : 27210.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
-81 (-5.81 % of base) : 5216.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
-22 (-5.67 % of base) : 7056.dasm - FSharp.Compiler.LexFilter:infixTokenLength(FSharp.Compiler.Parser+token):int (FullOpts)
-11 (-4.68 % of base) : 17506.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
-7 (-4.07 % of base) : 30870.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
-5 (-3.68 % of base) : 24471.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
-19 (-3.61 % of base) : 33121.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
-26 (-3.48 % of base) : 1091.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
-5 (-3.25 % of base) : 24462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
-18 (-3.22 % of base) : 10072.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
-7 (-3.14 % of base) : 22910.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
-9 (-2.99 % of base) : 22243.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:TrackAnalyzedNullabilityThroughConversionGroup(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression):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: 5083247 (overridden on cmd)
Total bytes of diff: 5082955 (overridden on cmd)
Total bytes of delta: -292 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-53 : 12710.dasm (-3.03 % of base)
-53 : 7031.dasm (-3.03 % of base)
-29 : 12245.dasm (-2.18 % of base)
-20 : 8222.dasm (-5.03 % of base)
-20 : 13919.dasm (-5.03 % of base)
-14 : 8201.dasm (-3.80 % of base)
-14 : 13897.dasm (-3.80 % of base)
-10 : 13898.dasm (-2.67 % of base)
-10 : 8202.dasm (-2.67 % of base)
-9 : 20887.dasm (-0.34 % of base)
-9 : 18339.dasm (-0.34 % of base)
-9 : 15695.dasm (-0.34 % of base)
-9 : 445.dasm (-0.34 % of base)
-7 : 15116.dasm (-0.27 % of base)
-7 : 8507.dasm (-0.24 % of base)
-7 : 11256.dasm (-0.27 % of base)
-6 : 11136.dasm (-0.43 % of base)
-6 : 7280.dasm (-0.36 % of base)
18 total files with Code Size differences (18 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-53 (-3.03 % of base) : 12710.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-53 (-3.03 % of base) : 7031.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-29 (-2.18 % of base) : 12245.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-20 (-5.03 % of base) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-20 (-5.03 % of base) : 13919.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-14 (-3.80 % of base) : 8201.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-14 (-3.80 % of base) : 13897.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-10 (-2.67 % of base) : 13898.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-10 (-2.67 % of base) : 8202.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-9 (-0.34 % of base) : 20887.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 18339.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 15695.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 445.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-7 (-0.27 % of base) : 15116.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-7 (-0.24 % of base) : 8507.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-7 (-0.27 % of base) : 11256.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-6 (-0.43 % of base) : 11136.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-6 (-0.36 % of base) : 7280.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
Top method improvements (percentages):
-20 (-5.03 % of base) : 8222.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-20 (-5.03 % of base) : 13919.dasm - Internal.Runtime.TypeLoader.TypeBuilder+GCLayout:MergeBitfields(System.Collections.Generic.LowLevelList`1[ubyte],int):this (FullOpts)
-14 (-3.80 % of base) : 8201.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-14 (-3.80 % of base) : 13897.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ubyte,ulong):int (FullOpts)
-53 (-3.03 % of base) : 12710.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-53 (-3.03 % of base) : 7031.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
-10 (-2.67 % of base) : 13898.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-10 (-2.67 % of base) : 8202.dasm - Internal.Runtime.TypeLoader.EETypeCreator:CreateArrayGCDesc(System.Collections.Generic.LowLevelList`1[ubyte],int,ubyte,ulong):int (FullOpts)
-29 (-2.18 % of base) : 12245.dasm - System.Threading.ThreadPoolWorkQueue:Dispatch():ubyte (FullOpts)
-6 (-0.43 % of base) : 11136.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-6 (-0.36 % of base) : 7280.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeSearcher`1+<GetMatchingCustomAttributesIterator>d__2[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-9 (-0.34 % of base) : 20887.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 18339.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 15695.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-9 (-0.34 % of base) : 445.dasm - System.Text.UnicodeEncoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
-7 (-0.27 % of base) : 11256.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-7 (-0.27 % of base) : 15116.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
-7 (-0.24 % of base) : 8507.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
18 total methods with Code Size differences (18 improved, 0 regressed).