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)

No diffs found?

+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)

No diffs found?

+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)

No diffs found?

+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).